Active Disassembly

Official support forum for the Exodus Emulation Platform

Moderator: Nemesis

Post Reply
jtn0514
Interested
Posts: 17
Joined: Sat Dec 28, 2013 9:33 pm

Active Disassembly

Post by jtn0514 » Tue Nov 06, 2018 2:54 pm

Hello all,

I've tried to run mortal kombat (rev 01) on the newest version of exodus 2.1 and found that it randomly locks up and does not even allow for a crash report. Additionally, im curious how to go about getting a good clean asm output of the dis-assembly. are there documented steps for this? Im looking to do some rom hacking and finding out where and how specific routines work would be great however i cant reliably run exodus without freezing and any dumps i DO end up getting are around 166mb which doesn't seem right for a 2mb rom file.. The system im running is a brand new clean x64 version of windows 8.1 all up to date with 8GB of system ram. It seems this is plenty for whats needed

User avatar
Miquel
Very interested
Posts: 341
Joined: Sat Jul 30, 2016 12:33 am

Re: Active Disassembly

Post by Miquel » Fri Nov 09, 2018 2:37 pm

You are getting impossible results because there is code and data all mixed, and the plain disassembly you are using can't differentiate them, even worst can get confused between them.

There are two ways:
- Use a complex disassembly like IDA Pro, which allows you to emulate and/or disassembly from certain point. The problem is as far as I know IDA can't emulate the full Megadrive system. Perhaps there are extensions, I don't know.
- Use an emulator with a debugger built in, like Regen. This can help with the crash too. The problem is that the disassembly abilities are kind of limited in space, in the long shoot.

So, use both.

What you have to end up is with functions/procedures that have a start point and an end point, this pieces of binary must be disassembled; and pieces of data that must be defined as data for the compiler.

For example, start all as data and then, you find those procedures and proceed to disassembly one by one.

If you want to only find a piece of code that crashes, perhaps Regen is just enough.


Edit: can be even data inside a procedure, any kind of table for example; so you need always this interactive ability to start/stop disassembling.
Yeah, I see you have to hive hope for the “believers” and the “non- believers”. Don’t worry I know.
“How much you have yet to learn”, is usually what them tell me when I fail to comprehend.

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests