Sonic Mobile and original Sonic 1 labels

Discussion in 'Engineering & Reverse Engineering' started by Puto, Dec 19, 2007.

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

    Puto

    Shin'ichi Kudō, detective. Tech Member
    2,013
    0
    0
    Portugal, Oeiras
    Part of Team Megamix, but haven't done any actual work in ages.
    Some time ago, drx posted on IRC some interesting labels that he got off the S2NA disassembly, such as 'sisoo' for see-saws. Well, it seems that Sonic Mobile's internal files have similar names:

    [​IMG]
    [​IMG]

    Full list of files in Sonic Mobile Part 2:

    Code (Text):
    1.  Volume in drive C has no label.
    2.  Volume Serial Number is 8A8C-DC84
    3.  
    4.  Directory of C:\SonicMobile\sonicpart2
    5.  
    6. [.]
    7. [..]
    8. 1up.mid
    9. a.class
    10. animal.png
    11. awa.png
    12. b.class
    13. bakuhatu.png
    14. beltc.png
    15. beltcon.png
    16. ben.png
    17. blkcol.bct
    18. boss.png
    19. boss2.png
    20. boss6.png
    21. bossball.png
    22. bossstage.mid
    23. bossstagefinal_intro.mid
    24. bossstagefinal_loop.mid
    25. bou.png
    26. break.png
    27. brkabe.png
    28. brkabe_g.png
    29. brobo.png
    30. bryuka_sc.png
    31. bten.png
    32. buranko.png
    33. buranko_.png
    34. buranko_s.png
    35. buta.png
    36. c.class
    37. continue.mid
    38. continue.png
    39. d.class
    40. dai2_0xE0.png
    41. dai2_0xF0.png
    42. dai3.png
    43. dai3_0x13.png
    44. dai3_0x27.png
    45. dai4.png
    46. dai_.png
    47. dai_la.png
    48. de.dat
    49. door.png
    50. ED3.png
    51. ED_00.png
    52. effect.png
    53. eggman.png
    54. ele.png
    55. elev.png
    56. emeralds.png
    57. emeralds_end.png
    58. endegg_a.png
    59. endegg_b.png
    60. ending.mid
    61. es.dat
    62. filelist
    63. fire.png
    64. fire6.png
    65. fish.png
    66. fish2.png
    67. fr.dat
    68. framedata.bin
    69. fun.png
    70. gameover.mid
    71. gameover.png
    72. glu.png
    73. gole.png
    74. greenhill_intro.mid
    75. greenhill_intro.mid.AutoSave.20071219.164706.it
    76. greenhill_intro.mid.AutoSave.20071219.165706.it
    77. greenhill_loop.mid
    78. greenhill_loop.xm.AutoSave.20071219.164706.xm
    79. greenhill_loop.xm.AutoSave.20071219.165706.xm
    80. hachi.png
    81. hashi.png
    82. hurry.mid
    83. icon.png
    84. imo.png
    85. invincible.mid
    86. invincible.mid.AutoSave.20071219.164706.it
    87. invincible.mid.AutoSave.20071219.165706.it
    88. it.dat
    89. item.png
    90. jyama.png
    91. kageb.png
    92. kamere.png
    93. kani.png
    94. kassya.png
    95. kazari.png
    96. labyrinth_intro.mid
    97. labyrinth_loop.mid
    98. landscape.png
    99. lang.dat
    100. lock.png
    101. logo.png
    102. maintitle.mid
    103. MapLzone1.blt
    104. MapLzone2.blt
    105. MapLzone4.blt
    106. MapLzone6.blt
    107. masin.png
    108. masin_0x01.png
    109. mawaru.png
    110. mc_gh_map_data.bin
    111. mc_la_map_data.bin
    112. mc_obj_size_table.bin
    113. mc_sb_map_data.bin
    114. mc_sl_map_data.bin
    115. [META-INF]
    116. mfire.png
    117. mizu.png
    118. mizu_0x09.png
    119. mogura.png
    120. musi.png
    121. noko.png
    122. objawa.png
    123. paka2.png
    124. pedal.png
    125. readme.txt
    126. ring.png
    127. ring_large.png
    128. save.png
    129. scddirtbl.blt
    130. scdtblwk.scd
    131. score.mid
    132. score.png
    133. scrapbrain_intro.mid
    134. scrapbrain_loop.mid
    135. sega.wav
    136. shima.png
    137. shima5.png
    138. sisoo.png
    139. sjump.png
    140. sjump2.png
    141. Sonic.class
    142. sonic.png
    143. sonic_s.png
    144. stageclear.mid
    145. starlight_intro.mid
    146. starlight_loop.mid
    147. step.png
    148. switch.png
    149. switch2.png
    150. Systxt.png
    151. Systxt2.png
    152. tama.png
    153. tekyu.png
    154. thashi.png
    155. timeover.png
    156. title_parallax.png
    157. toge.png
    158. t_cur1.png
    159. t_cur2.png
    160. t_license1.png
    161. t_license2.png
    162. t_license3.png
    163. t_title.png
    164. uni.png
    165. water.png
    166. water2.png
    167. water3.png
    168. windou_ring.png
    169. windou_suuji.png
    170. windou_time.png
    171. windou_zanki.png
    172. yado.png
    173. yari.png
    174. yukae.png
    175. yukai.png
    176. zone1.blt
    177. zone1.bmd
    178. zone1.png
    179. ZONE1ACT.act
    180. zone2.blt
    181. zone2.bmd
    182. zone2.png
    183. ZONE2ACT.act
    184. zone4.blt
    185. zone4.bmd
    186. zone4.png
    187. ZONE4ACT.act
    188. zone6.blt
    189. zone6.bmd
    190. zone6.png
    191. ZONE6ACT.act
    192. z_ben.png
    193. z_dai2_0xE0.png
    194. z_dai2_0xF0.png
    195. z_dai3.png
    196. z_dai3_0x13.png
    197. z_dai3_0x27.png
    198. z_dai4_l.png
    199. z_dai_la.png
    200. z_kazari.png
    201. z_mizu.png
    202. z_zone2.png
    203.              194 File(s)      3.170.064 bytes
    204.                3 Dir(s)  15.094.472.704 bytes free
    And in part 1...

    Code (Text):
    1.  Volume in drive C has no label.
    2.  Volume Serial Number is 8A8C-DC84
    3.  
    4.  Directory of C:\SonicMobile\sonic-part1
    5.  
    6. [.]                  [..]                   1up.mid
    7. a.class              animal.png           aruma.png
    8. b.class              bakuhatu.png           bat.png
    9. blkcol.bct            block.png            bobin.png
    10. boss.png                bossball.png            bossstage.mid
    11. break.png              brkabe_g.png         bryuka.png
    12. bten.png                buranko.png          buranko_m.png
    13. c.class              [com]                 continue.mid
    14. continue.png            d.class              dai.png
    15. dai2.png                dai2_3.png            dai4_.png
    16. dai_la.png            ED3.png                ED_00.png
    17. effect.png            emeralds.png          endegg_a.png
    18. endegg_b.png            ending.mid            fblock.png
    19. filelist                fire.png                fish.png
    20. framedata.bin          gameover.mid         gameover.png
    21. gole.png                greenhill_loop.mid    hachi.png
    22. hashi.png              icon.png             ifone.png
    23. imo.png              invincible.mid       item.png
    24. jyama.png              kageb.png               kamere.png
    25. kani.png                lang_0.txt            lang_1.txt
    26. lang_2.txt            lang_3.txt              lang_4.txt
    27. logo.png                maintitle.mid          manual_0.txt
    28. manual_1.txt            manual_2.txt            manual_3.txt
    29. manual_4.txt            MapLzone1.blt          MapLzone3.blt
    30. MapLzone5.blt          marble_loop.mid       masin.png
    31. masin_0x01.png        mc_gh_map_data.bin      mc_ma_map_data.bin
    32. mc_obj_size_table.bin   mc_sy_map_data.bin    [META-INF]
    33. musi.png                myogan.png            myogan2.png
    34. ochi.png                ring.png                ring_large.png
    35. save.png                scddirtbl.blt          scdtblwk.scd
    36. score.png              shima.png               shima5.png
    37. signal.png            sjump.png            sjump2.png
    38. Sonic.class          sonic.png             sonic_s.png
    39. springyard_loop.mid  stageclear.mid       switch.png
    40. switch2.png          Systxt.png           Systxt2.png
    41. tama.png                tekyu.png              thashi.png
    42. timeover.png            toge.png                turi.png
    43. turi2.png              turi3.png               t_cur1.png
    44. t_cur2.png            t_license1.png          t_license2.png
    45. t_license3.png        t_title.png            windou_ring.png
    46. windou_suuji.png        windou_time.png      windou_zanki.png
    47. yado.png                yogan2.png            yogan22.png
    48. yoganc.png            yuka.png              zone1.blt
    49. zone1.bmd              zone1.png               ZONE1ACT.act
    50. zone3.blt              zone3.bmd               zone3.png
    51. ZONE3ACT.act            zone5.blt              zone5.bmd
    52. zone5.png              ZONE5ACT.act        
    53.              136 File(s)        552.645 bytes
    54.                4 Dir(s)  15.093.407.744 bytes free
    I guess this proves that the sonic mobile team did have access to the original S1 source code.

    PS: Yes drx, there is a gole.png ;)
     
  2. Dr. Ivo

    Dr. Ivo

    Professional Reverse Engineer Tech Member
    About a year ago, I personally decompiled Sonic Mobile. The core engine is identical to the original game.

    Obivously, there are differences in the rendering, sprite management, and sound engines -- typical of any "port" to a new platform.

    The Sonic Mobile programmers absolutely had access to the source code.
     
  3. nineko

    nineko

    I am the Holy Cat Tech Member
    I lol'd at the "nineko84" folder in your favorites.
     
  4. Claxon

    Claxon

    Member Member
    Yes the assets were straight from Sega, so some were renamed, others we didn't bother. Interestingly enough we originally were not going to have the "Sega" voices when the game started, something to do with a licensing issue was what I heard. I'm glad we did get it eventually though. It really brings back those memories. ;)
     
  5. Tweaker

    Tweaker

    Misfits
    12,389
    0
    0
    ...wait, what? YOU were responsible for this port?

    I would imagine that it's... unusual for someone in such a position to register on a fan-managed message board. Care to elaborate a bit on the process?
     
  6. ICEknight

    ICEknight

    Researcher Researcher
    Hey, what a nice surprise, welcome to the forums.

    It's been a while since our last visit from an actual developer...
     
  7. Claxon

    Claxon

    Member Member
    Hehe we can all be fans you know.

    And yes, my name's Chris Beckford and I used to work at iFone as a j2me developer. When we got the contract from Sega to make a few of their titles I was one of the team responsible for porting the games to all the different handsets. I've been just living my life, minding my own business until a fella naked Luke arrived on the message boards for one of my browser based games, asking be a bit about Sonic. I thought it was surprising for him to have located me there, so I felt a little retaliatory investigation was in order, which brought me here. ;)
     
  8. drx

    drx

    mfw Researcher
    2,193
    4
    18
    :rolleyes:
    Hi =P I was just going to reply back. I was going to do this in a PM, but since you're here anyway, provided you do not mind, we can chat publically.

    What work did you do specifically in the port? Please tell us something about the porting process (and don't omit things you think are uninteresting, they are interesting to us!).

    Also, do you think you have anything left from the process? Like, any code, anything? Keep in mind that in reality, you wouldn't do anything wrong by showing us the stuff. As I mentioned earlier, we have fully disassembled (the thing is a plain text file, you can open it in notepad) several Sonic games, so the code isn't unknown to us. It's just that the original source code (or its portions) can contain data or code that was cut from the final Sonic 1 (like graphics, objects, music, anything). If needed, I can agree to any condition, sign any paper, etc, so don't worry =)

    I'll also be contacting the other guy (which I'm not mentioning publically, he might not like it =P) today, to see if he has anything.

    Cheers,
    Luke
     
  9. ICEknight

    ICEknight

    Researcher Researcher
    I was wondering what formats were you guys given for the music and graphics to port... and if those included any other originally-scrapped thingies, such as the UFOs from Marble Zone or the pink flowers from Green Hill.
     
  10. drx

    drx

    mfw Researcher
    2,193
    4
    18
    :rolleyes:
    I am going to post a proper topic later about it, but here is the list of labels used in Sonic 2 alphas.

    (These are from two builds before Sonic 2 Nick Arcade, this will be proven at a later date, when I make a proper topic about this with all the code chunks disassembled etc etc; they're also 90% complete; notabene they took a really long while to dissect and organize)

    Build one:

    [codebox]ply059 00000000
    colichg 0001349c
    .jump$zdba 000134b6
    .frameoutd2$zdba 000134be
    .frameout$zdba 000134d4
    .frameout2$zdba 000134e6
    colichg_move_tbl 000134ea
    colichgmove 0001352a
    .loop$ceba 00013556
    .jump2$ceba 00013594
    .jump3$ceba 000135a2
    .jump4$ceba 000135c0
    .end2$ceba 000135d0
    .end1$ceba 000135d4
    .end$ceba 000135e0
    colichgtbl 000135e2
    colichgpat 00013602
    kaiten 0001364c
    kaiten_move_tbl 0001365a
    kaiteninit 00013660
    kaiteninit2 000136b4
    kaitenmove 000136c2
    .jump1$rdba 000136da
    .jump2$rdba 000136e0
    kaitenmove2 000136ec
    .jump3$sdba 00013706
    .jump4$sdba 0001371e
    kaitenchg 00013722
    kaitenchg0 00013726
    kaitenchg1 0001372e
    kaitenpat 00013736
    kaitensp0 00013740
    kaitensp1 0001374a
    kaitensp2 00013754
    kaitensp3 0001375e
    kaitensp4 00013768
    prodai 00013774
    prodai_move_tbl 00013782
    prodaiinit 00013786
    prodaimove 000137e6
    .jump0$vdba 00013806
    .jump$vdba 00013824
    .jump2$vdba 00013834
    .jump3$vdba 00013838
    .jump4$vdba 0001384a
    prodaipat 0001385e
    prodaisp0 00013860
    gem 00013874
    gem_move_tbl 00013882
    geminit 00013886
    gemmove 000138ae
    gemfoutchk 000138c2
    gempat 000138da
    gemsp00 000138dc
    wfall 000138f0
    wfall_move_tbl 000138fe
    wfallinit 00013904
    .sub$rdba 0001396c
    .worknai$rdba 000139ae
    .end$rdba 000139b0
    wfallmove 000139ca
    .jump$sdba 000139e2
    .jump2$sdba 000139fc
    .jump5$sdba 00013a14
    .jump4$sdba 00013a1c
    .jump3$sdba 00013a34
    wfallmove2 00013a54
    wfallpat 00013a6c
    wfallsp19 00013aa4
    wfallsp00 00013aa6
    wfallsp01 00013ab0
    wfallsp02 00013ac2
    wfallsp03 00013ad4
    wfallsp04 00013aee
    wfallsp05 00013b08
    wfallsp06 00013b2a
    wfallsp07 00013b4c
    wfallsp08 00013b76
    wfallsp09 00013ba0
    wfallsp10 00013bd2
    wfallsp11 00013c04
    wfallsp12 00013c3e
    wfallsp13 00013c78
    wfallsp14 00013cba
    wfallsp15 00013cfc
    wfallsp16 00013d46
    wfallsp18 00013d46
    wfallsp17 00013d46
    wfallsp20 00013d58
    wfallsp21 00013d62
    wfallsp22 00013d6c
    wfallsp23 00013d7e
    wfallsp24 00013d90
    wfallsp25 00013daa
    wfallsp26 00013dc4
    wfallsp27 00013de6
    sloop 00013e08
    .frameoutd$wdba 00013e1e
    .frameout$wdba 00013e32
    sloop_move_tbl 00013e38
    sloopinit 00013e3c
    sloopmove 00013e46
    .sub$zdba 00013e54
    .left$zdba 00013e7c
    .right$zdba 00013e8a
    .jump$zdba 00013e96
    .plrideon$zdba 00013eae
    .left2$zdba 00013ebc
    .right2$zdba 00013eca
    .jump0$zdba 00013ed6
    .end$zdba 00013eec
    .rideon$zdba 00013eee
    .jumps$zdba 00013ef6
    .jump1$zdba 00013f18
    .jump2$zdba 00013f24
    sloopdirtbl 00013f56
    slooptbl 00013f8a
    sisoo 0001412c
    sisoo_move_tbl 00014152
    sisooinit 0001415e
    .worknai$feba 000141b8
    .jump$feba 000141c6
    sisoomove 000141cc
    .rideon$geba 000141d8
    .jump$geba 000141ec
    .jump2$geba 000141f4
    .jump3$geba 00014210
    .jump4$geba 00014218
    .jump44$geba 00014222
    .noride$geba 00014226
    .jump5$geba 00014242
    .jump6$geba 0001424a
    .jump7$geba 0001424a
    .jump8$geba 00014262
    sisooride 0001427e
    sisoosub 00014280
    .jump$ieba 00014294
    .jump2$ieba 0001429c
    sisoosub2 0001429c
    .jump3$jeba 000142a8
    .end$jeba 000142c6
    sballinit 000142c8
    sballwait 00014328
    .jump$keba 00014328
    .jump$leba 0001433c
    .jump3$leba 00014362
    .jump2$leba 00014378
    .jump4$leba 0001437e
    .jump0$leba 0001439c
    sballmove 000143bc
    .up$meba 000143c2
    .end$meba 000143d8
    .down$meba 000143da
    .jump0$meba 000143fa
    .jump$meba 00014418
    .jump1$meba 00014434
    .jump2$meba 00014442
    .jump3$meba 0001444e
    .sub$meba 00014450
    sballtbl 00014480
    sisootbl 0001448a
    sisootbl2 000144bb
    sisoopat 000144ec
    sisoosp0 000144f4
    sisoosp1 00014536
    sballpat 00014578
    sballsp1 0001457c
    sballsp0 0001457c
    water 00014588
    water_move_tbl 00014596
    waterinit 0001459a
    watermove 000145c2
    .jump0$ceba 000145e4
    .jump2$ceba 000145f4
    .jump1$ceba 000145f4
    waterpattbl 00014614
    waterpat 00014654
    watersp0 00014660
    watersp1 0001467a
    watersp2 00014694
    watersp3 000146ae
    watersp4 000146e0
    watersp5 00014712
    taki 00014744
    taki_move_tbl 00014752
    takiinit 00014756
    takimove 00014790
    .frameoutd$oeba 000147aa
    .jump$oeba 000147dc
    .end$oeba 000147ee
    takipat 000147f6
    takisp00 000147fe
    takisp01 00014810
    takisp02 00014882
    takisp03 00014884
    stego 000148d0
    stego_move_tbl 000148de
    stegoinit 000148e2
    .end$pdba 00014930
    stegomove 00014932
    stegomove_tbl 0001494e
    stego_0 00014952
    .jump$sdba 00014974
    stego_1 00014976
    .end$tdba 0001499a
    .jump2$tdba 0001499c
    checksonic 000149c0
    .lft$udba 000149ca
    .out$udba 000149e4
    .out0$udba 000149e6
    .rt$udba 000149f4
    .out1$udba 00014a10
    stegochg 00014a1e
    stegochg00 00014a24
    stegochg01 00014a32
    stegochg02 00014a35
    stegopat 00014a3a
    stegosp00 00014a4a
    stegosp01 00014a74
    stegosp02 00014a9e
    stegosp03 00014ac8
    stegosp04 00014af2
    stegosp05 00014b1c
    stegosp06 00014b46
    stegosp07 00014b68
    bfish 00014ba0
    bfish2 00014ba0
    fish2_move_tbl 00014bae
    fish2init 00014bb4
    .jump$ydba 00014c2c
    fish2move 00014c2c
    .skip$zdba 00014c38
    .jump$zdba 00014c5a
    fish2jump 00014c9c
    .level$aeba 00014cf4
    .below$aeba 00014d08
    .join$aeba 00014d22
    waterspeedset 00014d4c
    .sub$beba 00014d80
    .cnt$beba 00014d88
    fishchg 00014d9a
    fishchg0 00014da2
    fishchg1 00014da6
    fishchg2 00014daa
    fishchg3 00014dae
    bfishpat 00014db2
    bfish2pat 00014db2
    fish1sp0 00014dba
    fish1sp1 00014dc4
    fish1sp2 00014dce
    fish1sp3 00014dd8
    redz 00014df8
    redz_move_tbl 00014e06
    redzinit 00014e0c
    .end$pdba 00014e60
    redzmove 00014e62
    .frameout$qdba 00014e92
    .frameout2$qdba 00014ea4
    redzmove_tbl 00014ea8
    redz_0 00014eac
    .jump$sdba 00014ece
    redz_1 00014ed0
    .end$tdba 00014eea
    .jump2$tdba 00014eec
    redzdie 00014f04
    redzchg 00014f08
    redzchg0 00014f0c
    redzchg1 00014f0f
    redzpat 00014f16
    redzsp0 00014f1c
    redzsp1 00014f26
    redzsp2 00014f30
    seahorse 00014f5c
    seahorse_move_tbl 00014f6a
    seahorseinit 00014f76
    seahorsemove 0001502e
    .worknai$vdba 0001502e
    seahorsemove_tbl 00015054
    seahorsewings 0001505a
    seahorseshot 00015084
    seahorseswim 0001509a
    seahorsefloat 000150ac
    seahorseattack 000150ba
    chkshot 000150cc
    .end$deba 000150d8
    .makeshot$deba 000150da
    .ok$deba 0001513a
    .worknai$deba 00015146
    chkatkdone 00015148
    .end$eeba 0001516e
    chkatack 00015170
    .toleft$feba 0001519e
    .toright$feba 000151ae
    .edge$feba 000151bc
    .end$feba 000151d6
    chkfloat 000151d8
    .vel$geba 000151f4
    .end$geba 000151f8
    chkfltdone 000151fa
    .end$heba 00015216
    .down$heba 00015218
    fixwings 0001522c
    .normal$ieba 0001525c
    shotdrops 00015266
    hitground 0001527c
    .end$keba 00015296
    oilslip 000152a2
    updatoil 000152a6
    .end$oeba 000152e2
    .done$oeba 000152e4
    landedyet 000152f2
    .end$peba 00015330
    chkflip 00015332
    .jump$qeba 0001534e
    chkhit 00015350
    .loop$reba 0001535a
    .left$reba 000153b8
    .r1$reba 000153c6
    .worknai$reba 000153cc
    .out$reba 000153ee
    .end$reba 000153f2
    horsechg 000153f4
    seahorsechg0 00015404
    seahorsechg1 00015407
    horsechg2 0001540f
    seahorsechg3 00015415
    seahorsechg4 00015419
    seahorsechg5 0001541c
    skyhorsechg0 0001541f
    skyhorsechg1 00015423
    horsepat 0001542c
    seahorsesp00 00015446
    seahorsesp01 00015460
    seahorsesp02 0001546a
    seahorsesp03 00015474
    seahorsesp04 00015496
    horsesp05 000154b8
    horsesp06 000154c2
    horsesp07 000154cc
    horsesp08 000154d6
    skyhorsesp00 000154e0
    skyhorsesp01 00015502
    skyhorsesp02 00015524
    skyhorsesp03 0001554e
    skyhorse 00015578
    skyhorse_move_tbl 00015586
    skyhorseinit 00015592
    skyhorsemove 000155f0
    skyhorsemove_tbl 00015610
    skyhorseshot 00015614
    skyhorsefly 00015628
    skyhorseattack 0001563e
    shotstatus 00015654
    .done$bgba 00015668
    getposition 0001567a
    .toleft$cgba 0001569a
    .setbehind$cgba 000156a2
    .next$cgba 000156a6
    .above$cgba 000156c6
    .out$cgba 000156ca
    chkshoot 000156cc
    .end$dgba 000156f0
    makeshot 000156f2
    .ok$egba 0001574e
    .worknai$egba 0001575a
    seeksonic 0001575c
    .above$fgba 00015768
    .speed$fgba 00015784
    .below$fgba 0001578c
    .negspeed$fgba 000157a8
    .end$fgba 000157b0
    .out$fgba 000157ba
    wasp 000157e0
    wasp_move_tbl 000157f2
    waspshot 000157fa
    waspafterb 0001580c
    .cnt$feba 0001581e
    waspinit 00015844
    .done$geba 000158e6
    waspmove 000158e8
    waspmove_tbl 00015904
    waspfly 00015908
    .here$jeba 00015926
    .end$jeba 0001592c
    .here2$jeba 0001592e
    checkshoot 0001594a
    .cnt$keba 00015960
    .toleft$keba 0001597a
    .sht$keba 00015982
    .out$keba 00015996
    waspshoot 00015998
    .done$leba 000159ac
    .here$leba 000159b2
    .out$leba 00015a16
    waspchg 00015a18
    waspchg00 00015a20
    waspchg01 00015a23
    waspchg02 00015a27
    waspchg03 00015a2b
    wasppat 00015a34
    waspsp00 00015a42
    waspsp01 00015a54
    waspsp02 00015a6e
    waspsp03 00015a88
    waspsp04 00015a92
    waspsp05 00015a9c
    waspsp06 00015aa6
    oct 00015ac8
    oct_move_tbl 00015ad6
    octshot 00015ade
    .cnt$pdba 00015ae8
    octeye 00015afa
    octinit 00015b06
    .end$rdba 00015b64
    octmove 00015b6c
    octmove_tbl 00015b88
    octstand 00015b90
    .done$udba 00015bae
    octfly 00015bb0
    .end$vdba 00015bd0
    octshoot 00015bd2
    .end0$wdba 00015c38
    .end$wdba 00015c9c
    .out$wdba 00015c9e
    octleave 00015ca4
    .cnt$xdba 00015cb2
    octchg 00015cba
    octchg00 00015cc0
    octchg01 00015cc3
    octchg02 00015cc8
    octpat 00015ccc
    octsp00 00015cda
    octsp01 00015cec
    octsp02 00015d06
    octsp03 00015d20
    octsp04 00015d3a
    octsp05 00015d44
    octsp06 00015d4e
    bbat 00015d78
    bat_move_tbl 00015d86
    batinit 00015d8c
    batmove 00015dca
    batmove_tbl 00015dea
    setposi 00015df0
    seekchk 00015e0a
    .end$xdba 00015e36
    batattack 00015e38
    fixme 00015e58
    .end$zdba 00015e6a
    attackchk 00015e6c
    .cnt$aeba 00015e90
    .end$aeba 00015eb6
    .gone$aeba 00015eb8
    .norm$aeba 00015ec4
    direcchg 00015ed8
    .end$beba 00015ef0
    .rt$beba 00015ef2
    .done$beba 00015f06
    moveset 00015f36
    bathover 00015f56
    .end$deba 00015f8c
    batflap 00015f8e
    .end$eeba 00015f98
    batseek 00015f9a
    .here$feba 00015fc8
    .cnt$feba 00015fe0
    batchg 00015fe2
    batchg00 00015fea
    batchg01 00015fee
    batchg02 00015ffd
    batchg03 0001600e
    bbatpat 00016016
    batsp00 00016034
    batsp01 00016056
    batsp02 00016078
    batsp03 0001609a
    batsp04 000160bc
    batsp05 000160d6
    batsp06 000160f8
    batsp07 0001611a
    batsp08 0001613c
    batsp09 0001615e
    batsp10 00016178
    batsp11 00016192
    batsp12 000161ac
    batsp13 000161be
    batsp14 000161d0
    gator 00016200
    gator_move_tbl 0001620e
    gatorinit 00016212
    .end$pdba 00016260
    gatormove 00016262
    gatormove_tbl 0001627e
    gator_0 00016282
    .jump$sdba 000162a4
    gator_1 000162a6
    .end$tdba 000162c4
    .jump2$tdba 000162c6
    checksonic 000162de
    .lft$udba 000162e8
    .rt$udba 000162f8
    .set$udba 00016306
    .out$udba 0001630e
    gatorchg 00016316
    gatorchg00 0001631c
    gatorchg01 00016324
    gatorchg02 00016327
    gatorpat 00016330
    gatorsp00 00016348
    gatorsp01 0001636a
    gatorsp02 0001638c
    gatorsp03 000163ae
    gatorsp04 000163d0
    gatorsp05 000163f2
    gatorsp06 00016414
    gatorsp07 00016436
    gatorsp08 00016458
    gatorsp09 0001647a
    gatorsp10 0001649c
    gatorsp11 000164be
    wfish2 000164f8
    wfish_move_tbl 0001650a
    wfishinit 0001650e
    wfishmove 00016548
    .jump$beba 00016570
    .jump2$beba 00016592
    wfishchg 00016594
    wfishchg0 0001659a
    wfishchg1 0001659e
    wfishchg2 000165a2
    wfish2pat 000165a6
    fishsp0 000165aa
    fishsp1 000165c4
    snail 000165f8
    snail_move_tbl 0001660a
    snailinit 00016614
    .out1$deba 00016694
    .cnt$deba 000166a6
    snailmove 000166ac
    .jump$eeba 000166d8
    chkcharge 000166f4
    .toleft$feba 00016712
    .toright$feba 0001671c
    .doit$feba 00016724
    .done$feba 00016736
    makeafb 00016738
    .out$geba 00016790
    afbupdate 00016792
    .cnt$heba 000167ba
    snailturn 000167cc
    updateparts 00016804
    snailchg 0001682c
    snailchg0 00016830
    snailchg1 00016834
    snailpat 00016838
    snailsp0 0001683e
    snailsp1 00016850
    snailsp2 00016862
    bossdriller 00016890
    bossdrillmove_tbl 0001689e
    moveonscreen 000168aa
    .done$oeba 000168c2
    joincar 000168d0
    join_tbl 000168de
    joinland 000168e2
    .joined$reba 000168f4
    joinadjust 00016908
    movecar 0001692c
    tbl 0001696c
    deathstart 00016970
    .jump$veba 00016978
    .end$veba 000169a4
    deathdrop 000169a6
    flyaway 000169c0
    flyaway_tbl 000169d2
    initrotors 000169d8
    takeoff 00016a4c
    .end$afba 00016a64
    runaway 00016a66
    .out$bfba 00016a7a
    checkflip 00016a7c
    .off$cfba 00016a8c
    .done$cfba 00016a9c
    checkhit 00016a9e
    .jump$dfba 00016ac8
    .jump1$dfba 00016ad6
    .jump2$dfba 00016ae4
    .die$dfba 00016ae6
    driller 00016b00
    driller_tbl 00016b0e
    growrotors 00016b18
    sticktoboss 00016b3c
    stick_tbl 00016b4a
    normal 00016b4e
    .cnt$ofba 00016b72
    retract 00016b98
    .done$pfba 00016bb4
    carbody 00016bc2
    tiremove 00016c04
    tiremove_tbl 00016c12
    tiresit 00016c1a
    tireroll 00016c38
    .cnt$ufba 00016c5a
    tireexplode 00016c70
    tirebounce 00016ca0
    .end$wfba 00016cbe
    drill 00016cc2
    .cnt$xfba 00016d10
    .movedrill$xfba 00016d22
    .cnt3$xfba 00016d30
    checkshoot 00016d42
    .chkset$yfba 00016d4c
    .right$yfba 00016d56
    .left$yfba 00016d60
    .set$yfba 00016d6a
    makewheels 00016d72
    .worknai1$zfba 00016de6
    .worknai2$zfba 00016e5a
    .worknai3$zfba 00016ece
    .worknai4$zfba 00016f2a
    drillerguy 00016f2c
    .worknai$cgba 00016f70
    .worknai2$cgba 00016fd0
    bosshelichg 00016fd2
    bosshelichg0 00016fd8
    bosshelichg1 00016fdc
    bosshelichg2 00016ff2
    bosshelipat 0001700c
    bosshelisp00 0001701a
    bosshelisp01 00017024
    bosshelisp02 0001704e
    bosshelisp03 00017078
    bosshelisp04 00017092
    bosshelisp05 000170ac
    bosshelisp06 000170c6
    bossdrillchg 000170e0
    bossdrillchg0 000170e6
    bossdrillchg1 000170eb
    bossdrillchg2 000170ef
    bossdrillpat 000170f4
    bossdrillsp0 00017104
    bossdrillsp1 0001711e
    bossdrillsp2 00017128
    bossdrillsp3 00017132
    bossdrillsp4 0001713c
    bossdrillsp5 00017146
    bossdrillsp6 00017150
    bossdrillsp7 0001715a
    bossba 00017194
    bossba_move_tbl 000171a2
    bossbainit 000171ac
    .cnt$geba 000171f8
    .cnt2$geba 0001725c
    .worknai$geba 000172b0
    bossbaappendage 000172c2
    bossbamove 000172ca
    bossbamove_tbl 00017300
    bossbatop 00017308
    afbtbl 00017336
    bossafb 0001733a
    .cnt$neba 00017378
    .jump$neba 00017382
    .hurt$neba 0001738e
    .here$neba 0001739c
    bosssm 000173d8
    .jump$oeba 0001741a
    billbomb 0001741e
    billbomb_tbl 0001742c
    billbombinit 00017430
    billbombmove 00017468
    .jump$seba 00017482
    bossafbpat 00017486
    afbsp00 0001748a
    afbsp01 00017494
    bosssmpat 0001749e
    smbsp00 000174a6
    smbsp01 000174b0
    smbsp02 000174ba
    smbsp03 000174c4
    billbombpat 000174ce
    bossbmsp00 000174dc
    bossbmsp01 000174e6
    bossbmsp02 000174f0
    bossbmsp03 000174fa
    bossbmsp04 00017504
    bossbmsp05 0001750e
    bossbmsp06 00017518
    bossbachg 00017522
    bossbachg1 00017526
    bossbachg2 00017529
    bossbapat 0001752e
    bossbasp00 00017534
    bossbasp01 00017556
    bossbasp02 00017578
    staff 000175a8
    staff_move_tbl 000175b6
    staff_init 000175ba
    .jump$ndba 00017628
    staff_move 00017628
    staffpat 0001762e
    staffsp00 00017644
    staffsp01 000176b6
    staffsp02 00017738
    staffsp03 0001778a
    staffsp04 0001784c
    staffsp05 000178ee
    staffsp06 000179c0
    staffsp07 00017a7a
    staffsp08 00017b74
    staffsp09 00017bee
    staffsp10 00017c30
    boss1 00017cc4
    boss1_move_tbl 00017cd2
    boss1tbl 00017cda
    boss1init 00017ce0
    .loop$kdba 00017cea
    .jump$kdba 00017cf2
    .worknai$kdba 00017d38
    boss1move 00017d50
    boss1move_tbl 00017d82
    boss1_0 00017d90
    .end$ndba 00017dac
    boss_ysub 00017dac
    .jump$odba 00017df4
    .jump1$odba 00017e02
    .jump2$odba 00017e10
    .die$odba 00017e12
    bossbomb 00017e26
    .worknai$pdba 00017e68
    .jump$pdba 00017e68
    speedset_m 00017e6a
    boss1_1 00017e90
    .worknai$rdba 00017ed6
    .end$rdba 00017edc
    boss1_2 00017ee0
    .jump$sdba 00017f0a
    .jump2$sdba 00017f16
    boss1_3 00017f1a
    .jump2$tdba 00017f26
    .end$tdba 00017f3c
    boss1_4 00017f40
    .jump$udba 00017f4a
    .end$udba 00017f70
    boss1_5 00017f72
    .falling$vdba 00017f7a
    .turn$vdba 00017f82
    .rise_up$vdba 00017f88
    .go_up$vdba 00017fa0
    .fire$vdba 00017fa8
    .exit$vdba 00017fb6
    boss1_6 00017fbe
    .jump$wdba 00017fd8
    .jump2$wdba 00017fde
    .frameout$wdba 00017fe6
    boss1oyaji 00017fee
    .pass0$xdba 00018008
    .pass1$xdba 00018010
    .pass2$xdba 0001801a
    .jump$xdba 00018024
    .jump0$xdba 00018038
    .frameout$xdba 0001803a
    boss1fire 00018040
    .jump0$ydba 00018060
    .jump$ydba 0001806c
    .frameout$ydba 0001806e
    boss1sub 00018074
    btama 000180ae
    btama_move_tbl 000180bc
    btamainit 000180c6
    .loop$jeba 000180f6
    .jump$jeba 00018132
    .worknai$jeba 0001815c
    btamalentbl 00018188
    btamamove 0001818e
    .loop$leba 0001819a
    .jump$leba 000181b4
    .jump2$leba 000181ce
    .jump3$leba 000181da
    btamamove2 000181ee
    btamasub 000181fe
    .pass$neba 00018210
    .jump$neba 0001823a
    btamakusari 0001823c
    .jump$oeba 00018252
    btamatama 00018258
    .jump0$peba 00018262
    .jump$peba 0001828a
    boss1chg 00018290
    boss1chg0 000182a8
    boss1chg1 000182ab
    boss1chg2 000182af
    boss1chg3 000182b3
    boss1chg4 000182b7
    boss1chg5 000182bb
    boss1chg6 000182bf
    boss1chg7 000182c3
    boss1chg8 000182c6
    boss1chg9 000182ca
    boss1chg10 000182ce
    boss1chg11 000182d1
    boss1pat 000182dc
    boss1sp0 000182f6
    boss1sp1 00018328
    boss1sp2 0001833a
    boss1sp3 0001834c
    boss1sp4 00018366
    boss1sp5 00018380
    boss1sp6 0001839a
    boss1sp7 000183b4
    boss1sp8 000183d6
    boss1sp9 000183e0
    boss1sp10 000183ea
    boss1sp11 000183ec
    boss1sp12 000183fe
    boss2pat 00018410
    boss2sp0 00018420
    boss2sp1 0001842a
    boss2sp2 0001843c
    boss2sp3 00018446
    boss2sp4 00018450
    boss2sp5 0001845a
    boss2sp6 0001847c
    boss2sp7 0001848e
    masin 000184ac
    .frameout$edba 000184d2
    masin_move_tbl 000184d8
    masintbl 000184e8
    masininit 000184f8
    .end$hdba 00018544
    masinmove 00018546
    .jump$idba 00018564
    .jump2$idba 0001857a
    masinswitch 00018582
    .jump$jdba 000185e8
    masincenter 000185ea
    masincenter2 000185ea
    masinbomb 000185ea
    .worknai$mdba 00018628
    .jump$mdba 00018628
    .end$mdba 0001862e
    .bombend$mdba 00018630
    .lp$mdba 00018656
    .no_work_left$mdba 00018680
    masinusagi 00018682
    .pass$ndba 000186b6
    .jump$ndba 000186c0
    .worknai$ndba 000186c0
    .end$ndba 000186d0
    masinclear 000186d2
    .lp$odba 000186dc
    .end$odba 000186f2
    masinchg 000186f4
    masinchg1 000186f8
    masinchg0 000186f8
    masinpat 000186fc
    masinsp0 0001870a
    masinsp1 00018744
    masinsp2 0001874e
    masinsp3 00018780
    masinsp4 0001878a
    masinsp5 0001879c
    masinsp6 000187a6
    pcol 000187b0
    .jump0$ldba 000187da
    .loop$ldba 000187e8
    .jump$ldba 000187ee
    .colitbl$ldba 000187fa
    .jump2$ldba 00018842
    .jump3$ldba 00018864
    .jump4$ldba 0001886a
    .jump5$ldba 00018882
    .atari$ldba 00018888
    pcolitem 000188a2
    .ring$mdba 000188b0
    .ringe$mdba 000188c0
    .item$mdba 000188c2
    .item2$mdba 000188ee
    .iteme$mdba 00018900
    pcolnomal 00018902
    .jump$ndba 0001891a
    .jump4$ndba 00018942
    .jump0$ndba 00018944
    .jump5$ndba 0001895c
    .jump6$ndba 00018976
    .jump3$ndba 00018986
    .jump1$ndba 0001899c
    .jump2$ndba 000189a4
    escoretbl 000189ac
    pcolplay2 000189b4
    pcolplay 000189ba
    pcolend 000189c0
    pcole 000189c4
    playdamageset 000189ce
    .damage$tdba 000189f6
    .worknai$tdba 000189f6
    .jump0$tdba 00018a2c
    .jump$tdba 00018a3a
    .jump2$tdba 00018a60
    .end$tdba 00018a66
    .die$tdba 00018a6a
    playdieset 00018a72
    .jump2$udba 00018ac0
    .end$udba 00018ac6
    pcolspecial 00018aca
    .imo$vdba 00018aec
    .yado$vdba 00018af0
    .yado1$vdba 00018b0a
    .yado2$vdba 00018b16
    .yado3$vdba 00018b1a
    .yado4$vdba 00018b1e
    .bobin$vdba 00018b22
    .bobin2$vdba 00018b2e
    .bou$vdba 00018b34
    sprscr 00018b48
    .loop$ndba 00018b98
    .loop2$ndba 00018bba
    sprscre 00018bdc
    sprscrset 00018bdc
    .loop$pdba 00018c06
    .loop2$pdba 00018c0a
    .jump$pdba 00018c62
    .end$pdba 00018c82
    sprscractcnt 00018c8a
    .loop$qdba 00018c9e
    .jump2$qdba 00018cc2
    .jump4$qdba 00018cde
    .jump5$qdba 00018d20
    .jump3$qdba 00018d4a
    scractofftbl 00018e34
    scrwkchk 00018eb4
    .loop$sdba 00018ebe
    .jump$sdba 00018ec8
    scrcnt 00018eca
    .loop$tdba 00018ed4
    .jump$tdba 00018ee2
    scracttbl 00018eea
    scr_ring 00018f02
    .end$vdba 00018f2a
    .jump$vdba 00018f2a
    scr_ringtbl 00018f2c
    scr_bobin 00018f32
    .jump$xdba 00018f5e
    .end$xdba 00018f60
    scr_bobintbl 00018f62
    scr_1up 00018f68
    .end$zdba 00018f90
    .jump$zdba 00018f90
    scr_1uptbl 00018f92
    scr_revers 00018f98
    .jump$beba 00018fc4
    .end$beba 00018fc6
    scr_reverstbl 00018fc8
    scr_houseki 00018fce
    .end$deba 00019006
    .jump$deba 00019006
    scr_housekitbl 00019008
    scr_break 0001900e
    .jump$feba 0001903a
    .end$feba 0001903a
    scr_breaktbl 0001903c
    sprmapsettbl 00019046
    sprplaypositbl 0001905e
    sprmapset 00019076
    .jump$jeba 0001908e
    .loop0$jeba 000190a4
    .jump0$jeba 000190ac
    .jump2$jeba 000190b0
    .loop$jeba 000190dc
    .loop1$jeba 000190f0
    .loop2$jeba 000190f2
    scrpatset 00019100
    .loop$keba 0001910e
    scrcntclr 00019120
    .loop$leba 0001912a
    scrpattbl 00019132
    sp1uppat 00019306
    metpat 00019306
    derupat 00019306
    zonepat 00019306
    sprevpat 00019306
    warppat 00019306
    golepat 00019306
    golesp0 0001930c
    golesp1 00019312
    derusp2 00019318
    sphashpat 0001931a
    koukapat 0001931a
    breakpat 0001931a
    koukasp0 00019322
    sphashsp0 00019322
    koukasp1 00019328
    sphashsp1 00019328
    koukasp2 0001932e
    koukasp3 00019334
    spuppat 0001933a
    spupsp0 0001933e
    spupsp1 00019344
    spdownpat 0001934a
    spdownsp0 0001934e
    spdownsp1 00019354
    hous0pat 0001935a
    hous1pat 0001935e
    hous2pat 00019362
    sphoussp0 00019366
    sphoussp1 0001936c
    sphoussp2 00019372
    sphoussp3 00019378
    play01 00019380
    .jump$neba 0001938e
    play01_move_tbl 0001939c
    play01init 000193a4
    play01move 000193e4
    .jump5$qeba 000193f8
    play01move_tbl 0001941c
    play01walk 00019420
    play01jump 0001942e
    play01sub 0001943a
    splevermove 00019460
    .jump5$veba 0001946c
    .jump6$veba 00019478
    .right$veba 0001948a
    .right2$veba 00019494
    .left$veba 0001949a
    .left2$veba 000194a4
    .jump7$veba 000194a8
    .jump$veba 000194f2
    spplwalk_l 000194f8
    .left$weba 00019506
    .left2$weba 00019514
    .right$weba 0001951a
    .right2$weba 00019522
    spplwalk_r 00019528
    .right$xeba 00019534
    .right2$xeba 00019542
    .left$xeba 00019548
    .left2$xeba 00019550
    .rightcol$xeba 00019554
    spjumpchk 00019556
    .end$yeba 00019598
    spjumpchk2 0001959a
    .end$zeba 000195b4
    playscr 000195b6
    .jump$afba 000195ce
    .jump2$afba 000195de
    play01gole 000195e0
    .jump0$bfba 000195f4
    .jump$bfba 00019612
    play01gole2 00019634
    .end$cfba 00019640
    rotspdset 00019656
    .jump2$dfba 000196b0
    .jump3$dfba 000196c6
    .jump4$dfba 000196d4
    spcol 000196e8
    spcol2 000196e8
    spcolsub 00019730
    .end$gfba 00019744
    .jump2$gfba 00019746
    spcol_ev 00019752
    spcolsub_ev 0001978c
    .worknai$ifba 000197a0
    .jump$ifba 000197c4
    .jump2$ifba 000197c8
    .worknai2$ifba 000197dc
    .jump3$ifba 000197f2
    .worknai3$ifba 0001980c
    .jump33$ifba 0001982a
    .jump4$ifba 00019838
    .jump5$ifba 00019844
    .jump6$ifba 00019858
    derusub 0001985c
    .loop1$jfba 0001986c
    .loop2$jfba 0001986e
    .jump$jfba 00019878
    .end$jfba 00019886
    bobinchk 0001988e
    .jmp$kfba 000198a0
    .jmp2$kfba 000198ac
    .jump$kfba 000198ae
    .worknai$kfba 0001991c
    .jump2$kfba 00019926
    .jump3$kfba 0001993c
    .jump33$kfba 00019966
    .jump4$kfba 00019970
    .jump44$kfba 0001999a
    .jump5$kfba 000199a4
    .worknai2$kfba 000199cc
    .jump6$kfba 000199da
    .jump66$kfba 000199f2
    .jump666$kfba 00019a12
    .worknai3$kfba 00019a16
    .end$kfba 00019a20
    .jump7$kfba 00019a20
    play02 00019a22
    efectwrt 00019a2c
    .end$wdba 00019a4a
    efecttbl 00019a4c
    efstage5 00019a8c
    efstageb 00019a8c
    efstagea 00019a8c
    efstage6 00019a8c
    efstage9 00019a8c
    efstagef 00019a8c
    efstagee 00019a8c
    efstagec 00019a8c
    efstage7 00019a8c
    efstage1 00019a8c
    efstage0 00019a8e
    efstage4 00019a90
    efstaged 00019a90
    efstage2 00019a90
    efstage8 00019a90
    efstage3 00019a90
    .loop$neba 00019a96
    .jump$neba 00019aac
    .jump1$neba 00019aba
    .jump2$neba 00019adc
    .jump3$neba 00019ae6
    efecttbl0 00019af8
    efecttbl3 00019af8
    efecttbl8 00019b56
    efecttbl4 00019b56
    efecttblc 00019b82
    efecttbl9 00019b82
    efecttbl1 00019b82
    efecttbl2 00019b82
    efecttbla 00019b82
    efecttbl7 00019b82
    efecttble 00019b82
    efecttblb 00019b82
    efecttbl6 00019b82
    efecttbl5 00019b82
    efecttblf 00019b82
    efecttbld 00019b82
    efectmove 00019bea
    .end$efba 00019bf2
    .jump$efba 00019bf4
    .sub$efba 00019c24
    .loop$efba 00019c28
    efectblockset 00019cbe
    .loop$ffba 00019ce0
    .end$ffba 00019ce6
    .loop2$ffba 00019ce8
    efectblocktbl 00019d00
    zone00pcblk 00019d20
    zone03pcblk 00019d20
    zone0bpcblk 00019d5c
    zone0cpcblk 00019d5c
    zone0apcblk 00019d5c
    zone07pcblk 00019d5c
    zone09pcblk 00019d5c
    zone0epcblk 00019d5c
    zone06pcblk 00019d5c
    zone05pcblk 00019d5c
    zone01pcblk 00019d5c
    zone0fpcblk 00019d5c
    zone02pcblk 00019e9a
    zone0dpcblk 00019e9a
    zone08pcblk 00019f7e
    zone04pcblk 00019f7e
    score 0001a074
    score_move_tbl 0001a082
    score_init 0001a086
    score_move 0001a0b4
    .jump0$udba 0001a0ce
    .jump$udba 0001a0d8
    .jump2$udba 0001a0ee
    scorepat 0001a0f8
    scoresp0 0001a100
    scoresp1 0001a152
    scoresp2 0001a1a4
    scoresp3 0001a1f6
    scoreup 0001a248
    .jump$aeba 0001a260
    .jumpus$aeba 0001a288
    .jump0$aeba 0001a288
    scoreset 0001a28a
    .jump$beba 0001a2b2
    .jump1$beba 0001a2be
    .jump2$beba 0001a2d2
    .jump3$beba 0001a30e
    .jump4$beba 0001a32e
    .jump5$beba 0001a33c
    .jump6$beba 0001a364
    .timeover$beba 0001a366
    scoreset2 0001a37c
    .jump1$ceba 0001a38c
    .jump2$ceba 0001a3a0
    .jump3$ceba 0001a3b0
    .jump4$ceba 0001a3be
    .jump5$ceba 0001a3e6
    ringinit 0001a3e8
    scoreinit 0001a3fc
    scoreinitsub 0001a418
    .loop$feba 0001a41c
    .loop1$feba 0001a42c
    .jump$feba 0001a432
    .loop2$feba 0001a438
    .spaceset$feba 0001a438
    scoreinittbl 0001a444
    ringinittbl 0001a450
    posiwrt 0001a454
    hexwrtw 0001a47c
    .loop$jeba 0001a484
    .jump$jeba 0001a496
    .jump5$jeba 0001a4ac
    ringwrt 0001a4b4
    scorewrt 0001a4be
    scorewrt2 0001a4c6
    .loop$meba 0001a4cc
    .jump2$meba 0001a4d0
    .jump3$meba 0001a4d8
    .jump4$meba 0001a4e2
    .jump5$meba 0001a510
    contwrt 0001a51c
    .loop$neba 0001a53a
    .jump2$neba 0001a53e
    .jump3$neba 0001a546
    subtbl 0001a574
    subtbl4 0001a57c
    subtbl3 0001a580
    subtbl2 0001a584
    subtbl1 0001a588
    timewrt1 0001a58c
    timewrt 0001a594
    timewrt0 0001a59a
    .loop$veba 0001a5a0
    .jump2$veba 0001a5a4
    .jump3$veba 0001a5ac
    .jump4$veba 0001a5b6
    bonuswrt 0001a5ec
    .loop$weba 0001a5f8
    .jump2$weba 0001a5fc
    .jump3$weba 0001a604
    .jump4$weba 0001a60e
    .jump5$weba 0001a638
    .jump7$weba 0001a63e
    .loop2$weba 0001a640
    playsuuwrt 0001a64c
    .loop$xeba 0001a664
    .jump2$xeba 0001a66c
    .jump3$xeba 0001a674
    .jump4$xeba 0001a67e
    .jump5$xeba 0001a682
    .jump6$xeba 0001a698
    .jump7$xeba 0001a6a4
    .loop2$xeba 0001a6aa
    scorewrtcg 0001a6b6
    playsuucg 0001a9b6
    edit 0001ab00
    edit_move_tbl 0001ab0e
    editinit 0001ab12
    .jump0$ydba 0001ab58
    .jump1$ydba 0001ab5e
    .jump$ydba 0001ab78
    editmove 0001ab88
    .jump$zdba 0001ab98
    editwalk 0001abb0
    .jump$aeba 0001abda
    .jump0$aeba 0001abf2
    .jump1$aeba 0001abf6
    .jump2$aeba 0001ac16
    .jump3$aeba 0001ac2c
    .jump4$aeba 0001ac38
    .jump5$aeba 0001ac40
    .lend$aeba 0001ac48
    .jump77$aeba 0001ac64
    .jump6$aeba 0001ac7c
    .jump7$aeba 0001ac80
    .worknai$aeba 0001acc4
    .jump8$aeba 0001acc4
    .end$aeba 0001acec
    .jump9$aeba 0001ad1e
    editpatchg 0001ad20
    edittbl 0001ad40
    edit1tbl 0001ad4e
    edit2tbl 0001adc0
    edit3tbl 0001adc0
    edit4tbl 0001adfa
    edit5tbl 0001aed4
    edit7tbl 0001aed4
    edit6tbl 0001aed4
    mapinittbl 0001af58
    divdevtbl 0001afc8
    ddev00 0001b008
    ddev01 0001b028
    ddev02 0001b03c
    ddev03 0001b044
    ddev04 0001b04c
    ddev05 0001b084
    ddev06 0001b08c
    ddev08 0001b08c
    ddev14 0001b08c
    ddev10 0001b0ac
    ddev11 0001b0e4
    ddev12 0001b0f8
    ddev13 0001b12a
    ddev15 0001b15c
    ddev07 0001b15c
    ddev09 0001b15c
    ddev16 0001b170
    ddev17 0001b178
    ddev18 0001b1b0
    ddev19 0001b1c4
    ddev20 0001b1c4
    ddev21 0001b1c6
    ddev22 0001b1d4
    ddev23 0001b1e2
    ddev24 0001b1f0
    ddev25 0001b1fe
    ddev26 0001b20c
    ddev27 0001b21a
    ddev28 0001b21c
    ddev29 0001b21e
    ddev30 0001b220
    ddev31 0001b222
    scddirtbl1 00020000
    scddirtbl2 00020100
    scdtbl1 00020200
    scdtbl 00020200
    scdtbl2 00021200
    scdtbl3 00022200
    scdtbl4 00023200
    rotmaptbl0 00025734
    rotmaptbl1 000259ae
    rotmaptbl2 00025dc0
    rotmaptbl3 0002611c
    rotmaptbl4 000265f6
    rotmaptbl5 00026aa6
    efect00ccg 00026e98
    efect00dcg 00026f18
    efect00ecg 00026f98
    efect0dccg 00027b98
    efect0ddcg 00027c58
    efect0decg 00027d18
    efect0dfcg 00027dd8
    zone4_4a 00029dc4
    zone4_4b 0002a5c6
    zone2_4a 0002a5d0
    zone6_4a 0002a5d0
    zone3_4a 0002a5d0
    zone1_4a 0002a5d0
    zone7_4a 0002a5d0
    zone5_4a 0002add2
    zone7_4b 0002b5d4
    zone6_4b 0002b5d4
    zone3_4b 0002b5d4
    zone2_4b 0002b5d4
    zone1_4b 0002b5d4
    zone5_4b 0002b666
    zone7_4z 0002b6b0
    zone7_3z 0002b6b0
    zone1_4z 0002b6b0
    zone2_4z 0002b6b0
    zone4_4z 0002b6b0
    zone6_4z 0002b6b0
    zone6_3z 0002b6b0
    zone3_3z 0002b6b0
    zone5_4z 0002b6b0
    zone2_3z 0002b6b0
    zone1_3z 0002b6b0
    zone4_3z 0002b6b0
    zone5_3z 0002b6b0
    zone3_4z 0002b6b0
    bigringcg 0002b6b4
    asettbl 00040000
    asettbl10 00040096
    asettbl11 000403a8
    asettbl12 00040798
    asettbl20 00040c8a
    asettbl21 00040c90
    asettbl23 00040c96
    asettbl22 00040c96
    asettbl10z 00041674
    asettbl60z 00041674
    asettbl70z 00041674
    ringact11 00050030
    ringact12 0005017a
    ringact13 000502a4
    ringact21 000503ce
    ringact22 0005045c
    ringact23 000504ba
    ringact80 00050538
    ringact00 000506aa
    ringact01 0005080c
    ringact02 0005099a
    ringact03 0005099c
    pcm_top 00072e7c
    pcm_end 000745dc
    ply000 0009160e
    ply001 00091610
    ply002 00091632
    ply003 00091644
    ply004 0009166e
    ply005 00091698
    ply006 000916c2
    ply007 000916e4
    ply008 00091706
    ply009 00091718
    ply010 0009172a
    ply011 0009173c
    ply012 0009175e
    ply013 00091780
    ply014 00091792
    ply015 000917a4
    ply016 000917be
    ply017 000917d8
    ply018 000917f2
    ply019 00091814
    ply020 00091836
    ply021 00091850
    ply022 0009186a
    ply023 00091884
    ply024 0009189e
    ply025 000918c0
    ply026 000918ea
    ply027 00091914
    ply028 00091936
    ply029 00091958
    ply030 0009197a
    ply031 0009199c
    ply032 000919be
    ply033 000919e8
    ply034 00091a0a
    ply035 00091a2c
    ply036 00091a4e
    ply037 00091a68
    ply038 00091a7a
    ply039 00091a8c
    ply040 00091a9e
    ply041 00091ab8
    ply042 00091ad2
    ply043 00091aec
    ply044 00091afe
    ply045 00091b10
    ply046 00091b22
    ply047 00091b34
    ply048 00091b4e
    ply049 00091b70
    ply050 00091b92
    ply051 00091bbc
    ply052 00091bde
    ply053 00091c00
    ply054 00091c22
    ply055 00091c44
    ply056 00091c66
    ply057 00091c88
    ply058 00091caa
    ply060 00091cee
    ply061 00091d00
    ply062 00091d12
    ply063 00091d24
    ply064 00091d36
    ply065 00091d48
    ply066 00091d5a
    ply067 00091d6c
    ply068 00091d7e
    ply069 00091d90
    ply070 00091da2
    ply071 00091db4
    ply072 00091dc6
    ply073 00091dd8
    ply074 00091dea
    ply075 00091dfc
    ply076 00091e0e
    ply077 00091e20
    ply078 00091e32
    ply079 00091e44
    ply080 00091e56
    ply081 00091e68
    ply082 00091e7a
    ply083 00091e8c
    ply084 00091e9e
    ply085 00091eb0
    ply086 00091ec2
    ply087 00091ed4
    ply088 00091ee6
    ply089 00091ef8
    ply090 00091f0a
    ply091 00091f1c
    ply092 00091f2e
    ply093 00091f40
    ply094 00091f52
    ply095 00091f64
    ply096 00091f76
    ply097 00091f88
    ply098 00091f9a
    ply099 00091fac
    ply100 00091fbe
    ply101 00091fd0
    ply102 00091fe2
    ply103 00091ff4
    ply104 00092006
    ply105 00092018
    ply106 0009202a
    ply107 0009203c
    ply108 0009204e
    ply109 00092058
    ply110 00092062
    ply111 0009206c
    ply112 00092076
    ply113 00092080
    ply114 0009208a
    ply115 00092094
    ply116 0009209e
    ply117 000920a8
    ply118 000920b2
    ply119 000920bc
    ply120 000920d6
    ply121 000920f0
    ply122 0009210a
    ply123 00092124
    ply124 00092146
    ply125 00092168
    ply126 0009218a
    ply127 000921a4
    ply128 000921ae
    ply129 000921b8
    ply130 000921d2
    ply131 000921ec
    ply132 00092206
    ply133 00092220
    ply134 00092232
    ply136 00092256
    ply137 00092268
    ply138 0009228a
    ply139 0009229c
    ply140 000922b6
    ply141 000922d0
    ply142 000922e2
    ply143 000922f4
    ply144 00092306
    ply145 00092318
    ply146 0009233a
    ply147 0009235c
    ply148 0009237e
    ply149 00092398
    ply150 000923b2
    ply151 000923d4
    ply152 000923ee
    ply153 00092410
    ply154 00092432
    ply155 0009244c
    ply156 00092466
    ply157 00092480
    ply158 00092492
    ply159 0009249c
    ply160 000924ae
    ply161 000924c8
    ply162 000924e2
    ply163 000924fc
    ply164 0009250e
    ply165 00092520
    ply166 0009253a
    foxcg 0009254c
    playwrtpat 0009da4c
    plw000 0009db9a
    plw001 0009db9c
    plw002 0009dba6
    plw003 0009dbac
    plw004 0009dbb8
    plw005 0009dbc4
    plw006 0009dbd0
    plw007 0009dbda
    plw008 0009dbe4
    plw009 0009dbea
    plw010 0009dbf0
    plw011 0009dbf6
    plw012 0009dc00
    plw013 0009dc0a
    plw014 0009dc10
    plw015 0009dc16
    plw016 0009dc1e
    plw017 0009dc26
    plw018 0009dc2e
    plw019 0009dc38
    plw020 0009dc42
    plw021 0009dc4a
    plw022 0009dc52
    plw023 0009dc5a
    plw024 0009dc62
    plw025 0009dc6c
    plw026 0009dc78
    plw027 0009dc84
    plw028 0009dc8e
    plw029 0009dc98
    plw030 0009dca2
    plw031 0009dcac
    plw032 0009dcb6
    plw033 0009dcc2
    plw034 0009dccc
    plw035 0009dcd6
    plw036 0009dce0
    plw037 0009dce8
    plw038 0009dcee
    plw039 0009dcf4
    plw040 0009dcfa
    plw041 0009dd02
    plw042 0009dd0a
    plw043 0009dd12
    plw044 0009dd18
    plw045 0009dd1e
    plw046 0009dd24
    plw047 0009dd2a
    plw048 0009dd32
    plw049 0009dd3c
    plw050 0009dd46
    plw051 0009dd52
    plw052 0009dd5c
    plw053 0009dd66
    plw054 0009dd70
    plw055 0009dd7a
    plw056 0009dd84
    plw057 0009dd8e
    plw058 0009dd98
    plw059 0009dda2
    plw060 0009ddac
    plw068 0009ddac
    plw064 0009ddac
    plw065 0009ddb2
    plw069 0009ddb2
    plw061 0009ddb2
    plw066 0009ddb8
    plw062 0009ddb8
    plw070 0009ddb8
    plw067 0009ddbe
    plw071 0009ddbe
    plw063 0009ddbe
    plw076 0009ddc4
    plw080 0009ddc4
    plw072 0009ddc4
    plw081 0009ddca
    plw073 0009ddca
    plw077 0009ddca
    plw078 0009ddd0
    plw074 0009ddd0
    plw082 0009ddd0
    plw075 0009ddd6
    plw083 0009ddd6
    plw079 0009ddd6
    plw084 0009dddc
    plw088 0009dddc
    plw092 0009dddc
    plw085 0009dde2
    plw093 0009dde2
    plw089 0009dde2
    plw090 0009dde8
    plw086 0009dde8
    plw094 0009dde8
    plw087 0009ddee
    plw095 0009ddee
    plw091 0009ddee
    plw096 0009ddf4
    plw104 0009ddf4
    plw100 0009ddf4
    plw101 0009ddfa
    plw097 0009ddfa
    plw105 0009ddfa
    plw098 0009de00
    plw106 0009de00
    plw102 0009de00
    plw103 0009de06
    plw099 0009de06
    plw107 0009de06
    plw108 0009de0c
    plw109 0009de10
    plw110 0009de14
    plw111 0009de18
    plw112 0009de1c
    plw113 0009de20
    plw114 0009de24
    plw115 0009de28
    plw116 0009de2c
    plw117 0009de30
    plw118 0009de34
    plw119 0009de38
    plw120 0009de40
    plw121 0009de48
    plw122 0009de50
    plw123 0009de58
    plw124 0009de62
    plw125 0009de6c
    plw126 0009de76
    plw127 0009de7e
    plw128 0009de82
    plw129 0009de86
    plw130 0009de8e
    plw131 0009de96
    plw132 0009de9e
    plw133 0009dea6
    plw134 0009deac
    plw135 0009deb2
    plw136 0009deb8
    plw137 0009debe
    plw138 0009dec8
    plw139 0009dece
    plw140 0009ded6
    plw141 0009dede
    plw142 0009dee4
    plw143 0009deea
    plw144 0009def0
    plw147 0009def6
    plw145 0009def6
    plw146 0009df00
    plw149 0009df06
    plw148 0009df06
    plw150 0009df0e
    plw151 0009df18
    plw152 0009df20
    plw153 0009df2a
    plw154 0009df34
    plw155 0009df3c
    plw156 0009df44
    plw157 0009df4c
    plw158 0009df52
    plw159 0009df56
    plw160 0009df5c
    plw161 0009df64
    plw162 0009df6c
    plw163 0009df74
    plw164 0009df7a
    plw165 0009df80
    plw166 0009df88
    bariacg 0009df8e
    mutekicg 0009e114
    stopfxcg 0009e1fc
    foxsp000 0009fc46
    foxsp001 0009fc48
    foxsp002 0009fc5a
    foxsp003 0009fc6c
    foxsp004 0009fc7e
    foxsp005 0009fc90
    foxsp006 0009fc9a
    foxsp007 0009fca4
    foxsp008 0009fcb6
    foxsp009 0009fcc8
    foxsp010 0009fcd2
    foxsp011 0009fcdc
    foxsp012 0009fce6
    foxsp013 0009fcf0
    foxsp014 0009fcfa
    foxsp015 0009fd14
    foxsp016 0009fd2e
    foxsp017 0009fd48
    foxsp018 0009fd62
    foxsp019 0009fd7c
    foxsp020 0009fd96
    foxsp021 0009fdb0
    foxsp022 0009fdca
    foxsp023 0009fde4
    foxsp024 0009fdfe
    foxsp025 0009fe18
    foxsp026 0009fe32
    foxsp027 0009fe4c
    foxsp028 0009fe66
    foxsp029 0009fe80
    foxsp030 0009fe9a
    foxsp031 0009feb4
    foxsp032 0009fece
    foxsp033 0009fee8
    foxsp034 0009ff02
    foxsp035 0009ff1c
    foxsp036 0009ff36
    foxsp037 0009ff50
    foxsp038 0009ff6a
    foxsp039 0009ff7c
    foxsp040 0009ff96
    foxsp041 0009ffa8
    foxsp042 0009ffc2
    foxsp043 0009ffd4
    foxsp044 0009ffee
    foxsp045 000a0000
    foxsp046 000a001a
    foxsp047 000a002c
    foxsp048 000a003e
    foxsp049 000a0050
    foxsp050 000a0062
    foxsp051 000a0074
    foxsp052 000a0086
    foxsp053 000a00a0
    foxsp054 000a00ba
    foxsp055 000a00d4
    foxsp056 000a00ee
    foxsp057 000a0108
    foxsp058 000a0122
    foxsp059 000a013c
    foxsp061 000a013c
    foxsp060 000a0156
    foxsp062 000a0170
    foxsp063 000a018a
    foxsp064 000a01a4
    foxsp065 000a01be
    foxsp066 000a01d8
    foxsp067 000a01f2
    foxsp068 000a020c
    foxsp069 000a0226
    foxsp070 000a0240
    foxsp071 000a024a
    foxsp072 000a0254
    foxsp073 000a025e
    foxsp074 000a0268
    foxsp075 000a0272
    foxsp076 000a027c
    foxsp077 000a0286
    foxsp078 000a0290
    foxsp079 000a029a
    foxsp080 000a02a4
    foxsp081 000a02ae
    foxsp082 000a02b8
    foxsp083 000a02c2
    foxsp084 000a02cc
    foxsp085 000a02d6
    foxsp086 000a02e0
    foxsp087 000a02ea
    foxsp088 000a02f4
    foxsp089 000a02fe
    foxsp090 000a0310
    foxsp091 000a0322
    foxsp092 000a032c
    foxsp093 000a0336
    foxsp094 000a0340
    foxsp095 000a0352
    foxsp096 000a0364
    foxsp097 000a036e
    foxsp098 000a0378
    foxsp099 000a0382
    foxsp100 000a0394
    foxsp101 000a03a6
    foxsp102 000a03b8
    foxsp103 000a03ca
    foxsp104 000a03dc
    foxsp105 000a03ee
    foxsp106 000a0400
    foxsp107 000a0412
    foxsp108 000a041c
    foxsp109 000a042e
    foxsp110 000a0440
    foxsp111 000a0452
    foxsp112 000a0464
    foxsp113 000a0476
    foxsp114 000a0488
    foxsp115 000a049a
    foxsp116 000a04ac
    foxsp117 000a04b6
    foxsp118 000a04c0
    foxsp119 000a04d2
    foxsp120 000a04dc
    foxsp121 000a04e6
    foxsp122 000a04f0
    foxsp123 000a04fa
    foxsp124 000a0504
    foxsp125 000a050e
    foxsp126 000a0518
    ply135 000a0522
    foxsp128 000a0534
    foxsp129 000a0546
    foxsp130 000a0550
    foxsp131 000a055a
    foxsp132 000a0564
    foxw050 000a07c4
    foxw051 000a07ca
    foxw052 000a07d0
    foxw053 000a07d8
    foxw054 000a07e0
    foxw055 000a07e8
    foxw056 000a07f0
    foxw057 000a07f8
    foxw058 000a0800
    foxw059 000a0808
    foxw061 000a0808
    foxw060 000a0810
    foxw062 000a0818
    foxw063 000a0820
    foxw064 000a0828
    foxw065 000a0830
    foxw066 000a0838
    foxw067 000a0840
    foxw068 000a0848
    foxw069 000a0850
    foxw070 000a0858
    foxw071 000a085c
    foxw072 000a0860
    foxw129 000a0864
    foxw073 000a0864
    foxw130 000a0868
    foxw074 000a0868
    foxw075 000a086c
    foxw131 000a086c
    foxw132 000a0870
    foxw076 000a0870
    foxw077 000a0874
    foxw078 000a0878
    foxw079 000a087c
    foxw080 000a0880
    foxw081 000a0884
    foxw082 000a0888
    foxw083 000a088c
    foxw084 000a0890
    foxw085 000a0894
    foxw086 000a0898
    foxw087 000a089c
    foxw088 000a08a0
    foxw089 000a08a4
    foxw090 000a08aa
    foxw091 000a08b0
    foxw092 000a08b4
    foxw093 000a08b8
    foxw094 000a08bc
    foxw095 000a08bc
    foxw096 000a08c2
    foxw097 000a08c6
    foxw098 000a08ca
    foxw099 000a08ce
    foxw100 000a08d4
    foxw101 000a08da
    foxw102 000a08e0
    foxw103 000a08e6
    foxw104 000a08ec
    foxw105 000a08f2
    foxw106 000a08f8
    foxw107 000a08fe
    foxw108 000a0902
    foxw109 000a0908
    foxw110 000a090e
    foxw112 000a090e
    foxw111 000a0914
    foxw114 000a091a
    foxw113 000a091a
    foxw115 000a0920
    foxw116 000a0926
    foxw117 000a092a
    foxw118 000a092e
    foxw119 000a0934
    foxw120 000a0938
    foxw121 000a093c
    foxw122 000a0940
    foxw123 000a0944
    foxw124 000a0948
    foxw125 000a094c
    foxw126 000a0950
    foxw127 000a0954
    foxw128 000a095a
    logocg 000a0960
    titlespcg 000a2ca6
    greencg 000a37ea
    movecg 000a3a3a
    togehcg 000a3c20
    jyamacg 000a3f60
    kagebcg 000a412c
    door00cg 000a49f2
    cso00cg 000a4a6a
    falls08cg 000a4d7a
    gem08cg 000a50dc
    pltfrm08cg 000a534e
    kemuri0dcg 000a57e4
    nami0dcg 000a5bf0
    swichcg 000a5d60
    bane45cg 000a601e
    playnocg 000a62fa
    itemcg 000a6504
    togecg 000a692e
    savecg 000a6a58
    bbatcg 000a7086
    redzcg 000a7af8
    bballcg 000a8814
    mamabubcg 000a8aaa
    bubblercg 000a8cd6
    snailcg 000a8ef8
    sandcrabcg 000a90f4
    zdbcg 000a9dbe
    bossbmcg 000aa31c
    bossafbcg 000aa9a4
    bosssmcg 000aaa22
    arumacg 000ace00
    kamerecg 000ad5ae
    usacg 000ae2b0
    unicg 000ae790
    imocg 000ae96e
    zonecg 000aeafc
    yararecg 000af10a
    jump2cg 000afa04
    golecg 000afae0
    ebigringcg 000aff5c
    btencg 000b00d0
    contcg 000b03d2
    sdsoniccg 000b0682
    usagicg 000b08bc
    fbutacg 000b0e08
    risucg 000b1078
    zone00cg 000b2174
    zone08cg 000be58c
    zone1cg 000d5db2
    enkeicg 000d936e
    zone1map 000da9ce
    scdtblwk2 00fe2000[/codebox]

    [codebox]ascii 000004e8
    bgmset 000012f6
    soundset 000012fc
    dmactrset 000013a0
    mapdevr 0000170e
    random 00002af0
    sinset 00002b16
    atan 00002dae
    dai00pat 00008556
    pltfrmpat 00008c64
    frntlitpat 00008e04
    kanipat 00009c84
    hachipat 00009fc2
    ringgetsub 0000a236
    ringpat 0000a54a
    itempat 0000abf0
    togepat 0000c17e
    jyamapat 0000c202
    speedset2 0000c732
    actionsub 0000c758
    frameout 0000c88e
    patchg 0000c89c
    spatsetsub 0000cb26
    actwkchk 0000daa2
    actwkchk2 0000dab0
    sjumppat 0000e0b4
    banepat 0000e12c
    kagebpat 0000e640
    goleset 0000e80a
    atariridesub 0000eb1c
    patchgmain 0000ff82
    playwrt 0001029a
    savepat 00012d74
    bobinpat 00013002
    kaitenpat 00013736
    sisoopat 000144ec
    redzpat 00014f16
    horsepat 0001542c
    octpat 00015ccc
    bbatpat 00016016
    gatorpat 00016330
    wfish2pat 000165a6
    bossdriller 00016888
    drillerguy 00016f24
    bossba 0001718c
    bossba_move_tbl 0001719a
    bossbainit 000171a4
    .cnt$geba 000171f0
    .cnt2$geba 00017254
    .worknai$geba 000172a8
    bossbaappendage 000172ba
    bossbamove 000172c2
    bossbamove_tbl 000172f8
    bossbatop 00017300
    afbtbl 0001732e
    bossafb 00017332
    .cnt$neba 00017370
    .jump$neba 0001737a
    .hurt$neba 00017386
    .here$neba 00017394
    bosssm 000173d0
    .jump$oeba 00017412
    billbomb 00017416
    billbomb_tbl 00017424
    billbombinit 00017428
    billbombmove 00017460
    .jump$seba 0001747a
    bossafbpat 0001747e
    afbsp00 00017482
    afbsp01 0001748c
    bosssmpat 00017496
    smbsp00 0001749e
    smbsp01 000174a8
    smbsp02 000174b2
    smbsp03 000174bc
    billbombpat 000174c6
    bossbmsp00 000174d4
    bossbmsp01 000174de
    bossbmsp02 000174e8
    bossbmsp03 000174f2
    bossbmsp04 000174fc
    bossbmsp05 00017506
    bossbmsp06 00017510
    bossbachg 0001751a
    bossbachg1 0001751e
    bossbachg2 00017521
    bossbapat 00017526
    bossbasp00 0001752c
    bossbasp01 0001754e
    bossbasp02 00017570
    masin 000184ac
    .frameout$edba 000184d2
    masin_move_tbl 000184d8
    masintbl 000184e8
    masininit 000184f8
    .end$hdba 00018544
    masinmove 00018546
    .jump$idba 00018564
    .jump2$idba 0001857a
    masinswitch 00018582
    .jump$jdba 000185e8
    masincenter2 000185ea
    masinbomb 000185ea
    masincenter 000185ea
    .jump$mdba 00018628
    .worknai$mdba 00018628
    .end$mdba 0001862e
    .bombend$mdba 00018630
    .lp$mdba 00018656
    .no_work_left$mdba 00018680
    masinusagi 00018682
    .pass$ndba 000186b6
    .jump$ndba 000186c0
    .worknai$ndba 000186c0
    .end$ndba 000186d0
    masinclear 000186d2
    .lp$odba 000186dc
    .end$odba 000186f2
    masinchg 000186f4
    masinchg1 000186f8
    masinchg0 000186f8
    masinpat 000186fc
    masinsp0 0001870a
    masinsp1 00018744
    masinsp2 0001874e
    masinsp3 00018780
    masinsp4 0001878a
    masinsp5 0001879c
    masinsp6 000187a6
    pcol 000187b0
    .loop$ldba 000187e8
    .atari$ldba 00018888
    .item2$mdba 000188ee
    escoretbl 000189ac
    pcolplay2 000189b4
    pcole 000189c4
    playdamageset 000189ce
    .worknai$tdba 000189f6
    .end$tdba 00018a66
    playdieset 00018a72
    pcolspecial 00018aca
    .imo$vdba 00018aec
    .bobin$vdba 00018b22
    sprscr 00018b48
    .loop$ndba 00018b98
    .loop2$ndba 00018bba
    sprscre 00018bdc
    sprscrset 00018bdc
    .loop$pdba 00018c06
    .loop2$pdba 00018c0a
    .jump$pdba 00018c62
    .end$pdba 00018c82
    sprscractcnt 00018c8a
    .loop$qdba 00018c9e
    .jump2$qdba 00018cc2
    .jump4$qdba 00018cde
    .jump5$qdba 00018d20
    .jump3$qdba 00018d4a
    scractofftbl 00018e34
    scrwkchk 00018eb4
    .loop$sdba 00018ebe
    .jump$sdba 00018ec8
    scrcnt 00018eca
    .loop$tdba 00018ed4
    .jump$tdba 00018ee2
    scracttbl 00018eea
    scr_ring 00018f02
    .end$vdba 00018f2a
    .jump$vdba 00018f2a
    scr_ringtbl 00018f2c
    scr_bobin 00018f32
    .jump$xdba 00018f5e
    .end$xdba 00018f60
    scr_bobintbl 00018f62
    scr_1up 00018f68
    .jump$zdba 00018f90
    .end$zdba 00018f90
    scr_1uptbl 00018f92
    scr_revers 00018f98
    .jump$beba 00018fc4
    .end$beba 00018fc6
    scr_reverstbl 00018fc8
    scr_houseki 00018fce
    .jump$deba 00019006
    .end$deba 00019006
    scr_housekitbl 00019008
    scr_break 0001900e
    .jump$feba 0001903a
    .end$feba 0001903a
    scr_breaktbl 0001903c
    sprmapsettbl 00019046
    sprplaypositbl 0001905e
    sprmapset 00019076
    .jump$jeba 0001908e
    .loop0$jeba 000190a4
    .jump0$jeba 000190ac
    .jump2$jeba 000190b0
    .loop$jeba 000190dc
    .loop1$jeba 000190f0
    .loop2$jeba 000190f2
    scrpatset 00019100
    .loop$keba 0001910e
    scrcntclr 00019120
    .loop$leba 0001912a
    scrpattbl 00019132
    metpat 00019306
    zonepat 00019306
    warppat 00019306
    sprevpat 00019306
    golepat 00019306
    derupat 00019306
    sp1uppat 00019306
    golesp0 0001930c
    golesp1 00019312
    derusp2 00019318
    sphashpat 0001931a
    koukapat 0001931a
    breakpat 0001931a
    sphashsp0 00019322
    koukasp0 00019322
    sphashsp1 00019328
    koukasp1 00019328
    koukasp2 0001932e
    koukasp3 00019334
    spuppat 0001933a
    spupsp0 0001933e
    spupsp1 00019344
    spdownpat 0001934a
    spdownsp0 0001934e
    spdownsp1 00019354
    hous0pat 0001935a
    hous1pat 0001935e
    hous2pat 00019362
    sphoussp0 00019366
    sphoussp1 0001936c
    sphoussp2 00019372
    sphoussp3 00019378
    play01 00019380
    .jump$neba 0001938e
    play01_move_tbl 0001939c
    play01init 000193a4
    play01move 000193e4
    .jump5$qeba 000193f8
    play01move_tbl 0001941c
    play01walk 00019420
    play01jump 0001942e
    play01sub 0001943a
    splevermove 00019460
    .jump5$veba 0001946c
    .jump6$veba 00019478
    .right$veba 0001948a
    .right2$veba 00019494
    .left$veba 0001949a
    .left2$veba 000194a4
    .jump7$veba 000194a8
    .jump$veba 000194f2
    spplwalk_l 000194f8
    .left$weba 00019506
    .left2$weba 00019514
    .right$weba 0001951a
    .right2$weba 00019522
    spplwalk_r 00019528
    .right$xeba 00019534
    .right2$xeba 00019542
    .left$xeba 00019548
    .left2$xeba 00019550
    .rightcol$xeba 00019554
    spjumpchk 00019556
    .end$yeba 00019598
    spjumpchk2 0001959a
    .end$zeba 000195b4
    playscr 000195b6
    .jump$afba 000195ce
    .jump2$afba 000195de
    play01gole 000195e0
    .jump0$bfba 000195f4
    .jump$bfba 00019612
    play01gole2 00019634
    .end$cfba 00019640
    rotspdset 00019656
    .jump2$dfba 000196b0
    .jump3$dfba 000196c6
    .jump4$dfba 000196d4
    spcol 000196e8
    spcol2 000196e8
    spcolsub 00019730
    .end$gfba 00019744
    .jump2$gfba 00019746
    spcol_ev 00019752
    spcolsub_ev 0001978c
    .worknai$ifba 000197a0
    .jump$ifba 000197c4
    .jump2$ifba 000197c8
    .worknai2$ifba 000197dc
    .jump3$ifba 000197f2
    .worknai3$ifba 0001980c
    .jump33$ifba 0001982a
    .jump4$ifba 00019838
    .jump5$ifba 00019844
    .jump6$ifba 00019858
    derusub 0001985c
    .loop1$jfba 0001986c
    .loop2$jfba 0001986e
    .jump$jfba 00019878
    .end$jfba 00019886
    bobinchk 0001988e
    .jmp$kfba 000198a0
    .jmp2$kfba 000198ac
    .jump$kfba 000198ae
    .worknai$kfba 0001991c
    .jump2$kfba 00019926
    .jump3$kfba 0001993c
    .jump33$kfba 00019966
    .jump4$kfba 00019970
    .jump44$kfba 0001999a
    .jump5$kfba 000199a4
    .worknai2$kfba 000199cc
    .jump6$kfba 000199da
    .jump66$kfba 000199f2
    .jump666$kfba 00019a12
    .worknai3$kfba 00019a16
    .end$kfba 00019a20
    .jump7$kfba 00019a20
    play02 00019a22
    score 0001a074
    score_move_tbl 0001a082
    score_init 0001a086
    score_move 0001a0b4
    .jump0$udba 0001a0ce
    .jump$udba 0001a0d8
    .jump2$udba 0001a0ee
    scorepat 0001a0f8
    scoresp0 0001a100
    scoresp1 0001a152
    scoresp2 0001a1a4
    scoresp3 0001a1f6
    scoreup 0001a248
    .jump$aeba 0001a260
    .jumpus$aeba 0001a288
    .jump0$aeba 0001a288
    scoreset 0001a28a
    .jump$beba 0001a2b2
    .jump1$beba 0001a2be
    .jump2$beba 0001a2d2
    .jump3$beba 0001a30e
    .jump4$beba 0001a32e
    .jump5$beba 0001a33c
    .jump6$beba 0001a364
    .timeover$beba 0001a366
    scoreset2 0001a37c
    .jump1$ceba 0001a38c
    .jump2$ceba 0001a3a0
    .jump3$ceba 0001a3b0
    .jump4$ceba 0001a3be
    .jump5$ceba 0001a3e6
    ringinit 0001a3e8
    scoreinit 0001a3fc
    scoreinitsub 0001a418
    .loop$feba 0001a41c
    .loop1$feba 0001a42c
    .jump$feba 0001a432
    .loop2$feba 0001a438
    .spaceset$feba 0001a438
    scoreinittbl 0001a444
    ringinittbl 0001a450
    posiwrt 0001a454
    hexwrtw 0001a47c
    .loop$jeba 0001a484
    .jump$jeba 0001a496
    .jump5$jeba 0001a4ac
    ringwrt 0001a4b4
    scorewrt 0001a4be
    scorewrt2 0001a4c6
    .loop$meba 0001a4cc
    .jump2$meba 0001a4d0
    .jump3$meba 0001a4d8
    .jump4$meba 0001a4e2
    .jump5$meba 0001a510
    contwrt 0001a51c
    .loop$neba 0001a53a
    .jump2$neba 0001a53e
    .jump3$neba 0001a546
    subtbl 0001a574
    subtbl4 0001a57c
    subtbl3 0001a580
    subtbl2 0001a584
    subtbl1 0001a588
    timewrt1 0001a58c
    timewrt 0001a594
    timewrt0 0001a59a
    .loop$veba 0001a5a0
    .jump2$veba 0001a5a4
    .jump3$veba 0001a5ac
    .jump4$veba 0001a5b6
    bonuswrt 0001a5ec
    .loop$weba 0001a5f8
    .jump2$weba 0001a5fc
    .jump3$weba 0001a604
    .jump4$weba 0001a60e
    .jump5$weba 0001a638
    .jump7$weba 0001a63e
    .loop2$weba 0001a640
    playsuuwrt 0001a64c
    .loop$xeba 0001a664
    .jump2$xeba 0001a66c
    .jump3$xeba 0001a674
    .jump4$xeba 0001a67e
    .jump5$xeba 0001a682
    .jump6$xeba 0001a698
    .jump7$xeba 0001a6a4
    .loop2$xeba 0001a6aa
    scorewrtcg 0001a6b6
    playsuucg 0001a9b6
    edittbl 0001ad40
    rotmaptbl0 00025734
    rotmaptbl1 000259ae
    rotmaptbl2 00025dc0
    rotmaptbl3 0002611c
    rotmaptbl4 000265f6
    rotmaptbl5 00026aa6
    efect00acg 00026d98
    efect00bcg 00026e18
    efect00ccg 00026e98
    efect00dcg 00026f18
    efect00ecg 00026f98
    efect08bcg 00027498
    efect0dacg 00027798
    efect0dbcg 00027898
    efect0dccg 00027b98
    efect0ddcg 00027c58
    efect0decg 00027d18
    efect0dfcg 00027dd8
    efect0dgcg 00027f58
    efect0dhcg 00028198
    zonemaptbl 00028218
    asettbl30 00040dec
    asettbl31 00040e5e
    asettbl32 00040e64
    asettbl40 00040e6a
    asettbl41 00041080
    asettbl42 000412ae
    asettbl50 000412b4
    asettbl51 000413bc
    asettbl52 000413c2
    asettbl60 000413c8
    asettbl61 000413ce
    asettbl62 000413d4
    asettbl70 00041518
    asettbl20z 00041674
    ringacttbl 00050000
    playpat 000914c0
    bariacg 0009df8e
    mutekicg 0009e114
    exit2cg 0009ed3c
    foxpat 0009fb3c
    burankocg 000a3834
    hashicg 000a394e
    jyamacg 000a3f60
    brkabecg 000a408e
    fire00cg 000a418c
    taki00cg 000a43d2
    hashi00cg 000a4626
    cso00cg 000a4a6a
    brig08cg 000a4c02
    falls08cg 000a4d7a
    gem08cg 000a50dc
    pltfrm08cg 000a534e
    frntlite08cg 000a540e
    cork08cg 000a564a
    kemuri0dcg 000a57e4
    dai0dcg 000a5904
    nami0dcg 000a5bf0
    banevcg 000a5e38
    banehcg 000a5f54
    bane45cg 000a601e
    scorecg 000a61f2
    playnocg 000a62fa
    ringcg 000a6410
    itemcg 000a6504
    togecg 000a692e
    tencg 000a697e
    savecg 000a6a58
    gatorcg 000a6afe
    waspcg 000a6ea0
    bbatcg 000a7086
    stegocg 000a76fc
    redzcg 000a7af8
    billfishcg 000a7ece
    snailcg 000a8ef8
    bfishcg 000a9476
    bossbacg 000a9682
    zdbcg 000a9dbe
    bossafbcg 000aa9a4
    bosssmcg 000aaa22
    boss00cg 000aab08
    bosshcg 000ab2f4
    moguracg 000ac224
    fishcg 000ac90e
    musicg 000ad324
    zonecg 000aeafc
    yararecg 000af10a
    overcg 000af770
    jumpcg 000af902
    jump2cg 000afa04
    golecg 000afae0
    ebigringcg 000aff5c
    btencg 000b00d0
    usagicg 000b08bc
    niwacg 000b0a14
    pengcg 000b0b70
    azarcg 000b0cec
    fbutacg 000b0e08
    fliccg 000b0f3e
    risucg 000b1078
    zone00map 000b4fac
    zone08map 000c140e
    zone0dpccg 000ccd56
    zone0dmap 000ccfb2
    zone1map 000da9ce[/codebox]
     
  11. Claxon

    Claxon

    Member Member
    Ok well the first thing I'll point out is that I was not involved in the first stage of porting. That is - creating the first reference build where everything was working. At the time I was working on a Monkeyball game, and didn't get onto Sonic until the Java code was functional (well, mostly), and ports on to different devices had started. So while I heard the occasional bit of chat about Sonic porting in the early stages, and saw a few of the initial assets sent by sega, I can't tell you much about where exactly it all originally came from. If DrX is successful in prying information out of the guys I worked with, who were responsible for the early stages, I'm sure you'll get more detail info in that regards.

    The second thing I will point out is that I do not have any of the code or assets from my time at iFone / Glu as that was a strict part of my terms of employment.

    Anyway, my version:
    Before iFone got the sega contract, there was another version created to be embedded in the Panasonic VS3 Programmed using BREW. One of the things stored on our source repository was a zip file containing lots of .cpp and .h files, which I always assumed was the vs3 source. The code was commented, but of course in Japanese. As far as I heard, we were also given a basic Javafied version of the game, which wouldn't compile / run. However Upon talking to one of the other porters (also brought in at after the initial phase), he thought it was one of our guys who converted it into java, from the BREW source. Which of us is correct remains to be seen (Unfortionaltely we didn't seem to pay too much attention to where everything came from at the time, due to the rush to finish the porting in time for release dates). Either way, our programmers involved in the first phase crawled through the code, looking for ways to improve performance & reduce the footprint. They are the ones who are to blame for the blue borders across the top and bottom of the play area. :boxing: That was an attempt to keep the visible area to the same 4:3 aspect ratio as the original Megadrive version (SoJ were keen to make sure that the secret areas were not revealed due to variable screen sizes), and also because limiting it to 4:3, meant that the number of pixels that had to be rendered per frame, was greatly reduced. Optimising the images became a company hobby too, we would regularly edit the individual chunks of PNG files to remove anything that wasn't absolutely necessary. The original sprite images themselves were quite interesting too, they tended to have the animated sprites, and then exploded (split apart - not "Boom!") versions with arrows and more Japanese labels next to them. I guess they were there to show how the sprites could be animated etc.

    The process of porting to hundreds of different handsets was much like any other game, only more extreme. When porting for mobiles you have such a wide range of capabilities, that it's quite ridiculous. Some phones for example have a maximum size limit of 64kb for any game, others may have a higher size limit but only 170kb or heap for you to use (and remember, in wonderful, amazing java you have no direct control over the memory), some devices have a larger heap, but are prone to memory fragmentation, so after a while, despite there being 200kb of "Free memory" none of it is in a large enough chunk for you to load anything, other devices are just extremely slow (*cough* Motorola Triplets *cough*). One issue that plagued several of my devices is that they had poor / no sprite rotation capability, which resulted in me having to write my own image rotation & caching algorithm with a week until the release deadline. In fact some devices are so poor that one member of the team was writing a version of the game that is more similar to the Game Gear than megadrive (I'm now curious to know whether that was ever actually completed). Bah, I could give you endless lists of "things wrong with games on mobile phones" so I'll stop now before I get carried away. If you want more information, you'll have to ask for it specifically otherwise I end up ranting. ;)
     
  12. Jayextee

    Jayextee

    Comic Mischief Member
    3,218
    0
    0
    Kathmandu, Nepal
    I DONE MAKED GAMES.
    I daresay there'd be a few here interested in a rant ;)

    Particularly myself; I love to read developer stories no matter how arcane.
     
  13. Upthorn

    Upthorn

    TAS Tech Member
    239
    0
    0
    I also love to read dev stories. Arcane ones especially.
     
  14. Cinossu

    Cinossu

    Administrator Administrator
    2,815
    0
    16
    London, UK
    Sonic the Hedgehog Extended Edition
    Dev stories are always a good read..

    .. and don't worry about ranting about java, it was a favourite pastime of classmates and myself at university when we had a java game programming module. We spent more time ranting than programming.
     
  15. ICEknight

    ICEknight

    Researcher Researcher
    Wow, that would be quite interesting to see, and translate.

    Specially since those graphics you guys were given included leftovers from early builds, such as the unused UFOs in Marble Zone's sky, and god knows what else. Even the graphics for the scrapped Sparkling Zone, or the old Labyrinth background might have been in there, for all we know (not to mention any unused Sonic animations and their explanation).


    How I wish we could take a look at those...
     
  16. Sik

    Sik

    Sik is pronounced as "seek", not as "sick". Tech Member
    6,719
    0
    0
    being an asshole =P
    I wanna remark a mistake, Sonic runs at a 10:7 ratio, not at 4:3.
     
  17. Claxon

    Claxon

    Member Member
    Aah I'm just quoting what I remembered from the technical review, but that could explain a few of the camera issues we came across, where we could see just a little too far up or down.
     
Thread Status:
Not open for further replies.