Register | Login | |||||
Main
| Memberlist
| Active users
| ACS
| Commons
| Calendar
| Online users Ranks | FAQ | Color Chart | Photo album | IRC Chat |
| |
1 user currently in Rom Hacking: |
Acmlm's Board - I2 Archive - Rom Hacking - SmartRENES and aNESe | | | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
User | Post | ||
Hyde Goomba Level: 8 Posts: 1/24 EXP: 2168 For next: 19 Since: 11-27-04 Since last post: 209 days Last activity: 203 days |
| ||
Well, I thought I'd post something about my tools here... I've been working on a disassembler and an NES emulator for quite some time now and I think both programs have reached a stage at which they deserve to be released. Notice that neither one of them is perfect, but still do the trick for a lot of games. So what is so special about 'em? The emulator collects address information needed by the disassembler, which, in theory, should output the full source of a given game. This output can be compiled with CA65 after the user performs a few modifications to the code. So basically the disassembler allows hackers to actually get to the code of a game, modify it, compile it, then release it. For instance, I've been able to extract most of the code out of Battletoads (U) and compile it in about an hour (the time it took me to beat the game). After beating the game all I had to do was 1) load the emulator's log file into the disassembler, 2) wait for a few seconds while the disassembler did its thing, then 3) modified some things until the code was compiled / linked using CA65. Now that I've given you some information on how the programs work, be sure to try them out and leave some feedback here or at my mail box: http://hydesprojects.cjb.net/ Go to the Games Sources section to get the disassembler and to the aNESe page to get the emulator. (You will need to have MS's .NET Framework installed on your computer) |
|||
Colleen Administrator Level: 136 Posts: 5296/11302 EXP: 29369328 For next: 727587 Since: 03-15-04 From: LaSalle, Quebec, Canada Since last post: 3 hours Last activity: 1 hour |
| ||
*whistles* Well, I'm certainly impressed. I don't think I've heard of a combo like that which can disassemble games... If anything, you might have a lot of hackers thanking you for this if things go well. Nice job! Between that and Temporal Flux, it's been a busy past few days. |
|||
dan Snap Dragon Level: 43 Posts: 254/782 EXP: 534516 For next: 30530 Since: 03-15-04 Since last post: 20 hours Last activity: 14 hours |
| ||
These tools are extremely useful if you want to work on some serious assembly hacks instead of having to use a rather tedious hex editor to manually input the opcodes. | |||
Sokarhacd Ball and Chain Trooper Resistance is Futile You Will Be Assimilated Hab SoSlI' Quch Level: 61 Posts: 833/1757 EXP: 1799888 For next: 76708 Since: 03-15-04 Since last post: 6 days Last activity: 4 hours |
| ||
awesome...except, is it just me, or do none of the menu items in the emulator work...except open rom image, about doesnt work, and nothing else really. | |||
dan Snap Dragon Level: 43 Posts: 255/782 EXP: 534516 For next: 30530 Since: 03-15-04 Since last post: 20 hours Last activity: 14 hours |
| ||
No, they don't work. The emulator isn't finished yet. The main feature (which is the logging of code and data) does work, and that's what makes this emulator worthwhile using. | |||
Sokarhacd Ball and Chain Trooper Resistance is Futile You Will Be Assimilated Hab SoSlI' Quch Level: 61 Posts: 834/1757 EXP: 1799888 For next: 76708 Since: 03-15-04 Since last post: 6 days Last activity: 4 hours |
| ||
it certainly does, its an awesome emulator...good work on it | |||
Hyde Goomba Level: 8 Posts: 2/24 EXP: 2168 For next: 19 Since: 11-27-04 Since last post: 209 days Last activity: 203 days |
| ||
Like Dan said, the emulator is not finished yet, but the main feature does work, which is the logging of useful address data. Also, I am currently working on MMC3 support, meaning that in a future anyone will be able to disassemble games like SMB3 and Kirby's Adventures. | |||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 2175/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||
Cool! How exactly are you doing this? I figure something like this: -Emulator keeps a 'type' array for each byte of the ROM, marking it as either data or code (initially all data) -As the game runs, chunks get marked as either code or data depending how they're accessed -Disassembler reads this from the log file and disassembles as required Is that it? I wrote a Gameboy disassembler that does that a while back. (I should finish it. ) It doesn't use an emulator, instead it marks each byte as data (except known code regions like the interrupt vectors), then starting at the program entry point (0x100) it runs through the code, marking each byte as being code. When it finds a jump or a call, it flags that and comes back to it later, so that eventually, all possible routes (both taking and not taking the jump) are taken, which hopefully means all the code should be identified. |
|||
Hyde Goomba Level: 8 Posts: 3/24 EXP: 2168 For next: 19 Since: 11-27-04 Since last post: 209 days Last activity: 203 days |
| ||
It kinda works the same way yours does. The disassembler can handle a lot of mapper #0, #3 (SMB, Argus) games without the emulator's help, but it can't handle other games so well, such as mapper #2 and #7 ones (Megaman, Castlevania, Battletoads). The reason for this is that most of such games depend on distinct bankswitching schema, and there really isn't an elegant way of following code blocks accross different banks. Also, a lot of games depend on indirect jumps, which can be performed through either the standard way (jmp ($xxxx)) or the f'd up way (modify stack, rts). The emulator helps the disassembler accomplish these tasks by logging addresses and stuff (for a sample see the "Addresses.log" file generated by the emulator). |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
Acmlm's Board - I2 Archive - Rom Hacking - SmartRENES and aNESe | | | |