diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index e029752..373785a 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -26,7 +26,7 @@ org $3FFFFF ; <- 1FFFFF db #$00 ; expand file to 2mb org $1FFFF8 ; <- FFFF8 timestamp rom -db #$20, #$18, #$04, #$25 ; year/month/day +db #$20, #$18, #$05, #$01 ; year/month/day ;================================================================================ diff --git a/dpadinvert.asm b/dpadinvert.asm index ab4ae02..52b78fd 100644 --- a/dpadinvert.asm +++ b/dpadinvert.asm @@ -2,17 +2,51 @@ ; D-Pad Invert ; runs in NMI, must use minimum possible # of cycles ;-------------------------------------------------------------------------------- -; Filtered Joypad 1 Register: [BYST | udlr]. +; Filtered Joypad 1 Register: [AXLR | ????] +; Filtered Joypad 1 Register: [BYST | udlr] [AXLR | ????] !INVERT_DPAD = "$7F50CB" InvertDPad: LDA !INVERT_DPAD : BEQ .normal - .inverted + DEC : BEQ .dpadOnly + DEC : BEQ .buttonsOnly + DEC : BEQ .invertBoth + .swapSides + REP #$20 ; set 16-bit accumulator + LDA $4218 + BIT.w #$0840 : BEQ + : EOR.w #$0840 : + ; swap X/up + BIT.w #$0180 : BEQ + : EOR.w #$0180 : + ; swap A/right + BIT.w #$4200 : BEQ + : EOR.w #$4200 : + ; swap Y/left + BIT.w #$8400 : BEQ + : EOR.w #$8400 : + ; swap B/down + STA $00 + SEP #$20 ; set 8-bit accumulator +JML.l InvertDPadReturn + .invertBoth + REP #$20 ; set 16-bit accumulator + LDA $4218 + BIT.w #$8040 : BEQ + : EOR.w #$8040 : + ; swap X/B + BIT.w #$4080 : BEQ + : EOR.w #$4080 : + ; swap Y/A + BIT.w #$0C00 : BEQ + : EOR.w #$0C00 : + ; swap up/down + BIT.w #$0300 : BEQ + : EOR.w #$0300 : + ; swap left/right + STA $00 + SEP #$20 ; set 8-bit accumulator +JML.l InvertDPadReturn + .buttonsOnly + REP #$20 ; set 16-bit accumulator + LDA $4218 + BIT.w #$8040 : BEQ + : EOR.w #$8040 : + ; swap X/B + BIT.w #$4080 : BEQ + : EOR.w #$4080 : + ; swap Y/A + STA $00 + SEP #$20 ; set 8-bit accumulator +JML.l InvertDPadReturn + .dpadOnly + LDA $4218 : STA $00 LDA $4219 - BIT.b #$0C : BEQ + : EOR #$0C : + - BIT.b #$03 : BEQ + : EOR #$03 : + + BIT.b #$0C : BEQ + : EOR.b #$0C : + ; swap up/down + BIT.b #$03 : BEQ + : EOR.b #$03 : + ; swap left/right STA $01 -RTL +JML.l InvertDPadReturn .normal + LDA $4218 : STA $00 LDA $4219 : STA $01 -RTL +JML.l InvertDPadReturn ;-------------------------------------------------------------------------------- \ No newline at end of file diff --git a/hooks.asm b/hooks.asm index 99e5ba9..4f3147d 100644 --- a/hooks.asm +++ b/hooks.asm @@ -44,8 +44,11 @@ ReturnCheckZSNES: ;================================================================================ ; D-Pad Invert ;-------------------------------------------------------------------------------- -org $0083D9 ; <- 3D9 - Bank00.asm : 611 (LDA $4219 : STA $01) -JSL.l InvertDPad : NOP +;org $0083D9 ; <- 3D9 - Bank00.asm : 611 (LDA $4219 : STA $01) +;JSL.l InvertDPad : NOP +org $0083D4 ; <- 3D4 - Bank00.asm : 610 (LDA $4218 : STA $00) +JML.l InvertDPad : SKIP #6 +InvertDPadReturn: ;-------------------------------------------------------------------------------- ;================================================================================ diff --git a/tables.asm b/tables.asm index 34661a6..c376a3c 100644 --- a/tables.asm +++ b/tables.asm @@ -201,7 +201,7 @@ db #$00 ; #$00 = Press Start (default) - #$10 = Release Start ;-------------------------------------------------------------------------------- org $30804A ; PC 0x18004A InvertedMode: -db #$00 ; #$00 = Normal (default) - #$01 = Inverted +db #$01 ; #$00 = Normal (default) - #$01 = Inverted ;-------------------------------------------------------------------------------- org $30804B ; PC 0x18004B QuickSwapFlag: @@ -1367,14 +1367,21 @@ db $04 ;db #$F0 ; #$D0 - Light Only (Default), #$F0 - Dark Only ;org $02B34D ; PC 0x1334D (Bank02.asm:7902) (BNE) ;db #$F0 ; #$D0 - Light Only (Default), #$F0 - Dark Only +;org $06DB78 ; PC 0x35B78 (Bank06.asm:2186) ($24) +;db #$8B ; #$24 - Light Style, #$8B - Dark Style ;;-------------------------------------------------------------------------------- ;;Vortexes ;org $05AF79 ; PC 0x2AF79 (sprite_warp_vortex.asm:18) (BNE) -;db #$F0 ; #$D0 - Light-to-Dark (Default), #$F0 - Dark-to-Light +;db #$F0 ; #$D0 - Light Only (Default), #$F0 - Dark Only +;org $0DB3C5 ; PC 0x6B3C5 (sprite_properties.asm:119) ($C4) +;db #$C6 ; #$C4 - Blue Portal, #$C6 - Red Portal ;;-------------------------------------------------------------------------------- ;;Duck ;org $07A3F4 ; PC 0x3A3F4 (Bank07.asm:5772) (BNE) ;db #$F0 ; #$D0 - Light Only (Default), #$F0 - Dark Only +;org $02E849 ; PC 0x16849 (Bank02.asm:11641) +;;dw $0003, $0016, $0018, $002C, $002F, $0030, $003B, $003F ; Light World Flute Spots +;dw $0043, $0056, $0058, $006C, $006F, $0070, $007B, $007F ; Dark World Flute Spots ;;-------------------------------------------------------------------------------- ;;Mirror ;org $07A943 ; PC 0x3A943 (Bank07.asm:6548) (BNE)