Sonic and Sega Retro Message Board: The Sonic 3 & Knuckles Source Code - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
Loading News Feed...
 

The Sonic 3 & Knuckles Source Code All the original labels

#31 User is offline Ayla 

Posted 29 September 2009 - 03:04 PM

  • I shat on your desk ^^
  • Posts: 1750
  • Joined: 13-January 03
  • Gender:Female
  • Location:A rave near you!
  • Project:Hacking Contest, S.H.I.T.
  • Wiki edits:67
that would explain a lot =P Is this really archive worthy information, then? I guess it does provide all of that in an easily found area, but what use would it really be to us?

#32 User is offline ICEknight 

Posted 01 October 2009 - 07:58 AM

  • Posts: 8690
  • Joined: 11-January 03
  • Gender:Male
  • Location:Spain
  • Wiki edits:18
Well, wherever it came from, it's some info worth keeping.

#33 User is offline MathUser 

Posted 01 October 2009 - 09:15 AM

  • 3rd top wiki contributor
  • Posts: 1811
  • Joined: 09-November 05
  • Gender:Male
  • Wiki edits:14,865
QUOTE (Kles @ Sep 28 2004, 08:59 PM)
I thought little was known about S3&K. Ha. Well, time to get someone to get these commands into an editor so the common man can utilise them. Perhaps a full conversion of Sonic 2 into Sonic 3? smile.png Perhaps I'm just getting too ambitious right now, but who knows?


I think you are looking for something like this: Sonic 2: S3 Edition

#34 User is offline JoseTB 

Posted 01 October 2009 - 02:41 PM

  • Posts: 623
  • Joined: 01-June 04
  • Location:Spain
  • Wiki edits:4
QUOTE (drx @ Sep 29 2009, 10:03 PM)
If I'm not mistaken, these are just labels from the S&K Collection PC exe file.


Yup, they are. For those who didn't know, all (original?) labels are present in the exe file of S&KC collection (compilation oddities I guess) but that's as much as we have in regards of this topic, nothing really to be released.

Edit: @MathUser, I don't know if you realized you are replying to a post made in 2004 :P
This post has been edited by JoseTB: 01 October 2009 - 02:44 PM

#35 User is offline MathUser 

Posted 01 October 2009 - 10:46 PM

  • 3rd top wiki contributor
  • Posts: 1811
  • Joined: 09-November 05
  • Gender:Male
  • Wiki edits:14,865
Oops, no I didn't realize that.

#36 User is offline LOst 

Posted 16 October 2011 - 06:14 PM

  • Sonic 2 HD - Lead Programmer
  • Posts: 4877
  • Joined: 10-January 03
  • Gender:Male
  • Wiki edits:2
I have made an IDA pro script to name all the labels into their addresses for your disassemblies:
http://www.logotypes...ls/SANDKCPC.IDC

It took me 3 hours of writing a C++ program capable of mapping each label to its address in the .text segment of the EXE file. I knew when I hit the puka_puka (boss and enemy bobbing) function on the right address, that I had succeeded, and confirmation that the last address was the last label.

I haven't figured out the actual symbol format. I decided to take a huge guess that it was all relative, and just had to remember the latest highest label used after each new set of globals, after the hell that is locals. A guess like this couldn't be done manually by hand, as it would take weeks, so here is the very basic program source to do the work in a couple of minutes (C++ std::list is the slow factor here):
http://www.logotypes.../Labels/src.rar


Now, you must understand that the original labels won't make it easier to understand what the functions do. And that IDA pro can't guess what type of label is being applied, as much as I can't, so you will loose about half the labels (alot of locals) when running the script. A typical example is the local label @@200 that is used more than once, IDA will not understand this, as well as won't understand the size of a function so that a local label can be constructed. Neither will IDA understand all the pt (pattern tables) data labels.
My work was to get the labels delivered to the right addresses, not to build a disassembly for you. Also note that several labels that were expected to be found, weren't even in the symbols list, like sinset (the function returning sine and cosine) and atan (the function returning arctangent2)! That means the symbols in the EXE file were not from all original assembled files.

Example code from a test disassembly of a random selected boss:
.text:0070C01A bs02b0_move:                            ; DATA XREF: bs02b0:bs02b0_move_inito
.text:0070C01A xor     eax, eax
.text:0070C01C mov     RegisterD1, eax
.text:0070C021 mov     edi, RegisterA0
.text:0070C027 mov     al, [edi+5]
.text:0070C02A mov     byte ptr RegisterD1, al
.text:0070C02F movsx   esi, word ptr RegisterD1
.text:0070C036 add     esi, offset off_70C05E
.text:0070C03C mov     ax, [esi]
.text:0070C03F mov     word ptr RegisterD2, ax
.text:0070C045 movsx   eax, word ptr RegisterD2
.text:0070C04C lea     eax, off_70C05E[eax]
.text:0070C052 call    eax
.text:0070C054 call    chk_bs02b0_damage
.text:0070C059 jmp     chk_actsubc
.text:0070C059 bs02b0 endp
.text:0070C059
.text:0070C059 ; ---------------------------------------------------------------------------
.text:0070C05E off_70C05E dw offset bs02b0_init - offset off_70C05E; 0
.text:0070C05E                                         ; DATA XREF: bs02b0+DAo
.text:0070C05E                                         ; bs02b0+F0r ...
.text:0070C05E dw offset bs02b0_waitd - offset off_70C05E; 1
.text:0070C05E dw offset bs02b0_up0 - offset off_70C05E; 2
.text:0070C05E dw offset bs02b0_wait0 - offset off_70C05E; 3
.text:0070C05E dw offset bs02b0_wait1 - offset off_70C05E; 4
.text:0070C05E dw offset bs02b0_wait2 - offset off_70C05E; 5
.text:0070C05E dw offset bs02b0_wait3 - offset off_70C05E; 6
.text:0070C05E dw offset bs02b0_wait4 - offset off_70C05E; 7
.text:0070C05E dw offset bs02b0_wait2 - offset off_70C05E; 8
.text:0070C05E dw offset bs02b0_wait6 - offset off_70C05E; 9
.text:0070C05E dw offset bs02b0_wait2 - offset off_70C05E; 0Ah
.text:0070C05E dw offset bs02b0_up1 - offset off_70C05E; 0Bh
.text:0070C05E dw offset bs02b0_up2 - offset off_70C05E; 0Ch
.text:0070C078
.text:0070C078 ; =============== S U B R O U T I N E =======================================
.text:0070C078
.text:0070C078
.text:0070C078 bs02b0_init proc near                   ; DATA XREF: .text:off_70C05Eo
.text:0070C078 mov     eax, offset bs02b0_init_tbl
.text:0070C07D mov     RegisterA2, eax
.text:0070C082 call    enemy_init0



