don't click here

Chaotix Hacking (formerly Chaotix Level Editing)

Discussion in 'Engineering & Reverse Engineering' started by Andlabs, Jan 29, 2010.

Thread Status:
Not open for further replies.
  1. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    I just put in the offsets I found based on some of Mercury's info. Thanks dude, these offsets kept showing up and I had no fucking clue what they were; now I can look even closer into this game! :thumbsup:

    Code (Text):
    1. TABLE 1
    2. OFFSET        SIZE    DESCRIPTION
    3. $0-$1        word    Pointer to next OST in allocator chain
    4. $2-$7        ?        ?
    5. $8            word    X position
    6. $A            ?        ?
    7. $C            word    Y position
    8. $E-$39        ?        ?
    9. $3A            word    Pointer to table 2
    10. $3B-$3F        ?        ?
    11.  
    12. TABLE 2
    13. OFFSET        SIZE    DESCRIPTION
    14. $0-$1        word    Pointer to next OST in allocator chain
    15. $2-$2F        ?        ?
    16. $30            byte    Flags
    17.                     BIT        DESCRIPTION
    18.                     0        has sheild?
    19.                     1        ?
    20.                     2        ?
    21.                     3        if 1 then shrunken, if 0 then grown; only checked when $38 != 0
    22. $32            word    Invincibility timer (from $4B0 to $0; $0 == no invincibility; each new box adds $4B0)
    23. $33-$37        ?        ?
    24. $38            word    Grow/shrink timer (from $4B0 to $0; $0 == no size change; each new like box adds $4B0; each unlike box sets $0 and returns to normal)
    25. $39-$3F        ?        ?
    I still have to look into those other offsets, and also into Thorn's data...
     
  2. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    Code (Text):
    1. ROM:0088B6C8; =============== S U B R O U T I N E =======================================
    2. ROM:0088B6C8
    3. ROM:0088B6C8
    4. ROM:0088B6C8 MovePlayer1:                          ; CODE XREF: sub_88A0E4+7Ep
    5. ROM:0088B6C8                                    ; sub_88A2B0+14p ...
    6. ROM:0088B6C8                 btst    #1,$24(a6)
    7. ROM:0088B6CE                 beq.s   loc_88B6DE
    8. ROM:0088B6D0                 cmpi.w  #$500,$2C(a6)
    9. ROM:0088B6D6                 bcc.s   loc_88B6DE
    10. ROM:0088B6D8                 move.w  #$500,$2C(a6)
    11. ROM:0088B6DE
    12. ROM:0088B6DE loc_88B6DE:                        ; CODE XREF: MovePlayer1+6j
    13. ROM:0088B6DE                                    ; MovePlayer1+Ej
    14. ROM:0088B6DE                 move.l  $18(a6),d3
    15. ROM:0088B6E2                 move.l  $1C(a6),d4
    16. ROM:0088B6E6                 move.b  $2A(a6),d2
    17. ROM:0088B6EA                 btst    #3,$25(a6)
    18. ROM:0088B6F0                 beq.s   loc_88B6F6
    19. ROM:0088B6F2                 addi.b  #-$80,d2
    20. ROM:0088B6F6
    21. ROM:0088B6F6 loc_88B6F6:                        ; CODE XREF: MovePlayer1+28j
    22. ROM:0088B6F6                 jsr     sub_8F5746
    23. ROM:0088B6FC                 move.w  $2C(a6),d2
    24. ROM:0088B700                 beq.s   loc_88B72E
    25. ROM:0088B702                 muls.w  d2,d0
    26. ROM:0088B704                 muls.w  d2,d1
    27. ROM:0088B706                 asr.l   #6,d0
    28. ROM:0088B708                 asr.l   #6,d1
    29. ROM:0088B70A                 add.l   d0,d3
    30. ROM:0088B70C                 add.l   d1,d4
    31. ROM:0088B70E                 move.l  d3,d2
    32. ROM:0088B710                 or.l    d4,d2
    33. ROM:0088B712                 beq.s   loc_88B72E
    34. ROM:0088B714                 move.b  $2B(a6),d2
    35. ROM:0088B718                 jsr     sub_8F5746
    36. ROM:0088B71E                 move.w  $2E(a6),d2
    37. ROM:0088B722                 muls.w  d2,d0
    38. ROM:0088B724                 muls.w  d2,d1
    39. ROM:0088B726                 asr.l   #6,d0
    40. ROM:0088B728                 asr.l   #6,d1
    41. ROM:0088B72A                 add.l   d0,d3
    42. ROM:0088B72C                 add.l   d1,d4
    43. ROM:0088B72E
    44. ROM:0088B72E loc_88B72E:                        ; CODE XREF: MovePlayer1+38j
    45. ROM:0088B72E                                    ; MovePlayer1+4Aj
    46. ROM:0088B72E                 move.w  4(a4),d0
    47. ROM:0088B732                 ext.l   d0
    48. ROM:0088B734                 lsl.l   #8,d0
    49. ROM:0088B736                 move.l  d0,d1
    50. ROM:0088B738                 neg.l   d1
    51. ROM:0088B73A                 tst.l   d3
    52. ROM:0088B73C                 bpl.s   loc_88B746
    53. ROM:0088B73E                 cmp.l   d1,d3
    54. ROM:0088B740                 bge.s   loc_88B74C
    55. ROM:0088B742                 move.l  d1,d3
    56. ROM:0088B744                 bra.s   loc_88B74C
    57. ROM:0088B746; ---------------------------------------------------------------------------
    58. ROM:0088B746
    59. ROM:0088B746 loc_88B746:                        ; CODE XREF: MovePlayer1+74j
    60. ROM:0088B746                 cmp.l   d0,d3
    61. ROM:0088B748                 ble.s   loc_88B74C
    62. ROM:0088B74A                 move.l  d0,d3
    63. ROM:0088B74C
    64. ROM:0088B74C loc_88B74C:                        ; CODE XREF: MovePlayer1+78j
    65. ROM:0088B74C                                    ; MovePlayer1+7Cj ...
    66. ROM:0088B74C                 tst.l   d4
    67. ROM:0088B74E                 bpl.s   loc_88B758
    68. ROM:0088B750                 cmp.l   d1,d4
    69. ROM:0088B752                 bge.s   loc_88B75E
    70. ROM:0088B754                 move.l  d1,d4
    71. ROM:0088B756                 bra.s   loc_88B75E
    72. ROM:0088B758; ---------------------------------------------------------------------------
    73. ROM:0088B758
    74. ROM:0088B758 loc_88B758:                        ; CODE XREF: MovePlayer1+86j
    75. ROM:0088B758                 cmp.l   d0,d4
    76. ROM:0088B75A                 ble.s   loc_88B75E
    77. ROM:0088B75C                 move.l  d0,d4
    78. ROM:0088B75E
    79. ROM:0088B75E loc_88B75E:                        ; CODE XREF: MovePlayer1+8Aj
    80. ROM:0088B75E                                    ; MovePlayer1+8Ej ...
    81. ROM:0088B75E                 add.l   d3,8(a6)
    82. ROM:0088B762                 add.l   d4,$C(a6)
    83. ROM:0088B766                 rts
    84. ROM:0088B766; End of function MovePlayer1
    85. ROM:0088B766
    I'm going to try going through this and picking out the weight and speed values, etc. If someone would like to help me with this, by all means.
     
  3. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    Code (Text):
    1. ROM:00889DBC CharActions:    dc.w nullsub_24-CharActions; DATA XREF: sub_889C2E+186r
    2. ROM:00889DBC                ; ROM:CharActionso ...
    3. ROM:00889DBC                ; 0 = no action
    4. ROM:00889DBE                 dc.w sub_889DF2-CharActions; 2 = standing, moving
    5. ROM:00889DC0                 dc.w sub_88A5BE-CharActions; 4 = jumping
    6. ROM:00889DC2                 dc.w sub_88A1E4-CharActions; 6 = rolling (normal and after spindash)
    7. ROM:00889DC4                 dc.w sub_88A6F2-CharActions; 8 = wall jumping; double jumping (Vector)
    8. ROM:00889DC6                 dc.w sub_88A346-CharActions; A = holding partner
    9. ROM:00889DC8                 dc.w sub_88A77E-CharActions
    10. ROM:00889DCA                 dc.w sub_88A83C-CharActions; E = being held
    11. ROM:00889DCC                 dc.w sub_88A8D4-CharActions; 10 = charging spindash
    12. ROM:00889DCE                 dc.w sub_88A976-CharActions; 12 = hurt? TODO
    13. ROM:00889DD0                 dc.w sub_88AA0E-CharActions
    14. ROM:00889DD2                 dc.w sub_88AAD0-CharActions
    15. ROM:00889DD4                 dc.w sub_88AB00-CharActions
    16. ROM:00889DD6                 dc.w sub_88AB7C-CharActions; 1A = being called
    17. ROM:00889DD8                 dc.w $4E75; 1C = INVALID
    18. ROM:00889DDA                 dc.w $4E75; 1E = INVALID
    19. ROM:00889DDC                 dc.w sub_88AC22-CharActions; 20 = Mighty on wall? TODO
    20. ROM:00889DDE                 dc.w sub_88AD1C-CharActions
    21. ROM:00889DE0                 dc.w sub_88AD1C-CharActions; 24 = Knuckles gliding? TODO
    22. ROM:00889DE2                 dc.w sub_88ADF8-CharActions; 26 = Knuckles climbing? TODO
    23. ROM:00889DE4                 dc.w sub_88AFA0-CharActions; 28 = Vector on wall? TODO
    24. ROM:00889DE6                 dc.w sub_88B10A-CharActions; 2A = Charmy flying? TODO
    25. ROM:00889DE8                 dc.w sub_88B148-CharActions; 2C = Charmy landing? TODO
    26. ROM:00889DEA                 dc.w sub_88B23C-CharActions
    27. ROM:00889DEC                 dc.w sub_88B286-CharActions; 30 = Bomb exploding? TODO
    28. ROM:00889DEE                 dc.w sub_88B2A2-CharActions; 32 = Espio wall scaling? TODO
    :)

    Note that the action is initiated by another action (including the sound effect); then the subroutine is jumped to. Offset 7 from the main OST has the value in the comments (byte).

    Weird but interesting thing: instead of doing
    Code (Text):
    1.     jsr necessarySub
    2.     rts
    each time (there are many returns in each subroutine), each of the above subroutines do
    Code (Text):
    1.     pea necessarySub
    2. condition_1:
    3.     ; ...
    4.     rts
    5. condition_2:
    6.     ; ...
    7.     rts
    It's unorthodox but still cool.
     
  4. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    Small break from OST to do object research.

    We know the location and type of the object position tale — it's on the SCHG now. Each entry in this list is a list of object entries of the form

    Code (Text):
    1. x position - word
    2. y position - word
    3. object type - word
    4. object subtype - word
    with a word $FFFF ending the list.

    I also started deciphering the object list:

    Code (Text):
    1. ROM:00891D72 ObjectActions:  dc.l sub_89F884    ; DATA XREF: DoObjectActions+24o
    2. ROM:00891D72                                    ; 0
    3. ROM:00891D76                 dc.l sub_89F5A6    ; 4
    4. ROM:00891D7A                 dc.l sub_8989CC    ; 8
    5. ROM:00891D7E                 dc.l sub_89F28E    ; 12
    6. ROM:00891D82                 dc.l sub_893010    ; 16
    7. ROM:00891D86                 dc.l nullsub_4        ; 20
    8. ROM:00891D8A                 dc.l sub_89ED82    ; 24
    9. ROM:00891D8E                 dc.l sub_89DD98    ; 28 = Amazing Arena transport UFO?
    10. ROM:00891D92                 dc.l sub_8A69F8    ; 32
    11. ROM:00891D96                 dc.l sub_89209E    ; 36
    12. ROM:00891D9A                 dc.l sub_892364    ; 40
    13. ROM:00891D9E                 dc.l sub_892606    ; 44
    14. ROM:00891DA2                 dc.l sub_8927CC    ; 48 = big ring (to bonus stage?)
    15. ROM:00891DA6                 dc.l sub_89DA32    ; 52 = Amazing Arena large springs
    16. ROM:00891DAA                 dc.l sub_89DAE0    ; 56
    17. ROM:00891DAE                 dc.l sub_89DD48    ; 60
    18. ROM:00891DB2                 dc.l sub_89D872    ; 64
    19. ROM:00891DB6                 dc.l sub_89D9F0    ; 68 = end of Amazing Arena transport tubes
    20. ROM:00891DBA                 dc.l sub_89D9AE    ; 72
    21. ROM:00891DBE                 dc.l sub_89D8FE    ; 76
    22. ROM:00891DC2                 dc.l sub_89D778    ; 80
    23. ROM:00891DC6                 dc.l sub_8A3BBA    ; 84 = spikes
    24. ROM:00891DCA                 dc.l sub_8A3BBA    ; 88
    25. ROM:00891DCE                 dc.l sub_8A3BBA    ; 92
    26. ROM:00891DD2                 dc.l sub_8A3BBA    ; 96
    27. ROM:00891DD6                 dc.l sub_897F96    ; 100
    28. ROM:00891DDA                 dc.l sub_8980A8    ; 104
    29. ROM:00891DDE                 dc.l sub_8981BA    ; 108
    30. ROM:00891DE2                 dc.l sub_8982EA    ; 112
    31. ROM:00891DE6                 dc.l sub_8929B8    ; 116
    32. ROM:00891DEA                 dc.l sub_892AAC    ; 120
    33. ROM:00891DEE                 dc.l nullsub_7        ; 124
    34. ROM:00891DF2                 dc.l sub_892B3E    ; 128
    35. ROM:00891DF6                 dc.l sub_898B42    ; 132
    36. ROM:00891DFA                 dc.l sub_897E48    ; 136
    37. ROM:00891DFE                 dc.l sub_896F9A    ; 140
    38. ROM:00891E02                 dc.l sub_897128    ; 144
    39. ROM:00891E06                 dc.l sub_8957D2    ; 148
    40. ROM:00891E0A                 dc.l sub_89AC12    ; 152
    41. ROM:00891E0E                 dc.l sub_89AD3C    ; 156
    42. ROM:00891E12                 dc.l sub_896DBA    ; 160
    43. ROM:00891E16                 dc.l sub_896EB2    ; 164
    44. ROM:00891E1A                 dc.l sub_8A4358    ; 168
    45. ROM:00891E1E                 dc.l sub_896972    ; 172
    46. ROM:00891E22                 dc.l sub_896B36    ; 176
    47. ROM:00891E26                 dc.l sub_896CD2    ; 180
    48. ROM:00891E2A                 dc.l sub_898422    ; 184 = Botanic Base dissolving platform?
    49. ROM:00891E2E                 dc.l nullsub_8        ; 188
    50. ROM:00891E32                 dc.l nullsub_8        ; 192
    51. ROM:00891E36                 dc.l nullsub_8        ; 196
    52. ROM:00891E3A                 dc.l sub_8A1B44    ; 200
    53. ROM:00891E3E                 dc.l sub_8A1D16    ; 204
    54. ROM:00891E42                 dc.l sub_8A36E2    ; 208
    55. ROM:00891E46                 dc.l sub_892096    ; 212
    56. ROM:00891E4A                 dc.l sub_8A21B0    ; 216
    57. ROM:00891E4E                 dc.l sub_892096    ; 220
    58. ROM:00891E52                 dc.l sub_8A4094    ; 224
    59. ROM:00891E56                 dc.l sub_892096    ; 228
    60. ROM:00891E5A                 dc.l sub_89C69A    ; 232
    61. ROM:00891E5E                 dc.l sub_89C8CC    ; 236
    62. ROM:00891E62                 dc.l sub_8A9CF6    ; 240
    63. ROM:00891E66                 dc.l sub_89A5DC    ; 244
    64. ROM:00891E6A                 dc.l sub_89A756    ; 248
    65. ROM:00891E6E                 dc.l sub_89A812    ; 252
    66. ROM:00891E72                 dc.l sub_89B0C2    ; 256
    67. ROM:00891E76                 dc.l sub_8A0834    ; 260
    68. ROM:00891E7A                 dc.l sub_89CE94    ; 264
    69. ROM:00891E7E                 dc.l sub_894788    ; 268 = monitor?
    70. ROM:00891E82                 dc.l sub_8B4A68    ; 272
    71. ROM:00891E86                 dc.l sub_8BCB82    ; 276
    72. ROM:00891E8A                 dc.l sub_898932    ; 280 = translucent corridor to big ring for bonuss stage?
    73. ROM:00891E8E                 dc.l sub_892096    ; 284
    74. ROM:00891E92                 dc.l sub_899350    ; 288
    75. ROM:00891E96                 dc.l sub_899494    ; 292
    76. ROM:00891E9A                 dc.l sub_8994CC    ; 296
    77. ROM:00891E9E                 dc.l sub_899DD0    ; 300
    78. ROM:00891EA2                 dc.l sub_899F3C    ; 304
    79. ROM:00891EA6                 dc.l sub_89BFD6    ; 308
    80. ROM:00891EAA                 dc.l sub_89996E    ; 312
    81. ROM:00891EAE                 dc.l sub_899CF6    ; 316
    82. ROM:00891EB2                 dc.l sub_8984F6    ; 320 = Amazing Arena dissolving platforms?
    83. ROM:00891EB6                 dc.l sub_898604    ; 324
    84. ROM:00891EBA                 dc.l sub_89BC86    ; 328
    85. ROM:00891EBE                 dc.l sub_89BD5A    ; 332
    86. ROM:00891EC2                 dc.l sub_89BE2E    ; 336
    87. ROM:00891EC6                 dc.l sub_89BF02    ; 340
    88. ROM:00891ECA                 dc.l sub_8A1988    ; 344
    89. ROM:00891ECE                 dc.l sub_89742C    ; 348
    90. ROM:00891ED2                 dc.l sub_895014    ; 352
    91. ROM:00891ED6                 dc.l DoSpring         ; 356 = spring
    92. ROM:00891EDA                 dc.l sub_892096    ; 360
    93. ROM:00891EDE                 dc.l sub_892096    ; 364
    94. ROM:00891EE2                 dc.l sub_8A4B3E    ; 368
    95. ROM:00891EE6                 dc.l sub_89D408    ; 372 = beginning of Amazing Arena transport tubes
    96. ROM:00891EEA                 dc.l sub_89D05E    ; 376
    97. ROM:00891EEE                 dc.l sub_89CAA4    ; 380
    98. ROM:00891EF2                 dc.l sub_89CD3A    ; 384
    99. ROM:00891EF6                 dc.l sub_89CE5A    ; 388
    100. ROM:00891EFA                 dc.l sub_89C558    ; 392
    101. ROM:00891EFE                 dc.l sub_89C418    ; 396
    102. ROM:00891F02                 dc.l sub_89C4FE    ; 400
    103. ROM:00891F06                 dc.l sub_894CA0    ; 404 = Botanic Base spiked leaf ball badnik?
    104. ROM:00891F0A                 dc.l sub_894F88    ; 408
    105. ROM:00891F0E                 dc.l sub_894FCE    ; 412
    106. ROM:00891F12                 dc.l sub_8950CE    ; 416
    107. ROM:00891F16                 dc.l nullsub_12    ; 420
    108. ROM:00891F1A                 dc.l sub_8955B0    ; 424
    109. ROM:00891F1E                 dc.l sub_89529C    ; 428
    110. ROM:00891F22                 dc.l sub_8A4CD4    ; 432
    111. ROM:00891F26                 dc.l sub_8950FA    ; 436
    112. ROM:00891F2A                 dc.l sub_8950CE    ; 440
    113. ROM:00891F2E                 dc.l sub_8A4E86    ; 444
    114. ROM:00891F32                 dc.l sub_895660    ; 448
    115. ROM:00891F36                 dc.l sub_895728    ; 452
    116. ROM:00891F3A                 dc.l sub_890610    ; 456 = signpost
    117. ROM:00891F3E                 dc.l sub_89A21A    ; 460
    118. ROM:00891F42                 dc.l sub_89A3E6    ; 464
    119. ROM:00891F46                 dc.l sub_89A472    ; 468
    120. ROM:00891F4A                 dc.l sub_89AAAE    ; 472
    121. ROM:00891F4E                 dc.l sub_8A41E0    ; 476
    122. ROM:00891F52                 dc.l sub_89A9A2    ; 480
    123. ROM:00891F56                 dc.l sub_895C7A    ; 484
    124. ROM:00891F5A                 dc.l sub_895E1A    ; 488
    125. ROM:00891F5E                 dc.l sub_895FC8    ; 492
    126. ROM:00891F62                 dc.l sub_8960DC    ; 496
    127. ROM:00891F66                 dc.l sub_896140    ; 500
    128. ROM:00891F6A                 dc.l sub_892096    ; 504
    129. ROM:00891F6E                 dc.l sub_892096    ; 508
    130. ROM:00891F72                 dc.l sub_892096    ; 512
    131. ROM:00891F76                 dc.l sub_892096    ; 516
    132. ROM:00891F7A                 dc.l sub_892096    ; 520
    133. ROM:00891F7E                 dc.l sub_89618A    ; 524
    134. ROM:00891F82                 dc.l sub_892096    ; 528
    135. ROM:00891F86                 dc.l sub_896312    ; 532
    136. ROM:00891F8A                 dc.l sub_8963A8    ; 536
    137. ROM:00891F8E                 dc.l sub_892096    ; 540
    138. ROM:00891F92                 dc.l sub_89B2E4    ; 544
    139. ROM:00891F96                 dc.l sub_8A50A0    ; 548
    140. ROM:00891F9A                 dc.l sub_897CBA    ; 552
    141. ROM:00891F9E                 dc.l sub_897D08    ; 556
    142. ROM:00891FA2                 dc.l sub_897E06    ; 560
    143. ROM:00891FA6                 dc.l sub_8A5720    ; 564
    144. ROM:00891FAA                 dc.l sub_8A5BBA    ; 568
    145. ROM:00891FAE                 dc.l sub_89FA9A    ; 572
    146. ROM:00891FB2                 dc.l sub_89FB6E    ; 576
    147. ROM:00891FB6                 dc.l sub_89FC42    ; 580
    148. ROM:00891FBA                 dc.l sub_89FD16    ; 584
    149. ROM:00891FBE                 dc.l sub_89F982    ; 588
    150. ROM:00891FC2                 dc.l sub_898A66    ; 592
    151. ROM:00891FC6                 dc.l sub_89B3F6    ; 596
    152. ROM:00891FCA                 dc.l sub_89FDEA    ; 600
    153. ROM:00891FCE                 dc.l sub_897E86    ; 604
    154. ROM:00891FD2                 dc.l sub_897EBE    ; 608
    155. ROM:00891FD6                 dc.l sub_8A3D26    ; 612
    156. ROM:00891FDA                 dc.l sub_8A01F0    ; 616
    157. ROM:00891FDE                 dc.l sub_8A3F1A    ; 620
    158. ROM:00891FE2                 dc.l sub_8A6B3E    ; 624
    159. ROM:00891FE6                 dc.l sub_8A6BD0    ; 628 = Amazing Arena subboss
    160. ROM:00891FEA                 dc.l sub_8A4572    ; 632
    161. ROM:00891FEE                 dc.l sub_8A4688    ; 636
    162. ROM:00891FF2                 dc.l sub_8A04C0    ; 640
    163. ROM:00891FF6                 dc.l sub_8A066E    ; 644 = Balru
    164. ROM:00891FFA                 dc.l sub_8A479E    ; 648
    165. ROM:00891FFE                 dc.l sub_8B6258    ; 652
    166. ROM:00892002                 dc.l sub_8B6186    ; 656
    167. ROM:00892006                 dc.l sub_8A1474    ; 660
    168. ROM:0089200A                 dc.l sub_8A1586    ; 664
    169. ROM:0089200E                 dc.l sub_8A1884    ; 668
    170. ROM:00892012                 dc.l sub_892096    ; 672
    171. ROM:00892016                 dc.l sub_892096    ; 676
    172. ROM:0089201A                 dc.l sub_8A1E10    ; 680
    173. ROM:0089201E                 dc.l sub_8A20E0    ; 684
    174. ROM:00892022                 dc.l sub_8A0AC4    ; 688
    175. ROM:00892026                 dc.l sub_8A0DB6    ; 692
    176. ROM:0089202A                 dc.l sub_8A0E94    ; 696
    177. ROM:0089202E                 dc.l sub_8A1084    ; 700
    178. ROM:00892032                 dc.l sub_8A228E    ; 704
    179. ROM:00892036                 dc.l sub_8A2690    ; 708
    180. ROM:0089203A                 dc.l sub_8A2798    ; 712
    181. ROM:0089203E                 dc.l sub_8A2A00    ; 716
    182. ROM:00892042                 dc.l sub_8A2BF0    ; 720
    183. ROM:00892046                 dc.l sub_892096    ; 724
    184. ROM:0089204A                 dc.l sub_8A2CC8    ; 728
    185. ROM:0089204E                 dc.l sub_8A31A2    ; 732
    186. ROM:00892052                 dc.l sub_897660    ; 736
    187. ROM:00892056                 dc.l sub_892096    ; 740
    188. ROM:0089205A                 dc.l sub_892096    ; 744
    189. ROM:0089205E                 dc.l sub_892096    ; 748
    190. ROM:00892062                 dc.l sub_8977A4    ; 752
    191. ROM:00892066                 dc.l sub_897AFA    ; 756
    192. ROM:0089206A                 dc.l sub_8A3388    ; 760
    193. ROM:0089206E                 dc.l sub_8A3414    ; 764
    194. ROM:00892072                 dc.l sub_89E7F0    ; 768
    195. ROM:00892076                 dc.l sub_8A3562    ; 772
    196. ROM:0089207A                 dc.l sub_8A3904    ; 776
    197. ROM:0089207E                 dc.l sub_892096    ; 780
    198. ROM:00892082                 dc.l sub_892096    ; 784
    199. ROM:00892086                 dc.l sub_8A3A64    ; 788
    200. ROM:0089208A                 dc.l sub_892096    ; 792
    201. ROM:0089208E                 dc.l sub_892096    ; 796
    202. ROM:00892092                 dc.l sub_8A4A0E    ; 800
    The implementation of each function reads like cuneiform until further notice.

    Also the numers should go up by 4. If I made an error, please let me know.
     
  5. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    More objects:

    Code (Text):
    1. ROM:00891D72 ObjectActions:  dc.l sub_89F884; DATA XREF: DoObjectActions+24o
    2. ROM:00891D72                                ; 0
    3. ROM:00891D76                 dc.l sub_89F5A6; 4
    4. ROM:00891D7A                 dc.l sub_8989CC; 8 = Techno Tower Robotnik transparent hallway?
    5. ROM:00891D7E                 dc.l sub_89F28E; 12
    6. ROM:00891D82                 dc.l sub_893010; 16
    7. ROM:00891D86                 dc.l nullsub_4    ; 20
    8. ROM:00891D8A                 dc.l sub_89ED82; 24
    9. ROM:00891D8E                 dc.l DoAATransportUFO; 28 = Amazing Arena transport UFO
    10. ROM:00891D92                 dc.l sub_8A69F8; 32 = Techno Tower conveyor belt machine
    11. ROM:00891D96                 dc.l sub_89209E; 36 = ring sets
    12. ROM:00891D9A                 dc.l sub_892364; 40
    13. ROM:00891D9E                 dc.l sub_892606; 44
    14. ROM:00891DA2                 dc.l DoBonusStageRing; 48 = big ring to bonus stage
    15. ROM:00891DA6                 dc.l sub_89DA32; 52 = Amazing Arena large springs
    16. ROM:00891DAA                 dc.l sub_89DAE0; 56
    17. ROM:00891DAE                 dc.l sub_89DD48; 60
    18. ROM:00891DB2                 dc.l sub_89D872; 64
    19. ROM:00891DB6                 dc.l sub_89D9F0; 68 = end of Amazing Arena transport tubes
    20. ROM:00891DBA                 dc.l sub_89D9AE; 72
    21. ROM:00891DBE                 dc.l sub_89D8FE; 76
    22. ROM:00891DC2                 dc.l sub_89D778; 80
    23. ROM:00891DC6                 dc.l sub_8A3BBA; 84 = spikes
    24. ROM:00891DCA                 dc.l sub_8A3BBA; 88
    25. ROM:00891DCE                 dc.l sub_8A3BBA; 92
    26. ROM:00891DD2                 dc.l sub_8A3BBA; 96
    27. ROM:00891DD6                 dc.l sub_897F96; 100
    28. ROM:00891DDA                 dc.l sub_8980A8; 104
    29. ROM:00891DDE                 dc.l sub_8981BA; 108
    30. ROM:00891DE2                 dc.l sub_8982EA; 112 = Botanic Base (only?) button
    31. ROM:00891DE6                 dc.l sub_8929B8; 116
    32. ROM:00891DEA                 dc.l sub_892AAC; 120
    33. ROM:00891DEE                 dc.l nullsub_7    ; 124
    34. ROM:00891DF2                 dc.l sub_892B3E; 128
    35. ROM:00891DF6                 dc.l sub_898B42; 132 = Techno Tower elevator
    36. ROM:00891DFA                 dc.l sub_897E48; 136
    37. ROM:00891DFE                 dc.l sub_896F9A; 140 = Techno Tower one way door?
    38. ROM:00891E02                 dc.l sub_897128; 144
    39. ROM:00891E06                 dc.l sub_8957D2; 148
    40. ROM:00891E0A                 dc.l sub_89AC12; 152
    41. ROM:00891E0E                 dc.l sub_89AD3C; 156
    42. ROM:00891E12                 dc.l sub_896DBA; 160
    43. ROM:00891E16                 dc.l sub_896EB2; 164
    44. ROM:00891E1A                 dc.l sub_8A4358; 168 = Botanic Base button-activated door?
    45. ROM:00891E1E                 dc.l sub_896972; 172
    46. ROM:00891E22                 dc.l sub_896B36; 176
    47. ROM:00891E26                 dc.l sub_896CD2; 180
    48. ROM:00891E2A                 dc.l DoBBDissolvingPlatform; 184 = Botanic Base dissolving platform
    49. ROM:00891E2E                 dc.l nullsub_8    ; 188
    50. ROM:00891E32                 dc.l nullsub_8    ; 192
    51. ROM:00891E36                 dc.l nullsub_8    ; 196
    52. ROM:00891E3A                 dc.l sub_8A1B44; 200 = Kameka
    53. ROM:00891E3E                 dc.l sub_8A1D16; 204
    54. ROM:00891E42                 dc.l sub_8A36E2; 208
    55. ROM:00891E46                 dc.l sub_892096; 212
    56. ROM:00891E4A                 dc.l sub_8A21B0; 216
    57. ROM:00891E4E                 dc.l sub_892096; 220
    58. ROM:00891E52                 dc.l sub_8A4094; 224
    59. ROM:00891E56                 dc.l sub_892096; 228
    60. ROM:00891E5A                 dc.l sub_89C69A; 232 = TT Badnik 1
    61. ROM:00891E5E                 dc.l sub_89C8CC; 236 = Carry?
    62. ROM:00891E62                 dc.l sub_8A9CF6; 240
    63. ROM:00891E66                 dc.l sub_89A5DC; 244
    64. ROM:00891E6A                 dc.l sub_89A756; 248
    65. ROM:00891E6E                 dc.l sub_89A812; 252
    66. ROM:00891E72                 dc.l sub_89B0C2; 256
    67. ROM:00891E76                 dc.l sub_8A0834; 260
    68. ROM:00891E7A                 dc.l sub_89CE94; 264
    69. ROM:00891E7E                 dc.l sub_894788; 268 = monitor?
    70. ROM:00891E82                 dc.l sub_8B4A68; 272
    71. ROM:00891E86                 dc.l sub_8BCB82; 276
    72. ROM:00891E8A                 dc.l sub_898932; 280 = translucent corridor to big ring for bonuss stage?
    73. ROM:00891E8E                 dc.l sub_892096; 284
    74. ROM:00891E92                 dc.l sub_899350; 288
    75. ROM:00891E96                 dc.l sub_899494; 292
    76. ROM:00891E9A                 dc.l sub_8994CC; 296
    77. ROM:00891E9E                 dc.l sub_899DD0; 300
    78. ROM:00891EA2                 dc.l sub_899F3C; 304
    79. ROM:00891EA6                 dc.l sub_89BFD6; 308
    80. ROM:00891EAA                 dc.l sub_89996E; 312
    81. ROM:00891EAE                 dc.l sub_899CF6; 316
    82. ROM:00891EB2                 dc.l DoSSAATTDissolvingPlatform; 320 = Speed Slider/Amazing Arena/Techno Tower dissolving platform
    83. ROM:00891EB6                 dc.l sub_898604; 324 = Techno Tower switch-activated dissolving platform
    84. ROM:00891EBA                 dc.l sub_89BC86; 328
    85. ROM:00891EBE                 dc.l sub_89BD5A; 332
    86. ROM:00891EC2                 dc.l sub_89BE2E; 336
    87. ROM:00891EC6                 dc.l sub_89BF02; 340
    88. ROM:00891ECA                 dc.l sub_8A1988; 344 = Patabata
    89. ROM:00891ECE                 dc.l sub_89742C; 348
    90. ROM:00891ED2                 dc.l sub_895014; 352
    91. ROM:00891ED6                 dc.l DoSpring        ; 356 = spring
    92. ROM:00891EDA                 dc.l sub_892096; 360
    93. ROM:00891EDE                 dc.l sub_892096; 364
    94. ROM:00891EE2                 dc.l sub_8A4B3E; 368
    95. ROM:00891EE6                 dc.l sub_89D408; 372 = beginning of Amazing Arena transport tubes
    96. ROM:00891EEA                 dc.l sub_89D05E; 376
    97. ROM:00891EEE                 dc.l sub_89CAA4; 380
    98. ROM:00891EF2                 dc.l sub_89CD3A; 384
    99. ROM:00891EF6                 dc.l sub_89CE5A; 388
    100. ROM:00891EFA                 dc.l sub_89C558; 392
    101. ROM:00891EFE                 dc.l sub_89C418; 396
    102. ROM:00891F02                 dc.l sub_89C4FE; 400
    103. ROM:00891F06                 dc.l sub_894CA0; 404 = Botanic Base Badnik 1
    104. ROM:00891F0A                 dc.l sub_894F88; 408
    105. ROM:00891F0E                 dc.l sub_894FCE; 412
    106. ROM:00891F12                 dc.l sub_8950CE; 416
    107. ROM:00891F16                 dc.l nullsub_12; 420
    108. ROM:00891F1A                 dc.l sub_8955B0; 424
    109. ROM:00891F1E                 dc.l sub_89529C; 428 = Happa
    110. ROM:00891F22                 dc.l sub_8A4CD4; 432 = Pirani
    111. ROM:00891F26                 dc.l sub_8950FA; 436
    112. ROM:00891F2A                 dc.l sub_8950CE; 440
    113. ROM:00891F2E                 dc.l sub_8A4E86; 444
    114. ROM:00891F32                 dc.l sub_895660; 448
    115. ROM:00891F36                 dc.l sub_895728; 452
    116. ROM:00891F3A                 dc.l DoSignpost; 456 = signpost
    117. ROM:00891F3E                 dc.l sub_89A21A; 460
    118. ROM:00891F42                 dc.l sub_89A3E6; 464
    119. ROM:00891F46                 dc.l sub_89A472; 468
    120. ROM:00891F4A                 dc.l sub_89AAAE; 472
    121. ROM:00891F4E                 dc.l sub_8A41E0; 476
    122. ROM:00891F52                 dc.l sub_89A9A2; 480
    123. ROM:00891F56                 dc.l sub_895C7A; 484 = Speed Slider spike ball
    124. ROM:00891F5A                 dc.l sub_895E1A; 488
    125. ROM:00891F5E                 dc.l sub_895FC8; 492
    126. ROM:00891F62                 dc.l sub_8960DC; 496
    127. ROM:00891F66                 dc.l sub_896140; 500
    128. ROM:00891F6A                 dc.l sub_892096; 504
    129. ROM:00891F6E                 dc.l sub_892096; 508
    130. ROM:00891F72                 dc.l sub_892096; 512
    131. ROM:00891F76                 dc.l sub_892096; 516
    132. ROM:00891F7A                 dc.l sub_892096; 520
    133. ROM:00891F7E                 dc.l sub_89618A; 524
    134. ROM:00891F82                 dc.l sub_892096; 528
    135. ROM:00891F86                 dc.l sub_896312; 532
    136. ROM:00891F8A                 dc.l sub_8963A8; 536 = Botanic Base transport pod
    137. ROM:00891F8E                 dc.l sub_892096; 540
    138. ROM:00891F92                 dc.l sub_89B2E4; 544
    139. ROM:00891F96                 dc.l sub_8A50A0; 548 = Botanic Base back room door
    140. ROM:00891F9A                 dc.l sub_897CBA; 552 = Botanic base transport pod docks
    141. ROM:00891F9E                 dc.l sub_897D08; 556
    142. ROM:00891FA2                 dc.l sub_897E06; 560
    143. ROM:00891FA6                 dc.l sub_8A5720; 564
    144. ROM:00891FAA                 dc.l sub_8A5BBA; 568
    145. ROM:00891FAE                 dc.l sub_89FA9A; 572
    146. ROM:00891FB2                 dc.l sub_89FB6E; 576
    147. ROM:00891FB6                 dc.l sub_89FC42; 580
    148. ROM:00891FBA                 dc.l sub_89FD16; 584
    149. ROM:00891FBE                 dc.l sub_89F982; 588
    150. ROM:00891FC2                 dc.l sub_898A66; 592
    151. ROM:00891FC6                 dc.l sub_89B3F6; 596
    152. ROM:00891FCA                 dc.l sub_89FDEA; 600 = Speed Slider small elevator (with door)
    153. ROM:00891FCE                 dc.l sub_897E86; 604
    154. ROM:00891FD2                 dc.l sub_897EBE; 608
    155. ROM:00891FD6                 dc.l sub_8A3D26; 612 = Speed Slider balloons
    156. ROM:00891FDA                 dc.l sub_8A01F0; 616
    157. ROM:00891FDE                 dc.l sub_8A3F1A; 620
    158. ROM:00891FE2                 dc.l sub_8A6B3E; 624
    159. ROM:00891FE6                 dc.l sub_8A6BD0; 628 = Bosses (including Amazing Arena subboss)
    160. ROM:00891FEA                 dc.l sub_8A4572; 632
    161. ROM:00891FEE                 dc.l sub_8A4688; 636 = Nishita
    162. ROM:00891FF2                 dc.l sub_8A04C0; 640
    163. ROM:00891FF6                 dc.l sub_8A066E; 644 = Balru
    164. ROM:00891FFA                 dc.l sub_8A479E; 648
    165. ROM:00891FFE                 dc.l sub_8B6258; 652
    166. ROM:00892002                 dc.l sub_8B6186; 656
    167. ROM:00892006                 dc.l sub_8A1474; 660
    168. ROM:0089200A                 dc.l sub_8A1586; 664
    169. ROM:0089200E                 dc.l sub_8A1884; 668
    170. ROM:00892012                 dc.l sub_892096; 672
    171. ROM:00892016                 dc.l sub_892096; 676
    172. ROM:0089201A                 dc.l sub_8A1E10; 680 = Uniformer
    173. ROM:0089201E                 dc.l sub_8A20E0; 684
    174. ROM:00892022                 dc.l sub_8A0AC4; 688
    175. ROM:00892026                 dc.l sub_8A0DB6; 692
    176. ROM:0089202A                 dc.l sub_8A0E94; 696
    177. ROM:0089202E                 dc.l sub_8A1084; 700
    178. ROM:00892032                 dc.l sub_8A228E; 704
    179. ROM:00892036                 dc.l sub_8A2690; 708
    180. ROM:0089203A                 dc.l sub_8A2798; 712
    181. ROM:0089203E                 dc.l sub_8A2A00; 716
    182. ROM:00892042                 dc.l sub_8A2BF0; 720
    183. ROM:00892046                 dc.l sub_892096; 724
    184. ROM:0089204A                 dc.l sub_8A2CC8; 728
    185. ROM:0089204E                 dc.l sub_8A31A2; 732
    186. ROM:00892052                 dc.l sub_897660; 736
    187. ROM:00892056                 dc.l sub_892096; 740
    188. ROM:0089205A                 dc.l sub_892096; 744
    189. ROM:0089205E                 dc.l sub_892096; 748
    190. ROM:00892062                 dc.l sub_8977A4; 752
    191. ROM:00892066                 dc.l sub_897AFA; 756
    192. ROM:0089206A                 dc.l sub_8A3388; 760
    193. ROM:0089206E                 dc.l sub_8A3414; 764
    194. ROM:00892072                 dc.l sub_89E7F0; 768
    195. ROM:00892076                 dc.l sub_8A3562; 772
    196. ROM:0089207A                 dc.l sub_8A3904; 776
    197. ROM:0089207E                 dc.l sub_892096; 780
    198. ROM:00892082                 dc.l sub_892096; 784
    199. ROM:00892086                 dc.l sub_8A3A64; 788
    200. ROM:0089208A                 dc.l sub_892096; 792
    201. ROM:0089208E                 dc.l sub_892096; 796
    202. ROM:00892092                 dc.l sub_8A4A0E; 800
    Still looking (and confirming); be patient.

    Chaotix's ring system resembles Sonic 2's in that the ring object manages multiple rings in different arrangements.
     
  6. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    Two things.

    1. I found all the enemies's IDs:

    Code (ASM):
    1. ROM:00891D72 ObjectActions:  dc.l sub_89F884         ; DATA XREF: DoObjectActions+24o
    2. ROM:00891D72                                         ; 0
    3. ROM:00891D76                 dc.l sub_89F5A6         ; 4 = Amazing Arena clock
    4. ROM:00891D7A                 dc.l sub_8989CC         ; 8 = Speed Slider/Techno Tower translucent room
    5. ROM:00891D7E                 dc.l sub_89F28E         ; 12
    6. ROM:00891D82                 dc.l sub_893010         ; 16
    7. ROM:00891D86                 dc.l nullsub_4          ; 20
    8. ROM:00891D8A                 dc.l sub_89ED82         ; 24
    9. ROM:00891D8E                 dc.l sub_89DD98         ; 28 = Amazing Arena transport UFO
    10. ROM:00891D92                 dc.l sub_8A69F8         ; 32 = Techno Tower conveyor belt machine
    11. ROM:00891D96                 dc.l sub_89209E         ; 36 = ring sets
    12. ROM:00891D9A                 dc.l sub_892364         ; 40
    13. ROM:00891D9E                 dc.l sub_892606         ; 44
    14. ROM:00891DA2                 dc.l sub_8927CC         ; 48 = big ring to bonus stage
    15. ROM:00891DA6                 dc.l sub_89DA32         ; 52 = Amazing Arena large springs
    16. ROM:00891DAA                 dc.l sub_89DAE0         ; 56
    17. ROM:00891DAE                 dc.l sub_89DD48         ; 60
    18. ROM:00891DB2                 dc.l sub_89D872         ; 64
    19. ROM:00891DB6                 dc.l sub_89D9F0         ; 68 = end of Amazing Arena transport tubes
    20. ROM:00891DBA                 dc.l sub_89D9AE         ; 72
    21. ROM:00891DBE                 dc.l sub_89D8FE         ; 76
    22. ROM:00891DC2                 dc.l sub_89D778         ; 80
    23. ROM:00891DC6                 dc.l sub_8A3BBA         ; 84 = spikes
    24. ROM:00891DCA                 dc.l sub_8A3BBA         ; 88
    25. ROM:00891DCE                 dc.l sub_8A3BBA         ; 92
    26. ROM:00891DD2                 dc.l sub_8A3BBA         ; 96
    27. ROM:00891DD6                 dc.l sub_897F96         ; 100
    28. ROM:00891DDA                 dc.l sub_8980A8         ; 104
    29. ROM:00891DDE                 dc.l sub_8981BA         ; 108
    30. ROM:00891DE2                 dc.l sub_8982EA         ; 112 = Botanic Base (only?) button
    31. ROM:00891DE6                 dc.l sub_8929B8         ; 116
    32. ROM:00891DEA                 dc.l sub_892AAC         ; 120
    33. ROM:00891DEE                 dc.l nullsub_7          ; 124
    34. ROM:00891DF2                 dc.l sub_892B3E         ; 128
    35. ROM:00891DF6                 dc.l sub_898B42         ; 132 = Techno Tower elevator
    36. ROM:00891DFA                 dc.l sub_897E48         ; 136
    37. ROM:00891DFE                 dc.l sub_896F9A         ; 140 = Techno Tower one way door?
    38. ROM:00891E02                 dc.l sub_897128         ; 144
    39. ROM:00891E06                 dc.l sub_8957D2         ; 148
    40. ROM:00891E0A                 dc.l sub_89AC12         ; 152 = Isolated Island Introduction 2 player grabber thing
    41. ROM:00891E0E                 dc.l sub_89AD3C         ; 156 = Isolated Island dissolving platform
    42. ROM:00891E12                 dc.l sub_896DBA         ; 160 = Botanic Base button-activated door
    43. ROM:00891E16                 dc.l sub_896EB2         ; 164
    44. ROM:00891E1A                 dc.l sub_8A4358         ; 168 = Botanic Base Badnik 3
    45. ROM:00891E1E                 dc.l sub_896972         ; 172
    46. ROM:00891E22                 dc.l sub_896B36         ; 176
    47. ROM:00891E26                 dc.l sub_896CD2         ; 180
    48. ROM:00891E2A                 dc.l sub_898422         ; 184 = Botanic Base dissolving platform
    49. ROM:00891E2E                 dc.l nullsub_8          ; 188
    50. ROM:00891E32                 dc.l nullsub_8          ; 192
    51. ROM:00891E36                 dc.l nullsub_8          ; 196
    52. ROM:00891E3A                 dc.l sub_8A1B44         ; 200 = Kameka
    53. ROM:00891E3E                 dc.l sub_8A1D16         ; 204
    54. ROM:00891E42                 dc.l sub_8A36E2         ; 208
    55. ROM:00891E46                 dc.l sub_892096         ; 212
    56. ROM:00891E4A                 dc.l sub_8A21B0         ; 216
    57. ROM:00891E4E                 dc.l sub_892096         ; 220
    58. ROM:00891E52                 dc.l sub_8A4094         ; 224 = Marina Madness Badnik 1
    59. ROM:00891E56                 dc.l sub_892096         ; 228
    60. ROM:00891E5A                 dc.l sub_89C69A         ; 232 = Techno Tower Badnik 1
    61. ROM:00891E5E                 dc.l sub_89C8CC         ; 236 = Carry
    62. ROM:00891E62                 dc.l sub_8A9CF6         ; 240
    63. ROM:00891E66                 dc.l sub_89A5DC         ; 244 = Isolated Island player hologram switch for opening door
    64. ROM:00891E6A                 dc.l sub_89A756         ; 248
    65. ROM:00891E6E                 dc.l sub_89A812         ; 252 = Isolated Island partner hologram switch for opening door
    66. ROM:00891E72                 dc.l sub_89B0C2         ; 256 = Isolated Island rising platform
    67. ROM:00891E76                 dc.l sub_8A0834         ; 260
    68. ROM:00891E7A                 dc.l sub_89CE94         ; 264
    69. ROM:00891E7E                 dc.l sub_894788         ; 268 = monitor
    70. ROM:00891E82                 dc.l sub_8B4A68         ; 272
    71. ROM:00891E86                 dc.l sub_8BCB82         ; 276
    72. ROM:00891E8A                 dc.l sub_898932         ; 280 = translucent corridor to big ring for bonuss stage?
    73. ROM:00891E8E                 dc.l sub_892096         ; 284
    74. ROM:00891E92                 dc.l sub_899350         ; 288
    75. ROM:00891E96                 dc.l sub_899494         ; 292
    76. ROM:00891E9A                 dc.l sub_8994CC         ; 296
    77. ROM:00891E9E                 dc.l sub_899DD0         ; 300
    78. ROM:00891EA2                 dc.l sub_899F3C         ; 304
    79. ROM:00891EA6                 dc.l sub_89BFD6         ; 308 = Zakku
    80. ROM:00891EAA                 dc.l sub_89996E         ; 312
    81. ROM:00891EAE                 dc.l sub_899CF6         ; 316
    82. ROM:00891EB2                 dc.l sub_8984F6         ; 320 = Speed Slider/Amazing Arena/Techno Tower dissolving platform
    83. ROM:00891EB6                 dc.l sub_898604         ; 324 = Speed Slider/Techno Tower button/switch-activated dissolving platform
    84. ROM:00891EBA                 dc.l sub_89BC86         ; 328
    85. ROM:00891EBE                 dc.l sub_89BD5A         ; 332
    86. ROM:00891EC2                 dc.l sub_89BE2E         ; 336
    87. ROM:00891EC6                 dc.l sub_89BF02         ; 340
    88. ROM:00891ECA                 dc.l sub_8A1988         ; 344 = Patabata
    89. ROM:00891ECE                 dc.l sub_89742C         ; 348
    90. ROM:00891ED2                 dc.l sub_895014         ; 352
    91. ROM:00891ED6                 dc.l sub_89AE1C         ; 356 = spring
    92. ROM:00891EDA                 dc.l sub_892096         ; 360
    93. ROM:00891EDE                 dc.l sub_892096         ; 364
    94. ROM:00891EE2                 dc.l sub_8A4B3E         ; 368
    95. ROM:00891EE6                 dc.l sub_89D408         ; 372 = beginning of Amazing Arena transport tubes
    96. ROM:00891EEA                 dc.l sub_89D05E         ; 376
    97. ROM:00891EEE                 dc.l sub_89CAA4         ; 380
    98. ROM:00891EF2                 dc.l sub_89CD3A         ; 384
    99. ROM:00891EF6                 dc.l sub_89CE5A         ; 388
    100. ROM:00891EFA                 dc.l sub_89C558         ; 392
    101. ROM:00891EFE                 dc.l sub_89C418         ; 396
    102. ROM:00891F02                 dc.l sub_89C4FE         ; 400
    103. ROM:00891F06                 dc.l sub_894CA0         ; 404 = Botanic Base Badnik 1
    104. ROM:00891F0A                 dc.l sub_894F88         ; 408
    105. ROM:00891F0E                 dc.l sub_894FCE         ; 412
    106. ROM:00891F12                 dc.l sub_8950CE         ; 416
    107. ROM:00891F16                 dc.l nullsub_12         ; 420
    108. ROM:00891F1A                 dc.l sub_8955B0         ; 424
    109. ROM:00891F1E                 dc.l sub_89529C         ; 428 = Happa
    110. ROM:00891F22                 dc.l sub_8A4CD4         ; 432 = Pirani
    111. ROM:00891F26                 dc.l sub_8950FA         ; 436
    112. ROM:00891F2A                 dc.l sub_8950CE         ; 440
    113. ROM:00891F2E                 dc.l sub_8A4E86         ; 444 = Marina Madness Badnik 3
    114. ROM:00891F32                 dc.l sub_895660         ; 448
    115. ROM:00891F36                 dc.l sub_895728         ; 452
    116. ROM:00891F3A                 dc.l sub_890610         ; 456 = signpost
    117. ROM:00891F3E                 dc.l sub_89A21A         ; 460
    118. ROM:00891F42                 dc.l sub_89A3E6         ; 464
    119. ROM:00891F46                 dc.l sub_89A472         ; 468 = Isolated Island platform badnik from Tutorial 3
    120. ROM:00891F4A                 dc.l sub_89AAAE         ; 472 = Isolated Island door
    121. ROM:00891F4E                 dc.l sub_8A41E0         ; 476 = Marina Madness Badnik 2
    122. ROM:00891F52                 dc.l sub_89A9A2         ; 480 = Isolated Island partner hologram switch for rising platform
    123. ROM:00891F56                 dc.l sub_895C7A         ; 484 = Speed Slider spike ball
    124. ROM:00891F5A                 dc.l sub_895E1A         ; 488
    125. ROM:00891F5E                 dc.l sub_895FC8         ; 492
    126. ROM:00891F62                 dc.l sub_8960DC         ; 496
    127. ROM:00891F66                 dc.l sub_896140         ; 500
    128. ROM:00891F6A                 dc.l sub_892096         ; 504
    129. ROM:00891F6E                 dc.l sub_892096         ; 508
    130. ROM:00891F72                 dc.l sub_892096         ; 512
    131. ROM:00891F76                 dc.l sub_892096         ; 516
    132. ROM:00891F7A                 dc.l sub_892096         ; 520
    133. ROM:00891F7E                 dc.l sub_89618A         ; 524
    134. ROM:00891F82                 dc.l sub_892096         ; 528
    135. ROM:00891F86                 dc.l sub_896312         ; 532
    136. ROM:00891F8A                 dc.l sub_8963A8         ; 536 = Botanic Base transport pod
    137. ROM:00891F8E                 dc.l sub_892096         ; 540
    138. ROM:00891F92                 dc.l sub_89B2E4         ; 544
    139. ROM:00891F96                 dc.l sub_8A50A0         ; 548 = Botanic Base back room door
    140. ROM:00891F9A                 dc.l sub_897CBA         ; 552 = Botanic base transport pod docks
    141. ROM:00891F9E                 dc.l sub_897D08         ; 556
    142. ROM:00891FA2                 dc.l sub_897E06         ; 560
    143. ROM:00891FA6                 dc.l sub_8A5720         ; 564
    144. ROM:00891FAA                 dc.l sub_8A5BBA         ; 568
    145. ROM:00891FAE                 dc.l sub_89FA9A         ; 572
    146. ROM:00891FB2                 dc.l sub_89FB6E         ; 576
    147. ROM:00891FB6                 dc.l sub_89FC42         ; 580
    148. ROM:00891FBA                 dc.l sub_89FD16         ; 584
    149. ROM:00891FBE                 dc.l sub_89F982         ; 588
    150. ROM:00891FC2                 dc.l sub_898A66         ; 592
    151. ROM:00891FC6                 dc.l sub_89B3F6         ; 596
    152. ROM:00891FCA                 dc.l sub_89FDEA         ; 600 = Speed Slider small elevator (with door)
    153. ROM:00891FCE                 dc.l sub_897E86         ; 604
    154. ROM:00891FD2                 dc.l sub_897EBE         ; 608
    155. ROM:00891FD6                 dc.l sub_8A3D26         ; 612 = Speed Slider balloons
    156. ROM:00891FDA                 dc.l sub_8A01F0         ; 616 = Speed Slider bell
    157. ROM:00891FDE                 dc.l sub_8A3F1A         ; 620 = Speed Slider underground spring that launches you after standing above it for a few seconds
    158. ROM:00891FE2                 dc.l sub_8A6B3E         ; 624 = World Entrance doorways
    159. ROM:00891FE6                 dc.l sub_8A6BD0         ; 628 = Bosses (including Amazing Arena subboss); World Entrance objects
    160. ROM:00891FEA                 dc.l sub_8A4572         ; 632
    161. ROM:00891FEE                 dc.l sub_8A4688         ; 636 = Nishita
    162. ROM:00891FF2                 dc.l sub_8A04C0         ; 640 = Amazing Arena Badnik 2
    163. ROM:00891FF6                 dc.l sub_8A066E         ; 644 = Balru
    164. ROM:00891FFA                 dc.l sub_8A479E         ; 648 = Botanic Base Badnik 2
    165. ROM:00891FFE                 dc.l sub_8B6258         ; 652 = Juppun
    166. ROM:00892002                 dc.l sub_8B6186         ; 656 = Amazing Arena Badnik 1
    167. ROM:00892006                 dc.l sub_8A1474         ; 660
    168. ROM:0089200A                 dc.l sub_8A1586         ; 664 = Techno Tower Badnik 3
    169. ROM:0089200E                 dc.l sub_8A1884         ; 668
    170. ROM:00892012                 dc.l sub_892096         ; 672
    171. ROM:00892016                 dc.l sub_892096         ; 676
    172. ROM:0089201A                 dc.l sub_8A1E10         ; 680 = Uniformer
    173. ROM:0089201E                 dc.l sub_8A20E0         ; 684
    174. ROM:00892022                 dc.l sub_8A0AC4         ; 688 = Techno Tower Badnik 2
    175. ROM:00892026                 dc.l sub_8A0DB6         ; 692
    176. ROM:0089202A                 dc.l sub_8A0E94         ; 696
    177. ROM:0089202E                 dc.l sub_8A1084         ; 700
    178. ROM:00892032                 dc.l sub_8A228E         ; 704 = Gotch
    179. ROM:00892036                 dc.l sub_8A2690         ; 708
    180. ROM:0089203A                 dc.l sub_8A2798         ; 712 = Dribbler
    181. ROM:0089203E                 dc.l sub_8A2A00         ; 716
    182. ROM:00892042                 dc.l sub_8A2BF0         ; 720
    183. ROM:00892046                 dc.l sub_892096         ; 724
    184. ROM:0089204A                 dc.l sub_8A2CC8         ; 728
    185. ROM:0089204E                 dc.l sub_8A31A2         ; 732
    186. ROM:00892052                 dc.l sub_897660         ; 736
    187. ROM:00892056                 dc.l sub_892096         ; 740
    188. ROM:0089205A                 dc.l sub_892096         ; 744
    189. ROM:0089205E                 dc.l sub_892096         ; 748
    190. ROM:00892062                 dc.l sub_8977A4         ; 752
    191. ROM:00892066                 dc.l sub_897AFA         ; 756
    192. ROM:0089206A                 dc.l sub_8A3388         ; 760
    193. ROM:0089206E                 dc.l sub_8A3414         ; 764
    194. ROM:00892072                 dc.l sub_89E7F0         ; 768
    195. ROM:00892076                 dc.l sub_8A3562         ; 772
    196. ROM:0089207A                 dc.l sub_8A3904         ; 776
    197. ROM:0089207E                 dc.l sub_892096         ; 780
    198. ROM:00892082                 dc.l sub_892096         ; 784
    199. ROM:00892086                 dc.l sub_8A3A64         ; 788 = Tutorial marker flowers
    200. ROM:0089208A                 dc.l sub_892096         ; 792
    201. ROM:0089208E                 dc.l sub_892096         ; 796
    202. ROM:00892092                 dc.l sub_8A4A0E         ; 800
    2. By request, here is what I know about how the game loads objects:

    At the beginning of a level and at each iteration of the level loop, the following function is called to load up the objects within a certain extent of the current location on screen. The game destroys objects that are off screen (which is why if you scroll far in debug mode the objects disappear for a while). The repeated calls to AllocOST thus create a linked list of level objects starting at $FFFFE02C, with each first word in the $40-byte OST pointing to the next object.

    Code (ASM):
    1. ROM:008B168A ; =============== S U B R O U T I N E =======================================
    2. ROM:008B168A
    3. ROM:008B168A
    4. ROM:008B168A LoadVisibleObjects:                     ; CODE XREF: sub_8B1660+16p
    5. ROM:008B168A                                         ; sub_8B167C+8p
    6. ROM:008B168A                 movea.l ($FFFFE09C).w,a6
    7. ROM:008B168E                 lea     ($FFFFE0A2).w,a1
    8. ROM:008B1692                 moveq   #0,d0
    9. ROM:008B1694                 moveq   #0,d1
    10. ROM:008B1696                 move.b  ($FFFFE0A0).l,d1
    11. ROM:008B169C
    12. ROM:008B169C loc_8B169C:                             ; CODE XREF: LoadVisibleObjects+80j
    13. ROM:008B169C                 move.b  (a1,d1.w),d2
    14. ROM:008B16A0                 cmpi.b  #$FF,d2
    15. ROM:008B16A4                 beq.s   locret_8B170E
    16. ROM:008B16A6                 andi.b  #$F,d2
    17. ROM:008B16AA                 cmpi.b  #2,d2
    18. ROM:008B16AE                 bne.s   loc_8B1708
    19. ROM:008B16B0                 move.w  d1,d4
    20. ROM:008B16B2                 lsl.w   #3,d4
    21. ROM:008B16B4                 movem.w (a6,d4.w),d2-d5
    22. ROM:008B16BA                 move.w  d2,d0
    23. ROM:008B16BC                 move.w  ($FFFFE08C).w,d6
    24. ROM:008B16C0                 move.w  ($FFFFE090).w,d7
    25. ROM:008B16C4                 sub.w   d6,d0
    26. ROM:008B16C6                 sub.w   d6,d7
    27. ROM:008B16C8                 cmp.w   d0,d7
    28. ROM:008B16CA                 bcs.s   locret_8B170E
    29. ROM:008B16CC                 move.w  d3,d0
    30. ROM:008B16CE                 move.w  ($FFFFE08E).w,d6
    31. ROM:008B16D2                 move.w  ($FFFFE092).w,d7
    32. ROM:008B16D6                 sub.w   d6,d0
    33. ROM:008B16D8                 sub.w   d6,d7
    34. ROM:008B16DA                 cmp.w   d0,d7
    35. ROM:008B16DC                 bcs.s   loc_8B1708
    36. ROM:008B16DE                 moveq   #6,d0
    37. ROM:008B16E0                 jsr     AllocOST
    38. ROM:008B16E6                 bmi.s   loc_8B1708
    39. ROM:008B16E8                 move.w  d4,6(a0)
    40. ROM:008B16EC                 move.w  d2,8(a0)
    41. ROM:008B16F0                 move.w  d3,$C(a0)
    42. ROM:008B16F4                 move.w  d1,$24(a0)
    43. ROM:008B16F8                 move.w  d5,$28(a0)
    44. ROM:008B16FC                 moveq   #$FFFFFFF0,d2
    45. ROM:008B16FE                 and.b   (a1,d1.w),d2
    46. ROM:008B1702                 addq.b  #1,d2
    47. ROM:008B1704                 move.b  d2,(a1,d1.w)
    48. ROM:008B1708
    49. ROM:008B1708 loc_8B1708:                             ; CODE XREF: LoadVisibleObjects+24j
    50. ROM:008B1708                                         ; LoadVisibleObjects+52j ...
    51. ROM:008B1708                 addq.b  #1,d1
    52. ROM:008B170A                 bra.w   loc_8B169C
    53. ROM:008B170E ; ---------------------------------------------------------------------------
    54. ROM:008B170E
    55. ROM:008B170E locret_8B170E:                          ; CODE XREF: LoadVisibleObjects+1Aj
    56. ROM:008B170E                                         ; LoadVisibleObjects+40j
    57. ROM:008B170E                 rts
    58. ROM:008B170E ; End of function LoadVisibleObjects
    Then the following function is called to execute the code for each object. The objects themselves are state machines which run a single state per level loop iteration.

    Code (ASM):
    1. ROM:00891D2A ; =============== S U B R O U T I N E =======================================
    2. ROM:00891D2A
    3. ROM:00891D2A
    4. ROM:00891D2A DoObjectActions:                        ; CODE XREF: DoGameMode+1AD4p
    5. ROM:00891D2A                                         ; sub_8B192A+14Ep ...
    6. ROM:00891D2A                 clr.b   ($FFFFFEC3).l
    7. ROM:00891D30                 lea     ($FFFFE02C).w,a6
    8. ROM:00891D34
    9. ROM:00891D34 loc_891D34:                             ; CODE XREF: DoObjectActions+2Ej
    10. ROM:00891D34                 move.w  0(a6),d0
    11. ROM:00891D38                 bne.s   loc_891D46
    12. ROM:00891D3A                 move.b  ($FFFFFEC3).l,($FFFFFEC2).l
    13. ROM:00891D44                 rts
    14. ROM:00891D46 ; ---------------------------------------------------------------------------
    15. ROM:00891D46
    16. ROM:00891D46 loc_891D46:                             ; CODE XREF: DoObjectActions+Ej
    17. ROM:00891D46                 movea.w d0,a6
    18. ROM:00891D48                 moveq   #0,d0
    19. ROM:00891D4A                 move.w  6(a6),d0
    20. ROM:00891D4E                 lea     ObjectActions,a0
    21. ROM:00891D52                 adda.w  d0,a0
    22. ROM:00891D54                 movea.l (a0),a0
    23. ROM:00891D56                 jsr     (a0)
    24. ROM:00891D58                 bra.s   loc_891D34
    25. ROM:00891D58 ; End of function DoObjectActions
     
  7. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    After examining all the objects that the game loads, I now have a near final object list:

    Code (ASM):
    1. ROM:00891D72 ObjectActions:  dc.l sub_89F884         ; DATA XREF: DoObjectActions+24o
    2. ROM:00891D72                                         ; 0
    3. ROM:00891D76                 dc.l sub_89F5A6         ; 4
    4. ROM:00891D7A                 dc.l sub_8989CC         ; 8 = Speed Slider/Techno Tower translucent room
    5. ROM:00891D7E                 dc.l sub_89F28E         ; 12
    6. ROM:00891D82                 dc.l sub_893010         ; 16
    7. ROM:00891D86                 dc.l nullsub_4          ; 20
    8. ROM:00891D8A                 dc.l sub_89ED82         ; 24
    9. ROM:00891D8E                 dc.l sub_89DD98         ; 28 = Amazing Arena transport UFO
    10. ROM:00891D92                 dc.l sub_8A69F8         ; 32 = Techno Tower conveyor belt machine
    11. ROM:00891D96                 dc.l sub_89209E         ; 36 = ring sets
    12. ROM:00891D9A                 dc.l sub_892364         ; 40
    13. ROM:00891D9E                 dc.l sub_892606         ; 44
    14. ROM:00891DA2                 dc.l sub_8927CC         ; 48 = big ring to bonus stage
    15. ROM:00891DA6                 dc.l sub_89DA32         ; 52 = Amazing Arena large springs
    16. ROM:00891DAA                 dc.l sub_89DAE0         ; 56
    17. ROM:00891DAE                 dc.l sub_89DD48         ; 60
    18. ROM:00891DB2                 dc.l sub_89D872         ; 64
    19. ROM:00891DB6                 dc.l sub_89D9F0         ; 68 = end of Amazing Arena transport pipes
    20. ROM:00891DBA                 dc.l sub_89D9AE         ; 72
    21. ROM:00891DBE                 dc.l sub_89D8FE         ; 76
    22. ROM:00891DC2                 dc.l sub_89D778         ; 80 = beginning of Amazing Arena transport pipes
    23. ROM:00891DC6                 dc.l sub_8A3BBA         ; 84 = spikes facing up
    24. ROM:00891DCA                 dc.l sub_8A3BBA         ; 88 = spikes facing down
    25. ROM:00891DCE                 dc.l sub_8A3BBA         ; 92 = spikes facing right
    26. ROM:00891DD2                 dc.l sub_8A3BBA         ; 96 = spikes facing left
    27. ROM:00891DD6                 dc.l sub_897F96         ; 100
    28. ROM:00891DDA                 dc.l sub_8980A8         ; 104
    29. ROM:00891DDE                 dc.l sub_8981BA         ; 108 = Botanic Base (only?) button
    30. ROM:00891DE2                 dc.l sub_8982EA         ; 112 = Botanic Base (only?) button
    31. ROM:00891DE6                 dc.l sub_8929B8         ; 116
    32. ROM:00891DEA                 dc.l sub_892AAC         ; 120
    33. ROM:00891DEE                 dc.l nullsub_7          ; 124
    34. ROM:00891DF2                 dc.l sub_892B3E         ; 128
    35. ROM:00891DF6                 dc.l sub_898B42         ; 132 = Techno Tower elevator
    36. ROM:00891DFA                 dc.l sub_897E48         ; 136
    37. ROM:00891DFE                 dc.l sub_896F9A         ; 140 = Techno Tower one way door pointing right
    38. ROM:00891E02                 dc.l sub_897128         ; 144 = Techno Tower one way door pointing left
    39. ROM:00891E06                 dc.l sub_8957D2         ; 148
    40. ROM:00891E0A                 dc.l sub_89AC12         ; 152 = Isolated Island player grabber
    41. ROM:00891E0E                 dc.l sub_89AD3C         ; 156 = Isolated Island dissolving platform
    42. ROM:00891E12                 dc.l sub_896DBA         ; 160 = Botanic Base button-activated door
    43. ROM:00891E16                 dc.l sub_896EB2         ; 164
    44. ROM:00891E1A                 dc.l sub_8A4358         ; 168 = Botanic Base Badnik 3
    45. ROM:00891E1E                 dc.l sub_896972         ; 172 = Botanic Base 2 auto-opening two way door
    46. ROM:00891E22                 dc.l sub_896B36         ; 176 = Botanic Base 1 auto-opening two way door
    47. ROM:00891E26                 dc.l sub_896CD2         ; 180
    48. ROM:00891E2A                 dc.l sub_898422         ; 184 = Botanic Base dissolving platform
    49. ROM:00891E2E                 dc.l nullsub_8          ; 188
    50. ROM:00891E32                 dc.l nullsub_8          ; 192
    51. ROM:00891E36                 dc.l nullsub_8          ; 196
    52. ROM:00891E3A                 dc.l sub_8A1B44         ; 200 = Kameka
    53. ROM:00891E3E                 dc.l sub_8A1D16         ; 204
    54. ROM:00891E42                 dc.l sub_8A36E2         ; 208
    55. ROM:00891E46                 dc.l sub_892096         ; 212
    56. ROM:00891E4A                 dc.l sub_8A21B0         ; 216 = Techno Tower shrinking/growing platforms
    57. ROM:00891E4E                 dc.l sub_892096         ; 220
    58. ROM:00891E52                 dc.l sub_8A4094         ; 224 = Marina Madness Badnik 1
    59. ROM:00891E56                 dc.l sub_892096         ; 228
    60. ROM:00891E5A                 dc.l sub_89C69A         ; 232 = Techno Tower Badnik 1
    61. ROM:00891E5E                 dc.l sub_89C8CC         ; 236 = Carry
    62. ROM:00891E62                 dc.l sub_8A9CF6         ; 240
    63. ROM:00891E66                 dc.l sub_89A5DC         ; 244 = Isolated Island player hologram switch for opening door
    64. ROM:00891E6A                 dc.l sub_89A756         ; 248
    65. ROM:00891E6E                 dc.l sub_89A812         ; 252 = Isolated Island partner hologram switch for opening door
    66. ROM:00891E72                 dc.l sub_89B0C2         ; 256 = Isolated Island rising platform
    67. ROM:00891E76                 dc.l sub_8A0834         ; 260 = Botanic Base door that collapses into a platform
    68. ROM:00891E7A                 dc.l sub_89CE94         ; 264
    69. ROM:00891E7E                 dc.l sub_894788         ; 268 = monitor
    70. ROM:00891E82                 dc.l sub_8B4A68         ; 272
    71. ROM:00891E86                 dc.l sub_8BCB82         ; 276
    72. ROM:00891E8A                 dc.l sub_898932         ; 280 = translucent corridor to big ring for bonuss stage?
    73. ROM:00891E8E                 dc.l sub_892096         ; 284
    74. ROM:00891E92                 dc.l sub_899350         ; 288 = Techno Tower hoop-like player holder
    75. ROM:00891E96                 dc.l sub_899494         ; 292
    76. ROM:00891E9A                 dc.l sub_8994CC         ; 296 = Techno Tower transporting drill
    77. ROM:00891E9E                 dc.l sub_899DD0         ; 300
    78. ROM:00891EA2                 dc.l sub_899F3C         ; 304 = Techno Tower large floating platforms propelled by fans
    79. ROM:00891EA6                 dc.l sub_89BFD6         ; 308 = Zakku
    80. ROM:00891EAA                 dc.l sub_89996E         ; 312 = Techno Tower claw
    81. ROM:00891EAE                 dc.l sub_899CF6         ; 316
    82. ROM:00891EB2                 dc.l sub_8984F6         ; 320 = Speed Slider/Amazing Arena/Techno Tower dissolving platform
    83. ROM:00891EB6                 dc.l sub_898604         ; 324 = Speed Slider/Techno Tower button/switch-activated dissolving platform
    84. ROM:00891EBA                 dc.l sub_89BC86         ; 328
    85. ROM:00891EBE                 dc.l sub_89BD5A         ; 332
    86. ROM:00891EC2                 dc.l sub_89BE2E         ; 336
    87. ROM:00891EC6                 dc.l sub_89BF02         ; 340
    88. ROM:00891ECA                 dc.l sub_8A1988         ; 344 = Patabata
    89. ROM:00891ECE                 dc.l sub_89742C         ; 348 = Marina Madness button-activated door
    90. ROM:00891ED2                 dc.l sub_895014         ; 352
    91. ROM:00891ED6                 dc.l sub_89AE1C         ; 356 = spring
    92. ROM:00891EDA                 dc.l sub_892096         ; 360
    93. ROM:00891EDE                 dc.l sub_892096         ; 364
    94. ROM:00891EE2                 dc.l sub_8A4B3E         ; 368 = spring that always points up
    95. ROM:00891EE6                 dc.l sub_89D408         ; 372 = suction for Amazing Arena transport pipes
    96. ROM:00891EEA                 dc.l sub_89D05E         ; 376 = top of Speed Slider one way door
    97. ROM:00891EEE                 dc.l sub_89CAA4         ; 380
    98. ROM:00891EF2                 dc.l sub_89CD3A         ; 384
    99. ROM:00891EF6                 dc.l sub_89CE5A         ; 388
    100. ROM:00891EFA                 dc.l sub_89C558         ; 392
    101. ROM:00891EFE                 dc.l sub_89C418         ; 396
    102. ROM:00891F02                 dc.l sub_89C4FE         ; 400
    103. ROM:00891F06                 dc.l sub_894CA0         ; 404 = Botanic Base Badnik 1
    104. ROM:00891F0A                 dc.l sub_894F88         ; 408
    105. ROM:00891F0E                 dc.l sub_894FCE         ; 412
    106. ROM:00891F12                 dc.l sub_8950CE         ; 416
    107. ROM:00891F16                 dc.l nullsub_12         ; 420
    108. ROM:00891F1A                 dc.l sub_8955B0         ; 424
    109. ROM:00891F1E                 dc.l sub_89529C         ; 428 = Happa
    110. ROM:00891F22                 dc.l sub_8A4CD4         ; 432 = Pirani
    111. ROM:00891F26                 dc.l sub_8950FA         ; 436
    112. ROM:00891F2A                 dc.l sub_8950CE         ; 440
    113. ROM:00891F2E                 dc.l sub_8A4E86         ; 444 = Marina Madness Badnik 3
    114. ROM:00891F32                 dc.l sub_895660         ; 448
    115. ROM:00891F36                 dc.l sub_895728         ; 452
    116. ROM:00891F3A                 dc.l sub_890610         ; 456 = signpost
    117. ROM:00891F3E                 dc.l sub_89A21A         ; 460 = Techno Tower giant spring
    118. ROM:00891F42                 dc.l sub_89A3E6         ; 464
    119. ROM:00891F46                 dc.l sub_89A472         ; 468 = Isolated Island platform badnik from Tutorial 3
    120. ROM:00891F4A                 dc.l sub_89AAAE         ; 472 = Isolated Island door
    121. ROM:00891F4E                 dc.l sub_8A41E0         ; 476 = Marina Madness Badnik 2
    122. ROM:00891F52                 dc.l sub_89A9A2         ; 480 = Isolated Island partner hologram switch for rising platform
    123. ROM:00891F56                 dc.l sub_895C7A         ; 484 = Speed Slider spike ball
    124. ROM:00891F5A                 dc.l sub_895E1A         ; 488
    125. ROM:00891F5E                 dc.l sub_895FC8         ; 492
    126. ROM:00891F62                 dc.l sub_8960DC         ; 496
    127. ROM:00891F66                 dc.l sub_896140         ; 500
    128. ROM:00891F6A                 dc.l sub_892096         ; 504
    129. ROM:00891F6E                 dc.l sub_892096         ; 508
    130. ROM:00891F72                 dc.l sub_892096         ; 512
    131. ROM:00891F76                 dc.l sub_892096         ; 516
    132. ROM:00891F7A                 dc.l sub_892096         ; 520
    133. ROM:00891F7E                 dc.l sub_89618A         ; 524
    134. ROM:00891F82                 dc.l sub_892096         ; 528
    135. ROM:00891F86                 dc.l sub_896312         ; 532
    136. ROM:00891F8A                 dc.l sub_8963A8         ; 536 = Botanic Base transport pod
    137. ROM:00891F8E                 dc.l sub_892096         ; 540
    138. ROM:00891F92                 dc.l sub_89B2E4         ; 544 = invisible top-solid object for Marina Madness ferry decks for anchored ferries
    139. ROM:00891F96                 dc.l sub_8A50A0         ; 548 = Botanic Base back room door
    140. ROM:00891F9A                 dc.l sub_897CBA         ; 552 = Botanic base transport pod docks
    141. ROM:00891F9E                 dc.l sub_897D08         ; 556
    142. ROM:00891FA2                 dc.l sub_897E06         ; 560
    143. ROM:00891FA6                 dc.l sub_8A5720         ; 564 = button that moves the Marina Madness ferry
    144. ROM:00891FAA                 dc.l sub_8A5BBA         ; 568
    145. ROM:00891FAE                 dc.l sub_89FA9A         ; 572
    146. ROM:00891FB2                 dc.l sub_89FB6E         ; 576
    147. ROM:00891FB6                 dc.l sub_89FC42         ; 580
    148. ROM:00891FBA                 dc.l sub_89FD16         ; 584
    149. ROM:00891FBE                 dc.l sub_89F982         ; 588
    150. ROM:00891FC2                 dc.l sub_898A66         ; 592
    151. ROM:00891FC6                 dc.l sub_89B3F6         ; 596 = invisible top-solid object for Marina Madness ferry decks for transport ferries
    152. ROM:00891FCA                 dc.l sub_89FDEA         ; 600 = Speed Slider small elevator (with door)
    153. ROM:00891FCE                 dc.l sub_897E86         ; 604
    154. ROM:00891FD2                 dc.l sub_897EBE         ; 608
    155. ROM:00891FD6                 dc.l sub_8A3D26         ; 612 = Speed Slider balloons
    156. ROM:00891FDA                 dc.l sub_8A01F0         ; 616 = Speed Slider bell
    157. ROM:00891FDE                 dc.l sub_8A3F1A         ; 620 = Speed Slider underground spring that launches you after standing above it for a few seconds
    158. ROM:00891FE2                 dc.l sub_8A6B3E         ; 624 = World Entrance doorways
    159. ROM:00891FE6                 dc.l sub_8A6BD0         ; 628 = Bosses (including Amazing Arena subboss); World Entrance objects
    160. ROM:00891FEA                 dc.l sub_8A4572         ; 632 = wall-climbing Nishita
    161. ROM:00891FEE                 dc.l sub_8A4688         ; 636 = ceiling-scaling Nishita
    162. ROM:00891FF2                 dc.l sub_8A04C0         ; 640 = Amazing Arena Badnik 2
    163. ROM:00891FF6                 dc.l sub_8A066E         ; 644 = Balru
    164. ROM:00891FFA                 dc.l sub_8A479E         ; 648 = Botanic Base Badnik 2
    165. ROM:00891FFE                 dc.l sub_8B6258         ; 652 = Juppun
    166. ROM:00892002                 dc.l sub_8B6186         ; 656 = Amazing Arena Badnik 1
    167. ROM:00892006                 dc.l sub_8A1474         ; 660 = electrified Happa
    168. ROM:0089200A                 dc.l sub_8A1586         ; 664 = Techno Tower Badnik 3
    169. ROM:0089200E                 dc.l sub_8A1884         ; 668
    170. ROM:00892012                 dc.l sub_892096         ; 672
    171. ROM:00892016                 dc.l sub_892096         ; 676
    172. ROM:0089201A                 dc.l sub_8A1E10         ; 680 = Uniformer
    173. ROM:0089201E                 dc.l sub_8A20E0         ; 684
    174. ROM:00892022                 dc.l sub_8A0AC4         ; 688 = Techno Tower Badnik 2
    175. ROM:00892026                 dc.l sub_8A0DB6         ; 692
    176. ROM:0089202A                 dc.l sub_8A0E94         ; 696
    177. ROM:0089202E                 dc.l sub_8A1084         ; 700
    178. ROM:00892032                 dc.l sub_8A228E         ; 704 = Gotch
    179. ROM:00892036                 dc.l sub_8A2690         ; 708
    180. ROM:0089203A                 dc.l sub_8A2798         ; 712 = Dribbler
    181. ROM:0089203E                 dc.l sub_8A2A00         ; 716
    182. ROM:00892042                 dc.l sub_8A2BF0         ; 720
    183. ROM:00892046                 dc.l sub_892096         ; 724
    184. ROM:0089204A                 dc.l sub_8A2CC8         ; 728 = Speed Slider one way door
    185. ROM:0089204E                 dc.l sub_8A31A2         ; 732 = Speed Slider small through-the-wall transport bowl
    186. ROM:00892052                 dc.l sub_897660         ; 736 = Botanic Base (3?) button-activated one way door
    187. ROM:00892056                 dc.l sub_892096         ; 740
    188. ROM:0089205A                 dc.l sub_892096         ; 744
    189. ROM:0089205E                 dc.l sub_892096         ; 748
    190. ROM:00892062                 dc.l sub_8977A4         ; 752 = Amazing Arena button-activated door
    191. ROM:00892066                 dc.l sub_897AFA         ; 756 = Amazing Arena double-size button-activated door
    192. ROM:0089206A                 dc.l sub_8A3388         ; 760
    193. ROM:0089206E                 dc.l sub_8A3414         ; 764
    194. ROM:00892072                 dc.l sub_89E7F0         ; 768
    195. ROM:00892076                 dc.l sub_8A3562         ; 772
    196. ROM:0089207A                 dc.l sub_8A3904         ; 776 = spring that always points down (it possibly affects collision in other objects in Tutorial 1?)
    197. ROM:0089207E                 dc.l sub_892096         ; 780
    198. ROM:00892082                 dc.l sub_892096         ; 784
    199. ROM:00892086                 dc.l sub_8A3A64         ; 788 = Tutorial marker flowers
    200. ROM:0089208A                 dc.l sub_892096         ; 792
    201. ROM:0089208E                 dc.l sub_892096         ; 796
    202. ROM:00892092                 dc.l sub_8A4A0E         ; 800
    A lot of these objects are never loaded directly or initially; they might transform into these objects or spawn these objects but for that I have no idea.

    Here are the few objects I can't identify:

    Code (Text):
    1. ; type (subtype) at level x,y of the first time it is seen
    2. 4 (0) at Amazing Arena 1 Morning 1857,2732
    3. 12 (0) at Amazing Arena 1 Morning 1744,4044
    4. 116 (8) at Tutorial 1 Morning 6033,1808
    5. 120 (0) at Tutorial 1 Morning 5265,1624
    6. 360 (2048) at Speed Slider 2 Morning 4480,568
    7. 528 (0) at Botanic Base 4 Morning 841,1619
    Objects 4 and 12 are the clock objects. My problem is that while object 12 is where you go to turn on the lights, object 4 is the one that turns on the lights, and vice versa for the clocks that open faraway doors.

    The rest are invisible.

    I have no idea about 116 or 120: they seem to do stuff, but I don't know exactly what, and replacing the function with a simple rts has no effect.

    Objects 360 and 528 both point to the routine

    Code (ASM):
    1. ROM:00892096 ; =============== S U B R O U T I N E =======================================
    2. ROM:00892096
    3. ROM:00892096
    4. ROM:00892096 sub_892096:                             ; DATA XREF: ROM:00891E46o
    5. ROM:00892096                                         ; ROM:00891E4Eo ...
    6. ROM:00892096                 andi.w  #~$80,4(a6)
    7. ROM:0089209C                 rts
    8. ROM:0089209C ; End of function sub_892096
    I have absolutely no idea what the andi operation is doing in this case, and getting rid of that instruction seems to have no effect.

    So there you have it.
     
  8. jman2050

    jman2050

    Teh Sonik Haker Tech Member
    634
    4
    18
    I'm following this with some interest, so keep it up. As for that last function at 892096, it's obviously disabling something (though I wonder why it doesn't just use bset), so I wouldn't worry about its exact function until you understand more of how the object tables work.

    Also, for posterity's sake, how DO you do the negative offsets correctly? I had a similar problem when disassembling something else and never did figure out how to fix it.
     
  9. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    I never figured it out. Eventually I just used Jump to Address and an arithmetic expression. Turns out it jumps to a collision layer manipulation routine.

    On an unfair note, IDA Pro does seem to allow reverse offset jumping on other processor architectures, though I'm not entirely sure.
     
  10. Wurly

    Wurly

    :| Tech Member
    I am also very interested in this research.

    Could you, by chance, look into subroutines relating to character sprites and animations? I'd love to be able to implement a fully functioning Tails including hand/ring and tails objects.
     
  11. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    This is the only relevant code I could find (changing a memory location corresponding to 4(a0) to set bit 0 made Knuckles disappear), though I'm not 100% sure if this actually does the rendering, since I got confused where the comments stop. I'll still pick at this; but if anyone wants to help me, I'd appreciate.

    EDIT: lol I broke IPB with giant asm block, so pastebin

    http://slexy.org/view/s201Zw2B98
     
  12. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    So I modified JJ-Fox's Chaotix Art Editor to show me all the art in the 32X art pointers list, and I found something interesting:

    [​IMG]

    This art, shown with Mighty's palette, is loaded with the art for the score tally at the end of a level. Most of these seem to be related to the Time Attack feature that some of the early prototypes had, but that never made it into the final. So I wonder...
     
  13. Overbound

    Overbound

    Member
    607
    21
    18
    Iowa
    Sonic Time Twisted Creator
    This might be slightly off topic but has anyone ever made a Chaotix hack where you play as only 1 character and lose the whole ring aspect?
     
  14. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    I know someone's working on it, but that's about it. As for me, I'm really not all that interested in bigshot hacking like that; at least not now, anyway.
     
  15. MarkeyJester

    MarkeyJester

    Original, No substitute Resident Jester
    2,201
    431
    63
    Japan
    Interesting stuff, are these uncompressed? (I'm asuming they are, but I've been proved wrong on many occasions that asuming doesn't work =%)
     
  16. Lostgame

    Lostgame

    producer/turnablist. homebrew dev. cosplayer. Oldbie
    4,134
    58
    28
    Toronto, ON
    The O.I.C.
    Where's JJFtails when you need him?
     
  17. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    They're in the same format the character art is in. The pointer list with this stuff starts at ROM address $1CF048.
     
  18. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
  19. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    Okay, so I think I decompressed something compressed in this new format. The problem is that I want a way to make sure what I was doing was right. Is there a way I can load this data up into the 32X framebuffer without writing a new ROM and take a look? Or a software that will let me view the contents of this file? Or will I have to make one myself? Thanks.
     
  20. ICEknight

    ICEknight

    Researcher Researcher
    Ah, so that's the context where that "clock" word came from. Perhaps "Start the clock" was supposed to appear when you finished a level in Amazing Arena without doing so.
     
Thread Status:
Not open for further replies.