The Sonic 3 & Knuckles Source Code

Discussion in 'Engineering & Reverse Engineering' started by LOst, Sep 29, 2004.

  1. Aquaslash

    Aquaslash

    Emerald Dragoon Moderator
    2,818
    0
    0
    Hampton, VA
    The S Factor: Sonia and Silver
    may I use the code you had for Sonic 3 alone? that'd be very helpful
     
  2. ICEknight

    ICEknight

    Researcher Researcher
    Why the huge delay? It's something many of us would love to see.
     
  3. Tsutaya

    Tsutaya

    New Member
    10
    0
    0
    Hmm. Nothing found in google. *looks at various forums* Not there either.
     
  4. LOst

    LOst

    Tech Members Tech Member
    4,888
    0
    0
    You have to steal it from Naka-san's bedroom
     
  5. Tsutaya

    Tsutaya

    New Member
    10
    0
    0
    Aw damn, not again! *puts on espionage suit and jumps out window*


    How far to japan?
     
  6. ICEknight

    ICEknight

    Researcher Researcher
    </invisible>

    Why not releasing it already?
     
  7. LOst

    LOst

    Tech Members Tech Member
    4,888
    0
    0
    I have released everything I got. I only got the labels.
     
  8. ICEknight

    ICEknight

    Researcher Researcher
    <!--quoteo(post=57290:date=Nov 16 2004, 09:07 PM:name=LOst)--><div class='quotetop'>QUOTE (LOst @ Nov 16 2004, 09:07 PM) <a href="index.php?act=findpost&pid=57290"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec--><!--QuoteBegin-ICEknight+Nov 17 2004, 03:08 AM--><div class='quotetop'>QUOTE (ICEknight @ Nov 17 2004, 03:08 AM)</div><div class='quotemain'><!--QuoteEBegin-->When will it be released? 2005? ;)<!--QuoteEnd--></div><!--QuoteEEnd-->
    Between 2006 and 2010 :P<!--QuoteEnd--></div><!--QuoteEEnd-->Tremendous bump, but I think this topic deserves it. Did anything come out of this, in the end?


    Also, perhaps this should be archived, along with <a href="http://forums.sonicretro.org/index.php?showtopic=9700" target="_blank">this other similar topic</a>.
     
  9. Ayla

    Ayla

    I shat on your desk ^^ Oldbie
    1,760
    0
    0
    West Linn, OR
    Hacking Contest, StH Overlooked, Personal Indie game
    I want Local H's scoop on this. With all the secrecy around it, I'm wondering if it wasn't just tags that were made up to be assigned to some S3K disassembly =P
     
  10. drx

    drx

    mfw Researcher
    2,193
    4
    18
    :rolleyes:
    If I'm not mistaken, these are just labels from the S&K Collection PC exe file.
     
  11. Ayla

    Ayla

    I shat on your desk ^^ Oldbie
    1,760
    0
    0
    West Linn, OR
    Hacking Contest, StH Overlooked, Personal Indie game
    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?
     
  12. ICEknight

    ICEknight

    Researcher Researcher
    Well, wherever it came from, it's some info worth keeping.
     
  13. MathUser

    MathUser

    3rd top wiki contributor Researcher
    2,044
    0
    16
    <!--quoteo(post=53414:date=Sep 28 2004, 08:59 PM:name=Kles)--><div class='quotetop'>QUOTE (Kles @ Sep 28 2004, 08:59 PM) <a href="index.php?act=findpost&pid=53414"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->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? :) Perhaps I'm just getting too ambitious right now, but who knows?<!--QuoteEnd--></div><!--QuoteEEnd-->

    I think you are looking for something like this: <a href="http://info.sonicretro.org/Sonic 2: S3 Edition" target="_blank" style="background: url(http://info.sonicretro.org/images/5/50/Reticon.png) right no-repeat; padding-right: 20px; border-bottom: 1px dotted #3366BB; color: #3366BB; cursor:pointer; text-decoration:none;" class="wiki">Sonic 2: S3 Edition</a>
     
  14. JoseTB

    JoseTB

    Tech Members Tech Member
    631
    0
    0
    <!--quoteo(post=355922:date=Sep 29 2009, 10:03 PM:name=drx)--><div class='quotetop'>QUOTE (drx @ Sep 29 2009, 10:03 PM) <a href="index.php?act=findpost&pid=355922"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->If I'm not mistaken, these are just labels from the S&K Collection PC exe file.<!--QuoteEnd--></div><!--QuoteEEnd-->

    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
     
  15. MathUser

    MathUser

    3rd top wiki contributor Researcher
    2,044
    0
    16
    Oops, no I didn't realize that.
     
  16. LOst

    LOst

    Tech Members Tech Member
    4,888
    0
    0
    I have made an IDA pro script to name all the labels into their addresses for your disassemblies:
    http://www.logotypes.se/sonic/Labels/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.se/sonic/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:
    Code (Text):
    1.  
    2. .text:0070C01A bs02b0_move:                            ; DATA XREF: bs02b0:bs02b0_move_inito
    3. .text:0070C01A xor     eax, eax
    4. .text:0070C01C mov     RegisterD1, eax
    5. .text:0070C021 mov     edi, RegisterA0
    6. .text:0070C027 mov     al, [edi+5]
    7. .text:0070C02A mov     byte ptr RegisterD1, al
    8. .text:0070C02F movsx   esi, word ptr RegisterD1
    9. .text:0070C036 add     esi, offset off_70C05E
    10. .text:0070C03C mov     ax, [esi]
    11. .text:0070C03F mov     word ptr RegisterD2, ax
    12. .text:0070C045 movsx   eax, word ptr RegisterD2
    13. .text:0070C04C lea     eax, off_70C05E[eax]
    14. .text:0070C052 call    eax
    15. .text:0070C054 call    chk_bs02b0_damage
    16. .text:0070C059 jmp     chk_actsubc
    17. .text:0070C059 bs02b0 endp
    18. .text:0070C059
    19. .text:0070C059 ; ---------------------------------------------------------------------------
    20. .text:0070C05E off_70C05E dw offset bs02b0_init - offset off_70C05E; 0
    21. .text:0070C05E                                         ; DATA XREF: bs02b0+DAo
    22. .text:0070C05E                                         ; bs02b0+F0r ...
    23. .text:0070C05E dw offset bs02b0_waitd - offset off_70C05E; 1
    24. .text:0070C05E dw offset bs02b0_up0 - offset off_70C05E; 2
    25. .text:0070C05E dw offset bs02b0_wait0 - offset off_70C05E; 3
    26. .text:0070C05E dw offset bs02b0_wait1 - offset off_70C05E; 4
    27. .text:0070C05E dw offset bs02b0_wait2 - offset off_70C05E; 5
    28. .text:0070C05E dw offset bs02b0_wait3 - offset off_70C05E; 6
    29. .text:0070C05E dw offset bs02b0_wait4 - offset off_70C05E; 7
    30. .text:0070C05E dw offset bs02b0_wait2 - offset off_70C05E; 8
    31. .text:0070C05E dw offset bs02b0_wait6 - offset off_70C05E; 9
    32. .text:0070C05E dw offset bs02b0_wait2 - offset off_70C05E; 0Ah
    33. .text:0070C05E dw offset bs02b0_up1 - offset off_70C05E; 0Bh
    34. .text:0070C05E dw offset bs02b0_up2 - offset off_70C05E; 0Ch
    35. .text:0070C078
    36. .text:0070C078 ; =============== S U B R O U T I N E =======================================
    37. .text:0070C078
    38. .text:0070C078
    39. .text:0070C078 bs02b0_init proc near                   ; DATA XREF: .text:off_70C05Eo
    40. .text:0070C078 mov     eax, offset bs02b0_init_tbl
    41. .text:0070C07D mov     RegisterA2, eax
    42. .text:0070C082 call    enemy_init0
    43.  
    /LOst
     
  17. LOst

    LOst

    Tech Members Tech Member
    4,888
    0
    0
    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:
    Code (Text):
    1.  
    2. .text:0044F0E8 off_44F0E8 dd offset ring                          ; 0
    3. .text:0044F0E8                                         ; DATA XREF: .text:loc_42A8BEo
    4. .text:0044F0E8 dd offset item                          ; 1
    5. .text:0044F0E8 dd offset sub_45712C                    ; 2
    6. .text:0044F0E8 dd offset tloopinit                     ; 3
    7. .text:0044F0E8 dd offset breakinit                     ; 4
    8. .text:0044F0E8 dd offset iwainit                       ; 5
    9. .text:0044F0E8 dd offset ropeinit                      ; 6
    10. .text:0044F0E8 dd offset sjumpinit                     ; 7
    11. .text:0044F0E8 dd offset togeinit                      ; 8
    12. .text:0044F0E8 dd offset miki00init                    ; 9
    13. .text:0044F0E8 dd offset joint00init                   ; 0Ah
    14. .text:0044F0E8 dd offset ring                          ; 0Bh
    15. .text:0044F0E8 dd offset ropeswinginit                 ; 0Ch
    16. .text:0044F0E8 dd offset brkabeinit                    ; 0Dh
    17. .text:0044F0E8 dd offset hjumpmove                     ; 0Eh
    18. .text:0044F0E8 dd offset break2init                    ; 0Fh
    19. .text:0044F0E8 dd offset rshootinit                    ; 10h
    20. .text:0044F0E8 dd offset dai06init                     ; 11h
    21. .text:0044F0E8 dd offset elev06init                    ; 12h
    22. .text:0044F0E8 dd offset switch06init                  ; 13h
    23. .text:0044F0E8 dd offset tobira06init                  ; 14h
    24. .text:0044F0E8 dd offset dash06init                    ; 15h
    25. .text:0044F0E8 dd offset firedai                       ; 16h
    26. .text:0044F0E8 dd offset craneinit                     ; 17h
    27. .text:0044F0E8 dd offset rollelevinit                  ; 18h
    28. .text:0044F0E8 dd offset relevpropinit                 ; 19h
    29. .text:0044F0E8 dd offset rollitainit                   ; 1Ah
    30. .text:0044F0E8 dd offset wpipeinit                     ; 1Bh
    31. .text:0044F0E8 dd offset ring                          ; 1Ch
    32. .text:0044F0E8 dd offset dai06tinit                    ; 1Dh
    33. .text:0044F0E8 dd offset shooter06init                 ; 1Eh
    34. .text:0044F0E8 dd offset hookinit                      ; 1Fh
    35. .text:0044F0E8 dd offset bladeinit                     ; 20h
    36. .text:0044F0E8 dd offset laser06init                   ; 21h
    37. .text:0044F0E8 dd offset loc_7D6A3C                    ; 22h
    38. .text:0044F0E8 dd offset loc_7D6C7B                    ; 23h
    39. .text:0044F0E8 dd offset pipe06init                    ; 24h
    40. .text:0044F0E8 dd offset ring                          ; 25h
    41. .text:0044F0E8 dd offset rollcinit                     ; 26h
    42. .text:0044F0E8 dd offset scopecinit                    ; 27h
    43. .text:0044F0E8 dd offset scoliinit                     ; 28h
    44. .text:0044F0E8 dd offset appeariwainit                 ; 29h
    45. .text:0044F0E8 dd offset bryukainit                    ; 2Ah
    46. .text:0044F0E8 dd offset rollhashiinit                 ; 2Bh
    47. .text:0044F0E8 dd offset brhashiinit                   ; 2Ch
    48. .text:0044F0E8 dd offset falltree                      ; 2Dh
    49. .text:0044F0E8 dd offset togetreeinit                  ; 2Eh
    50. .text:0044F0E8 dd offset bgsprinit                     ; 2Fh
    51. .text:0044F0E8 dd offset bgsprpinit                    ; 30h
    52. .text:0044F0E8 dd offset rollpoleinit                  ; 31h
    53. .text:0044F0E8 dd offset evhashiinit                   ; 32h
    54. .text:0044F0E8 dd offset switchinit                    ; 33h
    55. .text:0044F0E8 dd offset save                          ; 34h
    56. .text:0044F0E8 dd offset bgsprzinit                    ; 35h
    57. .text:0044F0E8 dd offset barinit                       ; 36h
    58. .text:0044F0E8 dd offset waveinit                      ; 37h
    59. .text:0044F0E8 dd offset faninit                       ; 38h
    60. .text:0044F0E8 dd offset fan2                          ; 39h
    61. .text:0044F0E8 dd offset dashgearinit                  ; 3Ah
    62. .text:0044F0E8 dd offset wpillar                       ; 3Bh
    63. .text:0044F0E8 dd offset doorinit                      ; 3Ch
    64. .text:0044F0E8 dd offset sjumpmv                       ; 3Dh
    65. .text:0044F0E8 dd offset cableinit                     ; 3Eh
    66. .text:0044F0E8 dd offset cabletogeinit                 ; 3Fh
    67. .text:0044F0E8 dd offset blockinit                     ; 40h
    68. .text:0044F0E8 dd offset balooninit                    ; 41h
    69. .text:0044F0E8 dd offset cannoninit                    ; 42h
    70. .text:0044F0E8 dd offset elev03init                    ; 43h
    71. .text:0044F0E8 dd offset lidinit                       ; 44h
    72. .text:0044F0E8 dd offset lightinit                     ; 45h
    73. .text:0044F0E8 dd offset magnetinit                    ; 46h
    74. .text:0044F0E8 dd offset rolldaiinit                   ; 47h
    75. .text:0044F0E8 dd offset shooter3init                  ; 48h
    76. .text:0044F0E8 dd offset fixballinit                   ; 49h
    77. .text:0044F0E8 dd offset bobininit                     ; 4Ah
    78. .text:0044F0E8 dd offset bfloorinit                    ; 4Bh
    79. .text:0044F0E8 dd offset twinloopmove                  ; 4Ch
    80. .text:0044F0E8 dd offset rollpipeinit                  ; 4Dh
    81. .text:0044F0E8 dd offset rpillarinit                   ; 4Eh
    82. .text:0044F0E8 dd offset swampinit                     ; 4Fh
    83. .text:0044F0E8 dd offset rpillar02init                 ; 50h
    84. .text:0044F0E8 dd offset daiinit                       ; 51h
    85. .text:0044F0E8 dd offset bladeinit                     ; 52h
    86. .text:0044F0E8 dd offset turndaiinit                   ; 53h
    87. .text:0044F0E8 dd offset awa                           ; 54h
    88. .text:0044F0E8 dd offset maskinit                      ; 55h
    89. .text:0044F0E8 dd offset mpillarinit                   ; 56h
    90. .text:0044F0E8 dd offset moveyuka                      ; 57h
    91. .text:0044F0E8 dd offset tekyuinit                     ; 58h
    92. .text:0044F0E8 dd offset rswitchinit                   ; 59h
    93. .text:0044F0E8 dd offset rollupinit                    ; 5Ah
    94. .text:0044F0E8 dd offset komainit                      ; 5Bh
    95. .text:0044F0E8 dd offset komadaiinit                   ; 5Ch
    96. .text:0044F0E8 dd offset bwallinit                     ; 5Dh
    97. .text:0044F0E8 dd offset vsdaiinit                     ; 5Eh
    98. .text:0044F0E8 dd offset sjumpsw                       ; 5Fh
    99. .text:0044F0E8 dd offset vsmdaiinit                    ; 60h
    100. .text:0044F0E8 dd offset vsballooninit                 ; 61h
    101. .text:0044F0E8 dd offset vssdaiinit                    ; 62h
    102. .text:0044F0E8 dd offset vsswinit                      ; 63h
    103. .text:0044F0E8 dd offset vsiteminit                    ; 64h
    104. .text:0044F0E8 dd offset vsspoleinit                   ; 65h
    105. .text:0044F0E8 dd offset vsoilinit                     ; 66h
    106. .text:0044F0E8 dd offset dai01init                     ; 67h
    107. .text:0044F0E8 dd offset rolldai01init                 ; 68h
    108. .text:0044F0E8 dd offset hloopinit                     ; 69h
    109. .text:0044F0E8 dd offset itaicoliinit                  ; 6Ah
    110. .text:0044F0E8 dd offset killcoliinit                  ; 6Bh
    111. .text:0044F0E8 dd offset hashiinit                     ; 6Ch
    112. .text:0044F0E8 dd offset shibukiinit                   ; 6Dh
    113. .text:0044F0E8 dd offset dripinit                      ; 6Eh
    114. .text:0044F0E8 dd offset loc_7CCC94                    ; 6Fh
    115. .text:0044F0E8 dd offset loc_7CD798                    ; 70h
    116. .text:0044F0E8 dd offset loc_7CE2C5                    ; 71h
    117. .text:0044F0E8 dd offset loc_7CE918                    ; 72h
    118. .text:0044F0E8 dd offset loc_7CFE34                    ; 73h
    119. .text:0044F0E8 dd offset loc_7D01E2                    ; 74h
    120. .text:0044F0E8 dd offset loc_7D0839                    ; 75h
    121. .text:0044F0E8 dd offset loc_7D0E06                    ; 76h
    122. .text:0044F0E8 dd offset loc_7D0F5D                    ; 77h
    123. .text:0044F0E8 dd offset loc_7D1459                    ; 78h
    124. .text:0044F0E8 dd offset loc_7D1848                    ; 79h
    125. .text:0044F0E8 dd offset loc_7D1B64                    ; 7Ah
    126. .text:0044F0E8 dd offset loc_7D21DC                    ; 7Bh
    127. .text:0044F0E8 dd offset loc_7D28BA                    ; 7Ch
    128. .text:0044F0E8 dd offset loc_7D2A58                    ; 7Dh
    129. .text:0044F0E8 dd offset loc_7D2D20                    ; 7Eh
    130. .text:0044F0E8 dd offset loc_7D3023                    ; 7Fh
    131. .text:0044F0E8 dd offset itemug                        ; 80h
    132. .text:0044F0E8 dd offset opnbox                        ; 81h
    133. .text:0044F0E8 dd offset nuckle                        ; 82h
    134. .text:0044F0E8 dd offset nucksw                        ; 83h
    135. .text:0044F0E8 dd offset loc_459264                    ; 84h
    136. .text:0044F0E8 dd offset bgring                        ; 85h
    137. .text:0044F0E8 dd offset gumbgrip                      ; 86h
    138. .text:0044F0E8 dd offset gumbbane                      ; 87h
    139. .text:0044F0E8 dd offset setbryuka                     ; 88h
    140. .text:0044F0E8 dd offset cchgsw                        ; 89h
    141. .text:0044F0E8 dd offset fixspr                        ; 8Ah
    142. .text:0044F0E8 dd offset pl_move_right                 ; 8Bh
    143. .text:0044F0E8 dd offset hana00                        ; 8Ch
    144. .text:0044F0E8 dd offset sai00                         ; 8Dh
    145. .text:0044F0E8 dd offset saru00                        ; 8Eh
    146. .text:0044F0E8 dd offset snak00                        ; 8Fh
    147. .text:0044F0E8 dd offset bs00m0_body                   ; 90h
    148. .text:0044F0E8 dd offset bs00m1_body                   ; 91h
    149. .text:0044F0E8 dd offset bs00b0                        ; 92h
    150. .text:0044F0E8 dd offset shak01                        ; 93h
    151. .text:0044F0E8 dd offset hdai01                        ; 94h
    152. .text:0044F0E8 dd offset fly01                         ; 95h
    153. .text:0044F0E8 dd offset yado01                        ; 96h
    154. .text:0044F0E8 dd offset fish01                        ; 97h
    155. .text:0044F0E8 dd offset fugu01                        ; 98h
    156. .text:0044F0E8 dd offset bs01m0                        ; 99h
    157. .text:0044F0E8 dd offset bs01b0                        ; 9Ah
    158. .text:0044F0E8 dd offset fugu02                        ; 9Bh
    159. .text:0044F0E8 dd offset hari02                        ; 9Ch
    160. .text:0044F0E8 dd offset bata02                        ; 9Dh
    161. .text:0044F0E8 dd offset bs02m0                        ; 9Eh
    162. .text:0044F0E8 dd offset bs02m1                        ; 9Fh
    163. .text:0044F0E8 dd offset bs02b0                        ; 0A0h
    164. .text:0044F0E8 dd offset bs02b1                        ; 0A1h
    165. .text:0044F0E8 dd offset bs02b2                        ; 0A2h
    166. .text:0044F0E8 dd offset shel03                        ; 0A3h
    167. .text:0044F0E8 dd offset elec03                        ; 0A4h
    168. .text:0044F0E8 dd offset bat03                         ; 0A5h
    169. .text:0044F0E8 dd offset bs03m0                        ; 0A6h
    170. .text:0044F0E8 dd offset bs03b0                        ; 0A7h
    171. .text:0044F0E8 dd offset betl04                        ; 0A8h
    172. .text:0044F0E8 dd offset mous04                        ; 0A9h
    173. .text:0044F0E8 dd offset bs04m0                        ; 0AAh
    174. .text:0044F0E8 dd offset bs04m1                        ; 0ABh
    175. .text:0044F0E8 dd offset bs04b0                        ; 0ACh
    176. .text:0044F0E8 dd offset pngn05                        ; 0ADh
    177. .text:0044F0E8 dd offset uni05                         ; 0AEh
    178. .text:0044F0E8 dd offset pilr05                        ; 0AFh
    179. .text:0044F0E8 dd offset idai05                        ; 0B0h
    180. .text:0044F0E8 dd offset iroc05                        ; 0B1h
    181. .text:0044F0E8 dd offset nozu05                        ; 0B2h
    182. .text:0044F0E8 dd offset daru05                        ; 0B3h
    183. .text:0044F0E8 dd offset dash05                        ; 0B4h
    184. .text:0044F0E8 dd offset dtrr05                        ; 0B5h
    185. .text:0044F0E8 dd offset biwa05                        ; 0B6h
    186. .text:0044F0E8 dd offset ftrr05                        ; 0B7h
    187. .text:0044F0E8 dd offset toge05                        ; 0B8h
    188. .text:0044F0E8 dd offset snow05                        ; 0B9h
    189. .text:0044F0E8 dd offset jdai05                        ; 0BAh
    190. .text:0044F0E8 dd offset ifix05                        ; 0BBh
    191. .text:0044F0E8 dd offset bs05m0                        ; 0BCh
    192. .text:0044F0E8 dd offset bs05b0                        ; 0BDh
    193. .text:0044F0E8 dd offset snil06                        ; 0BEh
    194. .text:0044F0E8 dd offset frog06                        ; 0BFh
    195. .text:0044F0E8 dd offset uni06                         ; 0C0h
    196. .text:0044F0E8 dd offset lasr06                        ; 0C1h
    197. .text:0044F0E8 dd offset bird06                        ; 0C2h
    198. .text:0044F0E8 dd offset box06                         ; 0C3h
    199. .text:0044F0E8 dd offset box06_base0                   ; 0C4h
    200. .text:0044F0E8 dd offset box06_base1                   ; 0C5h
    201. .text:0044F0E8 dd offset embl06                        ; 0C6h
    202. .text:0044F0E8 dd offset ring                          ; 0C7h
    203. .text:0044F0E8 dd offset tekotu                        ; 0C8h
    204. .text:0044F0E8 dd offset bs06m0                        ; 0C9h
    205. .text:0044F0E8 dd offset bs06b0                        ; 0CAh
    206. .text:0044F0E8 dd offset bs06b1                        ; 0CBh
    207. .text:0044F0E8 dd offset bs06b2                        ; 0CCh
    208. .text:0044F0E8 dd offset bs06bn                        ; 0CDh
    209. .text:0044F0E8 dd offset door04                        ; 0CEh
    210. .text:0044F0E8 dd offset obox04                        ; 0CFh
    211. .text:0044F0E8 dd offset swit04                        ; 0D0h
    212. .text:0044F0E8 dd offset ring                          ; 0D1h
    213. .text:0044F0E8 dd offset ring                          ; 0D2h
    214. .text:0044F0E8 dd offset ring                          ; 0D3h
    215. .text:0044F0E8 dd offset ring                          ; 0D4h
    216. .text:0044F0E8 dd offset ring                          ; 0D5h
    217. .text:0044F0E8 dd offset ring                          ; 0D6h
    218. .text:0044F0E8 dd offset ring                          ; 0D7h
    219. .text:0044F0E8 dd offset ring                          ; 0D8h
    220. .text:0044F0E8 dd offset ring                          ; 0D9h
    221. .text:0044F0E8 dd offset ring                          ; 0DAh
    222. .text:0044F0E8 dd offset ring                          ; 0DBh
    223. .text:0044F0E8 dd offset ring                          ; 0DCh
    224. .text:0044F0E8 dd offset ring                          ; 0DDh
    225. .text:0044F0E8 dd offset ring                          ; 0DEh
    226. .text:0044F0E8 dd offset ring                          ; 0DFh
    227. .text:0044F0E8 dd offset loc_7D3991                    ; 0E0h
    228. .text:0044F0E8 dd offset loc_7D3C77                    ; 0E1h
    229. .text:0044F0E8 dd offset loc_7D3E66                    ; 0E2h
    230. .text:0044F0E8 dd offset loc_7D40B2                    ; 0E3h
    231. .text:0044F0E8 dd offset loc_7D439C                    ; 0E4h
    232. .text:0044F0E8 dd offset loc_7D4DBE                    ; 0E5h
    233. .text:0044F0E8 dd offset sub_7BCED8                    ; 0E6h
    234. .text:0044F0E8 dd offset loc_7BD31C                    ; 0E7h
    235. .text:0044F0E8 dd offset loc_7BDA3A                    ; 0E8h
    236. .text:0044F0E8 dd offset loc_7BDE99                    ; 0E9h
    237. .text:0044F0E8 dd offset loc_7BE066                    ; 0EAh
    238. .text:0044F0E8 dd offset loc_7BE306                    ; 0EBh
    239. .text:0044F0E8 dd offset loc_7BE5D1                    ; 0ECh
    240. .text:0044F0E8 dd offset loc_7BE147                    ; 0EDh
    241. .text:0044F0E8 dd offset ring                          ; 0EEh
    242. .text:0044F0E8 dd offset ring                          ; 0EFh
    243. .text:0044F0E8 dd offset ring                          ; 0F0h
    244. .text:0044F0E8 dd offset ring                          ; 0F1h
    245. .text:0044F0E8 dd offset ring                          ; 0F2h
    246. .text:0044F0E8 dd offset ring                          ; 0F3h
    247. .text:0044F0E8 dd offset ring                          ; 0F4h
    248. .text:0044F0E8 dd offset ring                          ; 0F5h
    249. .text:0044F0E8 dd offset ring                          ; 0F6h
    250. .text:0044F0E8 dd offset ring                          ; 0F7h
    251. .text:0044F0E8 dd offset ring                          ; 0F8h
    252. .text:0044F0E8 dd offset ring                          ; 0F9h
    253. .text:0044F0E8 dd offset ring                          ; 0FAh
    254. .text:0044F0E8 dd offset ring                          ; 0FBh
    255. .text:0044F0E8 dd offset ring                          ; 0FCh
    256. .text:0044F0E8 dd offset ring                          ; 0FDh
    257. .text:0044F0E8 dd offset ring                          ; 0FEh
    258. .text:0044F0E8 dd offset loc_7D568D                    ; 0FFh
    259.  
    Sonic & Knuckles's levels:
    Code (Text):
    1.  
    2. .text:0044F4E8 off_44F4E8 dd offset ring                          ; 0
    3. .text:0044F4E8                                         ; DATA XREF: .text:loc_42A88Fo
    4. .text:0044F4E8 dd offset item                          ; 1
    5. .text:0044F4E8 dd offset sub_45712C                    ; 2
    6. .text:0044F4E8 dd offset loc_7B70B6                    ; 3
    7. .text:0044F4E8 dd offset breakinit                     ; 4
    8. .text:0044F4E8 dd offset iwainit                       ; 5
    9. .text:0044F4E8 dd offset loc_7B80D8                    ; 6
    10. .text:0044F4E8 dd offset sjumpinit                     ; 7
    11. .text:0044F4E8 dd offset togeinit                      ; 8
    12. .text:0044F4E8 dd offset loc_7B91C8                    ; 9
    13. .text:0044F4E8 dd offset loc_7B99A2                    ; 0Ah
    14. .text:0044F4E8 dd offset loc_7BA3EC                    ; 0Bh
    15. .text:0044F4E8 dd offset loc_7BACC3                    ; 0Ch
    16. .text:0044F4E8 dd offset brkabeinit                    ; 0Dh
    17. .text:0044F4E8 dd offset hjumpmove                     ; 0Eh
    18. .text:0044F4E8 dd offset break2init                    ; 0Fh
    19. .text:0044F4E8 dd offset hbarinit                      ; 10h
    20. .text:0044F4E8 dd offset loc_7BB55C                    ; 11h
    21. .text:0044F4E8 dd offset loc_7BB75E                    ; 12h
    22. .text:0044F4E8 dd offset loc_7BC1B4                    ; 13h
    23. .text:0044F4E8 dd offset loc_7BCA76                    ; 14h
    24. .text:0044F4E8 dd offset loc_7A9EC0                    ; 15h
    25. .text:0044F4E8 dd offset loc_7AA73C                    ; 16h
    26. .text:0044F4E8 dd offset loc_7AAF30                    ; 17h
    27. .text:0044F4E8 dd offset loc_7AB0D1                    ; 18h
    28. .text:0044F4E8 dd offset loc_7AB2D3                    ; 19h
    29. .text:0044F4E8 dd offset loc_7AB4ED                    ; 1Ah
    30. .text:0044F4E8 dd offset loc_7AB86A                    ; 1Bh
    31. .text:0044F4E8 dd offset loc_7ABB0C                    ; 1Ch
    32. .text:0044F4E8 dd offset loc_7ABD16                    ; 1Dh
    33. .text:0044F4E8 dd offset loc_7AC0A2                    ; 1Eh
    34. .text:0044F4E8 dd offset loc_7AD1A7                    ; 1Fh
    35. .text:0044F4E8 dd offset loc_7ACC59                    ; 20h
    36. .text:0044F4E8 dd offset loc_7AC58F                    ; 21h
    37. .text:0044F4E8 dd offset loc_7AD3E7                    ; 22h
    38. .text:0044F4E8 dd offset off_7B7BEE                    ; 23h
    39. .text:0044F4E8 dd offset pipe06init                    ; 24h
    40. .text:0044F4E8 dd offset kassyainit                    ; 25h
    41. .text:0044F4E8 dd offset rollcinit                     ; 26h
    42. .text:0044F4E8 dd offset scopecinit                    ; 27h
    43. .text:0044F4E8 dd offset scoliinit                     ; 28h
    44. .text:0044F4E8 dd offset loc_7AE2B3                    ; 29h
    45. .text:0044F4E8 dd offset bryukainit                    ; 2Ah
    46. .text:0044F4E8 dd offset loc_7ADC8A                    ; 2Bh
    47. .text:0044F4E8 dd offset loc_7ADF63                    ; 2Ch
    48. .text:0044F4E8 dd offset dai09init                     ; 2Dh
    49. .text:0044F4E8 dd offset loc_7AEB96                    ; 2Eh
    50. .text:0044F4E8 dd offset bgsprinit                     ; 2Fh
    51. .text:0044F4E8 dd offset bgsprpinit                    ; 30h
    52. .text:0044F4E8 dd offset break3init                    ; 31h
    53. .text:0044F4E8 dd offset loc_7AF0B8                    ; 32h
    54. .text:0044F4E8 dd offset switchinit                    ; 33h
    55. .text:0044F4E8 dd offset save                          ; 34h
    56. .text:0044F4E8 dd offset bgsprzinit                    ; 35h
    57. .text:0044F4E8 dd offset barinit                       ; 36h
    58. .text:0044F4E8 dd offset loc_7AFB60                    ; 37h
    59. .text:0044F4E8 dd offset loc_7AFFF4                    ; 38h
    60. .text:0044F4E8 dd offset sub_7B1375                    ; 39h
    61. .text:0044F4E8 dd offset loc_457CB5                    ; 3Ah
    62. .text:0044F4E8 dd offset loc_7B18AB                    ; 3Bh
    63. .text:0044F4E8 dd offset doorinit                      ; 3Ch
    64. .text:0044F4E8 dd offset sjumpmv                       ; 3Dh
    65. .text:0044F4E8 dd offset sub_7B1C33                    ; 3Eh
    66. .text:0044F4E8 dd offset loc_7B2301                    ; 3Fh
    67. .text:0044F4E8 dd offset loc_7B2DFE                    ; 40h
    68. .text:0044F4E8 dd offset loc_7B3594                    ; 41h
    69. .text:0044F4E8 dd offset loc_7B3D0F                    ; 42h
    70. .text:0044F4E8 dd offset loc_7B42ED                    ; 43h
    71. .text:0044F4E8 dd offset loc_7B4C38                    ; 44h
    72. .text:0044F4E8 dd offset loc_7B4F48                    ; 45h
    73. .text:0044F4E8 dd offset loc_7B58C3                    ; 46h
    74. .text:0044F4E8 dd offset loc_7B5C7F                    ; 47h
    75. .text:0044F4E8 dd offset ropedowninit                  ; 48h
    76. .text:0044F4E8 dd offset loc_7B6233                    ; 49h
    77. .text:0044F4E8 dd offset dai0binit                     ; 4Ah
    78. .text:0044F4E8 dd offset loc_7C499C                    ; 4Bh
    79. .text:0044F4E8 dd offset loc_7C4F54                    ; 4Ch
    80. .text:0044F4E8 dd offset loc_7C54EA                    ; 4Dh
    81. .text:0044F4E8 dd offset loc_7C582B                    ; 4Eh
    82. .text:0044F4E8 dd offset loc_7C617A                    ; 4Fh
    83. .text:0044F4E8 dd offset loc_7C68AD                    ; 50h
    84. .text:0044F4E8 dd offset daiinit                       ; 51h
    85. .text:0044F4E8 dd offset sub_7C6A7E                    ; 52h
    86. .text:0044F4E8 dd offset loc_7C6BF4                    ; 53h
    87. .text:0044F4E8 dd offset awa                           ; 54h
    88. .text:0044F4E8 dd offset loc_7C773D                    ; 55h
    89. .text:0044F4E8 dd offset loc_7C79B7                    ; 56h
    90. .text:0044F4E8 dd offset loc_7C80CC                    ; 57h
    91. .text:0044F4E8 dd offset loc_7C98D2                    ; 58h
    92. .text:0044F4E8 dd offset loc_7C9CAF                    ; 59h
    93. .text:0044F4E8 dd offset loc_7CA53A                    ; 5Ah
    94. .text:0044F4E8 dd offset loc_7CB05C                    ; 5Bh
    95. .text:0044F4E8 dd offset sub_7CB2C1                    ; 5Ch
    96. .text:0044F4E8 dd offset loc_7C7D5B                    ; 5Dh
    97. .text:0044F4E8 dd offset sub_7CB81F                    ; 5Eh
    98. .text:0044F4E8 dd offset loc_7CBCD3                    ; 5Fh
    99. .text:0044F4E8 dd offset sub_7CC23C                    ; 60h
    100. .text:0044F4E8 dd offset loc_7CC633                    ; 61h
    101. .text:0044F4E8 dd offset ring                          ; 62h
    102. .text:0044F4E8 dd offset ring                          ; 63h
    103. .text:0044F4E8 dd offset ring                          ; 64h
    104. .text:0044F4E8 dd offset ring                          ; 65h
    105. .text:0044F4E8 dd offset ring                          ; 66h
    106. .text:0044F4E8 dd offset ring                          ; 67h
    107. .text:0044F4E8 dd offset ring                          ; 68h
    108. .text:0044F4E8 dd offset ring                          ; 69h
    109. .text:0044F4E8 dd offset itaicoliinit                  ; 6Ah
    110. .text:0044F4E8 dd offset killcoliinit                  ; 6Bh
    111. .text:0044F4E8 dd offset hashiinit                     ; 6Ch
    112. .text:0044F4E8 dd offset itaicolit                     ; 6Dh
    113. .text:0044F4E8 dd offset itaicolif                     ; 6Eh
    114. .text:0044F4E8 dd offset ring                          ; 6Fh
    115. .text:0044F4E8 dd offset ring                          ; 70h
    116. .text:0044F4E8 dd offset ring                          ; 71h
    117. .text:0044F4E8 dd offset ring                          ; 72h
    118. .text:0044F4E8 dd offset ring                          ; 73h
    119. .text:0044F4E8 dd offset sub_7C3BC8                    ; 74h
    120. .text:0044F4E8 dd offset sub_7C30AE                    ; 75h
    121. .text:0044F4E8 dd offset sub_7C2603                    ; 76h
    122. .text:0044F4E8 dd offset sub_7BFD28                    ; 77h
    123. .text:0044F4E8 dd offset loc_7D1459                    ; 78h
    124. .text:0044F4E8 dd offset sub_7C0E99                    ; 79h
    125. .text:0044F4E8 dd offset sub_7C0992                    ; 7Ah
    126. .text:0044F4E8 dd offset sub_7BF6B4                    ; 7Bh
    127. .text:0044F4E8 dd offset sub_7BF312                    ; 7Ch
    128. .text:0044F4E8 dd offset sub_7C00AE                    ; 7Dh
    129. .text:0044F4E8 dd offset sub_7BEEF9                    ; 7Eh
    130. .text:0044F4E8 dd offset sub_7BEDA8                    ; 7Fh
    131. .text:0044F4E8 dd offset itemug                        ; 80h
    132. .text:0044F4E8 dd offset opnbox                        ; 81h
    133. .text:0044F4E8 dd offset nuckle                        ; 82h
    134. .text:0044F4E8 dd offset nucksw                        ; 83h
    135. .text:0044F4E8 dd offset loc_459264                    ; 84h
    136. .text:0044F4E8 dd offset bgring                        ; 85h
    137. .text:0044F4E8 dd offset gumbgrip                      ; 86h
    138. .text:0044F4E8 dd offset gumbbane                      ; 87h
    139. .text:0044F4E8 dd offset setbryuka                     ; 88h
    140. .text:0044F4E8 dd offset cchgsw                        ; 89h
    141. .text:0044F4E8 dd offset fixspr                        ; 8Ah
    142. .text:0044F4E8 dd offset pl_move_right                 ; 8Bh
    143. .text:0044F4E8 dd offset mole07                        ; 8Ch
    144. .text:0044F4E8 dd offset mush07                        ; 8Dh
    145. .text:0044F4E8 dd offset dfly07                        ; 8Eh
    146. .text:0044F4E8 dd offset bfly07                        ; 8Fh
    147. .text:0044F4E8 dd offset chkn07                        ; 90h
    148. .text:0044F4E8 dd offset wood07                        ; 91h
    149. .text:0044F4E8 dd offset bs07m0                        ; 92h
    150. .text:0044F4E8 dd offset bs07b0                        ; 93h
    151. .text:0044F4E8 dd offset scop08                        ; 94h
    152. .text:0044F4E8 dd offset narl08                        ; 95h
    153. .text:0044F4E8 dd offset rock08                        ; 96h
    154. .text:0044F4E8 dd offset bs08m0                        ; 97h
    155. .text:0044F4E8 dd offset bs08b0                        ; 98h
    156. .text:0044F4E8 dd offset snak09                        ; 99h
    157. .text:0044F4E8 dd offset iwa09                         ; 9Ah
    158. .text:0044F4E8 dd offset gas09                         ; 9Bh
    159. .text:0044F4E8 dd offset gkn209                        ; 9Ch
    160. .text:0044F4E8 dd offset bs09m0                        ; 9Dh
    161. .text:0044F4E8 dd offset bs09b0                        ; 9Eh
    162. .text:0044F4E8 dd offset ring                          ; 9Fh
    163. .text:0044F4E8 dd offset egjr0a                        ; 0A0h
    164. .text:0044F4E8 dd offset bs0ab0                        ; 0A1h
    165. .text:0044F4E8 dd offset bs0ab1                        ; 0A2h
    166. .text:0044F4E8 dd offset bs0ab2                        ; 0A3h
    167. .text:0044F4E8 dd offset gady0b                        ; 0A4h
    168. .text:0044F4E8 dd offset crou0b                        ; 0A5h
    169. .text:0044F4E8 dd offset bs0bm0                        ; 0A6h
    170. .text:0044F4E8 dd offset bs0bb0                        ; 0A7h
    171. .text:0044F4E8 dd offset ev0700                        ; 0A8h
    172. .text:0044F4E8 dd offset sw0700                        ; 0A9h
    173. .text:0044F4E8 dd offset gost08                        ; 0AAh
    174. .text:0044F4E8 dd offset setcg                         ; 0ABh
    175. .text:0044F4E8 dd offset obox08                        ; 0ACh
    176. .text:0044F4E8 dd offset dai093                        ; 0ADh
    177. .text:0044F4E8 dd offset ev0910                        ; 0AEh
    178. .text:0044F4E8 dd offset sw0a00                        ; 0AFh
    179. .text:0044F4E8 dd offset caos09                        ; 0B0h
    180. .text:0044F4E8 dd offset cchg09                        ; 0B1h
    181. .text:0044F4E8 dd offset embl0a                        ; 0B2h
    182. .text:0044F4E8 dd offset set_many_posi                 ; 0B3h
    183. .text:0044F4E8 dd offset ston09                        ; 0B4h
    184. .text:0044F4E8 dd offset ev1710                        ; 0B5h
    185. .text:0044F4E8 dd offset bs0cb0                        ; 0B6h
    186. .text:0044F4E8 dd offset iwa0c                         ; 0B7h
    187. .text:0044F4E8 dd offset msil0c                        ; 0B8h
    188.  
    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:
    Code (Text):
    1.  
    2. ROM:00094EA2                 dc.l ObjNaExCheapBadnikDriller_MGZ1; $9E
    3. ROM:00094EA2                 dc.l ObjNaExMidBossDriller_MGZ1; $9F
    4. ROM:00094EA2                 dc.l ObjNaExComplexDrillingRobotnikEggrobo_MGZ2; $A0
    5. ROM:00094EA2                 dc.l ObjNaExBossForSonicTails_MGZ2; $A1
    6. ROM:00094EA2                 dc.l ObjNaExBossForKnucklesSpawn_MGZ2; $A2
    7. ROM:00094EA2                 dc.l ObjNaCheapBadnikClamer_CNZ; $A3
    8.  
    9. .text:0044F0E8 dd offset bs02m0                        ; 9Eh
    10. .text:0044F0E8 dd offset bs02m1                        ; 9Fh
    11. .text:0044F0E8 dd offset bs02b0                        ; 0A0h
    12. .text:0044F0E8 dd offset bs02b1                        ; 0A1h
    13. .text:0044F0E8 dd offset bs02b2                        ; 0A2h
    14. .text:0044F0E8 dd offset shel03                        ; 0A3h
    15.  
    16. ObjNaExCheapBadnikDriller_MGZ1          -> bs02m0
    17. ObjNaExMidBossDriller_MGZ1          -> bs02m1
    18. ObjNaExComplexDrillingRobotnikEggrobo_MGZ2  -> bs02b0
    19. ObjNaExBossForSonicTails_MGZ2           -> bs02b1
    20. ObjNaExBossForKnucklesSpawn_MGZ2        -> bs02b2
    21. ObjNaCheapBadnikClamer_CNZ          -> shel03
    22.  
    Another example from a test disassembly:
    Code (Text):
    1.  
    2. ROM:000952A2                 dc.l ObjParamMovingSolidBlockOnLineTransport_LRZ2; $25
    3. ROM:000952A2                 dc.l ObjPeAttackForcer  ; $26
    4. ROM:000952A2                 dc.l ObjParamEventAreaLava; $27
    5. ROM:000952A2                 dc.l ObjPeInvisibleSolidAreas; $28
    6. ROM:000952A2                 dc.l ObjPeFlamethrowerStaticSolid_LRZ2; $29
    7. ROM:000952A2                 dc.l ObjZeBreakableFloorPiece_AIZ_CNZ_ICZ_LBZ_FBZ; $2A
    8. ROM:000952A2                 dc.l ObjPeSpikeballOrbittingPillar_LRZ; $2B
    9. ROM:000952A2                 dc.l ObjPeSpikBallOrbittingHorizontalCylinder; $2C
    10. ROM:000952A2                 dc.l ObjPeMovingSolidPlatform_LRZ2; $2D
    11. ROM:000952A2                 dc.l ObjPeUpDownMovingSolidRock_LRZ_U; $2E
    12. ROM:000952A2                 dc.l ObjDeStaticScenary_AIZ2_HCZ1_MGZ_HCZ2_LBZ_MHZ_LRZ_LRZ1_FBZ_FBZ2_SPZ_SPZ2_DEZ; $2F
    13.  
    14. .text:0044F4E8 dd offset kassyainit                    ; 25h
    15. .text:0044F4E8 dd offset rollcinit                     ; 26h
    16. .text:0044F4E8 dd offset scopecinit                    ; 27h
    17. .text:0044F4E8 dd offset scoliinit                     ; 28h
    18. .text:0044F4E8 dd offset loc_7AE2B3                    ; 29h
    19. .text:0044F4E8 dd offset bryukainit                    ; 2Ah
    20. .text:0044F4E8 dd offset loc_7ADC8A                    ; 2Bh
    21. .text:0044F4E8 dd offset loc_7ADF63                    ; 2Ch
    22. .text:0044F4E8 dd offset dai09init                     ; 2Dh
    23. .text:0044F4E8 dd offset loc_7AEB96                    ; 2Eh
    24. .text:0044F4E8 dd offset bgsprinit                     ; 2Fh
    25.  
    26. ObjParamMovingSolidBlockOnLineTransport_LRZ2    -> kassyainit
    27. ObjPeAttackForcer               -> rollcinit
    28. ObjParamEventAreaLava               -> scopecinit
    29. ObjPeInvisibleSolidAreas            -> scoliinit
    30. ObjPeFlamethrowerStaticSolid_LRZ2       -> ???
    31. ObjZeBreakableFloorPiece_AIZ_CNZ_ICZ_LBZ_FBZ    -> bryukainit
    32. ObjPeSpikeballOrbittingPillar_LRZ       -> ???
    33. ObjPeSpikBallOrbittingHorizontalCylinder    -> ???
    34. ObjPeMovingSolidPlatform_LRZ2           -> dai09init
    35. ObjPeUpDownMovingSolidRock_LRZ_U        -> ???
    36. ObjDeStaticScenary_AIZ2_HCZ1_MGZ_HCZ2_LBZ_MHZ_LRZ_LRZ1_FBZ_FBZ2_SPZ_SPZ2_DEZ    -> bgsprinit
    37.  
    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.