diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index f76bb0d..dec162e 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -52,8 +52,10 @@ db #$20, #$18, #$07, #$23 ; year/month/day ;$7EF41C[w] - Programmable Item #2 ;$7EF41E[w] - Programmable Item #3 ;$7EF418 - Goal Item Counter +;$7EF419 - Service Sequence ;$7EF420 - $7EF466 - Stat Tracking Bank 1 ;$7EF450 - $7EF45F - RNG Item (Single) Flags +;$7EF4A0 - $7EF4A7 - Service Request Block !MS_GOT = "$7F5031" !DARK_WORLD = "$7EF3CA" @@ -175,6 +177,8 @@ incsrc newhud.asm incsrc compasses.asm incsrc password.asm incsrc enemy_adjustments.asm +incsrc hudtext.asm +incsrc servicerequest.asm warnpc $A58000 ;org $228000 ; contrib area @@ -211,7 +215,7 @@ warnpc $31A000 org $31A000 GFX_HUD_Items: -incbin c2807_v3.gfx +incbin c2807_v4.gfx warnpc $31A800 org $31A800 diff --git a/c2807_v4.bin b/c2807_v4.bin new file mode 100644 index 0000000..328b31d Binary files /dev/null and b/c2807_v4.bin differ diff --git a/c2807_v4.gfx b/c2807_v4.gfx new file mode 100644 index 0000000..82d79c9 Binary files /dev/null and b/c2807_v4.gfx differ diff --git a/hudtext.asm b/hudtext.asm new file mode 100644 index 0000000..ebebe9d --- /dev/null +++ b/hudtext.asm @@ -0,0 +1,44 @@ +clearTable: +dw $007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F,$007F + + +WriteText: +{ +PHP +; $7EC025 = Timer +; $7EC026 = When we find an empty item get set on 1 +; $7EC027 = character data + + LDX #$80 : STX $2100 + REP #$20 + LDA #$6000+$0340 : STA $2116 + + LDA.w #$C027 : STA $4342 + LDX.b #$7E : STX $4344 + LDA #$0040 : STA $4345 + LDA #$1801 : STA $4340 + LDX #$10 : STX $420B + + LDX #$0F : STX $2100 + PLP +RTL +} + + +ClearBG: +{ +PHP + LDX #$80 : STX $2100 + REP #$20 + LDA #$6000+$0340 : STA $2116 + LDA.w #clearTable : STA $4342 + LDX.b #clearTable>>16 : STX $4344 + + LDA #$0040 : STA $4345 + LDA #$1801 : STA $4340 + LDX #$10 : STX $420B + + LDX #$0F : STX $2100 + PLP +RTL +} \ No newline at end of file diff --git a/servicerequest.asm b/servicerequest.asm new file mode 100644 index 0000000..2517658 --- /dev/null +++ b/servicerequest.asm @@ -0,0 +1,23 @@ +;================================================================================ +; Service Request Support Code +;-------------------------------------------------------------------------------- +; $7F5300 - $7F53FF - Multiworld Block +; $00 - $1F - RX Buffer +; $20 - $7E - Reserved +; $7F - RX Status +; $80 - $9F - TX Buffer +; $A0 - $FE - Reserved +; $FF - TX Status +!RX_BUFFER = "$7F5300" +!RX_STATUS = "$7F537F" +!RX_SEQUENCE = "$7EF4A0" +!TX_BUFFER = "$7F5380" +!TX_STATUS = "$7F53FF" +!TX_SEQUENCE = "$7EF4A0" +PollService: + LDA !RX_BASE : BNE + : RTL : + ; return if command is 0 + LDA #$01 : STA !RX_STATUS ; mark busy + LDA !RX_BASE+1 : STA !RX_SEQUENCE ; mark this as handled + LDA !RX_BASE+2 : STA !RX_SEQUENCE+1 + LDA #$00 : STA !RX_STATUS ; mark ready +RTL \ No newline at end of file diff --git a/tables.asm b/tables.asm index d8a2ba4..6bbce06 100644 --- a/tables.asm +++ b/tables.asm @@ -1442,11 +1442,7 @@ dw #9999 ; Rupee Limit ; $7F50D0 - $7F50FF - Block Cypher Parameters ; $7F5100 - $7F51FF - Block Cypher Buffer ; $7F5200 - $7F52FF - RNG Pointer Block - ; $7F5300 - $7F53FF - Multiworld Block -; $00 - $0F - RX Buffer -; $10 - $1F - TX Buffer -; $20 - $FF - Reserved ; $7F5700 - $7F57FF - Dialog Buffer ;