ram.asm initial commit. Replaced all address defines with labels
Value defines styled without quotes, # moved to load/store/cmp site Added registers.asm (copied from spannerisms JP disassembly) Added a bunch of length annotations Deleted old or trivial commented out code Deleted: ganonfixes.asm, map.asm, seedtag.asm Replaced obsolete credits.asm with creditsnew.asm Moved scratch space at $7F5020-3F to mirrored WRAM (7E1E70-8F) Moved clock RAM to mirrored WRAM (7E1E90-9F) dialog.asm: FreeDungeonItemNotice preserves callee-preserved scratch RAM Toast buffer moved to mirrored WRAM (7E1E0E-0F) servicerequest.asm: long store to $012E converted to word length store
This commit is contained in:
@@ -4,29 +4,28 @@
|
||||
;--------------------------------------------------------------------------------
|
||||
; Filtered Joypad 1 Register: [AXLR | ????]
|
||||
; Filtered Joypad 1 Register: [BYST | udlr] [AXLR | ????]
|
||||
!INVERT_DPAD = "$7F50CB"
|
||||
|
||||
InvertDPad:
|
||||
LDA.l OneMindPlayerCount : BEQ .crowd_control
|
||||
|
||||
LDA.l !ONEMIND_ID
|
||||
LDA.l OneMindId
|
||||
AND.b #$03
|
||||
TAX
|
||||
LDA.l .onemind_controller_offset, X
|
||||
TAX
|
||||
|
||||
LDA.w $4218,X : STA.w $00
|
||||
LDA.w $4219,X : STA.w $01
|
||||
LDA.w JOY1L,X : STA.w Scrap00
|
||||
LDA.w JOY1H,X : STA.w Scrap01
|
||||
|
||||
LDA #$80 : STA $4201 ; reset this so latch can read it, otherwise RNG breaks
|
||||
LDA.b #$80 : STA.w WRIO ; reset this so latch can read it, otherwise RNG breaks
|
||||
|
||||
JML.l InvertDPadReturn
|
||||
|
||||
.crowd_control
|
||||
LDA !INVERT_DPAD : BNE +
|
||||
LDA.l DPadInverter : BNE +
|
||||
|
||||
LDA $4218 : STA $00
|
||||
LDA $4219 : STA $01
|
||||
LDA.w JOY1L : STA.b Scrap00
|
||||
LDA.w JOY1H : STA.b Scrap01
|
||||
JML.l InvertDPadReturn
|
||||
|
||||
+ DEC : BEQ .dpadOnly
|
||||
@@ -34,47 +33,47 @@ InvertDPad:
|
||||
DEC : BEQ .invertBoth
|
||||
.swapSides
|
||||
REP #$20 ; set 16-bit accumulator
|
||||
LDA $4218
|
||||
LDA.w JOY1L
|
||||
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
|
||||
STA.b Scrap00
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
JML.l InvertDPadReturn
|
||||
.invertBoth
|
||||
REP #$20 ; set 16-bit accumulator
|
||||
LDA $4218
|
||||
LDA.w JOY1L
|
||||
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
|
||||
STA.b Scrap00
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
JML.l InvertDPadReturn
|
||||
.buttonsOnly
|
||||
REP #$20 ; set 16-bit accumulator
|
||||
LDA $4218
|
||||
LDA.w JOY1L
|
||||
BIT.w #$8040 : BEQ + : EOR.w #$8040 : + ; swap X/B
|
||||
BIT.w #$4080 : BEQ + : EOR.w #$4080 : + ; swap Y/A
|
||||
STA $00
|
||||
STA.b Scrap00
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
JML.l InvertDPadReturn
|
||||
.dpadOnly
|
||||
LDA $4218 : STA $00
|
||||
LDA $4219
|
||||
LDA.w JOY1L : STA.b Scrap00
|
||||
LDA.w JOY1H
|
||||
BIT.b #$0C : BEQ + : EOR.b #$0C : + ; swap up/down
|
||||
BIT.b #$03 : BEQ + : EOR.b #$03 : + ; swap left/right
|
||||
STA $01
|
||||
STA.b Scrap01
|
||||
JML.l InvertDPadReturn
|
||||
|
||||
.onemind_controller_offset
|
||||
db 0 ; player 0 - $4218 - joy1d1
|
||||
db 0 ; player 1 - $4218 - joy1d1
|
||||
db 2 ; player 2 - $421A - joy2d1
|
||||
db 6 ; player 3 - $421E - joy2d2
|
||||
db 2 ; player 4 - $421A - joy2d1
|
||||
db 6 ; player 5 - $421E - joy2d2
|
||||
db 0 ; player 0 - JOY1L - joy1d1
|
||||
db 0 ; player 1 - JOY1L - joy1d1
|
||||
db 2 ; player 2 - JOY2L - joy2d1
|
||||
db 6 ; player 3 - JOY4L - joy2d2
|
||||
db 2 ; player 4 - JOY2L - joy2d1
|
||||
db 6 ; player 5 - JOY4L - joy2d2
|
||||
|
||||
|
||||
|
||||
@@ -86,12 +85,12 @@ HandleOneMindController:
|
||||
|
||||
REP #$20
|
||||
|
||||
LDA.l !ONEMIND_TIMER
|
||||
LDA.l OneMindTimerRAM
|
||||
DEC
|
||||
BPL .no_switch
|
||||
|
||||
SEP #$20
|
||||
LDA.l !ONEMIND_ID
|
||||
LDA.l OneMindId
|
||||
INC
|
||||
CMP.l OneMindPlayerCount
|
||||
BCC .no_wrap
|
||||
@@ -99,21 +98,21 @@ HandleOneMindController:
|
||||
LDA.b #$01 ; reset to player 1
|
||||
|
||||
.no_wrap
|
||||
STA.l !ONEMIND_ID
|
||||
STA.l OneMindId
|
||||
|
||||
REP #$20
|
||||
LDA.l OneMindTimer
|
||||
LDA.l OneMindTimerInit
|
||||
|
||||
.no_switch
|
||||
STA.l !ONEMIND_TIMER
|
||||
STA.l OneMindTimerRAM
|
||||
|
||||
SEP #$20
|
||||
LDA.l !ONEMIND_ID
|
||||
LDA.l OneMindId
|
||||
|
||||
CMP.b #$04 ; is it player 4 or 5?
|
||||
BCC .no_multitap_switch
|
||||
|
||||
STZ.w $4201
|
||||
STZ.w WRIO
|
||||
|
||||
.no_multitap_switch
|
||||
|
||||
|
||||
Reference in New Issue
Block a user