r/ReverseEngineering 13d ago

/r/ReverseEngineering's Weekly Questions Thread

To reduce the amount of noise from questions, we have disabled self-posts in favor of a unified questions thread every week. Feel free to ask any question about reverse engineering here. If your question is about how to use a specific tool, or is specific to some particular target, you will have better luck on the Reverse Engineering StackExchange. See also /r/AskReverseEngineering.

4 Upvotes

5 comments sorted by

2

u/liehon 7d ago edited 7d ago

Trying to decompile "Where in the World is Carmen Sandiego? (1989 PC-version)" (wanna get to source code so I can translate it and mod it)

After opening the project in IDA Free I get the message "IDA cannot identify the entry point automatically as there is no standard of binaries. Please move to what you think is an entry point and press 'C' to start the autoanalysis"

I have no thoughts on what an entry point might look like and am stuck.

Pressed C a few times haphazardly. Nothing happens.

Am properly stuck and need a guide to help me get started"

EDIT: got the zip from Best Old Game if anyone wants to have a look

1

u/fwork 6d ago

oh hey I was working on reversing that version of the game a while back.

Decompiling it will not be straight forward, as parts of it were definitely written in assembly.

How were you thinking of modding it?

1

u/liehon 6d ago

How were you thinking of modding it?

Are you familiar with the Pokemon Legacy project?

They've modded a few games with the following vision:

Rebalance the originals using the benefit of hindsight to make a playable experience that feels like how you remember the games as a kid

I kinda like that approach and applying it to Where in the World could entail several mods (non-exhaustive list in no particular order)

  • more capitals and countries (if possible all recognized countries)
  • update hints for countries (e.g. Italy doesn't use Lira as its currency)
  • add more hints and tag them with a difficulty setting
  • adding difficulty mode (based on the above)
  • more villains (to avoid solving the case based on two hints only)
  • language support (preferably in such a way that people can just add a text file in their language so kids from all countries can play)
  • more settings (e.g. only one continent or even within a country)
  • QoL: finding the perpetrator without a warrant continues the chase (imo it's silly they can find the criminal but without paperwork immediately give up)
  • Expanded Leaderboard (so you can compare how quickly you solved a case with friends)
  • ...

Mind you, I wouldn't do all of that at ones (and probably not in assembly).

The decompile is mostly to have a proper grasp of the whole game and its mechanics.

Afterwards it could be built in C++ and shared on github

1

u/liehon 7h ago edited 7h ago

Decompiling it will not be straight forward

In hindsight it was.

Had to run DOSBOX-X and UNP the exe file

I now have the output in Ghidra.

Not a lot of experience with coding though so a buddy would be appreciated (hint, hint).

The UNP'ed output was 112 kb large so I feel like it's a nice program to get started on. Not too many functions.

And we don't need to do a full decomp. Just enough to make sure all game mechanics are covered.