/LOst
This post has been edited by LOst: 16 October 2011 - 06:28 PM

#37 User is offline LOst 

Posted 17 October 2011 - 06:51 AM

  • Sonic 2 HD - Lead Programmer
  • Posts: 4877
  • Joined: 10-January 03
  • Gender:Male
  • Wiki edits:2
In order for anyone to update the wiki with enemy and boss names (just like it was done for Sonic CD), here are the complete (as possible) object lists for Sonic 3 and Sonic & Knuckles levels:

Sonic 3's levels:
.text:0044F0E8 off_44F0E8 dd offset ring                          ; 0
.text:0044F0E8                                         ; DATA XREF: .text:loc_42A8BEo
.text:0044F0E8 dd offset item                          ; 1
.text:0044F0E8 dd offset sub_45712C                    ; 2
.text:0044F0E8 dd offset tloopinit                     ; 3
.text:0044F0E8 dd offset breakinit                     ; 4
.text:0044F0E8 dd offset iwainit                       ; 5
.text:0044F0E8 dd offset ropeinit                      ; 6
.text:0044F0E8 dd offset sjumpinit                     ; 7
.text:0044F0E8 dd offset togeinit                      ; 8
.text:0044F0E8 dd offset miki00init                    ; 9
.text:0044F0E8 dd offset joint00init                   ; 0Ah
.text:0044F0E8 dd offset ring                          ; 0Bh
.text:0044F0E8 dd offset ropeswinginit                 ; 0Ch
.text:0044F0E8 dd offset brkabeinit                    ; 0Dh
.text:0044F0E8 dd offset hjumpmove                     ; 0Eh
.text:0044F0E8 dd offset break2init                    ; 0Fh
.text:0044F0E8 dd offset rshootinit                    ; 10h
.text:0044F0E8 dd offset dai06init                     ; 11h
.text:0044F0E8 dd offset elev06init                    ; 12h
.text:0044F0E8 dd offset switch06init                  ; 13h
.text:0044F0E8 dd offset tobira06init                  ; 14h
.text:0044F0E8 dd offset dash06init                    ; 15h
.text:0044F0E8 dd offset firedai                       ; 16h
.text:0044F0E8 dd offset craneinit                     ; 17h
.text:0044F0E8 dd offset rollelevinit                  ; 18h
.text:0044F0E8 dd offset relevpropinit                 ; 19h
.text:0044F0E8 dd offset rollitainit                   ; 1Ah
.text:0044F0E8 dd offset wpipeinit                     ; 1Bh
.text:0044F0E8 dd offset ring                          ; 1Ch
.text:0044F0E8 dd offset dai06tinit                    ; 1Dh
.text:0044F0E8 dd offset shooter06init                 ; 1Eh
.text:0044F0E8 dd offset hookinit                      ; 1Fh
.text:0044F0E8 dd offset bladeinit                     ; 20h
.text:0044F0E8 dd offset laser06init                   ; 21h
.text:0044F0E8 dd offset loc_7D6A3C                    ; 22h
.text:0044F0E8 dd offset loc_7D6C7B                    ; 23h
.text:0044F0E8 dd offset pipe06init                    ; 24h
.text:0044F0E8 dd offset ring                          ; 25h
.text:0044F0E8 dd offset rollcinit                     ; 26h
.text:0044F0E8 dd offset scopecinit                    ; 27h
.text:0044F0E8 dd offset scoliinit                     ; 28h
.text:0044F0E8 dd offset appeariwainit                 ; 29h
.text:0044F0E8 dd offset bryukainit                    ; 2Ah
.text:0044F0E8 dd offset rollhashiinit                 ; 2Bh
.text:0044F0E8 dd offset brhashiinit                   ; 2Ch
.text:0044F0E8 dd offset falltree                      ; 2Dh
.text:0044F0E8 dd offset togetreeinit                  ; 2Eh
.text:0044F0E8 dd offset bgsprinit                     ; 2Fh
.text:0044F0E8 dd offset bgsprpinit                    ; 30h
.text:0044F0E8 dd offset rollpoleinit                  ; 31h
.text:0044F0E8 dd offset evhashiinit                   ; 32h
.text:0044F0E8 dd offset switchinit                    ; 33h
.text:0044F0E8 dd offset save                          ; 34h
.text:0044F0E8 dd offset bgsprzinit                    ; 35h
.text:0044F0E8 dd offset barinit                       ; 36h
.text:0044F0E8 dd offset waveinit                      ; 37h
.text:0044F0E8 dd offset faninit                       ; 38h
.text:0044F0E8 dd offset fan2                          ; 39h
.text:0044F0E8 dd offset dashgearinit                  ; 3Ah
.text:0044F0E8 dd offset wpillar                       ; 3Bh
.text:0044F0E8 dd offset doorinit                      ; 3Ch
.text:0044F0E8 dd offset sjumpmv                       ; 3Dh
.text:0044F0E8 dd offset cableinit                     ; 3Eh
.text:0044F0E8 dd offset cabletogeinit                 ; 3Fh
.text:0044F0E8 dd offset blockinit                     ; 40h
.text:0044F0E8 dd offset balooninit                    ; 41h
.text:0044F0E8 dd offset cannoninit                    ; 42h
.text:0044F0E8 dd offset elev03init                    ; 43h
.text:0044F0E8 dd offset lidinit                       ; 44h
.text:0044F0E8 dd offset lightinit                     ; 45h
.text:0044F0E8 dd offset magnetinit                    ; 46h
.text:0044F0E8 dd offset rolldaiinit                   ; 47h
.text:0044F0E8 dd offset shooter3init                  ; 48h
.text:0044F0E8 dd offset fixballinit                   ; 49h
.text:0044F0E8 dd offset bobininit                     ; 4Ah
.text:0044F0E8 dd offset bfloorinit                    ; 4Bh
.text:0044F0E8 dd offset twinloopmove                  ; 4Ch
.text:0044F0E8 dd offset rollpipeinit                  ; 4Dh
.text:0044F0E8 dd offset rpillarinit                   ; 4Eh
.text:0044F0E8 dd offset swampinit                     ; 4Fh
.text:0044F0E8 dd offset rpillar02init                 ; 50h
.text:0044F0E8 dd offset daiinit                       ; 51h
.text:0044F0E8 dd offset bladeinit                     ; 52h
.text:0044F0E8 dd offset turndaiinit                   ; 53h
.text:0044F0E8 dd offset awa                           ; 54h
.text:0044F0E8 dd offset maskinit                      ; 55h
.text:0044F0E8 dd offset mpillarinit                   ; 56h
.text:0044F0E8 dd offset moveyuka                      ; 57h
.text:0044F0E8 dd offset tekyuinit                     ; 58h
.text:0044F0E8 dd offset rswitchinit                   ; 59h
.text:0044F0E8 dd offset rollupinit                    ; 5Ah
.text:0044F0E8 dd offset komainit                      ; 5Bh
.text:0044F0E8 dd offset komadaiinit                   ; 5Ch
.text:0044F0E8 dd offset bwallinit                     ; 5Dh
.text:0044F0E8 dd offset vsdaiinit                     ; 5Eh
.text:0044F0E8 dd offset sjumpsw                       ; 5Fh
.text:0044F0E8 dd offset vsmdaiinit                    ; 60h
.text:0044F0E8 dd offset vsballooninit                 ; 61h
.text:0044F0E8 dd offset vssdaiinit                    ; 62h
.text:0044F0E8 dd offset vsswinit                      ; 63h
.text:0044F0E8 dd offset vsiteminit                    ; 64h
.text:0044F0E8 dd offset vsspoleinit                   ; 65h
.text:0044F0E8 dd offset vsoilinit                     ; 66h
.text:0044F0E8 dd offset dai01init                     ; 67h
.text:0044F0E8 dd offset rolldai01init                 ; 68h
.text:0044F0E8 dd offset hloopinit                     ; 69h
.text:0044F0E8 dd offset itaicoliinit                  ; 6Ah
.text:0044F0E8 dd offset killcoliinit                  ; 6Bh
.text:0044F0E8 dd offset hashiinit                     ; 6Ch
.text:0044F0E8 dd offset shibukiinit                   ; 6Dh
.text:0044F0E8 dd offset dripinit                      ; 6Eh
.text:0044F0E8 dd offset loc_7CCC94                    ; 6Fh
.text:0044F0E8 dd offset loc_7CD798                    ; 70h
.text:0044F0E8 dd offset loc_7CE2C5                    ; 71h
.text:0044F0E8 dd offset loc_7CE918                    ; 72h
.text:0044F0E8 dd offset loc_7CFE34                    ; 73h
.text:0044F0E8 dd offset loc_7D01E2                    ; 74h
.text:0044F0E8 dd offset loc_7D0839                    ; 75h
.text:0044F0E8 dd offset loc_7D0E06                    ; 76h
.text:0044F0E8 dd offset loc_7D0F5D                    ; 77h
.text:0044F0E8 dd offset loc_7D1459                    ; 78h
.text:0044F0E8 dd offset loc_7D1848                    ; 79h
.text:0044F0E8 dd offset loc_7D1B64                    ; 7Ah
.text:0044F0E8 dd offset loc_7D21DC                    ; 7Bh
.text:0044F0E8 dd offset loc_7D28BA                    ; 7Ch
.text:0044F0E8 dd offset loc_7D2A58                    ; 7Dh
.text:0044F0E8 dd offset loc_7D2D20                    ; 7Eh
.text:0044F0E8 dd offset loc_7D3023                    ; 7Fh
.text:0044F0E8 dd offset itemug                        ; 80h
.text:0044F0E8 dd offset opnbox                        ; 81h
.text:0044F0E8 dd offset nuckle                        ; 82h
.text:0044F0E8 dd offset nucksw                        ; 83h
.text:0044F0E8 dd offset loc_459264                    ; 84h
.text:0044F0E8 dd offset bgring                        ; 85h
.text:0044F0E8 dd offset gumbgrip                      ; 86h
.text:0044F0E8 dd offset gumbbane                      ; 87h
.text:0044F0E8 dd offset setbryuka                     ; 88h
.text:0044F0E8 dd offset cchgsw                        ; 89h
.text:0044F0E8 dd offset fixspr                        ; 8Ah
.text:0044F0E8 dd offset pl_move_right                 ; 8Bh
.text:0044F0E8 dd offset hana00                        ; 8Ch
.text:0044F0E8 dd offset sai00                         ; 8Dh
.text:0044F0E8 dd offset saru00                        ; 8Eh
.text:0044F0E8 dd offset snak00                        ; 8Fh
.text:0044F0E8 dd offset bs00m0_body                   ; 90h
.text:0044F0E8 dd offset bs00m1_body                   ; 91h
.text:0044F0E8 dd offset bs00b0                        ; 92h
.text:0044F0E8 dd offset shak01                        ; 93h
.text:0044F0E8 dd offset hdai01                        ; 94h
.text:0044F0E8 dd offset fly01                         ; 95h
.text:0044F0E8 dd offset yado01                        ; 96h
.text:0044F0E8 dd offset fish01                        ; 97h
.text:0044F0E8 dd offset fugu01                        ; 98h
.text:0044F0E8 dd offset bs01m0                        ; 99h
.text:0044F0E8 dd offset bs01b0                        ; 9Ah
.text:0044F0E8 dd offset fugu02                        ; 9Bh
.text:0044F0E8 dd offset hari02                        ; 9Ch
.text:0044F0E8 dd offset bata02                        ; 9Dh
.text:0044F0E8 dd offset bs02m0                        ; 9Eh
.text:0044F0E8 dd offset bs02m1                        ; 9Fh
.text:0044F0E8 dd offset bs02b0                        ; 0A0h
.text:0044F0E8 dd offset bs02b1                        ; 0A1h
.text:0044F0E8 dd offset bs02b2                        ; 0A2h
.text:0044F0E8 dd offset shel03                        ; 0A3h
.text:0044F0E8 dd offset elec03                        ; 0A4h
.text:0044F0E8 dd offset bat03                         ; 0A5h
.text:0044F0E8 dd offset bs03m0                        ; 0A6h
.text:0044F0E8 dd offset bs03b0                        ; 0A7h
.text:0044F0E8 dd offset betl04                        ; 0A8h
.text:0044F0E8 dd offset mous04                        ; 0A9h
.text:0044F0E8 dd offset bs04m0                        ; 0AAh
.text:0044F0E8 dd offset bs04m1                        ; 0ABh
.text:0044F0E8 dd offset bs04b0                        ; 0ACh
.text:0044F0E8 dd offset pngn05                        ; 0ADh
.text:0044F0E8 dd offset uni05                         ; 0AEh
.text:0044F0E8 dd offset pilr05                        ; 0AFh
.text:0044F0E8 dd offset idai05                        ; 0B0h
.text:0044F0E8 dd offset iroc05                        ; 0B1h
.text:0044F0E8 dd offset nozu05                        ; 0B2h
.text:0044F0E8 dd offset daru05                        ; 0B3h
.text:0044F0E8 dd offset dash05                        ; 0B4h
.text:0044F0E8 dd offset dtrr05                        ; 0B5h
.text:0044F0E8 dd offset biwa05                        ; 0B6h
.text:0044F0E8 dd offset ftrr05                        ; 0B7h
.text:0044F0E8 dd offset toge05                        ; 0B8h
.text:0044F0E8 dd offset snow05                        ; 0B9h
.text:0044F0E8 dd offset jdai05                        ; 0BAh
.text:0044F0E8 dd offset ifix05                        ; 0BBh
.text:0044F0E8 dd offset bs05m0                        ; 0BCh
.text:0044F0E8 dd offset bs05b0                        ; 0BDh
.text:0044F0E8 dd offset snil06                        ; 0BEh
.text:0044F0E8 dd offset frog06                        ; 0BFh
.text:0044F0E8 dd offset uni06                         ; 0C0h
.text:0044F0E8 dd offset lasr06                        ; 0C1h
.text:0044F0E8 dd offset bird06                        ; 0C2h
.text:0044F0E8 dd offset box06                         ; 0C3h
.text:0044F0E8 dd offset box06_base0                   ; 0C4h
.text:0044F0E8 dd offset box06_base1                   ; 0C5h
.text:0044F0E8 dd offset embl06                        ; 0C6h
.text:0044F0E8 dd offset ring                          ; 0C7h
.text:0044F0E8 dd offset tekotu                        ; 0C8h
.text:0044F0E8 dd offset bs06m0                        ; 0C9h
.text:0044F0E8 dd offset bs06b0                        ; 0CAh
.text:0044F0E8 dd offset bs06b1                        ; 0CBh
.text:0044F0E8 dd offset bs06b2                        ; 0CCh
.text:0044F0E8 dd offset bs06bn                        ; 0CDh
.text:0044F0E8 dd offset door04                        ; 0CEh
.text:0044F0E8 dd offset obox04                        ; 0CFh
.text:0044F0E8 dd offset swit04                        ; 0D0h
.text:0044F0E8 dd offset ring                          ; 0D1h
.text:0044F0E8 dd offset ring                          ; 0D2h
.text:0044F0E8 dd offset ring                          ; 0D3h
.text:0044F0E8 dd offset ring                          ; 0D4h
.text:0044F0E8 dd offset ring                          ; 0D5h
.text:0044F0E8 dd offset ring                          ; 0D6h
.text:0044F0E8 dd offset ring                          ; 0D7h
.text:0044F0E8 dd offset ring                          ; 0D8h
.text:0044F0E8 dd offset ring                          ; 0D9h
.text:0044F0E8 dd offset ring                          ; 0DAh
.text:0044F0E8 dd offset ring                          ; 0DBh
.text:0044F0E8 dd offset ring                          ; 0DCh
.text:0044F0E8 dd offset ring                          ; 0DDh
.text:0044F0E8 dd offset ring                          ; 0DEh
.text:0044F0E8 dd offset ring                          ; 0DFh
.text:0044F0E8 dd offset loc_7D3991                    ; 0E0h
.text:0044F0E8 dd offset loc_7D3C77                    ; 0E1h
.text:0044F0E8 dd offset loc_7D3E66                    ; 0E2h
.text:0044F0E8 dd offset loc_7D40B2                    ; 0E3h
.text:0044F0E8 dd offset loc_7D439C                    ; 0E4h
.text:0044F0E8 dd offset loc_7D4DBE                    ; 0E5h
.text:0044F0E8 dd offset sub_7BCED8                    ; 0E6h
.text:0044F0E8 dd offset loc_7BD31C                    ; 0E7h
.text:0044F0E8 dd offset loc_7BDA3A                    ; 0E8h
.text:0044F0E8 dd offset loc_7BDE99                    ; 0E9h
.text:0044F0E8 dd offset loc_7BE066                    ; 0EAh
.text:0044F0E8 dd offset loc_7BE306                    ; 0EBh
.text:0044F0E8 dd offset loc_7BE5D1                    ; 0ECh
.text:0044F0E8 dd offset loc_7BE147                    ; 0EDh
.text:0044F0E8 dd offset ring                          ; 0EEh
.text:0044F0E8 dd offset ring                          ; 0EFh
.text:0044F0E8 dd offset ring                          ; 0F0h
.text:0044F0E8 dd offset ring                          ; 0F1h
.text:0044F0E8 dd offset ring                          ; 0F2h
.text:0044F0E8 dd offset ring                          ; 0F3h
.text:0044F0E8 dd offset ring                          ; 0F4h
.text:0044F0E8 dd offset ring                          ; 0F5h
.text:0044F0E8 dd offset ring                          ; 0F6h
.text:0044F0E8 dd offset ring                          ; 0F7h
.text:0044F0E8 dd offset ring                          ; 0F8h
.text:0044F0E8 dd offset ring                          ; 0F9h
.text:0044F0E8 dd offset ring                          ; 0FAh
.text:0044F0E8 dd offset ring                          ; 0FBh
.text:0044F0E8 dd offset ring                          ; 0FCh
.text:0044F0E8 dd offset ring                          ; 0FDh
.text:0044F0E8 dd offset ring                          ; 0FEh
.text:0044F0E8 dd offset loc_7D568D                    ; 0FFh



Sonic & Knuckles's levels:
.text:0044F4E8 off_44F4E8 dd offset ring                          ; 0
.text:0044F4E8                                         ; DATA XREF: .text:loc_42A88Fo
.text:0044F4E8 dd offset item                          ; 1
.text:0044F4E8 dd offset sub_45712C                    ; 2
.text:0044F4E8 dd offset loc_7B70B6                    ; 3
.text:0044F4E8 dd offset breakinit                     ; 4
.text:0044F4E8 dd offset iwainit                       ; 5
.text:0044F4E8 dd offset loc_7B80D8                    ; 6
.text:0044F4E8 dd offset sjumpinit                     ; 7
.text:0044F4E8 dd offset togeinit                      ; 8
.text:0044F4E8 dd offset loc_7B91C8                    ; 9
.text:0044F4E8 dd offset loc_7B99A2                    ; 0Ah
.text:0044F4E8 dd offset loc_7BA3EC                    ; 0Bh
.text:0044F4E8 dd offset loc_7BACC3                    ; 0Ch
.text:0044F4E8 dd offset brkabeinit                    ; 0Dh
.text:0044F4E8 dd offset hjumpmove                     ; 0Eh
.text:0044F4E8 dd offset break2init                    ; 0Fh
.text:0044F4E8 dd offset hbarinit                      ; 10h
.text:0044F4E8 dd offset loc_7BB55C                    ; 11h
.text:0044F4E8 dd offset loc_7BB75E                    ; 12h
.text:0044F4E8 dd offset loc_7BC1B4                    ; 13h
.text:0044F4E8 dd offset loc_7BCA76                    ; 14h
.text:0044F4E8 dd offset loc_7A9EC0                    ; 15h
.text:0044F4E8 dd offset loc_7AA73C                    ; 16h
.text:0044F4E8 dd offset loc_7AAF30                    ; 17h
.text:0044F4E8 dd offset loc_7AB0D1                    ; 18h
.text:0044F4E8 dd offset loc_7AB2D3                    ; 19h
.text:0044F4E8 dd offset loc_7AB4ED                    ; 1Ah
.text:0044F4E8 dd offset loc_7AB86A                    ; 1Bh
.text:0044F4E8 dd offset loc_7ABB0C                    ; 1Ch
.text:0044F4E8 dd offset loc_7ABD16                    ; 1Dh
.text:0044F4E8 dd offset loc_7AC0A2                    ; 1Eh
.text:0044F4E8 dd offset loc_7AD1A7                    ; 1Fh
.text:0044F4E8 dd offset loc_7ACC59                    ; 20h
.text:0044F4E8 dd offset loc_7AC58F                    ; 21h
.text:0044F4E8 dd offset loc_7AD3E7                    ; 22h
.text:0044F4E8 dd offset off_7B7BEE                    ; 23h
.text:0044F4E8 dd offset pipe06init                    ; 24h
.text:0044F4E8 dd offset kassyainit                    ; 25h
.text:0044F4E8 dd offset rollcinit                     ; 26h
.text:0044F4E8 dd offset scopecinit                    ; 27h
.text:0044F4E8 dd offset scoliinit                     ; 28h
.text:0044F4E8 dd offset loc_7AE2B3                    ; 29h
.text:0044F4E8 dd offset bryukainit                    ; 2Ah
.text:0044F4E8 dd offset loc_7ADC8A                    ; 2Bh
.text:0044F4E8 dd offset loc_7ADF63                    ; 2Ch
.text:0044F4E8 dd offset dai09init                     ; 2Dh
.text:0044F4E8 dd offset loc_7AEB96                    ; 2Eh
.text:0044F4E8 dd offset bgsprinit                     ; 2Fh
.text:0044F4E8 dd offset bgsprpinit                    ; 30h
.text:0044F4E8 dd offset break3init                    ; 31h
.text:0044F4E8 dd offset loc_7AF0B8                    ; 32h
.text:0044F4E8 dd offset switchinit                    ; 33h
.text:0044F4E8 dd offset save                          ; 34h
.text:0044F4E8 dd offset bgsprzinit                    ; 35h
.text:0044F4E8 dd offset barinit                       ; 36h
.text:0044F4E8 dd offset loc_7AFB60                    ; 37h
.text:0044F4E8 dd offset loc_7AFFF4                    ; 38h
.text:0044F4E8 dd offset sub_7B1375                    ; 39h
.text:0044F4E8 dd offset loc_457CB5                    ; 3Ah
.text:0044F4E8 dd offset loc_7B18AB                    ; 3Bh
.text:0044F4E8 dd offset doorinit                      ; 3Ch
.text:0044F4E8 dd offset sjumpmv                       ; 3Dh
.text:0044F4E8 dd offset sub_7B1C33                    ; 3Eh
.text:0044F4E8 dd offset loc_7B2301                    ; 3Fh
.text:0044F4E8 dd offset loc_7B2DFE                    ; 40h
.text:0044F4E8 dd offset loc_7B3594                    ; 41h
.text:0044F4E8 dd offset loc_7B3D0F                    ; 42h
.text:0044F4E8 dd offset loc_7B42ED                    ; 43h
.text:0044F4E8 dd offset loc_7B4C38                    ; 44h
.text:0044F4E8 dd offset loc_7B4F48                    ; 45h
.text:0044F4E8 dd offset loc_7B58C3                    ; 46h
.text:0044F4E8 dd offset loc_7B5C7F                    ; 47h
.text:0044F4E8 dd offset ropedowninit                  ; 48h
.text:0044F4E8 dd offset loc_7B6233                    ; 49h
.text:0044F4E8 dd offset dai0binit                     ; 4Ah
.text:0044F4E8 dd offset loc_7C499C                    ; 4Bh
.text:0044F4E8 dd offset loc_7C4F54                    ; 4Ch
.text:0044F4E8 dd offset loc_7C54EA                    ; 4Dh
.text:0044F4E8 dd offset loc_7C582B                    ; 4Eh
.text:0044F4E8 dd offset loc_7C617A                    ; 4Fh
.text:0044F4E8 dd offset loc_7C68AD                    ; 50h
.text:0044F4E8 dd offset daiinit                       ; 51h
.text:0044F4E8 dd offset sub_7C6A7E                    ; 52h
.text:0044F4E8 dd offset loc_7C6BF4                    ; 53h
.text:0044F4E8 dd offset awa                           ; 54h
.text:0044F4E8 dd offset loc_7C773D                    ; 55h
.text:0044F4E8 dd offset loc_7C79B7                    ; 56h
.text:0044F4E8 dd offset loc_7C80CC                    ; 57h
.text:0044F4E8 dd offset loc_7C98D2                    ; 58h
.text:0044F4E8 dd offset loc_7C9CAF                    ; 59h
.text:0044F4E8 dd offset loc_7CA53A                    ; 5Ah
.text:0044F4E8 dd offset loc_7CB05C                    ; 5Bh
.text:0044F4E8 dd offset sub_7CB2C1                    ; 5Ch
.text:0044F4E8 dd offset loc_7C7D5B                    ; 5Dh
.text:0044F4E8 dd offset sub_7CB81F                    ; 5Eh
.text:0044F4E8 dd offset loc_7CBCD3                    ; 5Fh
.text:0044F4E8 dd offset sub_7CC23C                    ; 60h
.text:0044F4E8 dd offset loc_7CC633                    ; 61h
.text:0044F4E8 dd offset ring                          ; 62h
.text:0044F4E8 dd offset ring                          ; 63h
.text:0044F4E8 dd offset ring                          ; 64h
.text:0044F4E8 dd offset ring                          ; 65h
.text:0044F4E8 dd offset ring                          ; 66h
.text:0044F4E8 dd offset ring                          ; 67h
.text:0044F4E8 dd offset ring                          ; 68h
.text:0044F4E8 dd offset ring                          ; 69h
.text:0044F4E8 dd offset itaicoliinit                  ; 6Ah
.text:0044F4E8 dd offset killcoliinit                  ; 6Bh
.text:0044F4E8 dd offset hashiinit                     ; 6Ch
.text:0044F4E8 dd offset itaicolit                     ; 6Dh
.text:0044F4E8 dd offset itaicolif                     ; 6Eh
.text:0044F4E8 dd offset ring                          ; 6Fh
.text:0044F4E8 dd offset ring                          ; 70h
.text:0044F4E8 dd offset ring                          ; 71h
.text:0044F4E8 dd offset ring                          ; 72h
.text:0044F4E8 dd offset ring                          ; 73h
.text:0044F4E8 dd offset sub_7C3BC8                    ; 74h
.text:0044F4E8 dd offset sub_7C30AE                    ; 75h
.text:0044F4E8 dd offset sub_7C2603                    ; 76h
.text:0044F4E8 dd offset sub_7BFD28                    ; 77h
.text:0044F4E8 dd offset loc_7D1459                    ; 78h
.text:0044F4E8 dd offset sub_7C0E99                    ; 79h
.text:0044F4E8 dd offset sub_7C0992                    ; 7Ah
.text:0044F4E8 dd offset sub_7BF6B4                    ; 7Bh
.text:0044F4E8 dd offset sub_7BF312                    ; 7Ch
.text:0044F4E8 dd offset sub_7C00AE                    ; 7Dh
.text:0044F4E8 dd offset sub_7BEEF9                    ; 7Eh
.text:0044F4E8 dd offset sub_7BEDA8                    ; 7Fh
.text:0044F4E8 dd offset itemug                        ; 80h
.text:0044F4E8 dd offset opnbox                        ; 81h
.text:0044F4E8 dd offset nuckle                        ; 82h
.text:0044F4E8 dd offset nucksw                        ; 83h
.text:0044F4E8 dd offset loc_459264                    ; 84h
.text:0044F4E8 dd offset bgring                        ; 85h
.text:0044F4E8 dd offset gumbgrip                      ; 86h
.text:0044F4E8 dd offset gumbbane                      ; 87h
.text:0044F4E8 dd offset setbryuka                     ; 88h
.text:0044F4E8 dd offset cchgsw                        ; 89h
.text:0044F4E8 dd offset fixspr                        ; 8Ah
.text:0044F4E8 dd offset pl_move_right                 ; 8Bh
.text:0044F4E8 dd offset mole07                        ; 8Ch
.text:0044F4E8 dd offset mush07                        ; 8Dh
.text:0044F4E8 dd offset dfly07                        ; 8Eh
.text:0044F4E8 dd offset bfly07                        ; 8Fh
.text:0044F4E8 dd offset chkn07                        ; 90h
.text:0044F4E8 dd offset wood07                        ; 91h
.text:0044F4E8 dd offset bs07m0                        ; 92h
.text:0044F4E8 dd offset bs07b0                        ; 93h
.text:0044F4E8 dd offset scop08                        ; 94h
.text:0044F4E8 dd offset narl08                        ; 95h
.text:0044F4E8 dd offset rock08                        ; 96h
.text:0044F4E8 dd offset bs08m0                        ; 97h
.text:0044F4E8 dd offset bs08b0                        ; 98h
.text:0044F4E8 dd offset snak09                        ; 99h
.text:0044F4E8 dd offset iwa09                         ; 9Ah
.text:0044F4E8 dd offset gas09                         ; 9Bh
.text:0044F4E8 dd offset gkn209                        ; 9Ch
.text:0044F4E8 dd offset bs09m0                        ; 9Dh
.text:0044F4E8 dd offset bs09b0                        ; 9Eh
.text:0044F4E8 dd offset ring                          ; 9Fh
.text:0044F4E8 dd offset egjr0a                        ; 0A0h
.text:0044F4E8 dd offset bs0ab0                        ; 0A1h
.text:0044F4E8 dd offset bs0ab1                        ; 0A2h
.text:0044F4E8 dd offset bs0ab2                        ; 0A3h
.text:0044F4E8 dd offset gady0b                        ; 0A4h
.text:0044F4E8 dd offset crou0b                        ; 0A5h
.text:0044F4E8 dd offset bs0bm0                        ; 0A6h
.text:0044F4E8 dd offset bs0bb0                        ; 0A7h
.text:0044F4E8 dd offset ev0700                        ; 0A8h
.text:0044F4E8 dd offset sw0700                        ; 0A9h
.text:0044F4E8 dd offset gost08                        ; 0AAh
.text:0044F4E8 dd offset setcg                         ; 0ABh
.text:0044F4E8 dd offset obox08                        ; 0ACh
.text:0044F4E8 dd offset dai093                        ; 0ADh
.text:0044F4E8 dd offset ev0910                        ; 0AEh
.text:0044F4E8 dd offset sw0a00                        ; 0AFh
.text:0044F4E8 dd offset caos09                        ; 0B0h
.text:0044F4E8 dd offset cchg09                        ; 0B1h
.text:0044F4E8 dd offset embl0a                        ; 0B2h
.text:0044F4E8 dd offset set_many_posi                 ; 0B3h
.text:0044F4E8 dd offset ston09                        ; 0B4h
.text:0044F4E8 dd offset ev1710                        ; 0B5h
.text:0044F4E8 dd offset bs0cb0                        ; 0B6h
.text:0044F4E8 dd offset iwa0c                         ; 0B7h
.text:0044F4E8 dd offset msil0c                        ; 0B8h



So when you see a non named label, it is in the address range lower than 0x6ebcb8 or, higher than 0x79f6b0 and less than 0x7f762c, or higher than 0x8200be. Those address ranges were not in the symbol database.

If you need any help with any name, ask me. I suppose you have a complete disassembly of Sonic 3 & Knuckles, so that you can just look up your object name against these tables above.

Example from a test disassembly:
ROM:00094EA2                 dc.l ObjNaExCheapBadnikDriller_MGZ1; $9E
ROM:00094EA2                 dc.l ObjNaExMidBossDriller_MGZ1; $9F
ROM:00094EA2                 dc.l ObjNaExComplexDrillingRobotnikEggrobo_MGZ2; $A0
ROM:00094EA2                 dc.l ObjNaExBossForSonicTails_MGZ2; $A1
ROM:00094EA2                 dc.l ObjNaExBossForKnucklesSpawn_MGZ2; $A2
ROM:00094EA2                 dc.l ObjNaCheapBadnikClamer_CNZ; $A3

.text:0044F0E8 dd offset bs02m0                        ; 9Eh
.text:0044F0E8 dd offset bs02m1                        ; 9Fh
.text:0044F0E8 dd offset bs02b0                        ; 0A0h
.text:0044F0E8 dd offset bs02b1                        ; 0A1h
.text:0044F0E8 dd offset bs02b2                        ; 0A2h
.text:0044F0E8 dd offset shel03                        ; 0A3h

ObjNaExCheapBadnikDriller_MGZ1			-> bs02m0
ObjNaExMidBossDriller_MGZ1			-> bs02m1
ObjNaExComplexDrillingRobotnikEggrobo_MGZ2	-> bs02b0
ObjNaExBossForSonicTails_MGZ2			-> bs02b1
ObjNaExBossForKnucklesSpawn_MGZ2		-> bs02b2
ObjNaCheapBadnikClamer_CNZ			-> shel03



Another example from a test disassembly:
ROM:000952A2                 dc.l ObjParamMovingSolidBlockOnLineTransport_LRZ2; $25
ROM:000952A2                 dc.l ObjPeAttackForcer  ; $26
ROM:000952A2                 dc.l ObjParamEventAreaLava; $27
ROM:000952A2                 dc.l ObjPeInvisibleSolidAreas; $28
ROM:000952A2                 dc.l ObjPeFlamethrowerStaticSolid_LRZ2; $29
ROM:000952A2                 dc.l ObjZeBreakableFloorPiece_AIZ_CNZ_ICZ_LBZ_FBZ; $2A
ROM:000952A2                 dc.l ObjPeSpikeballOrbittingPillar_LRZ; $2B
ROM:000952A2                 dc.l ObjPeSpikBallOrbittingHorizontalCylinder; $2C
ROM:000952A2                 dc.l ObjPeMovingSolidPlatform_LRZ2; $2D
ROM:000952A2                 dc.l ObjPeUpDownMovingSolidRock_LRZ_U; $2E
ROM:000952A2                 dc.l ObjDeStaticScenary_AIZ2_HCZ1_MGZ_HCZ2_LBZ_MHZ_LRZ_LRZ1_FBZ_FBZ2_SPZ_SPZ2_DEZ; $2F

.text:0044F4E8 dd offset kassyainit                    ; 25h
.text:0044F4E8 dd offset rollcinit                     ; 26h
.text:0044F4E8 dd offset scopecinit                    ; 27h
.text:0044F4E8 dd offset scoliinit                     ; 28h
.text:0044F4E8 dd offset loc_7AE2B3                    ; 29h
.text:0044F4E8 dd offset bryukainit                    ; 2Ah
.text:0044F4E8 dd offset loc_7ADC8A                    ; 2Bh
.text:0044F4E8 dd offset loc_7ADF63                    ; 2Ch
.text:0044F4E8 dd offset dai09init                     ; 2Dh
.text:0044F4E8 dd offset loc_7AEB96                    ; 2Eh
.text:0044F4E8 dd offset bgsprinit                     ; 2Fh

ObjParamMovingSolidBlockOnLineTransport_LRZ2	-> kassyainit
ObjPeAttackForcer				-> rollcinit
ObjParamEventAreaLava				-> scopecinit
ObjPeInvisibleSolidAreas			-> scoliinit
ObjPeFlamethrowerStaticSolid_LRZ2		-> ???
ObjZeBreakableFloorPiece_AIZ_CNZ_ICZ_LBZ_FBZ	-> bryukainit
ObjPeSpikeballOrbittingPillar_LRZ		-> ???
ObjPeSpikBallOrbittingHorizontalCylinder	-> ???
ObjPeMovingSolidPlatform_LRZ2			-> dai09init
ObjPeUpDownMovingSolidRock_LRZ_U		-> ???
ObjDeStaticScenary_AIZ2_HCZ1_MGZ_HCZ2_LBZ_MHZ_LRZ_LRZ1_FBZ_FBZ2_SPZ_SPZ2_DEZ	-> bgsprinit



The examples above show how much information can be lost if using the original labels.

EDIT: Some locals labes are actually screwed up with my program. But the global ones are correct. Local labes are all the @@100 and @@act_tbl ones, which are used multiple times. It could probably be fixed one day if really needed.
This post has been edited by LOst: 25 October 2011 - 06:26 AM

  • 3 Pages +
  • 1
  • 2
  • 3
    Locked
    Locked Forum

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users