UPDATE #2: You can go to this post for a program that'll stitch together a split disassembly.
UPDATE: You can disregard the following and go straight to this post for a full equivalency list instead.
When hacking Sonic 1, one of the first steps is to decide which disassembly to use. When I did it myself, I went with the SVN one, both because I wanted the latest version and also because I had had trouble getting the 2005 one to work.
However, since then I've heard a lot of people explain why they'd rather use the 2005 one and they're very good reasons.
Prime amongst the reasons is this: Because the SVN disassembly doesn't preserve old labels or offsets as comments, it's hard to find your way around or follow old guides that are intended for older versions.
People were working on SCHG:Equivalent Subroutines to help with this, but it's a lot of work and it's far from complete.
I was trying to think of some way to solve the problem and I thought of this:
When building the SVN, you can opt to output a file called "sonic.lst". Here's an example of what it looks like inside:
As you can see, it shows the disassembly on the right with the offsets and built data on the left. This is an incredibly useful resource, though - one can search for an offset to find the label associated with it, or vice versa.
Better yet, if one has the equivalent file for the 2005 version, one can find the old label names, too.
The files are somewhat large, so anyone who uses plain old Notepad for hacking might have trouble using them, but if you use Notepad++ or some equivalent (as everyone should =P) then having these will help you when following guides that aren't necessarily for your version of the disassembly.
Is this a good idea? Does it solve the problem? Is there something I may be missing? It would be great if more people could have the opportunity to use the SVN version.
UPDATE: You can disregard the following and go straight to this post for a full equivalency list instead.
When hacking Sonic 1, one of the first steps is to decide which disassembly to use. When I did it myself, I went with the SVN one, both because I wanted the latest version and also because I had had trouble getting the 2005 one to work.
However, since then I've heard a lot of people explain why they'd rather use the 2005 one and they're very good reasons.
Prime amongst the reasons is this: Because the SVN disassembly doesn't preserve old labels or offsets as comments, it's hard to find your way around or follow old guides that are intended for older versions.
People were working on SCHG:Equivalent Subroutines to help with this, but it's a lot of work and it's far from complete.
I was trying to think of some way to solve the problem and I thought of this:
When building the SVN, you can opt to output a file called "sonic.lst". Here's an example of what it looks like inside:
Syntax Highlighted Code: ASM
00001420 TilemapToVRAM: ; XREF: GM_Sega; GM_Title; SS_BGLoad
00001420 4DF9 00C0 0000 lea ($C00000).l,a6
00001426 283C 0080 0000 move.l #$800000,d4
0000142C
0000142C Tilemap_Line:
0000142C 2D40 0004 move.l d0,4(a6)
00001430 3601 move.w d1,d3
00001432
00001432 Tilemap_Cell:
00001432 3C99 move.w (a1)+,(a6) ; write value to namespace
00001434 51CB FFFC dbf d3,Tilemap_Cell
00001438 D084 add.l d4,d0 ; goto next line
0000143A 51CA FFF0 dbf d2,Tilemap_Line
0000143E 4E75 rts
As you can see, it shows the disassembly on the right with the offsets and built data on the left. This is an incredibly useful resource, though - one can search for an offset to find the label associated with it, or vice versa.
Better yet, if one has the equivalent file for the 2005 version, one can find the old label names, too.
The files are somewhat large, so anyone who uses plain old Notepad for hacking might have trouble using them, but if you use Notepad++ or some equivalent (as everyone should =P) then having these will help you when following guides that aren't necessarily for your version of the disassembly.
Is this a good idea? Does it solve the problem? Is there something I may be missing? It would be great if more people could have the opportunity to use the SVN version.
This post has been edited by Mercury: 15 February 2011 - 05:05 AM


