NESRevPlus
Moderator: Moderators
NESRevPlus
Since we haven't seen an update for Kent Hansens great "NESRev" for quite some time (It seems to have vanished from the internet aswell, almost anyway), I've decided to port NESRev's java-code to Windows .NET.
My plan is to keep the tool updated and use a modern GUI instead of a commandline.
I hope Kent Hansen won't mind..
Progress is good and I'm almost done with the initial port and expect to release a beta soon.
Let me know if you have any cool ideas of features to add.
Until then, here's a screenshot of what's coming:
[/img]
For the latest version:
http://nes.goondocks.se
My plan is to keep the tool updated and use a modern GUI instead of a commandline.
I hope Kent Hansen won't mind..
Progress is good and I'm almost done with the initial port and expect to release a beta soon.
Let me know if you have any cool ideas of features to add.
Until then, here's a screenshot of what's coming:
[/img]
For the latest version:
http://nes.goondocks.se
Last edited by oRBIT2002 on Fri May 24, 2013 1:33 am, edited 2 times in total.
What's "NESRev"? From a picture I can guess it's some dissamblery tool.
Will it work with other mappers than NROM?How accurate it is? I mean, how accuretly it can separate Code from Data? Can data be saved as separate file and be assembled in one of assemblers?
Sorry for so many questions, but this is really good stuff.
Will it work with other mappers than NROM?How accurate it is? I mean, how accuretly it can separate Code from Data? Can data be saved as separate file and be assembled in one of assemblers?
Sorry for so many questions, but this is really good stuff.
1. NESRev is a 6502 program disassembler made by Kent Hansen, known as Snowbro. His last work was a nice 6502 program called "DPad Hero".Denine wrote:What's "NESRev"? From a picture I can guess it's some dissamblery tool.
Will it work with other mappers than NROM?How accurate it is? I mean, how accuretly it can separate Code from Data? Can data be saved as separate file and be assembled in one of assemblers?
Sorry for so many questions, but this is really good stuff.
2. NESRev is a different disassembler. While every disassembler threats all the data as "code", NESRev separates what's "program code" from what's "table".
3. NESRev was developed with mapper 0 in mind, so it had a few games fully disassembled, but the source code could be recompiled without problems.
4. It's kinda hard to say, since mappers other than NROM do bankswitching, making the things quite complicated.
Zepper
RockNES author
RockNES author
What's the difference between NESRev and CDL-assisted disassembly? How does NESRev tell "data table" from "jump table"?
For the curious, I might link to my own "clever-disasm", provided with nescom.
It provides table-aware disassemblies like this.
- http://bisqwit.iki.fi/jutut/mariobros-disasm.asm : Mario Bros. without configuration ("out of box")
- http://bisqwit.iki.fi/jutut/lunarball.lst : Lunar Ball, with configuration (RAM & ROM labels) -- configuration file: http://bisqwit.iki.fi/jutut/lunarball.map
It has understanding of a few mappers such as MMC1, MMC3 and UxROM.
I have not really made noise about it, but I have used it personally for many of my reverse engineering projects, mostly for TAS purposes. I usually tweak the source code when I need something changed, such as support for a new mapper or a new kind of data suffix routine.
It provides table-aware disassemblies like this.
- http://bisqwit.iki.fi/jutut/mariobros-disasm.asm : Mario Bros. without configuration ("out of box")
- http://bisqwit.iki.fi/jutut/lunarball.lst : Lunar Ball, with configuration (RAM & ROM labels) -- configuration file: http://bisqwit.iki.fi/jutut/lunarball.map
It has understanding of a few mappers such as MMC1, MMC3 and UxROM.
I have not really made noise about it, but I have used it personally for many of my reverse engineering projects, mostly for TAS purposes. I usually tweak the source code when I need something changed, such as support for a new mapper or a new kind of data suffix routine.
NESRev traces all code that's executed (in most cases anyway) on it's own. So no need to play through the *entire* game first (as you have to do with the CDL...)tepples wrote:What's the difference between NESRev and CDL-assisted disassembly? How does NESRev tell "data table" from "jump table"?
Here's my first beta-release. Feel free to check it out. At the moment it is only capable of disassembling 16K games (just like the original NESRev).
It's for Windows and requires .NET framework 3.5:
http://dl.dropbox.com/u/2590713/anes/NESrevPlus.zip
It's for Windows and requires .NET framework 3.5:
http://dl.dropbox.com/u/2590713/anes/NESrevPlus.zip
NESRevPlus now have a place on the world wide web..
http://www.anes.se/nestools/
http://www.anes.se/nestools/
- Hamtaro126
- Posts: 818
- Joined: Thu Jan 19, 2006 5:08 pm
Possible Features:
Detection of ''JMP (Addr)'', or opcode $6C, while defining addresses by hand
Variable and Zero-Page Definition support
Use .ORG support for split banks
8Kb through 32Kb PRG ROM Banking Emulation support,
1Kb through 8Kb CHR ROM Banking Emulation support,
Export CHR ROM and PRG ROM to seperate files according to mapper-based banksize defines
Detection of ''JMP (Addr)'', or opcode $6C, while defining addresses by hand
Variable and Zero-Page Definition support
Use .ORG support for split banks
8Kb through 32Kb PRG ROM Banking Emulation support,
1Kb through 8Kb CHR ROM Banking Emulation support,
Export CHR ROM and PRG ROM to seperate files according to mapper-based banksize defines