Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;A10001 = version number
- ;10xxxxx = US ? (export NTSC)
- ;00xxxxx = JP ? (JP NTSC)
- ;11xxxxx = EU ? (export PAL)
- ;01xxxxx = none (JP PAL)
- ;this routine checks the pointer as it passes to the graphics decompression routine
- ;if it is identified as the pointer to one of the compressed graphics/tilemap blocks,
- ;it gets replaced with the offset of the compressed English data and jumps back to
- ;the game's original decompression routine
- org $115000
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne end_init
- move.l A0,D6
- cmp.l #$00019C80,D6 ;Japanese font pointer
- bne not_font
- move.l #$0017C000,A0 ;English font pointer
- bra end_init
- not_font:
- cmp.l #$00022A08,D6 ;Japanese "legend" font
- bne not_legend_font
- move.l #$0017B800,A0
- bra end_init
- not_legend_font:
- cmp.l #$000A0F5E,D6 ;Japanese "legend" screen
- bne not_legend
- move.l #$0017CA00,A0
- bra end_init
- not_legend:
- cmp.l #$0009AE82,D6 ;Japanese "legend" block map
- bne not_legend0
- move.l #$0017CC00,A0
- bra end_init
- not_legend0:
- cmp.l #$0009B41A,D6 ;Japanese "J. Verne" block map
- bne not_jverne_blockmap
- move.l #$0017CC80,A0
- bra end_init
- not_jverne_blockmap:
- cmp.l #$00028D70,D6 ;Japanese "J. Verne" tiles
- bne not_jverne_tiles
- move.l #$0017CE00,A0
- bra end_init
- not_jverne_tiles:
- cmp.l #$000A2BCE,D6 ;Japanese "J. Verne" tilemap
- bne not_jverne_tilemap
- move.l #$0017CCC0,A0
- bra end_init
- not_jverne_tilemap:
- cmp.l #$000203E2,D6 ;Japanese title tiles
- bne not_title_tiles
- move.l #$0017D200,A0
- bra end_init
- not_title_tiles:
- cmp.l #$000A04EE,D6 ;Japanese tittle tilemap
- bne not_title_tilemap
- move.l #$0017E200,A0
- bra end_init
- not_title_tilemap:
- cmp.l #$0009B9E4,D6 ;Paris, block map
- bne not_paris_blockmap
- move.l #$0017E500,A0
- bra end_init
- not_paris_blockmap:
- cmp.l #$0002B0FC,D6 ;Paris, tiles
- bne not_paris_tiles
- move.l #$0017E580,A0
- bra end_init
- not_paris_tiles:
- cmp.l #$000A3E50,D6 ;Paris, tilemap
- bne not_paris_tilemap
- move.l #$0017E900,A0
- bra end_init
- not_paris_tilemap:
- cmp.l #$000855FA,D6 ;final screen
- bne not_final
- move.l #$0017A000,A0
- not_final:
- end_init:
- move.b (A0)+,D6
- lsl.w #8,D6
- move.b (A0)+,D6
- jmp $00000B3C
- org $115200
- move.b $A10001,D0 ;put this in for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- beq end_text_pointer ;this will jump if the system is US. Final will be changed to jump if JP
- moveq #$00,D0
- move.l A0,-(A7) ;save A0
- addi.l #$40000,D2 ;D2+$40000 = string number
- movea.l D2,A0
- move.b (A0)+,D0 ;read high byte of word
- asl.l #8,D0
- move.b (A0),D0 ;read low byte of word. Must read two bytes seperately incase it starts at an odd address
- asl.l #2,D0 ;multiply by 4 for word address
- addi.l #$120000,D0 ;index into English pointer table
- movea.l D0,A0 ;move pointer to address
- move.l (A0),D2 ;read pointer
- move.l (A7)+,A0 ;restore A0
- end_text_pointer:
- MOVE.l D2,($00FF8E28)
- jmp $00001C64
- org $115280
- move.w (A1)+,D2 ;get original window data
- bmi OriginalWinData ;value above #$8000 = original window data
- beq JumpEndWinLine
- ;$xx00, where X & 0x07 = repeat length, repeat original sequence to apply RLE
- move.l D3,-(A7) ;save D3
- move.w D2,D3 ;copy tile value to D3
- lsr.w #8,D3 ;move to lower byte
- andi.w #$0007,D3 ;low 3 bits = max run of 7
- ori.w #$8700,D2
- jsr $1154C0
- move.l (A7)+,D3 ;restore D3
- jmp $001D4A
- OriginalWinData:
- move.w D2,$00(A2,D1)
- jmp $001D52
- JumpEndWinLine:
- jmp $001D62
- org $115300
- ;original code $001C78 = horizontal window dimension
- moveq #$00,D2
- move.b (A6)+,D2 ;get window horizontal size
- cmp.b #$02,D2
- bcs WindowWideEnough
- move.b #$02,D2
- WindowWideEnough:
- add.w D2,D2
- jmp $001C7E
- org $115340
- ;same as middle lines code
- move.w (A1)+,D2 ;get original window data
- bmi OriginalWinTopData ;value above #$8000 = original window data
- beq JumpEndWinTopLine
- ;$xx00, where X & 0x07 = repeat length, repeat original sequence to apply RLE
- move.l D3,-(A7) ;save D3
- move.w D2,D3 ;copy tile value to D3
- lsr.w #8,D3 ;move to lower byte
- andi.w #$0007,D3 ;low 3 bits = max run of 7
- ori.w #$8700,D2
- jsr $1154C0
- move.l (A7)+,D3 ;restore D3
- jmp $001D20
- OriginalWinTopData:
- move.w D2,$00(A2,D1)
- jmp $001D28
- JumpEndWinTopLine:
- jmp $001D38
- org $1153A0
- ;same as middle lines code
- move.w (A1)+,D1 ;get original window data
- bmi OriginalWinBotData ;value above #$8000 = original window data
- beq JumpEndWinBotLine
- ;$xx00, where X & 0x07 = repeat length, repeat original sequence to apply RLE
- move.l D3,-(A7) ;save D3
- move.w D1,D3 ;copy tile value to D3
- lsr.w #8,D3 ;move to lower byte
- andi.w #$0007,D3 ;low 3 bits = max run of 7
- ori.w #$8700,D1
- jsr $1154E0
- move.l (A7)+,D3 ;restore D3
- jmp $001D74
- OriginalWinBotData:
- move.w D1,$00(A2,D0)
- jmp $001D7C
- JumpEndWinBotLine:
- jmp $001D8C
- org $115400
- add.l ($00FF8F06),D0 ;finishes putting string address in D0
- move.b $A10001,D5 ;put this in for US-region check
- andi #$C0,D5
- cmpi #$80,D5
- beq end_menu_text_pointer ;this will jump if the system is US. Final will be changed to jump if JP
- moveq #$00,D5
- move.l A0,-(A7) ;save A0
- addi.l #$40000,D0 ;D2+$40000 = string number
- movea.l D0,A0
- move.b (A0)+,D5 ;read high byte of word
- asl.l #8,D5
- move.b (A0),D5 ;read low byte of word. Must read two bytes seperately incase it starts at an odd address
- asl.l #2,D5 ;multiply by 4 for word address
- addi.l #$120000,D5 ;index into English pointer table
- movea.l D5,A0 ;move pointer to address
- move.l (A0),D0 ;read pointer
- move.l (A7)+,A0 ;restore A0
- end_menu_text_pointer:
- jmp $000039B6
- org $115440
- move.l ($00FF8F06),A1
- adda.l D2,A1 ;A1 = address of item
- move.b $A10001,D2 ;put this in for US-region check
- andi #$C0,D2
- cmpi #$80,D2
- beq end_item_text_pointer ;this will jump if the system is US. Final will be changed to jump if JP
- move.l A1,D3
- moveq #$00,D2
- move.l A0,-(A7) ;save A0
- addi.l #$40000,D3 ;D2+$40000 = string number
- movea.l D3,A0
- move.b (A0)+,D2 ;read high byte of word
- asl.l #8,D2
- move.b (A0),D2 ;read low byte of word. Must read two bytes seperately incase it starts at an odd address
- asl.l #2,D2 ;multiply by 4 for word address
- addi.l #$120000,D2 ;index into English pointer table
- movea.l D2,A0 ;move pointer to address
- move.l (A0),D3 ;read pointer
- move.l D3,A1
- move.l (A7)+,A0 ;restore A0
- end_item_text_pointer:
- jmp $00004004
- org $115490
- ;same as middle lines code
- ;ROM $3EFC = max width
- ;ROM $3EA6 = max width (used to clear window)
- move.w (A1)+,D2 ;get original window data
- bmi OriginalItemTopData ;value above #$8000 = original window data
- beq JumpEndItemTopLine
- ;$xx00, where X & 0x07 = repeat length, repeat original sequence to apply RLE
- move.l D3,-(A7) ;save D3
- move.w D2,D3 ;copy tile value to D3
- lsr.w #8,D3 ;move to lower byte
- andi.w #$0007,D3 ;low 3 bits = max run of 7
- ori.w #$8700,D2
- jsr $1154C0
- move.l (A7)+,D3 ;restore D3
- jmp $003f54
- OriginalItemTopData:
- move.w D2,$00(A2,D1)
- jmp $003f5c
- JumpEndItemTopLine:
- jmp $003f6c
- org $115500
- ;same as middle lines code
- move.w (A1)+,D2 ;get original window data
- bmi OriginalItemMidData ;value above #$8000 = original window data
- beq JumpEndItemMidLine
- ;$xx00, where X & 0x07 = repeat length, repeat original sequence to apply RLE
- move.l D3,-(A7) ;save D3
- move.w D2,D3 ;copy tile value to D3
- lsr.w #8,D3 ;move to lower byte
- andi.w #$0007,D3 ;low 3 bits = max run of 7
- ori.w #$8700,D2
- jsr $1154C0
- move.l (A7)+,D3 ;restore D3
- jmp $003f88
- OriginalItemMidData:
- move.w D2,$00(A2,D1)
- jmp $003f90
- JumpEndItemMidLine:
- jmp $003fa0
- org $115560
- ;same as middle lines code
- move.w (A1)+,D1 ;get original window data
- bmi OriginalItemBotData ;value above #$8000 = original window data
- beq JumpEndItemBotLine
- ;$xx00, where X & 0x07 = repeat length, repeat original sequence to apply RLE
- move.l D3,-(A7) ;save D3
- move.w D1,D3 ;copy tile value to D3
- lsr.w #8,D3 ;move to lower byte
- andi.w #$0007,D3 ;low 3 bits = max run of 7
- ori.w #$8700,D1
- jsr $1154E0
- move.l (A7)+,D3 ;restore D3
- jmp $003fb2
- OriginalItemBotData:
- move.w D1,$00(A2,D0)
- jmp $003fba
- JumpEndItemBotLine:
- jmp $003fca
- org $115600
- ;version 1 of pointer expansion. D2 = tile data, D1 = offset into window data
- Ver1RLERout:
- move.w D2,$00(A2,D1)
- move.w D2,-(A7)
- move.w D1,D2
- addq.w #2,D1
- andi.w #$007E,D1
- andi.w #$0F80,D2
- or.w D2,D1
- move.w (A7)+,D2
- subq.w #1,D3
- bne Ver1RLERout
- rts
- org $115620
- ;version 2 of pointer expansion. D1 = tile data, D0 = offset into window data
- Ver2RLERout:
- move.w D1,$00(A2,D0)
- move.w D1,-(A7)
- move.w D0,D1
- addq.w #2,D0
- andi.w #$007E,D0
- andi.w #$0F80,D1
- or.w D1,D0
- move.w (A7)+,D1
- subq.w #1,D3
- bne Ver2RLERout
- rts
- ;intermission text loading
- org $115660
- adda.l D2, A1 ;now A1 has the pointer to the original string
- move.l A1, D2
- moveq #$00,D0
- move.l A0,-(A7) ;save A0
- addi.l #$40000,D2 ;D2+$40000 = string number
- movea.l D2,A0
- move.b (A0)+,D0 ;read high byte of word
- asl.l #8,D0
- move.b (A0),D0 ;read low byte of word. Must read two bytes seperately incase it starts at an odd address
- asl.l #2,D0 ;multiply by 4 for word address
- addi.l #$120000,D0 ;index into English pointer table
- movea.l D0,A0 ;move pointer to address
- move.l (A0),D2 ;read pointer
- move.l (A7)+,A0 ;restore A0
- movea.l D2, A1 ;now A1 has the pointer to the original string
- lea ($00FF711A),A0
- jmp $0000170E
- org $1156A0
- ;tower floor identify. We want A1 to have the address of the ROM string
- move.l ($00FF8F06),A1
- adda.l D3,A1
- movem.l D0-D2,-(A7)
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- beq not_change_floor_pointer
- move.l A1,D3 ;original string address
- moveq #$00,D2
- move.l A0,-(A7) ;save A0
- addi.l #$40000,D3 ;D3+$40000 = string number
- movea.l D3,A0
- move.b (A0)+,D2 ;read high byte of word
- asl.l #8,D2
- move.b (A0),D2 ;read low byte of word. Must read two bytes seperately incase it starts at an odd address
- asl.l #2,D2 ;multiply by 4 for word address
- addi.l #$120000,D2 ;index into English pointer table
- movea.l D2,A0 ;move pointer to address
- move.l (A0),D3 ;read pointer
- move.l D3,A1
- move.l (A7)+,A0 ;restore A0
- not_change_floor_pointer:
- movem.l (A7)+,D0-D2
- jmp $000034E2
- org $115780
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne eng_sound_spacing_down
- move.w #$000B,($00FFA604)
- jmp $00006F22
- eng_sound_spacing_down:
- move.w #$0003,($00FFA604)
- jmp $00006F22
- org $1157C0
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne eng_sound_spacing_up
- move.w #$FFF5,($00FFA604)
- jmp $00006EF2
- eng_sound_spacing_up:
- move.w #$FFFD,($00FFA604)
- jmp $00006EF2
- org $115800
- SouneMenu:
- lea ($00FF1164),A0 ;start of tilemap
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne eng_sound_menu
- lea ($00007132),A1 ;original Japanese text
- jmp $000070B8
- eng_sound_menu:
- lea ($00116000),A1 ;English sound text
- move.w #$001E,D7 ;number of lines of text
- SoundMenuLine:
- moveq #$16,D6 ;number of characters per line
- SoundMenuLineLoop:
- move.w #$0700,D0
- move.b (A1)+,D0
- move.w D0,(A0)+
- subq.w #1,D6
- bne SoundMenuLineLoop
- lea $0014(A0),A0
- subq.w #1,D7
- bne SoundMenuLine
- jmp $000070EC
- org $115900
- SoundMenuCursorHack:
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne eng_sound_cursor
- move.w ($00FFA600),D0 ;cursor selection in left column
- jmp $00006E7A ;return to JP routine
- eng_sound_cursor:
- move.w ($00FFA600),D0
- jmp $00006E86
- org $115940
- SoundCursorMaxHack:
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne eng_cursor_length
- cmp.w #$000E,($00FFA600)
- ble JP_within_range
- jmp $00006F32
- JP_within_range:
- jmp $00006F46
- eng_cursor_length:
- cmp.w #$001D,($00FFA600)
- ble EN_within_range
- move.w #$001D,($00FFA600)
- jmp $00006F3A
- EN_within_range:
- jmp $00006F46
- org $115B00
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne column_hack
- move.w #$000b,($00FFA602)
- jmp $00006FA2
- column_hack:
- jmp $00006FBC
- org $115B40
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne highlight_table_hack
- lea ($00FF7422),A0
- jmp $00006E58
- highlight_table_hack:
- lea ($00FF7422),A0
- lea ($00115B00),A1 ;alternate table
- jmp $00006E58
- org $115C00
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne return_items_hack
- lea ($00001F4F),A1 ;offset for original string
- jsr $00002054 ;we replaced a bsr
- jmp $0000202C
- return_items_hack:
- lea ($00116300),A1
- jsr $00002054
- jmp $0000202C
- ;relocate item string
- ;00:2038 13 79 MOVE.b ($00FFA3C5),$0007(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E41 A3=00FF8F6E A4=00001D0A A5=00FFEFB8 A6=000DA3D0 A7=00FFEFF8 D0=000000DF D1=0000000C D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xNzvc
- ;** 00:2038 13 79 MOVE.b ($00FFA3C5),$0007(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E41 A3=00FF8F6E A4=00001D0A A5=00FFEFB8 A6=000DA3D0 A7=00FFEFF8 D0=000000DF D1=0000000C D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xNzvc
- ;** [00:203E] W08 = 00 [FF8E39]
- org $115C40
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne return_items_string_hack
- move.b ($00FFA3C5),$0007(A1)
- move.b ($00FFA3C6),$0008(A1)
- move.b ($00FFA3C7),$0009(A1)
- jmp $00002050
- return_items_string_hack:
- move.b ($00FFA3C5),$000F(A1)
- move.b ($00FFA3C6),$0010(A1)
- move.b ($00FFA3C7),$0011(A1)
- jmp $00002050
- ;relocate give item string
- ;00:1F6C 60 00 BRA #$000E [00:1F7C] A0=00001C14 A1=000D1AAE A2=00FF8E7E A3=00FF8F76 A4=00003F42 A5=00FFEFB8 A6=000ECA05 A7=00FFEFF8 D0=00000010 D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xnZvc
- ;** 00:1F6C 60 00 BRA #$000E [00:1F7C] A0=00001C14 A1=000D1AAE A2=00FF8E7E A3=00FF8F76 A4=00003F42 A5=00FFEFB8 A6=000ECA05 A7=00FFEFF8 D0=00000010 D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xnZvc
- ;00:1F7C 43 FA LEA $FF8C(PC),A1 A0=00001C14 A1=000D1AAE A2=00FF8E7E A3=00FF8F76 A4=00003F42 A5=00FFEFB8 A6=000ECA05 A7=00FFEFF8 D0=00000010 D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xnZvc
- ;** 00:1F7C 43 FA LEA $FF8C(PC),A1 A0=00001C14 A1=000D1AAE A2=00FF8E7E A3=00FF8F76 A4=00003F42 A5=00FFEFB8 A6=000ECA05 A7=00FFEFF8 D0=00000010 D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xnZvc
- ;00:1F80 61 00 BSR #$00D2 [00:2054] A0=00001C14 A1=00001F0A A2=00FF8E7E A3=00FF8F76 A4=00003F42 A5=00FFEFB8 A6=000ECA05 A7=00FFEFF8 D0=00000010 D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xnZvc
- ;** 00:1F80 61 00 BSR #$00D2 [00:2054] A0=00001C14 A1=00001F0A A2=00FF8E7E A3=00FF8F76 A4=00003F42 A5=00FFEFB8 A6=000ECA05 A7=00FFEFF8 D0=00000010 D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xnZvc
- org $115C90
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne give_items_string_hack
- lea ($00001F0A),A1 ;offset for original string
- jsr $00002054 ;we replaced a bsr
- jmp $00001F84
- give_items_string_hack:
- lea ($00116340),A1
- jsr $00002054
- jmp $00001F84
- ;item string
- ;00:1F9C 13 79 MOVE.b ($00FFA3C5),$0007(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E4A A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA0B A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xNzvc
- ;** 00:1F9C 13 79 MOVE.b ($00FFA3C5),$0007(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E4A A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA0B A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xNzvc
- ;** [00:1FA2] W08 = 00 [FF8E39]
- ;00:1FA4 13 79 MOVE.b ($00FFA3C6),$0008(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E4A A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA0B A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xnZvc
- ;** 00:1FA4 13 79 MOVE.b ($00FFA3C6),$0008(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E4A A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA0B A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xnZvc
- ;** [00:1FAA] W08 = F8 [FF8E3A]
- ;00:1FAC 13 79 MOVE.b ($00FFA3C7),$0009(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E4A A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA0B A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xNzvc
- ;** 00:1FAC 13 79 MOVE.b ($00FFA3C7),$0009(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E4A A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA0B A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xNzvc
- ;** [00:1FB2] W08 = 9D [FF8E3B]
- ;00:1FB4 60 00 BRA #$00B6 [00:206C] A0=00001C14 A1=00FF8E32 A2=00FF8E4A A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA0B A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xNzvc
- ;** 00:1FB4 60 00 BRA #$00B6 [00:206C] A0=00001C14 A1=00FF8E32 A2=00FF8E4A A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA0B A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xNzvc
- org $115CE0
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne give_items_string_item
- move.b ($00FFA3C5),$0007(A1)
- move.b ($00FFA3C6),$0008(A1)
- move.b ($00FFA3C7),$0009(A1)
- jmp $00001FB4
- give_items_string_item:
- move.b ($00FFA3C5),$000F(A1)
- move.b ($00FFA3C6),$0010(A1)
- move.b ($00FFA3C7),$0011(A1)
- jmp $00001FB4
- ;00:1F90 13 5E MOVE.b (A6)+,$000D(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E4E A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA08 A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xNzvc
- ;** 00:1F90 13 5E MOVE.b (A6)+,$000D(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E4E A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA08 A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xNzvc
- ;** [00:1F92] W08 = 00 [FF8E3F]
- ;00:1F94 13 5E MOVE.b (A6)+,$000E(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E4E A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA09 A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xnZvc
- ;** 00:1F94 13 5E MOVE.b (A6)+,$000E(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E4E A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA09 A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xnZvc
- ;** [00:1F96] W08 = 01 [FF8E40]
- ;00:1F98 13 5E MOVE.b (A6)+,$000F(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E4E A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA0A A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xnzvc
- ;** 00:1F98 13 5E MOVE.b (A6)+,$000F(A1) A0=00001C14 A1=00FF8E32 A2=00FF8E4E A3=00FF8F76 A4=00003A04 A5=00FFEFB8 A6=000ECA0A A7=00FFEFF8 D0=000000DF D1=00000000 D2=00000004 D3=00FF0712 D4=74000004 D5=00000000 D6=00000001 D7=0000FFFF xnzvc
- ;** [00:1F9A] W08 = A8 [FF8E41]
- org $115D30
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne give_items_string_receiver
- move.b (A6)+,$000D(A1)
- move.b (A6)+,$000E(A1)
- move.b (A6)+,$000F(A1)
- jmp $00001F9C
- give_items_string_receiver:
- move.b (A6)+,$0017(A1)
- move.b (A6)+,$0018(A1)
- move.b (A6)+,$0019(A1)
- jmp $00001F9C
- org $115D80
- ; move.l D0,-(A7)
- ; move $A10001,D0 ;put this is for US-region check
- ; andi #$C0,D0
- ; cmpi #$80,D0
- ; bne pass_cursor_right_hack
- ; move.l (A7)+,D0
- ; addq.w #$1,($00FFA5D4)
- ; jmp $00005DEE
- ;pass_cursor_right_hack:
- ; move.l (A7)+,D0
- lea $00FF0006,A0
- lea $00FF7430,A1
- move.w ($00FFA5D4),D1
- add.w D1,D1
- move.w #$0720,D0
- jmp $00005E56
- org $115E30
- ; move.l D0,-(A7)
- ; move $A10001,D0 ;put this is for US-region check
- ; andi #$C0,D0
- ; cmpi #$80,D0
- ; bne pass_cursor_left_hack
- ; move.l (A7)+,D0
- ; subq.w #1,($00FFA5D4)
- ; jmp $00005E16
- ;pass_cursor_left_hack:
- ; move.l (A7)+,D0
- lea $00FF0006,A0
- lea $00FF7430,A1
- move.w ($00FFA5D4),D1
- add.w D1,D1
- move.w #$0720,D0
- cmp.w #$0000,($FFA5D4)
- beq subtract_once
- subq.w #1,($00FFA5D4)
- subtract_once:
- subq.w #1,($00FFA5D4) ;subtract a second to counter the print routines + 1
- jmp $00005E56
- org $115E90
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne pass_instruction_hack
- lea $0000670E,A0
- lea $00FF7620,A1
- jmp $0000674E
- pass_instruction_hack:
- lea $00116370,A0
- lea $00FF75A0,A1
- pass_instruction_loop:
- move.w (A0)+,D0
- beq pass_instruction_end
- cmpi.w #$0001,D0
- bne pass_instruction_next_line
- lea $00FF7620,A1
- move.w (A0)+,D0
- pass_instruction_next_line:
- move.w D0,(A1)+
- bra pass_instruction_loop
- pass_instruction_end:
- jmp $00006074
- org $115F00
- move.b $A10001,D0 ;put this is for US-region check
- andi #$C0,D0
- cmpi #$80,D0
- bne pass_error_hack
- lea $00006076,A0
- lea $00FF7630,A1
- jmp $00006030
- pass_error_hack:
- lea $001163D0,A0
- lea $00FF75A6,A1
- pass_error_loop:
- move.w (A0)+,D0
- beq pass_error_end
- cmpi.w #$0001,D0
- bne pass_error_next_line
- lea $00FF7626,A1
- move.w (A0)+,D0
- pass_error_next_line:
- move.w D0,(A1)+
- bra pass_error_loop
- pass_error_end:
- jmp $00006074
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement