Live data from Hacker News

Legalizing gay marriage in Crusader Kings III with Ghidra

waffleironer.medium.com

141–150 of 183 posts

Re: Legalizing gay marriage in Crusader Kings III with Ghidra

#141
post #140
post #136

Earlier quoted context omitted.

> Or if you really want to be part of video game scene make your own. But I doubt you'd open source it. It takes monumental effort. I have minted a few very active video game scenes with a good culture, open codebases and devs that are happy to help and introduced many people to reverse engineering that wouldn't otherwise have gotten into it, and it's really not as hard as you make it seem. Good resources are easy to…

> I have minted a few very active video game scenes with a good culture, Sure. Nice of you to assume I haven't made any games, and put words in my mouth. So to repay the kindness, I'm going to assume your games weren't on scale of Paradox games. Because those games shave man decades. That means collaborative effort on a longer timescale. That means people sacrificed their time to make this. And people need to eat. >…

Considering the way you talk to people on here, "good culture" is as far away as I could imagine from anything you might be able to touch.

Re: Legalizing gay marriage in Crusader Kings III with Ghidra

#142
post #21

Earlier quoted context omitted.

>Although were there really no cultures in that era that allowed same sex marriage? No Christian cultures, obviously.

No Christian cultures, obviously. Interestingly, the vast majority of countries that now permit gay marriage have Christian histories.

Ssh, we have to hate the cross-kissers.

Re: Legalizing gay marriage in Crusader Kings III with Ghidra

#143
post #132

Earlier quoted context omitted.

> The self-marriage part was pretty hilarious. "Do I take myself? I do!" People are doing that in real life: https://www.abc.net.au/everyday/why-women-marry-themselves/1... Of course, it isn't legally recognised anywhere. And I doubt it will be – marriage as a legal relationship between two distinct people has various legal consequences on property law, taxation law, etc – a self-married person is legally indistingui…

There is a very big difference between a wedding and a marriage. I don't understand why this confuses so many people, but it does.

In some languages the same word means both, e.g. the Italian “matrimonio”

Re: Legalizing gay marriage in Crusader Kings III with Ghidra

#144
post #141
post #140

Earlier quoted context omitted.

> I have minted a few very active video game scenes with a good culture, Sure. Nice of you to assume I haven't made any games, and put words in my mouth. So to repay the kindness, I'm going to assume your games weren't on scale of Paradox games. Because those games shave man decades. That means collaborative effort on a longer timescale. That means people sacrificed their time to make this. And people need to eat. >…

Considering the way you talk to people on here, "good culture" is as far away as I could imagine from anything you might be able to touch.

> "good culture"

I didn't meant that I'm interested in making a demo scene around "good culture", whatever that is. I meant I made games before. Alone and as part of team.

If people come to me with stupid ideas, I'm going to shoot them down. Or at least offer mitigations.

And in my original post I implied:

- Are you rich enough to take Paradox to court? Disregard my advice.

- Are you in a jurisdiction Paradox can't sue you? Disregard my advice.

If neither of these apply, you ARE running a risk of getting sued by them. Which while probably low enough, isn't zero, and might changed based on popularity of your leak.

Re: Legalizing gay marriage in Crusader Kings III with Ghidra

#145
post #108

I don't know anything about reverse engineering but why can't you just change the IF in the decompiled C++? Why do you need to mess around with the assembly instructions?

Calling it "decompilation" is misleading. That term implies that you can get your compiled binary and turn it back into C++. No automated tool exists that allows you to do that - too much information is lost in the compilation process. Function names are one things that's mentioned, but the very structure of the program (which functions are in which classes, etc.) is lost. You could infer this based on your knowledge of how compilers usually work, and how developers usually develop but it's all guesswork.

Instead what we actually do is 'disassembly'. We just perform the minimal processing to get the human readable form of the assembly instructions that make up the binary. This is very hard to directly get you head round, so 'decompilation tools' are then all assistants that help the manual process of understanding the structure of the program. You can see a very basic example of that in the article where the author is looking for references to an address so they can see which functions reference the string.

The gold standard tool in the space is IDA Pro. You can see in these screenshots the visual tool it gives that allows you to group chunks of assembly together into functions and keep track of the linkages to codify the person's understanding as the process continues.

Re: Legalizing gay marriage in Crusader Kings III with Ghidra

#146
post #90
post #66

Paradox games release early, patch often, and the core engine is nearly 15 years old. I wouldn't be surprised if the gender of a marriage is assumed all over the code-base and enabling full equality would have been a significant development complication. This all being said I wouldn't be surprised if we see full equality options in the next year or so. See: Matrilineal Marriages, Gender Equality, Same-Sex Relations,…

> the core engine is nearly 15 years old "The core engine" doesn't do what you think it does. It's actually a running joke on /r/paradoxplaza that every time you mention Clausewitz, Meneth (or one of the other developers) pops up to explain this. It just does what every other game engine does, none of the actual game mechanics are coded into the engine. The reason why all Paradox games have so many things in common—a…

> It's a very new library, so it shouldn't have 15 years of legacy cruft in it.

If they made it by copy-pasting one last time, it certainly could.

Re: Legalizing gay marriage in Crusader Kings III with Ghidra

#147
post #108

I don't know anything about reverse engineering but why can't you just change the IF in the decompiled C++? Why do you need to mess around with the assembly instructions?

I reverse engineered some games trying to fix them.

If they were made in ASM? Well, then it is easy, what you get from the decompiler is probably very close to what went into the compiler.

C? It gets harder, but decompilation to C is possible, you lose function names and whatnot but that is alright.

C++? Then you are 100% screwed, virtual functions, polymorphism, etc... it all becomes just a huge mess, if they used some common libraries it helps (STL, BOOST, etc...) but if they made a ton of custom classes that have virtual functions, polymorphism and composition at same time, then nothing can be done, you will get some ASM that almost looks like non-sense.

Re: Legalizing gay marriage in Crusader Kings III with Ghidra

#148
post #71

Earlier quoted context omitted.

Why is it a bad choice? A game set in middle age Europe has no more reason to foresee needing the ability to mod gay marriage into it than accommodating modding cell phones into it. It's not an insignificant amount for work just to include an anachronism.

Have you played this game and seen how much you can customize it? What's an anachronism in a sea of many others, if you wish to have them in your personal save games. And if you don't, you stick to whatever is historically accurate. Not having the foresight to be aware of this matter and the issues that come with it(going as far to be be especially exclusive) as a game studio in 2020 is what they should think about t…

it's 2021 actually.

Re: Legalizing gay marriage in Crusader Kings III with Ghidra

#149

Turning the JZ into a nop to fallthrough to the next line is easier, right? That might be what he did in the quickfix area anyway. The self-marriage part was pretty hilarious. "Do I take myself? I do!"

Changing JZ into JZ to the following address has the advantage of ease of editing: same length, same opcode, reliably copied, pasted and inspected value. A NOP sequence is more general but making it the wrong length is not impossible.

Re: Legalizing gay marriage in Crusader Kings III with Ghidra

#150
post #108

I don't know anything about reverse engineering but why can't you just change the IF in the decompiled C++? Why do you need to mess around with the assembly instructions?

Patching a few machine instructions in the compiled executable is easy; decompiling a complex program into C++ code that can be compiled back is amazingly complex.

It's like the difference between cleaning guano from your car with the localized application of a wet rag or by disassembling the car down to the last screw, putting all pieces in a giant dishwasher, replacing all parts that got damaged, and reassembling the car.

Post reply on HN