I want to find a way to reverse engineer POP2 that I can personally work on. I'm honestly not great at reverse engineering assembly code, and I would prefer a method where I can work piece-by-piece where the game is runnable. If I understand it correctly, most traditional methods involve disassembling the entire thing and you won't have anything to run until you've reverse engineered all of it. At least, I think that's what the most typical approach is. Either way, I tried to do some research on alternate approaches using tools that people have made to help with the process.
CicoParser:
- Takes disassembly output from IDA, converts it into fake-assembler C or Javascript code, and runs it in an SDL wrapper.
- I'm not sure if it supports VGA applications.
- Source code and more information:
https://github.com/gabonator/Education/ ... CicoParser
CicoJIT:
- CicoParser is discontinued and the creator started working on this instead.
- CicoJIT uses an integrated disassembler. I think it means it takes the EXE and creates a disassembly from it rather than relying on something like IDA.
- No documentation (yet?), though the source code is here:
https://github.com/gabonator/Projects/t ... er/CicoJit
Spice86:
- PC emulator that lets you replace arbitrary functions with code written in C# and let the rest remain the same, so you work piece by piece while having a fully functional game.
- Source code and more info:
https://github.com/OpenRakis/Spice86/
Bright Eyes:
- Similar to Spice86 but it uses DOSBOX as emulator.
- Source code:
https://github.com/Henne/Bright-Eyes
masm2c:
- I think this works in a similar way to CicoParser where it takes a disassembled EXE from IDA and converts that code to C that runs it using SDL library. A DosBox library is also related somehow.
- Source code and more info:
https://github.com/xor2003/masm2c
SR:
- I think this work similar to CicoJIT. It statically recompiles a DOS exe.
- Source code and more info:
https://github.com/M-HT/SR
Those are the tools I've found that can possibly be helpful. I'm wondering if any of those methods could be used for POP2. This is something I wouldn't mind working on if I can get a good workflow set up.