Sonic and Sega Retro Message Board: evilhamwizard - Viewing Profile - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help

Researcher: Researcher
Active Posts:
1257 (0.26 per day)
Most Active In:
General Sonic Discussion (606 posts)
16-June 04
Profile Views:
Last Active:
User is offline Today, 12:47 AM

My Information

Age Unknown
Birthday Unknown
Male Male

Contact Information

Click here to e-mail me

Previous Fields

National Flag:
Wiki edits:

Latest Visitors

Posts I've Made

  1. In Topic: SADX/SA1 Hacking/Modding

    19 June 2017 - 08:46 PM

    Another thing I forgot to mention. You can actually load up those event .prs with any character and any stage. The event file itself contains the dialog text, camera movement data, animation data, and code to make it work with the external functions in 1ST_READ. It's funny because when I initially loaded the event file it was just with Sonic on top of the Egg Carrier. When the animation of Amy looking up appeared (which the data is exclusive to this event file), it changed Sonic's mesh to Amy's for the duration of the animation. So there could be some unused assets (models, animation, etc) in the other event files that go unreferenced.

    Has anyone actually documented what each of the event .prs files correlate to? I wonder if there are any more events/cutscenes that go unused but are still included in the game, like this one.
  2. In Topic: The Supreme Topic of 'Other' Knowledge.

    19 June 2017 - 01:00 PM

    I guess I'll post this here too.

    A while back I mentioned that the original Japanese version released on the Dreamcast included an exclusive cutscene that goes unused (EV0134). This file was removed from every other version of the game. I managed to load it up by locating the table/struct that is responsible for the cutscene sequence after the title screen.

    As I mentioned before, I think this was meant to take place after Amy completes the Hedgehog Hammer and before she enters Hot Shelter, somehow. This doesn't make sense in the context of the scene I don't think. So this might've been originally the cutscene that plays when Amy completes the Hot Shelter (meaning there might've been no Tikal flash back at some point). Why they removed it is anyone's guess.
  3. In Topic: SADX/SA1 Hacking/Modding

    19 June 2017 - 12:53 PM

    I guess I'll post this here.

    A while back I mentioned that the original Japanese version released on the Dreamcast included an exclusive cutscene that goes unused (EV0134). This file was removed from every other version of the game. I managed to load it up by locating the table/struct that is responsible for the cutscene sequence after the title screen.

    As I mentioned before, I think this was meant to take place after Amy completes the Hedgehog Hammer and before she enters Hot Shelter, somehow. This doesn't make sense in the context of the scene I don't think. So this might've been originally the cutscene that plays when Amy completes the Hot Shelter (meaning there might've been no Tikal flash back at some point). Why they removed it is anyone's guess.

    Since this is the hacking thread, and I don't think it was mentioned before, the table for the cutscene sequence in the Japanese original is included at 0x8C1D6178 in 1ST_READ, and the function that specifically loads up the event file is at 0x8C04C73E. In the PC version, the table seems to be located at 0x913AE0 in sonic.exe. Each entry in the table is using a struct like this:

    data.w <- stage id
    data.w <- act id
    data.w <- character id
    data.w <- event id
    data.w <- param 1 (?)
    data.w <- param 2 (?)
    data.w <- param 2 (?)
    data.w <- null terminator (FFFF, seems to only be used in the Dreamcast version)
  4. In Topic: Sonic 3C 0408 discussion

    01 June 2017 - 01:51 PM

    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:
    ROM:0005B1AA ; =============== S U B R O U T I N E =======================================
    ROM:0005B1AA ; unused interrupt routine. this still exists in sonic 3 stand alone at 0x4313E but without the trap table
    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: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 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 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 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 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 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 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 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 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 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 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 locret_5B71C:                           ; CODE XREF: ROM:0005B9F4j
    ROM:0005B71C                                         ; sub_5BAF6+1Ej
    ROM:0005B71C                 rts
    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 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 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 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 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 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 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 loc_5B7BC:                              ; DATA XREF: ROM:0005B796o
    ROM:0005B7BC                 jmp     Draw_Sprite
    ROM:0005B7C2 ; =============== S U B R O U T I N E =======================================
    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 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:0005B7D6 ; =============== S U B R O U T I N E =======================================
    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 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:0005B7EA ; =============== S U B R O U T I N E =======================================
    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 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 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 loc_5B824:                              ; CODE XREF: sub_5B7EA+34j
    ROM:0005B824                 adda.w  d1,a2
    ROM:0005B826 loc_5B826:                              ; CODE XREF: sub_5B7EA+30j
    ROM:0005B826                 movea.w 4(a1),a3
    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 loc_5B830:                              ; CODE XREF: sub_5B7EA+4j
    ROM:0005B830                 moveq   #0,d0
    ROM:0005B832                 rts
    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: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 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 loc_5BA00:                              ; DATA XREF: ROM:0005B9FCr
    ROM:0005BA00                 jmp     loc_5BA04(pc,d0.w) ; Predicted (Code-scan) (Uncertain target!)
    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 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 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 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 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 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 ; =============== S U B R O U T I N E =======================================
    ROM:0005BAA8 sub_5BAA8:                              ; CODE XREF: ROM:0005BA96p
    ROM:0005BAA8                 moveq   #$28,d5 ; '('
    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: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 ; =============== S U B R O U T I N E =======================================
    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 loc_5BB20:                              ; CODE XREF: sub_5BAF6+26j
    ROM:0005BB20                 movea.l a5,a2
    ROM:0005BB20 ; End of function sub_5BAF6
    ROM:0005BB22 ; =============== S U B R O U T I N E =======================================
    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 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 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 locret_5BB9A:                           ; CODE XREF: sub_5BB22+46j
    ROM:0005BB9A                                         ; sub_5BB22+62j
    ROM:0005BB9A                 rts
    ROM:0005BB9A ; End of function sub_5BB22
    ROM:0005BB9C ; =============== S U B R O U T I N E =======================================
    ROM:0005BB9C sub_5BB9C:                              ; CODE XREF: sub_5BB22+10p
    ROM:0005BB9C                                         ; sub_5BB22+5Ap ...
    ROM:0005BB9C                 moveq   #7,d6
    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:0005BBB4 ; =============== S U B R O U T I N E =======================================
    ROM:0005BBB4 sub_5BBB4:                              ; CODE XREF: sub_5BB22+38p
    ROM:0005BBB4                                         ; sub_5BB22+74p ...
    ROM:0005BBB4                 moveq   #7,d6
    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:0005BBCC ; =============== S U B R O U T I N E =======================================
    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:0005BBF6 ; =============== S U B R O U T I N E =======================================
    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:0005BC20 ; =============== S U B R O U T I N E =======================================
    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:0005BC4A ; =============== S U B R O U T I N E =======================================
    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?
  5. In Topic: Unused/Leftover Level Maps in Sonic 2NA

    28 May 2017 - 03:19 PM

    I mapped out the first 0x2000 of the second padded region.
    2C292-2C5D0 - Half of Hill Top Zone Act 2 level tile layout (first two bytes are altered)
    2C5D0-2C5DA - Hill Top Zone BG tile layout
    2C5DA-2CDDC - Chemical Plant Zone Act 1 level layout
    2CDDC-2D5DE - Hidden Palace Zone Act 1 level layout
    2D5DE-2D604 - Chemical Plant Zone BG layout
    2D604-2D64E - Hidden Palace zone BG layout
    2D64E-2D652 - Level Null
    2D652-2E292 - Big Ring Art

    Unless otherwise stated, all of them match their used equivalent in the ROM.

    However, the stuff that comes after this is a complete mystery. 2E292-2EA92 seems to be some kind of tile data, then followed by some mapping data, then 128 ASCII character art, then followed by a bunch of mysterious data that could be more mapping data. None of it matches anything in any other Megadrive game or within the ROM. It could be similar to data in a compressed archive in the ROM, but I'm not sure...
    Posted Image