My laptop's shooting out 1920x1200. For shame on the rest of you laptop users. :disgust: I knew some of those second set special stages felt familiar when playing them. Good to see I wasn't wrong.
I don't understand how people can use 1024x768. Everything just seems so big and bloated. I like having large resolutions where I can have plenty of space for windows, and have a lot to see when browsing the web.
Well that depends on the size of the screen. I have a 15" monitor, so 1024x768 is the best choice for me.
Maximum resolution isn't voluntary, is it =P Seriously though, I dunno how you all manage. I'm on 1280x1024 right now and even this I find restricting compared to 1600x1200, which my monitor sadly cannot do =( EDIT: Learn to proofread your posts for typos, OL
To get back on topic for this thread.. I'm not sure if it was noted or not, but when playing Hydrocity Act 1 and the at the miniboss, let the drowning timer start and and then jump out of the water, and you will have music from S&K.
Like was mentioned before, it's all relative to the screen's size. If my monitor was really tiny I wouldn't stay with 1280x800.
I had used 640x480 from 1993 to 2000 or so, and then I used 800x600 until 2007, then I got a new computer and switched to 1280x800 =P If I still used 640x480, the Internet would look really weird today =/
As far as resolution goes, if I can add to the off-topic debate: one thing to keep in mind is that not everyone's browser window is the size of their screen! I run at 1680x1050, but my browser's viewable area is something like 900x840 so that I can see other application windows without too much overlapping.
Hey, let's resurrect this thread from the dead (has it really only been 9 years?). Mentioned a while a go, this build of the game has an interesting TRAP15 interrupt routine that goes unused. Back in 2008, I don't think we knew as much about Sonic 3 than we do now so the functionality of the routine itself was partially covered in mystery. The routine basically consists of a simple function that uses a gigantic table of common routines to jump to for debugging. There's some unused code following this routine that I'm not sure what the purpose is, but maybe you can figure it out. The labels I'm using are based on the Git disassembly: Code (ASM): ROM:0005B1AA ; =============== S U B R O U T I N E ======================================= ROM:0005B1AA ROM:0005B1AA ; unused interrupt routine. this still exists in sonic 3 stand alone at 0x4313E but without the trap table ROM:0005B1AA ROM:0005B1AA global TRAP15 ROM:0005B1AA TRAP15: ; DATA XREF: ROM:off_BCo ROM:0005B1AA movea.l Trap15_Table(pc,d6.w),a6 ROM:0005B1AE jsr (a6) ROM:0005B1B0 nop ROM:0005B1B2 nop ROM:0005B1B4 move sr,d5 ROM:0005B1B6 move.w (sp),d6 ROM:0005B1B8 andi.w #$1F,d5 ROM:0005B1BC andi.w #$FFE0,d6 ROM:0005B1C0 or.w d5,d6 ROM:0005B1C2 move.w d6,(sp) ROM:0005B1C4 nop ROM:0005B1C6 nop ROM:0005B1C8 rte ROM:0005B1C8 ; End of function TRAP15 ROM:0005B1C8 ROM:0005B1C8 ; --------------------------------------------------------------------------- ROM:0005B1CA Trap15_Table: dc.l BossDefeated_StopTimer; 0 ; DATA XREF: TRAP15r ROM:0005B1CA dc.l BossDefeated ; 1 ; unused? ROM:0005B1CA dc.l BossFlash ; 2 ROM:0005B1CA dc.l TimedSprite_ScreenLock; 3 ROM:0005B1CA dc.l Child6_IncLevX ; 4 ROM:0005B1CA dc.l Child6_DecLevX ; 5 ROM:0005B1CA dc.l Child6_DecLevY ; 6 ROM:0005B1CA dc.l Child6_IncLevY ; 7 ROM:0005B1CA dc.l loc_7B0CA ; 8 ROM:0005B1CA dc.l Obj_IncLevEndXGradual; 9 ROM:0005B1CA dc.l Obj_DecLevStartXGradual; $A ROM:0005B1CA dc.l Obj_DecLevStartYGradual; $B ROM:0005B1CA dc.l Obj_IncLevEndYGradual; $C ROM:0005B1CA dc.l Draw_And_Touch_Sprite; $D ROM:0005B1CA dc.l Check_CameraInRange; $E ROM:0005B1CA dc.l Obj_FlickerMove ; $F ROM:0005B1CA dc.l Find_SonicTails ; $10 ROM:0005B1CA dc.l Find_OtherObject ; $11 ROM:0005B1CA dc.l Check_PlayerCollision; $12 ROM:0005B1CA dc.l Check_PlayerInRange; $13 ROM:0005B1CA dc.l Sprite_CheckDelete ; $14 ROM:0005B1CA dc.l Sprite_CheckDelete2; $15 ROM:0005B1CA dc.l loc_7A6D4 ; $16 ROM:0005B1CA dc.l Sprite_CheckDeleteXY; $17 ROM:0005B1CA dc.l Sprite_CheckDeleteTouch; $18 ROM:0005B1CA dc.l Sprite_CheckDeleteTouch2; $19 ROM:0005B1CA dc.l loc_7A700 ; $1A ROM:0005B1CA dc.l Sprite_CheckDeleteTouchXY; $1B ROM:0005B1CA dc.l Sprite_CheckDeleteSlotted; $1C ROM:0005B1CA dc.l sub_7A66A ; $1D ROM:0005B1CA dc.l Sprite_CheckDeleteTouchSlotted; $1E ROM:0005B1CA dc.l Sprite_CheckDeleteTouchSlotted_2; $1F ROM:0005B1CA dc.l Sprite_CheckDeleteTouchSlotted_2; $20 ROM:0005B1CA dc.l loc_7A6EA ; $21 ROM:0005B1CA dc.l Change_FlipX ; $22 ROM:0005B1CA dc.l Change_FlipXWithVelocity; $23 ROM:0005B1CA dc.l Obj_WaitOffscreen ; $24 ROM:0005B1CA dc.l Check_LRControllerShake; $25 ROM:0005B1CA dc.l Child_Draw_Sprite ; $26 ROM:0005B1CA dc.l Child_Draw_Sprite2 ; $27 ROM:0005B1CA dc.l Child_DrawTouch_Sprite; $28 ROM:0005B1CA dc.l Child_DrawTouch_Sprite2; $29 ROM:0005B1CA dc.l Child_Remember_Draw_Sprite; $2A ROM:0005B1CA dc.l Child_GetPriority ; $2B ROM:0005B1CA dc.l Child_GetPriorityOnce; $2C ROM:0005B1CA dc.l Change_FlipXUseParent; $2D ROM:0005B1CA dc.l sub_7B378 ; $2E ROM:0005B1CA dc.l Displace_PlayerOffObject; $2F ROM:0005B1CA dc.l Child_Draw_Sprite_FlickerMove; $30 ROM:0005B1CA dc.l Child_Draw_Sprite2_FlickerMove; $31 ROM:0005B1CA dc.l Child_DrawTouch_Sprite_FlickerMove; $32 ROM:0005B1CA dc.l Child_DrawTouch_Sprite2_FlickerMove; $33 ROM:0005B1CA dc.l MoveSprite_CircularSimple; $34 ROM:0005B1CA dc.l MoveSprite_CircularSimpleOffset; $35 ROM:0005B1CA dc.l MoveSprite_AtAngleLookup; $36 ROM:0005B1CA dc.l MoveSprite_CircularLookup; $37 ROM:0005B1CA dc.l loc_7B052 ; $38 ROM:0005B1CA dc.l Remove_From_TrackingSlot; $39 ROM:0005B1CA dc.l Obj_Wait ; $3A ROM:0005B1CA dc.l Run_PalRotationScript; $3B ROM:0005B1CA dc.l ObjHitFloor2_DoRoutine; $3C ROM:0005B1CA dc.l ObjHitFloor_DoRoutine; $3D ROM:0005B1CA dc.l Obj_FadeSelectedToBlack; $3E ROM:0005B1CA dc.l loc_7A502 ; $3F ROM:0005B1CA dc.l loc_7A534 ; $40 ROM:0005B1CA dc.l ObjHitWall_DoRoutine; $41 ROM:0005B1CA dc.l ObjHitWall2_DoRoutine; $42 ROM:0005B1CA dc.l SetUp_ObjAttributesSlotted; $43 ROM:0005B1CA dc.l SetUp_ObjAttributes; $44 ROM:0005B1CA dc.l SetUp_ObjAttributes2; $45 ROM:0005B1CA dc.l SetUp_ObjAttributes3; $46 ROM:0005B1CA dc.l loc_7B0A4 ; $47 ROM:0005B1CA dc.l sub_7B2FE ; $48 ROM:0005B1CA dc.l sub_7B33A ; $49 ROM:0005B1CA dc.l sub_7B286 ; $4A ROM:0005B1CA dc.l sub_7B2CC ; $4B ROM:0005B1CA dc.l Swing_LeftAndRight ; $4C ROM:0005B1CA dc.l Chase_Object ; $4D ROM:0005B1CA dc.l sub_7A960 ; $4E ROM:0005B1CA dc.l Chase_ObjectXOnly ; $4F ROM:0005B1CA dc.l Chase_ObjectYOnly ; $50 ROM:0005B1CA dc.l AddRings ; $51 ROM:0005B1CA dc.l PLC_EndSignStuff ; $52 ROM:0005B1CA dc.l Refresh_ChildPosition; $53 ROM:0005B1CA dc.l Refresh_ChildPositionAdjusted; $54 ROM:0005B1CA dc.l Refresh_ChildPosWait; $55 ROM:0005B1CA dc.l loc_7AAB2 ; $56 ROM:0005B1CA dc.l Find_SonicTails8Way; $57 ROM:0005B1CA dc.l Obj_EndSignControlAwaitStart; $58 ROM:0005B1CA dc.l Animate_RawGetFaster; $59 ROM:0005B1CA dc.l loc_79B7E ; $5A ROM:0005B1CA dc.l Animate_RawGetSlower; $5B ROM:0005B1CA dc.l loc_79BFE ; $5C ROM:0005B1CA dc.l AnimateRaw_MoveChkDel; $5D ROM:0005B1CA dc.l loc_7AACC ; $5E ROM:0005B1CA dc.l loc_7AA58 ; $5F ROM:0005B1CA dc.l Swing_MoveWaitNoFall; $60 ROM:0005B1CA dc.l loc_7AAFA ; $61 ROM:0005B1CA dc.l loc_7AAF2 ; $62 ROM:0005B1CA dc.l Animate_Raw ; $63 ROM:0005B1CA dc.l Animate_RawNoSST ; $64 ROM:0005B1CA dc.l Animate_RawAdjustFlipX; $65 ROM:0005B1CA dc.l loc_798DE ; $66 ROM:0005B1CA dc.l Animate_RawAdjustFlipY; $67 ROM:0005B1CA dc.l loc_79912 ; $68 ROM:0005B1CA dc.l loc_7AA62 ; $69 ROM:0005B1CA dc.l loc_7AB18 ; $6A ROM:0005B1CA dc.l Swing_UpAndDown ; $6B ROM:0005B1CA dc.l Swing_UpAndDown_Count; $6C ROM:0005B1CA dc.l Obj_Song_Fade_ToLevelMusic; $6D ROM:0005B1CA dc.l Obj_PlayLevelMusic ; $6E ROM:0005B1CA dc.l Restore_PlayerControl; $6F ROM:0005B1CA dc.l Restore_PlayerControl2; $70 ROM:0005B1CA dc.l Change_Act2Sizes ; $71 ROM:0005B1CA dc.l CreateChild1_Normal; $72 ROM:0005B1CA dc.l CreateChild2_Complex; $73 ROM:0005B1CA dc.l CreateChild3_NormalRepeated; $74 ROM:0005B1CA dc.l CreateChild4_LinkListRepeated; $75 ROM:0005B1CA dc.l CreateChild5_ComplexAdjusted; $76 ROM:0005B1CA dc.l CreateChild6_Simple; $77 ROM:0005B1CA dc.l CreateChild7_Normal2; $78 ROM:0005B1CA dc.l CreateChild8_TreeListRepeated; $79 ROM:0005B1CA dc.l Obj_Song_Fade_Transition; $7A ROM:0005B1CA dc.l Set_IndexedVelocity; $7B ROM:0005B1CA dc.l Set_IndexedVelocity2; $7C ROM:0005B1CA dc.l sub_7B274 ; $7D ROM:0005B1CA dc.l CopyWordData_2 ; $7E ROM:0005B1CA dc.l CopyWordData_3 ; $7F ROM:0005B1CA dc.l CopyWordData_4 ; $80 ROM:0005B1CA dc.l CopyWordData_5 ; $81 ROM:0005B1CA dc.l CopyWordData_6 ; $82 ROM:0005B1CA dc.l CopyWordData_7 ; $83 ROM:0005B1CA dc.l CopyWordData_8 ; $84 ROM:0005B1CA dc.l PalLoad_Line1 ; $85 ROM:0005B1CA dc.l EnemyDefeated ; $86 ROM:0005B1CA dc.l Go_Delete_Sprite ; $87 ROM:0005B1CA dc.l Go_Delete_Sprite_2 ; $88 ROM:0005B1CA dc.l loc_79E52 ; $89 ROM:0005B1CA dc.l Perform_DPLC ; $8A ROM:0005B1CA dc.l PLCLoad_AnimalsAndExplosion; $8B ROM:0005B1CA dc.l loc_7B3F4 ; $8C ROM:0005B1CA dc.l Set_VelocityXTrackSonic; $8D ROM:0005B1CA dc.l Obj_EndSignControl ; $8E ROM:0005B1CA dc.l Make_LevelSizeObj ; $8F ROM:0005B1CA dc.l StartNewLevel ; $90 ROM:0005B1CA dc.l Go_Delete_SpriteSlotted2; $91 ROM:0005B1CA dc.l MoveSprite_AngleYLookup; $92 ROM:0005B1CA dc.l MoveSprite_AngleXLookupOffset; $93 ROM:0005B1CA dc.l MoveSprite_AngleXLookupOffset_2; $94 ROM:0005B1CA dc.l MoveChkDel ; $95 ROM:0005B1CA dc.l MoveTouchChkDel ; $96 ROM:0005B1CA dc.l MoveSlowFall_AnimateRaw; $97 ROM:0005B1CA dc.l MoveSprite_LightGravity; $98 ROM:0005B1CA dc.l MoveFall_AnimateRaw; $99 ROM:0005B1CA dc.l Move_AnimateRaw ; $9A ROM:0005B1CA dc.l Move_AnimateRaw_Wait; $9B ROM:0005B1CA dc.l Move_WaitNoFall ; $9C ROM:0005B1CA dc.l MoveWaitTouch ; $9D ROM:0005B1CA dc.l loc_7A3B2 ; $9E ROM:0005B1CA dc.l loc_7A3C0 ; $9F ROM:0005B1CA dc.l MoveDraw_SpriteTimed; $A0 ROM:0005B1CA dc.l MoveDraw_SpriteTimed2; $A1 ROM:0005B1CA dc.l Animate_RawMultiDelay; $A2 ROM:0005B1CA dc.l Animate_RawNoSSTMultiDelay; $A3 ROM:0005B1CA dc.l Animate_RawMultiDelayFlipX; $A4 ROM:0005B1CA dc.l Animate_RawNoSSTMultiDelayFlipX; $A5 ROM:0005B1CA dc.l Animate_RawMultiDelayFlipY; $A6 ROM:0005B1CA dc.l Animate_RawNoSSTMultiDelayFlipY; $A7 ROM:0005B1CA dc.l Wait_Draw ; $A8 ROM:0005B1CA dc.l AnimateRaw_DrawTouch; $A9 ROM:0005B1CA dc.l Go_Delete_SpriteSlotted3; $AA ROM:0005B1CA dc.l Go_Delete_SpriteSlotted; $AB ROM:0005B1CA dc.l Player_Load_PLC ; $AC ROM:0005B1CA dc.l Load_PLC_Raw ; $AD ROM:0005B1CA dc.l Obj_EndSign ; $AE ROM:0005B1CA dc.l AfterBoss_Cleanup ; $AF ROM:0005B1CA dc.l Add_To_DMA_Queue ; $B0 ROM:0005B1CA dc.l Create_New_Sprite ; $B1 ROM:0005B1CA dc.l Create_New_Sprite3 ; $B2 ROM:0005B1CA dc.l MoveSprite ; $B3 ROM:0005B1CA dc.l MoveSprite2 ; $B4 ROM:0005B1CA dc.l Draw_Sprite ; $B5 ROM:0005B1CA dc.l ObjCheckCeilingDist; $B6 ROM:0005B1CA dc.l ObjCheckFloorDist ; $B7 ROM:0005B1CA dc.l ObjCheckFloorDist2 ; $B8 ROM:0005B1CA dc.l ObjCheckRightWallDist; $B9 ROM:0005B1CA dc.l ObjCheckLeftWallDist; $BA ROM:0005B1CA dc.l Delete_Current_Sprite; $BB ROM:0005B1CA dc.l Sprite_OnScreen_Test; $BC ROM:0005B1CA dc.l Delete_Sprite_If_Not_In_Range; $BD ROM:0005B1CA dc.l Obj_Explosion ; $BE ROM:0005B1CA dc.l GetSineCosine ; $BF ROM:0005B1CA dc.l Play_Sound_2 ; $C0 ROM:0005B1CA dc.l Play_Sound ; $C1 ROM:0005B1CA dc.l SolidObjectFull ; $C2 ROM:0005B1CA dc.l SolidObjectTop ; $C3 ROM:0005B1CA dc.l Add_SpriteToCollisionResponseList; $C4 ROM:0005B1CA dc.l Random_Number ; $C5 ROM:0005B1CA dc.l HUD_AddToScore ; $C6 ROM:0005B1CA dc.l Load_PLC ; $C7 ROM:0005B1CA dc.l loc_7C022 ; $C8 ROM:0005B1CA dc.l Sprite_OnScreen_Test2; $C9 ROM:0005B1CA dc.l sub_23812 ; $CA ROM:0005B1CA dc.l Init_ArtScaling ; $CB ROM:0005B1CA dc.l Obj_AIZ_Miniboss_Cutscene; $CC ROM:0005B1CA dc.l LevelSizes ; $CD ROM:0005B1CA dc.l Sonic_Load_PLC ; $CE ROM:0005B1CA dc.l Tails_Load_PLC ; $CF ROM:0005B1CA dc.l Child_CheckParent ; $D0 ROM:0005B1CA dc.l Child_AddToTouchList; $D1 ROM:0005B1CA dc.l Perform_Art_Scaling; $D2 ROM:0005B1CA dc.l sub_7B58A ; $D3 ROM:0005B1CA dc.l sub_7B5A4 ; $D4 ROM:0005B1CA dc.l Queue_Kos_Module ; $D5 ROM:0005B1CA dc.l MoveSprite_CircularSimpleCheckFlip; $D6 ROM:0005B1CA dc.l HurtCharacter ; $D7 ROM:0005B1CA dc.l Obj_CreateBossExplosion; $D8 ROM:0005B1CA dc.l EnemyDefeat_Score ; $D9 ROM:0005B1CA dc.l CreateChild9_TreeList; $DA ROM:0005B1CA dc.l Obj_RobotnikHead3 ; $DB ROM:0005B1CA dc.l Animate_Sprite ; $DC ROM:0005B1CA dc.l GetArcTan ; $DD ROM:0005B1CA dc.l Swing_Setup1 ; $DE ROM:0005B1CA dc.l MoveSprite_Circular; $DF ROM:0005B1CA dc.l Set_Raw_Animation ; $E0 ROM:0005B1CA dc.l loc_7B5CA ; $E1 ROM:0005B1CA dc.l loc_7B5CE ; $E2 ROM:0005B1CA dc.l sub_7B5DA ; $E3 ROM:0005B1CA dc.l MoveSprite_CustomGravity; $E4 ROM:0005B1CA dc.l CreateChild10_NormalAdjusted; $E5 ROM:0005B1CA dc.l sub_7B18C ; $E6 ROM:0005B1CA dc.l Wait_FadeToLevelMusic; $E7 ROM:0005B1CA dc.l Obj_RobotnikHead4 ; $E8 ROM:0005B1CA dc.l Stop_Object ; $E9 ROM:0005B1CA dc.l Obj_81 ; $EA ROM:0005B1CA dc.l loc_7B73C ; $EB ROM:0005B1CA dc.l sub_7B766 ; $EC ROM:0005B1CA dc.l loc_7B636 ; $ED ROM:0005B1CA dc.l HurtCharacter_Directly; $EE ROM:0005B1CA dc.l Check_InMyRange ; $EF ROM:0005B1CA dc.l loc_6982A ; $F0 ROM:0005B1CA dc.l Check_PlayerCollision2; $F1 ROM:0005B1CA dc.l loc_6279A ; $F2 ROM:0005B1CA dc.l Check_InTheirRange ; $F3 ROM:0005B1CA dc.l SolidObjectFull2 ; $F4 ROM:0005B1CA dc.l sub_1BB74 ; $F5 ROM:0005B5A2 ; --------------------------------------------------------------------------- ROM:0005B5A2 moveq #0,d0 ; seems to be unused code from here, matches 0x4315e in sonic 3 which is also unused ROM:0005B5A4 move.b 5(a0),d0 ROM:0005B5A8 move.w off_5B5B0(pc,d0.w),d1 ROM:0005B5AC jmp off_5B5B0(pc,d1.w) ROM:0005B5AC ; --------------------------------------------------------------------------- ROM:0005B5B0 off_5B5B0: dc.w loc_5B5BC-off_5B5B0 ; DATA XREF: ROM:0005B5A8r ROM:0005B5B0 ; ROM:off_5B5B0o ... ROM:0005B5B2 dc.w loc_5B676-off_5B5B0 ROM:0005B5B4 dc.w loc_5B6B4-off_5B5B0 ROM:0005B5B6 dc.w loc_5B71E-off_5B5B0 ROM:0005B5B8 dc.w loc_5B758-off_5B5B0 ROM:0005B5BA dc.w locret_5B784-off_5B5B0 ROM:0005B5BC ; --------------------------------------------------------------------------- ROM:0005B5BC ROM:0005B5BC loc_5B5BC: ; DATA XREF: ROM:off_5B5B0o ROM:0005B5BC lea off_5B924,a1 ROM:0005B5C0 jsr SetUp_ObjAttributes ROM:0005B5C6 move.b #0,4(a0) ROM:0005B5CC move.w #$1E8,$10(a0) ROM:0005B5D2 move.w #$F0,$14(a0) ; '=' ROM:0005B5D8 move.w #$B,$2E(a0) ROM:0005B5DE move.w #2,(word_FFFFF662).w ROM:0005B5E4 bset #0,4(a0) ROM:0005B5EA bset #0,$2A(a0) ROM:0005B5F0 lea (unk_FFFFE138).w,a1 ROM:0005B5F4 lea unk_5BAD2,a2 ROM:0005B5F8 moveq #0,d0 ROM:0005B5FA moveq #$22,d6 ; '"' ROM:0005B5FC ROM:0005B5FC loc_5B5FC: ; CODE XREF: ROM:0005B602j ROM:0005B5FC move.b (a2)+,d0 ROM:0005B5FE add.w d0,(a1) ROM:0005B600 addq.w #8,a1 ROM:0005B602 dbf d6,loc_5B5FC ROM:0005B606 move.w d7,-(sp) ROM:0005B608 moveq #0,d0 ROM:0005B60A moveq #0,d1 ROM:0005B60C lea off_5B626,a6 ROM:0005B610 moveq #7,d7 ROM:0005B612 ROM:0005B612 loc_5B612: ; CODE XREF: ROM:0005B61Ej ROM:0005B612 movea.l (a6)+,a1 ROM:0005B614 movea.l (a6)+,a2 ROM:0005B616 move.b (a6)+,d0 ROM:0005B618 move.b (a6)+,d1 ROM:0005B61A bsr.w sub_5BAF6 ROM:0005B61E dbf d7,loc_5B612 ROM:0005B622 move.w (sp)+,d7 ROM:0005B624 rts ROM:0005B624 ; --------------------------------------------------------------------------- ROM:0005B626 off_5B626: dc.l RAM_Start ; DATA XREF: ROM:0005B60Co ROM:0005B62A dc.l unk_FFFF0B00 ROM:0005B62E dc.l $201FFFF ROM:0005B632 dc.l $C0FFFF ROM:0005B636 dc.l $E000303 ROM:0005B63A dc.l unk_FFFF02C0 ROM:0005B63E dc.l unk_FFFF1600 ROM:0005B642 dc.l $201FFFF ROM:0005B646 dc.l $380FFFF ROM:0005B64A dc.l $19000303 ROM:0005B64E dc.l unk_FFFF0580 ROM:0005B652 dc.l unk_FFFF2100 ROM:0005B656 dc.l $201FFFF ROM:0005B65A dc.l $640FFFF ROM:0005B65E dc.l $24000303 ROM:0005B662 dc.l unk_FFFF0840 ROM:0005B666 dc.l unk_FFFF2C00 ROM:0005B66A dc.l $201FFFF ROM:0005B66E dc.l $900FFFF ROM:0005B672 dc.l $2F000303 ROM:0005B676 ; --------------------------------------------------------------------------- ROM:0005B676 ROM:0005B676 loc_5B676: ; DATA XREF: ROM:0005B5B2o ROM:0005B676 subi.w #$20,$10(a0) ; ' ' ROM:0005B67C subq.w #1,$2E(a0) ROM:0005B680 bmi.s loc_5B698 ROM:0005B682 bsr.w sub_5B7C2 ROM:0005B686 lea (off_5B938).l,a1 ROM:0005B68C jsr Animate_Sprite ROM:0005B692 jmp Draw_Sprite ROM:0005B698 ; --------------------------------------------------------------------------- ROM:0005B698 ROM:0005B698 loc_5B698: ; CODE XREF: ROM:0005B680j ROM:0005B698 addq.b #2,5(a0) ROM:0005B69C move.w #$C,$2E(a0) ROM:0005B6A2 move.b #1,$30(a0) ROM:0005B6A8 move.b #$FF,$31(a0) ROM:0005B6AE jmp Draw_Sprite ROM:0005B6B4 ; --------------------------------------------------------------------------- ROM:0005B6B4 ROM:0005B6B4 loc_5B6B4: ; DATA XREF: ROM:0005B5B4o ROM:0005B6B4 tst.w $2E(a0) ROM:0005B6B8 beq.s loc_5B6C2 ROM:0005B6BA subq.w #1,$2E(a0) ROM:0005B6BE bsr.w sub_5B7C2 ROM:0005B6C2 ROM:0005B6C2 loc_5B6C2: ; CODE XREF: ROM:0005B6B8j ROM:0005B6C2 lea unk_5B838,a1 ROM:0005B6C6 bsr.w sub_5B7EA ROM:0005B6CA bne.s loc_5B6CE ROM:0005B6CC rts ROM:0005B6CE ; --------------------------------------------------------------------------- ROM:0005B6CE ROM:0005B6CE loc_5B6CE: ; CODE XREF: ROM:0005B6CAj ROM:0005B6CE addq.b #2,5(a0) ROM:0005B6D2 bchg #0,4(a0) ROM:0005B6D8 move.w #$B,$2E(a0) ROM:0005B6DE move.w #4,(word_FFFFF662).w ROM:0005B6E4 subi.w #$28,$10(a0) ; '(' ROM:0005B6EA bchg #0,4(a0) ROM:0005B6F0 bchg #0,$2A(a0) ROM:0005B6F6 lea (RAM_H_scroll_buffer).w,a1 ROM:0005B6FA moveq #0,d0 ROM:0005B6FC move.w #$400,d1 ROM:0005B700 ROM:0005B700 loc_5B700: ; CODE XREF: ROM:0005B702j ROM:0005B700 move.l d0,(a1)+ ROM:0005B702 dbf d1,loc_5B700 ROM:0005B706 lea (unk_FFFFE13C).w,a1 ROM:0005B70A lea unk_5BAD2,a2 ROM:0005B70E moveq #0,d0 ROM:0005B710 moveq #$22,d6 ; '"' ROM:0005B712 ROM:0005B712 loc_5B712: ; CODE XREF: ROM:0005B718j ROM:0005B712 move.b (a2)+,d0 ROM:0005B714 sub.w d0,(a1) ROM:0005B716 addq.w #8,a1 ROM:0005B718 dbf d6,loc_5B712 ROM:0005B71C ROM:0005B71C locret_5B71C: ; CODE XREF: ROM:0005B9F4j ROM:0005B71C ; sub_5BAF6+1Ej ROM:0005B71C rts ROM:0005B71E ; --------------------------------------------------------------------------- ROM:0005B71E ROM:0005B71E loc_5B71E: ; DATA XREF: ROM:0005B5B6o ROM:0005B71E subq.w #1,$2E(a0) ROM:0005B722 bmi.s loc_5B740 ROM:0005B724 addi.w #$20,$10(a0) ; ' ' ROM:0005B72A bsr.w sub_5B7D6 ROM:0005B72E lea (off_5B938).l,a1 ROM:0005B734 jsr Animate_Sprite ROM:0005B73A jmp Draw_Sprite ROM:0005B740 ; --------------------------------------------------------------------------- ROM:0005B740 ROM:0005B740 loc_5B740: ; CODE XREF: ROM:0005B722j ROM:0005B740 addq.b #2,5(a0) ROM:0005B744 move.w #$C,$2E(a0) ROM:0005B74A move.b #1,$30(a0) ROM:0005B750 move.b #$FF,$31(a0) ROM:0005B756 rts ROM:0005B758 ; --------------------------------------------------------------------------- ROM:0005B758 ROM:0005B758 loc_5B758: ; DATA XREF: ROM:0005B5B8o ROM:0005B758 tst.w $2E(a0) ROM:0005B75C beq.s loc_5B766 ROM:0005B75E subq.w #1,$2E(a0) ROM:0005B762 bsr.w sub_5B7D6 ROM:0005B766 ROM:0005B766 loc_5B766: ; CODE XREF: ROM:0005B75Cj ROM:0005B766 lea unk_5B8AE,a1 ROM:0005B76A bsr.w sub_5B7EA ROM:0005B76E bne.s loc_5B772 ROM:0005B770 rts ROM:0005B772 ; --------------------------------------------------------------------------- ROM:0005B772 ROM:0005B772 loc_5B772: ; CODE XREF: ROM:0005B76Ej ROM:0005B772 addq.b #2,5(a0) ROM:0005B776 st (word_FFFFF660).w ROM:0005B77A move.b #unk_FA,d0 ROM:0005B77E jsr (Play_Sound_2).l ROM:0005B784 ROM:0005B784 locret_5B784: ; DATA XREF: ROM:0005B5BAo ROM:0005B784 rts ROM:0005B786 ; --------------------------------------------------------------------------- ROM:0005B786 moveq #0,d0 ; unused code, this matches 0x43342 in sonic 3 but is also unused ROM:0005B788 move.b 5(a0),d0 ROM:0005B78C move.w off_5B794(pc,d0.w),d1 ROM:0005B790 jmp off_5B794(pc,d1.w) ROM:0005B790 ; --------------------------------------------------------------------------- ROM:0005B794 off_5B794: dc.w loc_5B798-off_5B794 ; DATA XREF: ROM:0005B78Cr ROM:0005B794 ; ROM:off_5B794o ... ROM:0005B796 dc.w loc_5B7BC-off_5B794 ROM:0005B798 ; --------------------------------------------------------------------------- ROM:0005B798 ROM:0005B798 loc_5B798: ; DATA XREF: ROM:off_5B794o ROM:0005B798 lea off_5B92E,a1 ROM:0005B79C jsr SetUp_ObjAttributes ROM:0005B7A2 move.b #0,4(a0) ROM:0005B7A8 move.b #4,$22(a0) ROM:0005B7AE move.w #$174,$10(a0) ROM:0005B7B4 move.w #$D8,$14(a0) ; '+' ROM:0005B7BA rts ROM:0005B7BC ; --------------------------------------------------------------------------- ROM:0005B7BC ROM:0005B7BC loc_5B7BC: ; DATA XREF: ROM:0005B796o ROM:0005B7BC jmp Draw_Sprite ROM:0005B7C2 ROM:0005B7C2 ; =============== S U B R O U T I N E ======================================= ROM:0005B7C2 ROM:0005B7C2 ROM:0005B7C2 sub_5B7C2: ; CODE XREF: ROM:0005B682p ROM:0005B7C2 ; ROM:0005B6BEp ROM:0005B7C2 lea (unk_FFFFE138).w,a1 ROM:0005B7C6 move.w #$22,d6 ; '"' ROM:0005B7CA ROM:0005B7CA loc_5B7CA: ; CODE XREF: sub_5B7C2+Ej ROM:0005B7CA subi.w #$20,(a1) ; ' ' ROM:0005B7CE addq.w #8,a1 ROM:0005B7D0 dbf d6,loc_5B7CA ROM:0005B7D4 rts ROM:0005B7D4 ; End of function sub_5B7C2 ROM:0005B7D4 ROM:0005B7D6 ROM:0005B7D6 ; =============== S U B R O U T I N E ======================================= ROM:0005B7D6 ROM:0005B7D6 ROM:0005B7D6 sub_5B7D6: ; CODE XREF: ROM:0005B72Ap ROM:0005B7D6 ; ROM:0005B762p ROM:0005B7D6 lea (unk_FFFFE13C).w,a1 ROM:0005B7DA move.w #$22,d6 ; '"' ROM:0005B7DE ROM:0005B7DE loc_5B7DE: ; CODE XREF: sub_5B7D6+Ej ROM:0005B7DE addi.w #$20,(a1) ; ' ' ROM:0005B7E2 addq.w #8,a1 ROM:0005B7E4 dbf d6,loc_5B7DE ROM:0005B7E8 rts ROM:0005B7E8 ; End of function sub_5B7D6 ROM:0005B7E8 ROM:0005B7EA ROM:0005B7EA ; =============== S U B R O U T I N E ======================================= ROM:0005B7EA ROM:0005B7EA ROM:0005B7EA sub_5B7EA: ; CODE XREF: ROM:0005B6C6p ROM:0005B7EA ; ROM:0005B76Ap ROM:0005B7EA subq.b #1,$30(a0) ROM:0005B7EE bne.s loc_5B830 ROM:0005B7F0 moveq #0,d0 ROM:0005B7F2 move.b $31(a0),d0 ROM:0005B7F6 addq.b #1,d0 ROM:0005B7F8 cmp.b 1(a1),d0 ROM:0005B7FC bcs.s loc_5B804 ROM:0005B7FE tst.b 3(a1) ROM:0005B802 bne.s loc_5B834 ROM:0005B804 ROM:0005B804 loc_5B804: ; CODE XREF: sub_5B7EA+12j ROM:0005B804 move.b d0,$31(a0) ROM:0005B808 move.b (a1),$30(a0) ROM:0005B80C lea 6(a1),a2 ROM:0005B810 moveq #0,d1 ROM:0005B812 move.b 2(a1),d1 ROM:0005B816 move.w d1,d2 ROM:0005B818 tst.w d0 ROM:0005B81A beq.s loc_5B826 ROM:0005B81C ROM:0005B81C loc_5B81C: ; CODE XREF: sub_5B7EA+38j ROM:0005B81C subq.b #1,d0 ROM:0005B81E beq.s loc_5B824 ROM:0005B820 add.w d2,d1 ROM:0005B822 bra.s loc_5B81C ROM:0005B824 ; --------------------------------------------------------------------------- ROM:0005B824 ROM:0005B824 loc_5B824: ; CODE XREF: sub_5B7EA+34j ROM:0005B824 adda.w d1,a2 ROM:0005B826 ROM:0005B826 loc_5B826: ; CODE XREF: sub_5B7EA+30j ROM:0005B826 movea.w 4(a1),a3 ROM:0005B82A ROM:0005B82A loc_5B82A: ; CODE XREF: sub_5B7EA+44j ROM:0005B82A move.w (a2)+,(a3)+ ROM:0005B82C subq.w #2,d2 ROM:0005B82E bne.s loc_5B82A ROM:0005B830 ROM:0005B830 loc_5B830: ; CODE XREF: sub_5B7EA+4j ROM:0005B830 moveq #0,d0 ROM:0005B832 rts ROM:0005B834 ; --------------------------------------------------------------------------- ROM:0005B834 ROM:0005B834 loc_5B834: ; CODE XREF: sub_5B7EA+18j ROM:0005B834 moveq #1,d0 ROM:0005B836 rts ROM:0005B836 ; End of function sub_5B7EA ROM:0005B836 ROM:0005B836 ; --------------------------------------------------------------------------- ROM:0005B838 unk_5B838: dc.b 4 ; DATA XREF: ROM:loc_5B6C2o ROM:0005B839 dc.b 7 ROM:0005B83A dc.b $10 ROM:0005B83B dc.b $FF ROM:0005B83C dc.b $FC ; n ROM:0005B83D dc.b $10 ROM:0005B83E dc.b $E ROM:0005B83F dc.b $60 ; ` ROM:0005B840 dc.b $E ROM:0005B841 dc.b $60 ; ` ROM:0005B842 dc.b $E ROM:0005B843 dc.b $60 ; ` ROM:0005B844 dc.b $E ROM:0005B845 dc.b $60 ; ` ROM:0005B846 dc.b $E ROM:0005B847 dc.b $60 ; ` ROM:0005B848 dc.b $E ROM:0005B849 dc.b $60 ; ` ROM:0005B84A dc.b $E ROM:0005B84B dc.b $60 ; ` ROM:0005B84C dc.b $E ROM:0005B84D dc.b $EE ; e ROM:0005B84E dc.b $E ROM:0005B84F dc.b $62 ; b ROM:0005B850 dc.b $E ROM:0005B851 dc.b $EE ; e ROM:0005B852 dc.b $E ROM:0005B853 dc.b $EE ; e ROM:0005B854 dc.b $E ROM:0005B855 dc.b $EE ; e ROM:0005B856 dc.b $E ROM:0005B857 dc.b $EE ; e ROM:0005B858 dc.b $E ROM:0005B859 dc.b $EE ; e ROM:0005B85A dc.b $E ROM:0005B85B dc.b $EE ; e ROM:0005B85C dc.b $E ROM:0005B85D dc.b $EE ; e ROM:0005B85E dc.b $E ROM:0005B85F dc.b $84 ; ä ROM:0005B860 dc.b $E ROM:0005B861 dc.b $62 ; b ROM:0005B862 dc.b $E ROM:0005B863 dc.b $60 ; ` ROM:0005B864 dc.b $E ROM:0005B865 dc.b $60 ; ` ROM:0005B866 dc.b $E ROM:0005B867 dc.b $60 ; ` ROM:0005B868 dc.b $E ROM:0005B869 dc.b $60 ; ` ROM:0005B86A dc.b $E ROM:0005B86B dc.b $60 ; ` ROM:0005B86C dc.b $E ROM:0005B86D dc.b $EE ; e ROM:0005B86E dc.b $E ROM:0005B86F dc.b $A6 ; ª ROM:0005B870 dc.b $E ROM:0005B871 dc.b $84 ; ä ROM:0005B872 dc.b $E ROM:0005B873 dc.b $62 ; b ROM:0005B874 dc.b $E ROM:0005B875 dc.b $60 ; ` ROM:0005B876 dc.b $E ROM:0005B877 dc.b $60 ; ` ROM:0005B878 dc.b $E ROM:0005B879 dc.b $60 ; ` ROM:0005B87A dc.b $E ROM:0005B87B dc.b $60 ; ` ROM:0005B87C dc.b $E ROM:0005B87D dc.b $EE ; e ROM:0005B87E dc.b $E ROM:0005B87F dc.b $C8 ; + ROM:0005B880 dc.b $E ROM:0005B881 dc.b $A6 ; ª ROM:0005B882 dc.b $E ROM:0005B883 dc.b $84 ; ä ROM:0005B884 dc.b $E ROM:0005B885 dc.b $62 ; b ROM:0005B886 dc.b $E ROM:0005B887 dc.b $60 ; ` ROM:0005B888 dc.b $E ROM:0005B889 dc.b $60 ; ` ROM:0005B88A dc.b $E ROM:0005B88B dc.b $60 ; ` ROM:0005B88C dc.b $E ROM:0005B88D dc.b $EE ; e ROM:0005B88E dc.b $E ROM:0005B88F dc.b $EC ; 8 ROM:0005B890 dc.b $E ROM:0005B891 dc.b $C8 ; + ROM:0005B892 dc.b $E ROM:0005B893 dc.b $A6 ; ª ROM:0005B894 dc.b $E ROM:0005B895 dc.b $84 ; ä ROM:0005B896 dc.b $E ROM:0005B897 dc.b $62 ; b ROM:0005B898 dc.b $E ROM:0005B899 dc.b $60 ; ` ROM:0005B89A dc.b $E ROM:0005B89B dc.b $60 ; ` ROM:0005B89C dc.b $E ROM:0005B89D dc.b $EE ; e ROM:0005B89E dc.b $E ROM:0005B89F dc.b $EE ; e ROM:0005B8A0 dc.b $E ROM:0005B8A1 dc.b $EC ; 8 ROM:0005B8A2 dc.b $E ROM:0005B8A3 dc.b $C8 ; + ROM:0005B8A4 dc.b $E ROM:0005B8A5 dc.b $A6 ; ª ROM:0005B8A6 dc.b $E ROM:0005B8A7 dc.b $84 ; ä ROM:0005B8A8 dc.b $E ROM:0005B8A9 dc.b $62 ; b ROM:0005B8AA dc.b $E ROM:0005B8AB dc.b $60 ; ` ROM:0005B8AC dc.b $E ROM:0005B8AD dc.b $EE ; e ROM:0005B8AE unk_5B8AE: dc.b 4 ; DATA XREF: ROM:loc_5B766o ROM:0005B8AF dc.b 7 ROM:0005B8B0 dc.b $10 ROM:0005B8B1 dc.b $FF ROM:0005B8B2 dc.b $FC ; n ROM:0005B8B3 dc.b 0 ROM:0005B8B4 dc.b $E ROM:0005B8B5 dc.b $EE ; e ROM:0005B8B6 dc.b $E ROM:0005B8B7 dc.b $60 ; ` ROM:0005B8B8 dc.b $E ROM:0005B8B9 dc.b $60 ; ` ROM:0005B8BA dc.b $E ROM:0005B8BB dc.b $60 ; ` ROM:0005B8BC dc.b $E ROM:0005B8BD dc.b $60 ; ` ROM:0005B8BE dc.b $E ROM:0005B8BF dc.b $60 ; ` ROM:0005B8C0 dc.b $E ROM:0005B8C1 dc.b $60 ; ` ROM:0005B8C2 dc.b $E ROM:0005B8C3 dc.b $60 ; ` ROM:0005B8C4 dc.b $E ROM:0005B8C5 dc.b $EE ; e ROM:0005B8C6 dc.b $E ROM:0005B8C7 dc.b $62 ; b ROM:0005B8C8 dc.b $E ROM:0005B8C9 dc.b $60 ; ` ROM:0005B8CA dc.b $E ROM:0005B8CB dc.b $60 ; ` ROM:0005B8CC dc.b $E ROM:0005B8CD dc.b $60 ; ` ROM:0005B8CE dc.b $E ROM:0005B8CF dc.b $60 ; ` ROM:0005B8D0 dc.b $E ROM:0005B8D1 dc.b $60 ; ` ROM:0005B8D2 dc.b $E ROM:0005B8D3 dc.b $60 ; ` ROM:0005B8D4 dc.b $E ROM:0005B8D5 dc.b $EE ; e ROM:0005B8D6 dc.b $E ROM:0005B8D7 dc.b $84 ; ä ROM:0005B8D8 dc.b $E ROM:0005B8D9 dc.b $62 ; b ROM:0005B8DA dc.b $E ROM:0005B8DB dc.b $60 ; ` ROM:0005B8DC dc.b $E ROM:0005B8DD dc.b $60 ; ` ROM:0005B8DE dc.b $E ROM:0005B8DF dc.b $60 ; ` ROM:0005B8E0 dc.b $E ROM:0005B8E1 dc.b $60 ; ` ROM:0005B8E2 dc.b $E ROM:0005B8E3 dc.b $60 ; ` ROM:0005B8E4 dc.b $E ROM:0005B8E5 dc.b $EE ; e ROM:0005B8E6 dc.b $E ROM:0005B8E7 dc.b $A6 ; ª ROM:0005B8E8 dc.b $E ROM:0005B8E9 dc.b $84 ; ä ROM:0005B8EA dc.b $E ROM:0005B8EB dc.b $62 ; b ROM:0005B8EC dc.b $E ROM:0005B8ED dc.b $60 ; ` ROM:0005B8EE dc.b $E ROM:0005B8EF dc.b $60 ; ` ROM:0005B8F0 dc.b $E ROM:0005B8F1 dc.b $60 ; ` ROM:0005B8F2 dc.b $E ROM:0005B8F3 dc.b $60 ; ` ROM:0005B8F4 dc.b $E ROM:0005B8F5 dc.b $EE ; e ROM:0005B8F6 dc.b $E ROM:0005B8F7 dc.b $C8 ; + ROM:0005B8F8 dc.b $E ROM:0005B8F9 dc.b $A6 ; ª ROM:0005B8FA dc.b $E ROM:0005B8FB dc.b $84 ; ä ROM:0005B8FC dc.b $E ROM:0005B8FD dc.b $62 ; b ROM:0005B8FE dc.b $E ROM:0005B8FF dc.b $60 ; ` ROM:0005B900 dc.b $E ROM:0005B901 dc.b $60 ; ` ROM:0005B902 dc.b $E ROM:0005B903 dc.b $60 ; ` ROM:0005B904 dc.b $E ROM:0005B905 dc.b $EE ; e ROM:0005B906 dc.b $E ROM:0005B907 dc.b $EC ; 8 ROM:0005B908 dc.b $E ROM:0005B909 dc.b $C8 ; + ROM:0005B90A dc.b $E ROM:0005B90B dc.b $A6 ; ª ROM:0005B90C dc.b $E ROM:0005B90D dc.b $84 ; ä ROM:0005B90E dc.b $E ROM:0005B90F dc.b $62 ; b ROM:0005B910 dc.b $E ROM:0005B911 dc.b $60 ; ` ROM:0005B912 dc.b $E ROM:0005B913 dc.b $60 ; ` ROM:0005B914 dc.b $E ROM:0005B915 dc.b $EE ; e ROM:0005B916 dc.b $E ROM:0005B917 dc.b $EE ; e ROM:0005B918 dc.b $E ROM:0005B919 dc.b $EC ; 8 ROM:0005B91A dc.b $E ROM:0005B91B dc.b $C8 ; + ROM:0005B91C dc.b $E ROM:0005B91D dc.b $A6 ; ª ROM:0005B91E dc.b $E ROM:0005B91F dc.b $84 ; ä ROM:0005B920 dc.b $E ROM:0005B921 dc.b $62 ; b ROM:0005B922 dc.b $E ROM:0005B923 dc.b $60 ; ` ROM:0005B924 off_5B924: dc.l off_5B940 ; DATA XREF: ROM:loc_5B5BCo ROM:0005B928 dc.b $C0 ; + ROM:0005B929 dc.b $88 ; ê ROM:0005B92A dc.b 0 ROM:0005B92B dc.b $80 ; Ç ROM:0005B92C dc.b $10 ROM:0005B92D dc.b 0 ROM:0005B92E off_5B92E: dc.l off_5B940 ; DATA XREF: ROM:loc_5B798o ROM:0005B932 dc.b 0 ROM:0005B933 dc.b 3 ROM:0005B934 dc.b 1 ROM:0005B935 dc.b 0 ROM:0005B936 dc.b 8 ROM:0005B937 dc.b 0 ROM:0005B938 off_5B938: dc.l unk_20000 ; DATA XREF: ROM:0005B686o ROM:0005B938 ; ROM:0005B72Eo ROM:0005B93C dc.b 1 ROM:0005B93D dc.b 2 ROM:0005B93E dc.b 3 ROM:0005B93F dc.b $FF ROM:0005B940 off_5B940: dc.l unk_A0030 ; DATA XREF: ROM:off_5B924o ROM:0005B940 ; ROM:off_5B92Eo ROM:0005B944 dc.b 0 ROM:0005B945 dc.b $56 ; V ROM:0005B946 dc.b 0 ROM:0005B947 dc.b $7C ; | ROM:0005B948 dc.b 0 ROM:0005B949 dc.b $A2 ; ó ROM:0005B94A dc.b 0 ROM:0005B94B dc.b 6 ROM:0005B94C dc.b $D8 ; + ROM:0005B94D dc.b $F ROM:0005B94E dc.b 0 ROM:0005B94F dc.b 0 ROM:0005B950 dc.b $FF ROM:0005B951 dc.b $F0 ; = ROM:0005B952 dc.b $D8 ; + ROM:0005B953 dc.b 7 ROM:0005B954 dc.b 0 ROM:0005B955 dc.b $10 ROM:0005B956 dc.b 0 ROM:0005B957 dc.b $10 ROM:0005B958 dc.b $F8 ; ° ROM:0005B959 dc.b $F ROM:0005B95A dc.b 0 ROM:0005B95B dc.b $18 ROM:0005B95C dc.b $FF ROM:0005B95D dc.b $E0 ; a ROM:0005B95E dc.b $18 ROM:0005B95F dc.b $F ROM:0005B960 dc.b 0 ROM:0005B961 dc.b $28 ; ( ROM:0005B962 dc.b $FF ROM:0005B963 dc.b $E0 ; a ROM:0005B964 dc.b $F8 ; ° ROM:0005B965 dc.b $F ROM:0005B966 dc.b 0 ROM:0005B967 dc.b $38 ; 8 ROM:0005B968 dc.b 0 ROM:0005B969 dc.b 0 ROM:0005B96A dc.b $18 ROM:0005B96B dc.b $F ROM:0005B96C dc.b 0 ROM:0005B96D dc.b $48 ; H ROM:0005B96E dc.b 0 ROM:0005B96F dc.b 0 ROM:0005B970 dc.b 0 ROM:0005B971 dc.b 6 ROM:0005B972 dc.b $D8 ; + ROM:0005B973 dc.b $F ROM:0005B974 dc.b 0 ROM:0005B975 dc.b $58 ; X ROM:0005B976 dc.b $FF ROM:0005B977 dc.b $F0 ; = ROM:0005B978 dc.b $D8 ; + ROM:0005B979 dc.b 7 ROM:0005B97A dc.b 0 ROM:0005B97B dc.b $68 ; h ROM:0005B97C dc.b 0 ROM:0005B97D dc.b $10 ROM:0005B97E dc.b $F8 ; ° ROM:0005B97F dc.b $F ROM:0005B980 dc.b 0 ROM:0005B981 dc.b $70 ; p ROM:0005B982 dc.b $FF ROM:0005B983 dc.b $E0 ; a ROM:0005B984 dc.b $18 ROM:0005B985 dc.b $F ROM:0005B986 dc.b 0 ROM:0005B987 dc.b $80 ; Ç ROM:0005B988 dc.b $FF ROM:0005B989 dc.b $E0 ; a ROM:0005B98A dc.b $F8 ; ° ROM:0005B98B dc.b $F ROM:0005B98C dc.b 0 ROM:0005B98D dc.b $90 ; É ROM:0005B98E dc.b 0 ROM:0005B98F dc.b 0 ROM:0005B990 dc.b $18 ROM:0005B991 dc.b $F ROM:0005B992 dc.b 0 ROM:0005B993 dc.b $A0 ; á ROM:0005B994 dc.b 0 ROM:0005B995 dc.b 0 ROM:0005B996 dc.b 0 ROM:0005B997 dc.b 6 ROM:0005B998 dc.b $D8 ; + ROM:0005B999 dc.b $F ROM:0005B99A dc.b 0 ROM:0005B99B dc.b $B0 ; ¦ ROM:0005B99C dc.b $FF ROM:0005B99D dc.b $F0 ; = ROM:0005B99E dc.b $D8 ; + ROM:0005B99F dc.b 7 ROM:0005B9A0 dc.b 0 ROM:0005B9A1 dc.b $C0 ; + ROM:0005B9A2 dc.b 0 ROM:0005B9A3 dc.b $10 ROM:0005B9A4 dc.b $F8 ; ° ROM:0005B9A5 dc.b $F ROM:0005B9A6 dc.b 0 ROM:0005B9A7 dc.b $C8 ; + ROM:0005B9A8 dc.b $FF ROM:0005B9A9 dc.b $E0 ; a ROM:0005B9AA dc.b $18 ROM:0005B9AB dc.b $F ROM:0005B9AC dc.b 0 ROM:0005B9AD dc.b $D8 ; + ROM:0005B9AE dc.b $FF ROM:0005B9AF dc.b $E0 ; a ROM:0005B9B0 dc.b $F8 ; ° ROM:0005B9B1 dc.b $F ROM:0005B9B2 dc.b 0 ROM:0005B9B3 dc.b $E8 ; F ROM:0005B9B4 dc.b 0 ROM:0005B9B5 dc.b 0 ROM:0005B9B6 dc.b $18 ROM:0005B9B7 dc.b $F ROM:0005B9B8 dc.b 0 ROM:0005B9B9 dc.b $F8 ; ° ROM:0005B9BA dc.b 0 ROM:0005B9BB dc.b 0 ROM:0005B9BC dc.b 0 ROM:0005B9BD dc.b 6 ROM:0005B9BE dc.b $D8 ; + ROM:0005B9BF dc.b $F ROM:0005B9C0 dc.b 1 ROM:0005B9C1 dc.b 8 ROM:0005B9C2 dc.b $FF ROM:0005B9C3 dc.b $F0 ; = ROM:0005B9C4 dc.b $D8 ; + ROM:0005B9C5 dc.b 7 ROM:0005B9C6 dc.b 1 ROM:0005B9C7 dc.b $18 ROM:0005B9C8 dc.b 0 ROM:0005B9C9 dc.b $10 ROM:0005B9CA dc.b $F8 ; ° ROM:0005B9CB dc.b $F ROM:0005B9CC dc.b 1 ROM:0005B9CD dc.b $20 ROM:0005B9CE dc.b $FF ROM:0005B9CF dc.b $E0 ; a ROM:0005B9D0 dc.b $18 ROM:0005B9D1 dc.b $F ROM:0005B9D2 dc.b 1 ROM:0005B9D3 dc.b $30 ; 0 ROM:0005B9D4 dc.b $FF ROM:0005B9D5 dc.b $E0 ; a ROM:0005B9D6 dc.b $F8 ; ° ROM:0005B9D7 dc.b $F ROM:0005B9D8 dc.b 1 ROM:0005B9D9 dc.b $40 ; @ ROM:0005B9DA dc.b 0 ROM:0005B9DB dc.b 0 ROM:0005B9DC dc.b $18 ROM:0005B9DD dc.b $F ROM:0005B9DE dc.b 1 ROM:0005B9DF dc.b $50 ; P ROM:0005B9E0 dc.b 0 ROM:0005B9E1 dc.b 0 ROM:0005B9E2 dc.b 0 ROM:0005B9E3 dc.b 2 ROM:0005B9E4 dc.b $FC ; n ROM:0005B9E5 dc.b 0 ROM:0005B9E6 dc.b 0 ROM:0005B9E7 dc.b 0 ROM:0005B9E8 dc.b $FF ROM:0005B9E9 dc.b $F8 ; ° ROM:0005B9EA dc.b $FC ; n ROM:0005B9EB dc.b 0 ROM:0005B9EC dc.b 0 ROM:0005B9ED dc.b 0 ROM:0005B9EE dc.b 0 ROM:0005B9EF dc.b 0 ROM:0005B9F0 ; --------------------------------------------------------------------------- ROM:0005B9F0 ROM:0005B9F0 loc_5B9F0: ; CODE XREF: VInt_2+28p ROM:0005B9F0 move.w (word_FFFFF662).w,d0 ROM:0005B9F4 beq.w locret_5B71C ROM:0005B9F8 clr.w (word_FFFFF662).w ; Predicted (Code-scan) ROM:0005B9FC move.w loc_5BA00+2(pc,d0.w),d0 ; Predicted (Code-scan) ROM:0005BA00 ROM:0005BA00 loc_5BA00: ; DATA XREF: ROM:0005B9FCr ROM:0005BA00 jmp loc_5BA04(pc,d0.w) ; Predicted (Code-scan) (Uncertain target!) ROM:0005BA04 ROM:0005BA04 loc_5BA04: ROM:0005BA04 ori.b #$36,d4 ; '6' ROM:0005BA08 lea (VDP_control_port).l,a5 ROM:0005BA0E move.l #$94169300,(a5) ROM:0005BA14 move.l #$96859580,(a5) ROM:0005BA1A move.w #(loc_977A+5),(a5) ROM:0005BA1E move.w #$5100,(a5) ROM:0005BA22 move.w #$80,(word_FFFFF640).w ; 'Ç' ROM:0005BA28 move.w (word_FFFFF640).w,(a5) ROM:0005BA2C lea unk_5BAB2,a1 ROM:0005BA30 move.l #$49500003,d0 ROM:0005BA36 bra.w loc_5BA76 ROM:0005BA3A ; --------------------------------------------------------------------------- ROM:0005BA3A lea (VDP_control_port).l,a5 ROM:0005BA40 move.w #(word_8EB6+$4B),(a5) ROM:0005BA44 move.l #$941F93FF,(a5) ROM:0005BA4A move.w #loc_9780,(a5) ROM:0005BA4E move.l #$40000083,(a5) ROM:0005BA54 move.w #0,(VDP_data_port).l ROM:0005BA5C ROM:0005BA5C loc_5BA5C: ; CODE XREF: ROM:0005BA62j ROM:0005BA5C move.w (a5),d1 ROM:0005BA5E btst #1,d1 ROM:0005BA62 bne.s loc_5BA5C ROM:0005BA64 move.w #(word_8EB6+$4C),(a5) ROM:0005BA68 lea unk_5BAC2,a1 ROM:0005BA6C move.l #$49A00003,d0 ROM:0005BA72 bra.w *+4 ROM:0005BA76 ROM:0005BA76 loc_5BA76: ; CODE XREF: ROM:0005BA36j ROM:0005BA76 lea (VDP_data_port).l,a6 ROM:0005BA7C move.l #$1000000,d6 ROM:0005BA82 moveq #7,d1 ROM:0005BA84 moveq #9,d2 ROM:0005BA86 ROM:0005BA86 loc_5BA86: ; CODE XREF: ROM:0005BAA2j ROM:0005BA86 move.l d0,4(a6) ROM:0005BA8A move.w d1,d3 ROM:0005BA8C movea.l a1,a2 ROM:0005BA8E ROM:0005BA8E loc_5BA8E: ; CODE XREF: ROM:0005BA9Cj ROM:0005BA8E move.w (a2)+,d4 ROM:0005BA90 bclr #$A,d4 ROM:0005BA94 beq.s loc_5BA9A ROM:0005BA96 bsr.w sub_5BAA8 ROM:0005BA9A ROM:0005BA9A loc_5BA9A: ; CODE XREF: ROM:0005BA94j ROM:0005BA9A move.w d4,(a6) ROM:0005BA9C dbf d3,loc_5BA8E ROM:0005BAA0 add.l d6,d0 ROM:0005BAA2 dbf d2,loc_5BA86 ROM:0005BAA6 rts ROM:0005BAA8 ROM:0005BAA8 ; =============== S U B R O U T I N E ======================================= ROM:0005BAA8 ROM:0005BAA8 ROM:0005BAA8 sub_5BAA8: ; CODE XREF: ROM:0005BA96p ROM:0005BAA8 moveq #$28,d5 ; '(' ROM:0005BAAA ROM:0005BAAA loc_5BAAA: ; CODE XREF: sub_5BAA8+4j ROM:0005BAAA move.w d4,(a6) ROM:0005BAAC dbf d5,loc_5BAAA ROM:0005BAB0 rts ROM:0005BAB0 ; End of function sub_5BAA8 ROM:0005BAB0 ROM:0005BAB0 ; --------------------------------------------------------------------------- ROM:0005BAB2 unk_5BAB2: dc.b $A0 ; á ; DATA XREF: ROM:0005BA2Co ROM:0005BAB3 dc.b $80 ; Ç ROM:0005BAB4 dc.b $A0 ; á ROM:0005BAB5 dc.b $81 ; ü ROM:0005BAB6 dc.b $A0 ; á ROM:0005BAB7 dc.b $82 ; é ROM:0005BAB8 dc.b $A0 ; á ROM:0005BAB9 dc.b $83 ; â ROM:0005BABA dc.b $A0 ; á ROM:0005BABB dc.b $84 ; ä ROM:0005BABC dc.b $A0 ; á ROM:0005BABD dc.b $85 ; à ROM:0005BABE dc.b $A0 ; á ROM:0005BABF dc.b $86 ; å ROM:0005BAC0 dc.b $A4 ; ñ ROM:0005BAC1 dc.b $87 ; ç ROM:0005BAC2 unk_5BAC2: dc.b $A4 ; ñ ; DATA XREF: ROM:0005BA68o ROM:0005BAC3 dc.b $87 ; ç ROM:0005BAC4 dc.b $A0 ; á ROM:0005BAC5 dc.b $86 ; å ROM:0005BAC6 dc.b $A0 ; á ROM:0005BAC7 dc.b $85 ; à ROM:0005BAC8 dc.b $A0 ; á ROM:0005BAC9 dc.b $84 ; ä ROM:0005BACA dc.b $A0 ; á ROM:0005BACB dc.b $83 ; â ROM:0005BACC dc.b $A0 ; á ROM:0005BACD dc.b $82 ; é ROM:0005BACE dc.b $A0 ; á ROM:0005BACF dc.b $81 ; ü ROM:0005BAD0 dc.b $A0 ; á ROM:0005BAD1 dc.b $80 ; Ç ROM:0005BAD2 unk_5BAD2: dc.b $12 ; DATA XREF: ROM:0005B5F4o ROM:0005BAD2 ; ROM:0005B70Ao ROM:0005BAD3 dc.b 4 ROM:0005BAD4 dc.b 4 ROM:0005BAD5 dc.b 2 ROM:0005BAD6 dc.b 2 ROM:0005BAD7 dc.b 2 ROM:0005BAD8 dc.b 2 ROM:0005BAD9 dc.b 0 ROM:0005BADA dc.b 0 ROM:0005BADB dc.b 0 ROM:0005BADC dc.b 0 ROM:0005BADD dc.b 0 ROM:0005BADE dc.b 0 ROM:0005BADF dc.b 0 ROM:0005BAE0 dc.b 0 ROM:0005BAE1 dc.b 4 ROM:0005BAE2 dc.b 4 ROM:0005BAE3 dc.b 6 ROM:0005BAE4 dc.b $A ROM:0005BAE5 dc.b 8 ROM:0005BAE6 dc.b 6 ROM:0005BAE7 dc.b 4 ROM:0005BAE8 dc.b 4 ROM:0005BAE9 dc.b 4 ROM:0005BAEA dc.b 4 ROM:0005BAEB dc.b 6 ROM:0005BAEC dc.b 6 ROM:0005BAED dc.b 8 ROM:0005BAEE dc.b 8 ROM:0005BAEF dc.b $A ROM:0005BAF0 dc.b $A ROM:0005BAF1 dc.b $C ROM:0005BAF2 dc.b $E ROM:0005BAF3 dc.b $10 ROM:0005BAF4 dc.b $16 ROM:0005BAF5 dc.b 0 ROM:0005BAF6 ROM:0005BAF6 ; =============== S U B R O U T I N E ======================================= ROM:0005BAF6 ROM:0005BAF6 ROM:0005BAF6 sub_5BAF6: ; CODE XREF: ROM:0005B61Ap ROM:0005BAF6 move.w d1,d2 ROM:0005BAF8 andi.w #1,d2 ROM:0005BAFC addq.w #1,d2 ROM:0005BAFE lsl.w #6,d2 ROM:0005BB00 swap d2 ROM:0005BB02 move.w d1,d3 ROM:0005BB04 lsr.w #1,d3 ROM:0005BB06 addq.w #1,d3 ROM:0005BB08 lsl.w #6,d3 ROM:0005BB0A swap d3 ROM:0005BB0C bsr.w sub_5BB22 ROM:0005BB10 btst #1,d0 ROM:0005BB14 beq.w locret_5B71C ROM:0005BB18 btst #1,d1 ROM:0005BB1C bne.s loc_5BB20 ROM:0005BB1E movea.l a3,a5 ROM:0005BB20 ROM:0005BB20 loc_5BB20: ; CODE XREF: sub_5BAF6+26j ROM:0005BB20 movea.l a5,a2 ROM:0005BB20 ; End of function sub_5BAF6 ROM:0005BB20 ROM:0005BB22 ROM:0005BB22 ; =============== S U B R O U T I N E ======================================= ROM:0005BB22 ROM:0005BB22 ROM:0005BB22 sub_5BB22: ; CODE XREF: sub_5BAF6+16p ROM:0005BB22 movea.l a2,a4 ROM:0005BB24 swap d2 ROM:0005BB26 lea (a2,d2.w),a3 ROM:0005BB2A swap d2 ROM:0005BB2C move.w d1,d5 ROM:0005BB2E andi.w #1,d5 ROM:0005BB32 bsr.w sub_5BB9C ROM:0005BB36 btst #1,d1 ROM:0005BB3A beq.s loc_5BB5E ROM:0005BB3C swap d2 ROM:0005BB3E move.w d2,d4 ROM:0005BB40 swap d2 ROM:0005BB42 add.w d4,d4 ROM:0005BB44 move.w d0,d3 ROM:0005BB46 andi.w #1,d3 ROM:0005BB4A lsl.w d3,d4 ROM:0005BB4C adda.w d4,a4 ROM:0005BB4E move.w d1,d5 ROM:0005BB50 lsr.w #1,d5 ROM:0005BB52 swap d3 ROM:0005BB54 lea (a4,d3.w),a5 ROM:0005BB58 swap d3 ROM:0005BB5A bsr.w sub_5BBB4 ROM:0005BB5E ROM:0005BB5E loc_5BB5E: ; CODE XREF: sub_5BB22+18j ROM:0005BB5E btst #0,d0 ROM:0005BB62 bne.s loc_5BB6A ROM:0005BB64 btst #1,d0 ROM:0005BB68 beq.s locret_5BB9A ROM:0005BB6A ROM:0005BB6A loc_5BB6A: ; CODE XREF: sub_5BB22+40j ROM:0005BB6A swap d2 ROM:0005BB6C lea (a2,d2.w),a2 ROM:0005BB70 lea (a2,d2.w),a3 ROM:0005BB74 swap d2 ROM:0005BB76 move.w d1,d5 ROM:0005BB78 andi.w #1,d5 ROM:0005BB7C bsr.w sub_5BB9C ROM:0005BB80 btst #1,d1 ROM:0005BB84 beq.s locret_5BB9A ROM:0005BB86 move.w d1,d5 ROM:0005BB88 lsr.w #1,d5 ROM:0005BB8A swap d3 ROM:0005BB8C lea (a4,d3.w),a4 ROM:0005BB90 lea (a4,d3.w),a5 ROM:0005BB94 swap d3 ROM:0005BB96 bsr.w sub_5BBB4 ROM:0005BB9A ROM:0005BB9A locret_5BB9A: ; CODE XREF: sub_5BB22+46j ROM:0005BB9A ; sub_5BB22+62j ROM:0005BB9A rts ROM:0005BB9A ; End of function sub_5BB22 ROM:0005BB9A ROM:0005BB9C ROM:0005BB9C ; =============== S U B R O U T I N E ======================================= ROM:0005BB9C ROM:0005BB9C ROM:0005BB9C sub_5BB9C: ; CODE XREF: sub_5BB22+10p ROM:0005BB9C ; sub_5BB22+5Ap ... ROM:0005BB9C moveq #7,d6 ROM:0005BB9E ROM:0005BB9E loc_5BB9E: ; CODE XREF: sub_5BB9C+Ej ROM:0005BB9E bsr.w sub_5BBCC ROM:0005BBA2 addq.w #4,a2 ROM:0005BBA4 bsr.w sub_5BBF6 ROM:0005BBA8 addq.w #4,a3 ROM:0005BBAA dbf d6,loc_5BB9E ROM:0005BBAE dbf d5,sub_5BB9C ROM:0005BBB2 rts ROM:0005BBB2 ; End of function sub_5BB9C ROM:0005BBB2 ROM:0005BBB4 ROM:0005BBB4 ; =============== S U B R O U T I N E ======================================= ROM:0005BBB4 ROM:0005BBB4 ROM:0005BBB4 sub_5BBB4: ; CODE XREF: sub_5BB22+38p ROM:0005BBB4 ; sub_5BB22+74p ... ROM:0005BBB4 moveq #7,d6 ROM:0005BBB6 ROM:0005BBB6 loc_5BBB6: ; CODE XREF: sub_5BBB4+Ej ROM:0005BBB6 bsr.w sub_5BC20 ROM:0005BBBA addq.w #4,a4 ROM:0005BBBC bsr.w sub_5BC4A ROM:0005BBC0 addq.w #4,a5 ROM:0005BBC2 dbf d6,loc_5BBB6 ROM:0005BBC6 dbf d5,sub_5BBB4 ROM:0005BBCA rts ROM:0005BBCA ; End of function sub_5BBB4 ROM:0005BBCA ROM:0005BBCC ROM:0005BBCC ; =============== S U B R O U T I N E ======================================= ROM:0005BBCC ROM:0005BBCC ROM:0005BBCC sub_5BBCC: ; CODE XREF: sub_5BB9C:loc_5BB9Ep ROM:0005BBCC bsr.w *+4 ROM:0005BBD0 move.b (a1)+,d2 ROM:0005BBD2 move.b d2,d3 ROM:0005BBD4 andi.b #$F0,d2 ROM:0005BBD8 move.b d2,d4 ROM:0005BBDA lsr.b #4,d4 ROM:0005BBDC or.b d2,d4 ROM:0005BBDE move.b d4,(a2)+ ROM:0005BBE0 move.b d4,3(a2) ROM:0005BBE4 andi.b #$F,d3 ROM:0005BBE8 move.b d3,d4 ROM:0005BBEA lsl.b #4,d4 ROM:0005BBEC or.b d3,d4 ROM:0005BBEE move.b d4,(a2)+ ROM:0005BBF0 move.b d4,3(a2) ROM:0005BBF4 rts ROM:0005BBF4 ; End of function sub_5BBCC ROM:0005BBF4 ROM:0005BBF6 ROM:0005BBF6 ; =============== S U B R O U T I N E ======================================= ROM:0005BBF6 ROM:0005BBF6 ROM:0005BBF6 sub_5BBF6: ; CODE XREF: sub_5BB9C+8p ROM:0005BBF6 bsr.w *+4 ROM:0005BBFA move.b (a1)+,d2 ROM:0005BBFC move.b d2,d3 ROM:0005BBFE andi.b #unk_F0,d2 ROM:0005BC02 move.b d2,d4 ROM:0005BC04 lsr.b #4,d4 ROM:0005BC06 or.b d2,d4 ROM:0005BC08 move.b d4,(a3)+ ROM:0005BC0A move.b d4,3(a3) ROM:0005BC0E andi.b #$F,d3 ROM:0005BC12 move.b d3,d4 ROM:0005BC14 lsl.b #4,d4 ROM:0005BC16 or.b d3,d4 ROM:0005BC18 move.b d4,(a3)+ ROM:0005BC1A move.b d4,3(a3) ROM:0005BC1E rts ROM:0005BC1E ; End of function sub_5BBF6 ROM:0005BC1E ROM:0005BC20 ROM:0005BC20 ; =============== S U B R O U T I N E ======================================= ROM:0005BC20 ROM:0005BC20 ROM:0005BC20 sub_5BC20: ; CODE XREF: sub_5BBB4:loc_5BBB6p ROM:0005BC20 bsr.w *+4 ROM:0005BC24 move.b (a1)+,d2 ROM:0005BC26 move.b d2,d3 ROM:0005BC28 andi.b #$F0,d2 ROM:0005BC2C move.b d2,d4 ROM:0005BC2E lsr.b #4,d4 ROM:0005BC30 or.b d2,d4 ROM:0005BC32 move.b d4,(a4)+ ROM:0005BC34 move.b d4,3(a4) ROM:0005BC38 andi.b #$F,d3 ROM:0005BC3C move.b d3,d4 ROM:0005BC3E lsl.b #4,d4 ROM:0005BC40 or.b d3,d4 ROM:0005BC42 move.b d4,(a4)+ ROM:0005BC44 move.b d4,3(a4) ROM:0005BC48 rts ROM:0005BC48 ; End of function sub_5BC20 ROM:0005BC48 ROM:0005BC4A ROM:0005BC4A ; =============== S U B R O U T I N E ======================================= ROM:0005BC4A ROM:0005BC4A ROM:0005BC4A sub_5BC4A: ; CODE XREF: sub_5BBB4+8p ROM:0005BC4A bsr.w *+4 ROM:0005BC4E move.b (a1)+,d2 ROM:0005BC50 move.b d2,d3 ROM:0005BC52 andi.b #$F0,d2 ROM:0005BC56 move.b d2,d4 ROM:0005BC58 lsr.b #4,d4 ROM:0005BC5A or.b d2,d4 ROM:0005BC5C move.b d4,(a5)+ ROM:0005BC5E move.b d4,3(a5) ROM:0005BC62 andi.b #$F,d3 ROM:0005BC66 move.b d3,d4 ROM:0005BC68 lsl.b #4,d4 ROM:0005BC6A or.b d3,d4 ROM:0005BC6C move.b d4,(a5)+ ROM:0005BC6E move.b d4,3(a5) ROM:0005BC72 rts ROM:0005BC72 ; End of function sub_5BC4A This code still exists in Sonic 3 stand alone, but it's lacking the massive subroutine table (it just jumps straight to the Sonic 3 equivalent to 0x5B5A2). There's still a few subroutines I couldn't identify, but hopefully the purpose of these routines are a bit clearer now. In both this prototype and Sonic 3 stand alone, all of this appears after the Nemesis archive containing the Sonic 3 End Credit graphics (ArtNem_S3EndingGraphics) and before the code for Obj_86. None of this appears in Sonic & Knuckles. While on the subject of 408, there's some massive sections of unused data in the ROM that seem to be repeats of tiles for Knuckles and some other weird data around 895EE-C719B (right after the debug tables and right before sound stuff begins), 1FF098-27FFFA, and 2CD8D4-2FFFFA. Does anyone wanna take a look?
Since there's absolutely nothing left except the trap handler in Sonic 3, it just leads to.... broken code of the giant Sonic object from the SEGA screen in Sonic 2. Which is also seen above in 408, unsurprisingly. All the instructions necessary to load the scale data were removed, but the most interesting thing about this iteration of the object is that it was coded at a time where addressed objects were completely implemented, but it was still using the old subtype data system, making this one of the earliest leftovers. Along with that unused Knuckles signpost art... I'm guessing that it was pretty late when they removed a bunch of the leftovers. P.S.: Natsumi did all the back work for this months ago for analyzing what the trap handler does. Sorry chump, but hey, you did a good job on the work!