Merged DR v0.5.1.7
This commit is contained in:
@@ -27,6 +27,15 @@ db #$00 ; expand file to 2mb
|
|||||||
org $1FFFF8 ; <- FFFF8 timestamp rom
|
org $1FFFF8 ; <- FFFF8 timestamp rom
|
||||||
db #$20, #$19, #$08, #$31 ; year/month/day
|
db #$20, #$19, #$08, #$31 ; year/month/day
|
||||||
|
|
||||||
|
;================================================================================
|
||||||
|
!ROM_VERSION_LOW ?= 1 ; ROM version (two 16-bit integers)
|
||||||
|
!ROM_VERSION_HIGH ?= 1 ;
|
||||||
|
|
||||||
|
org $00FFE0 ; Unused hardware vector
|
||||||
|
RomVersion:
|
||||||
|
dw !ROM_VERSION_LOW
|
||||||
|
dw !ROM_VERSION_HIGH
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|
||||||
!ADD = "CLC : ADC"
|
!ADD = "CLC : ADC"
|
||||||
@@ -363,8 +372,7 @@ warnpc $B08000
|
|||||||
;$31 Graphics Bank
|
;$31 Graphics Bank
|
||||||
;$32 Text Bank
|
;$32 Text Bank
|
||||||
;$33 Graphics Bank
|
;$33 Graphics Bank
|
||||||
;$37 Don't Use ZSNES Graphics
|
;$36 reserved for Enemizer
|
||||||
;$38 Don't Use ZSNES Graphics (continued)
|
|
||||||
;$3A reserved for downstream use
|
;$3A reserved for downstream use
|
||||||
;$3B reserved for downstream use
|
;$3B reserved for downstream use
|
||||||
;$3F reserved for internal debugging
|
;$3F reserved for internal debugging
|
||||||
|
|||||||
10
bugfixes.asm
10
bugfixes.asm
@@ -127,12 +127,12 @@ RTL
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
;Fix for SQ jumping causing accidental Exploration Glitch
|
; Fix for SQ jumping causing accidental Exploration Glitch
|
||||||
SQEGFix:
|
SQEGFix:
|
||||||
LDA Bugfix_PodEG : BNE .done
|
LDA.l Bugfix_PodEG : BEQ ++
|
||||||
STZ $047A ;disarm exploration glitch
|
STZ.w $047A ; disarm exploration glitch
|
||||||
.done
|
++ RTL
|
||||||
RTL
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; Fix crystal not spawning when using somaria vs boss
|
; Fix crystal not spawning when using somaria vs boss
|
||||||
TryToSpawnCrystalUntilSuccess:
|
TryToSpawnCrystalUntilSuccess:
|
||||||
|
|||||||
@@ -4,7 +4,13 @@
|
|||||||
|
|
||||||
DrawDungeonCompassCounts:
|
DrawDungeonCompassCounts:
|
||||||
LDX $1B : BNE + : RTL : + ; Skip if outdoors
|
LDX $1B : BNE + : RTL : + ; Skip if outdoors
|
||||||
LDX $040C : CPX.b #$FF : BEQ .done ; Skip if not in a dungeon
|
|
||||||
|
; extra hard safeties for getting dungeon ID to prevent crashes
|
||||||
|
PHA
|
||||||
|
LDA.w $040C : AND.w #$00FE : TAX ; force dungeon ID to be multiple of 2
|
||||||
|
PLA
|
||||||
|
|
||||||
|
CPX.b #$1B : BCS .done ; Skip if not in a valid dungeon ID
|
||||||
|
|
||||||
CMP.w #$0002 : BEQ ++ ; if CompassMode==2, we don't check for the compass
|
CMP.w #$0002 : BEQ ++ ; if CompassMode==2, we don't check for the compass
|
||||||
LDA $7EF364 : AND.l DungeonItemMasks, X ; Load compass values to A, mask with dungeon item masks
|
LDA $7EF364 : AND.l DungeonItemMasks, X ; Load compass values to A, mask with dungeon item masks
|
||||||
|
|||||||
@@ -76,6 +76,9 @@ nop : jsl OverridePaletteHeader
|
|||||||
org $02817e ; Bank02.asm : 414 (LDA $02811E, X)
|
org $02817e ; Bank02.asm : 414 (LDA $02811E, X)
|
||||||
jsl FixAnimatedTiles
|
jsl FixAnimatedTiles
|
||||||
|
|
||||||
|
org $0aef43 ; UnderworldMap_RecoverGFX
|
||||||
|
jsl FixCloseDungeonMap
|
||||||
|
|
||||||
org $028a06 ; Bank02.asm : 1941 Dungeon_ResetTorchBackgroundAndPlayer
|
org $028a06 ; Bank02.asm : 1941 Dungeon_ResetTorchBackgroundAndPlayer
|
||||||
JSL FixWallmasterLamp
|
JSL FixWallmasterLamp
|
||||||
|
|
||||||
|
|||||||
10
gfx.asm
10
gfx.asm
@@ -45,6 +45,16 @@ FixAnimatedTiles:
|
|||||||
+ LDA $02802E, X ; what we wrote over
|
+ LDA $02802E, X ; what we wrote over
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
|
FixCloseDungeonMap:
|
||||||
|
LDA.l DRMode : CMP #$02 : BNE .vanilla
|
||||||
|
LDA $040C : BMI .vanilla
|
||||||
|
LSR : TAX
|
||||||
|
LDA.l DungeonTilesets,x
|
||||||
|
RTL
|
||||||
|
.vanilla
|
||||||
|
LDA $7EC20E
|
||||||
|
RTL
|
||||||
|
|
||||||
FixWallmasterLamp:
|
FixWallmasterLamp:
|
||||||
ORA $0458
|
ORA $0458
|
||||||
STY $1C : STA $1D : RTL ; what we wrote over
|
STY $1C : STA $1D : RTL ; what we wrote over
|
||||||
|
|||||||
14
hooks.asm
14
hooks.asm
@@ -2319,6 +2319,9 @@ JSL.l OnLinkDamagedFromPit
|
|||||||
org $01FFE7 ; <- FFE7 - Bank01.asm:16375 (LDA $7EF36D)
|
org $01FFE7 ; <- FFE7 - Bank01.asm:16375 (LDA $7EF36D)
|
||||||
JSL.l OnLinkDamagedFromPitOutdoors
|
JSL.l OnLinkDamagedFromPitOutdoors
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
;org $078F27 ; <- 38F27
|
||||||
|
;JSL.l FlipperReset
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
org $02B468
|
org $02B468
|
||||||
dw FakeFlipperProtection
|
dw FakeFlipperProtection
|
||||||
|
|
||||||
@@ -2331,11 +2334,8 @@ FakeFlipperProtection:
|
|||||||
org $02B46C ; <- bank_02.asm:9722 (STZ.b $00 : STZ.b $02)
|
org $02B46C ; <- bank_02.asm:9722 (STZ.b $00 : STZ.b $02)
|
||||||
JSL FlipperScrollWarp
|
JSL FlipperScrollWarp
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
;org $078F27 ; <- 38F27
|
;org $09F40B ; <- 4F40B - module_death.asm:222 (LDX.b #$00)
|
||||||
;JSL.l FlipperReset
|
;JSL.l IgnoreFairyCheck
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
org $09F40B ; <- 4F40B - module_death.asm:222 (LDX.b #$00)
|
|
||||||
JSL.l IgnoreFairyCheck
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $078F51 ; <- 38F51 - Bank07.asm:2444 (JSR $AE54 ; $3AE54 IN ROM)
|
org $078F51 ; <- 38F51 - Bank07.asm:2444 (JSR $AE54 ; $3AE54 IN ROM)
|
||||||
JSL.l OnEnterWater : NOP
|
JSL.l OnEnterWater : NOP
|
||||||
@@ -2606,13 +2606,13 @@ org $0DA9C8 ; <- 06A9C8 - player_oam.asm: 1663 (AND.w #$00FF : CMP.w #$00F8 : BC
|
|||||||
LDA $02 ; always zero! (this replaces the BCC)
|
LDA $02 ; always zero! (this replaces the BCC)
|
||||||
ADC.w #0000 ; put the carry bit into the accumulator instead of a hardcoded 1.
|
ADC.w #0000 ; put the carry bit into the accumulator instead of a hardcoded 1.
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
org $02fd6f ; <- 017d6f - bank0E.asm: 3694 (LoadActualGearPalettes:) Note: Overflow of bank02 moved to 0e in US Rom
|
org $02FD6F ; <- 017d6f - bank0E.asm: 3694 (LoadActualGearPalettes:) Note: Overflow of bank02 moved to 0e in US Rom
|
||||||
JSL LoadActualGearPalettesWithGloves
|
JSL LoadActualGearPalettesWithGloves
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; Bunny Palette/Overworld Map Bugfix
|
; Bunny Palette/Overworld Map Bugfix
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $02fdf0 ; <- 017df0 - bank0E (LDA [$00] : STA $7EC300, X : STA $7EC500, X)
|
org $02FDF0 ; <- 017df0 - bank0E (LDA [$00] : STA $7EC300, X : STA $7EC500, X)
|
||||||
JSL LoadGearPalette_safe_for_bunny
|
JSL LoadGearPalette_safe_for_bunny
|
||||||
RTS
|
RTS
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|||||||
7
init.asm
7
init.asm
@@ -1,3 +1,5 @@
|
|||||||
|
RomVersionSRAM = $701FFC
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; Init_Primary
|
; Init_Primary
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -39,6 +41,11 @@ Init_Primary:
|
|||||||
LDA $00FFC0, X : STA $702000, X
|
LDA $00FFC0, X : STA $702000, X
|
||||||
INX
|
INX
|
||||||
CPX #$15 : !BLT -
|
CPX #$15 : !BLT -
|
||||||
|
LDX #$00
|
||||||
|
-
|
||||||
|
LDA RomVersion, X : STA RomVersionSRAM, X
|
||||||
|
INX
|
||||||
|
CPX #$04 : !BLT -
|
||||||
.done
|
.done
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
|
|||||||
159
spc.asm
159
spc.asm
@@ -1,107 +1,74 @@
|
|||||||
; WARNING: THIS CODE IS EXTREMELY FRAGILE
|
MSUCode = $00277E
|
||||||
|
|
||||||
macro copybin(source, length)
|
|
||||||
!copycount #= 0
|
|
||||||
while !copycount+3 < <length>
|
|
||||||
dd read4(pctosnes(<source>+!copycount))
|
|
||||||
!copycount #= !copycount+4
|
|
||||||
endif
|
|
||||||
|
|
||||||
while !copycount < <length>
|
|
||||||
db read1(pctosnes(<source>+!copycount))
|
|
||||||
!copycount #= !copycount+1
|
|
||||||
endif
|
|
||||||
endmacro
|
|
||||||
|
|
||||||
;@ pushpc
|
;@ pushpc
|
||||||
org $008901
|
|
||||||
LDA.b #SPCData : STA $00
|
|
||||||
LDA.b #SPCData>>8 : STA $01
|
|
||||||
LDA.b #SPCData>>16 : STA $02
|
|
||||||
;@ pullpc
|
|
||||||
|
|
||||||
SPCData:
|
|
||||||
;@ check bankcross off
|
|
||||||
%copybin($0C8000, $7BCA)
|
|
||||||
|
|
||||||
!SPCEngineStart = $0800
|
|
||||||
!SPCCodeStart = $07A7
|
|
||||||
|
|
||||||
dw ($0F9E+(!SPCEngineStart-!SPCCodeStart))
|
|
||||||
dw !SPCCodeStart
|
|
||||||
|
|
||||||
;@ pushpc
|
|
||||||
;@ pushbase
|
|
||||||
|
|
||||||
arch spc700
|
|
||||||
base !SPCCodeStart
|
|
||||||
org $34FBCE;-(!SPCEngineStart-!SPCCodeStart)
|
|
||||||
NewSPCCode:
|
|
||||||
|
|
||||||
SpecialCommand_Mute:
|
|
||||||
CMP A,#$F0 ; The thing we overwrote
|
|
||||||
BNE +
|
|
||||||
JMP $0A81 ; SilenceSong
|
|
||||||
+
|
|
||||||
CMP A,#$FA ; New mute command $FA
|
|
||||||
BNE +
|
|
||||||
MOV $F4,A
|
|
||||||
MOV A,#$00
|
|
||||||
MOV $0A4A,A ; $0A49: MOV A,#$70 -> MOV A,#$00
|
|
||||||
MOV $0AF3,A ; $0AF2: MOV $059,#$C0 -> MOV $059,#$00
|
|
||||||
MOV $0C32,A ; $0C32: MOVW $058,YA -> NOP #2
|
|
||||||
MOV $0C33,A
|
|
||||||
MOV A,#$C4 ; $0D19: MOVW $058,YA -> MOV A,$058
|
|
||||||
MOV $0D19,A
|
|
||||||
MOV A,#$58
|
|
||||||
MOV $0D1A,A
|
|
||||||
BRA +++
|
|
||||||
+
|
|
||||||
CMP A,#$FB ; New unmute command $FB
|
|
||||||
BEQ +
|
|
||||||
JMP $0A9D ; NewSongInput
|
|
||||||
+
|
|
||||||
MOV $F4,A
|
|
||||||
MOV A,#$70
|
|
||||||
MOV $0A4A,A ; $0A49: MOV A,#$70
|
|
||||||
MOV A,#$C0
|
|
||||||
MOV $0AF3,A ; $0AF2: MOV $059,#$C0
|
|
||||||
MOV A,#$DA
|
|
||||||
MOV $0C32,A ; $0C32: MOVW $058,YA
|
|
||||||
MOV $0D19,A ; $0D19: MOVW $058,YA
|
|
||||||
MOV A,#$58
|
|
||||||
MOV $0C33,A
|
|
||||||
MOV $0D1A,A
|
|
||||||
+++
|
|
||||||
CALL $0A81 ; SilenceSong
|
|
||||||
- : MOV A,$F4
|
|
||||||
BNE -
|
|
||||||
CMP A,$F4
|
|
||||||
BNE -
|
|
||||||
MOV $F4,$00
|
|
||||||
RET
|
|
||||||
|
|
||||||
org !SPCEngineStart
|
|
||||||
|
|
||||||
arch 65816
|
|
||||||
SPCEngineStart:
|
|
||||||
;@ pullbase
|
|
||||||
;@ pullpc
|
|
||||||
skip !SPCEngineStart-!SPCCodeStart
|
|
||||||
%copybin($0CFBCE, $57B2)
|
|
||||||
SPCEngineEnd:
|
|
||||||
;@ check bankcross on
|
|
||||||
|
|
||||||
; Change track 15 (unused) to point to 13 (Death Mountain) so dark woods can be track 15
|
; Change track 15 (unused) to point to 13 (Death Mountain) so dark woods can be track 15
|
||||||
; Bank 1
|
; Bank 1
|
||||||
org $1A9F15 ; PC 0x0D1F15 ; SPC $D01C
|
org $1A9F15 ; PC 0x0D1F15 ; SPC $D01C
|
||||||
dw #$2B00 ; Set track 15 pointer to track 13's data
|
dw $2B00 ; Set track 15 pointer to track 13's data
|
||||||
|
|
||||||
; Bank 2
|
pullpc
|
||||||
org $359F6E ; PC 0x1A9F6E ; SPC $D01C
|
|
||||||
dw #$2B00 ; Set track 15 pointer to track 13's data
|
;---------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
arch spc700
|
arch spc700
|
||||||
org $34FE9A ; PC 0x1A7E9A ; SPC $0A73
|
|
||||||
JMP !SPCCodeStart : NOP
|
;@ pushpc
|
||||||
|
;@ pushbase
|
||||||
|
org $19FE41 ; SPC 0A73
|
||||||
|
JMP MSUCode
|
||||||
|
|
||||||
|
; Hijack unreachable SFX data for globally available code
|
||||||
|
org $1A9B2E
|
||||||
|
base MSUCode
|
||||||
|
|
||||||
|
SpecialCommand_Mute:
|
||||||
|
CMP A,#$F0 ; The thing we overwrote
|
||||||
|
BNE +
|
||||||
|
JMP $0A81 ; SilenceSong
|
||||||
|
+
|
||||||
|
CMP A,#$FA ; New mute command $FA
|
||||||
|
BNE +
|
||||||
|
MOV $F4,A
|
||||||
|
MOV A,#$00
|
||||||
|
MOV $0A4A,A ; $0A49: MOV A,#$70 -> MOV A,#$00
|
||||||
|
MOV $0AF3,A ; $0AF2: MOV $059,#$C0 -> MOV $059,#$00
|
||||||
|
MOV $0C32,A ; $0C32: MOVW $058,YA -> NOP #2
|
||||||
|
MOV $0C33,A
|
||||||
|
MOV A,#$C4 ; $0D19: MOVW $058,YA -> MOV A,$058
|
||||||
|
MOV $0D19,A
|
||||||
|
MOV A,#$58
|
||||||
|
MOV $0D1A,A
|
||||||
|
BRA +++
|
||||||
|
+
|
||||||
|
CMP A,#$FB ; New unmute command $FB
|
||||||
|
BEQ +
|
||||||
|
JMP $0A9D ; NewSongInput
|
||||||
|
+
|
||||||
|
MOV $F4,A
|
||||||
|
MOV A,#$70
|
||||||
|
MOV $0A4A,A ; $0A49: MOV A,#$70
|
||||||
|
MOV A,#$C0
|
||||||
|
MOV $0AF3,A ; $0AF2: MOV $059,#$C0
|
||||||
|
MOV A,#$DA
|
||||||
|
MOV $0C32,A ; $0C32: MOVW $058,YA
|
||||||
|
MOV $0D19,A ; $0D19: MOVW $058,YA
|
||||||
|
MOV A,#$58
|
||||||
|
MOV $0C33,A
|
||||||
|
MOV $0D1A,A
|
||||||
|
+++
|
||||||
|
CALL $0A81 ; SilenceSong
|
||||||
|
- MOV A,$F4
|
||||||
|
BNE -
|
||||||
|
CMP A,$F4
|
||||||
|
BNE -
|
||||||
|
MOV $F4,$00
|
||||||
|
RET
|
||||||
|
|
||||||
|
warnpc $1A9B91
|
||||||
|
|
||||||
|
;@ pullbase
|
||||||
|
;@ pullpc
|
||||||
|
|
||||||
arch 65816
|
arch 65816
|
||||||
|
|||||||
@@ -537,7 +537,11 @@ CreditsLineBlank:
|
|||||||
|
|
||||||
%blankline()
|
%blankline()
|
||||||
|
|
||||||
%bigcredits("EMOSARU SAKURATSUBASA")
|
%bigcredits("PINKUS YUZUHARA")
|
||||||
|
|
||||||
|
%blankline()
|
||||||
|
|
||||||
|
%bigcredits("SAKURATSUBASA")
|
||||||
|
|
||||||
%blankline()
|
%blankline()
|
||||||
|
|
||||||
@@ -577,9 +581,6 @@ CreditsLineBlank:
|
|||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
|
||||||
%emptyline()
|
|
||||||
%emptyline()
|
|
||||||
|
|
||||||
;===================================================================================================
|
;===================================================================================================
|
||||||
|
|
||||||
|
|||||||
@@ -1879,7 +1879,7 @@ Enable_TerrorPin_AI_Fix:
|
|||||||
db #$01
|
db #$01
|
||||||
|
|
||||||
;Shop slot count as check
|
;Shop slot count as check
|
||||||
org $30E560 ; PC 0x18650
|
org $30E560 ; PC 0x186560
|
||||||
EnableShopItemCount:
|
EnableShopItemCount:
|
||||||
db #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00
|
db #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00
|
||||||
db #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00
|
db #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00
|
||||||
|
|||||||
98
zsnes.asm
98
zsnes.asm
@@ -11,104 +11,6 @@ CheckZSNES:
|
|||||||
LDA #$01FF : TCS ; thing we wrote over - initialize stack
|
LDA #$01FF : TCS ; thing we wrote over - initialize stack
|
||||||
JML.l ReturnCheckZSNES
|
JML.l ReturnCheckZSNES
|
||||||
.zsnes
|
.zsnes
|
||||||
; Set up video mode
|
|
||||||
SEP #$30 ; X,Y,A are 8 bit numbers
|
|
||||||
LDA #$80 ; screen off
|
|
||||||
STA $2100 ; brightness + screen enable register
|
|
||||||
LDA #$03
|
|
||||||
STA $2105 ; video mode 3, 8x8 tiles, 256 color BG1, 16 color BG2
|
|
||||||
STZ $2106 ; noplanes, no mosaic, = Mosaic register
|
|
||||||
LDA #$01
|
|
||||||
STA $210B ; Set BG1 tile data offset to $2000
|
|
||||||
STZ $210D ; Plane 0 scroll x (first 8 bits)
|
|
||||||
STZ $210D ; Plane 0 scroll x (last 3 bits) #$0 - #$07ff
|
|
||||||
LDA #$01
|
|
||||||
STA $212C ; Enable BG1
|
|
||||||
LDA #$FF
|
|
||||||
STA $210E ; Set BG1 scroll register
|
|
||||||
STA $210E
|
|
||||||
STZ $212E ; Window mask for Main Screen
|
|
||||||
STZ $212F ; Window mask for Sub Screen
|
|
||||||
LDA #$30
|
|
||||||
STA $2130 ; Color addition & screen addition init setting
|
|
||||||
STZ $2131 ; Add/Sub sub designation for screen, sprite, color
|
|
||||||
LDA #$E0
|
|
||||||
STA $2132 ; color data for addition/subtraction
|
|
||||||
STZ $2133 ; Screen setting (interlace x,y/enable SFX data)
|
|
||||||
STZ $4200 ; Disable V-blank, interrupt, Joypad register
|
|
||||||
|
|
||||||
REP #$10
|
|
||||||
|
|
||||||
|
|
||||||
; Load tilemap and tile data
|
|
||||||
STZ $2116
|
|
||||||
LDA #$0C
|
|
||||||
STA $2107 ; Set BG1 tilemap offset to $1800 and size to 32x32
|
|
||||||
STA $2117 ; VRAM write address $1800
|
|
||||||
|
|
||||||
LDA #$80
|
|
||||||
STA $2115 ; VRAM single word transfer, word increment
|
|
||||||
LDX #$1801
|
|
||||||
STX $4300 ; DMA destination: VMDATAL/VMDATAH, fixed source
|
|
||||||
LDX.w #ZSNES_TileMap
|
|
||||||
STX $4302 ; Low DMA source address
|
|
||||||
LDA.b #ZSNES_TileMap>>16
|
|
||||||
STA $4304 ; High DMA source address
|
|
||||||
LDX.w #$800
|
|
||||||
STX $4305 ; Transfer 2048 bytes
|
|
||||||
LDA #$01
|
|
||||||
STA $420B ; Start DMA transfer
|
|
||||||
|
|
||||||
LDX.w #ZSNES_Tiles
|
|
||||||
STX $4302 ; Low DMA source address
|
|
||||||
LDA.b #ZSNES_Tiles>>16
|
|
||||||
STA $4304 ; High DMA source address
|
|
||||||
LDX.w #$8000
|
|
||||||
STX $4305 ; Transfer 32768 bytes
|
|
||||||
LDA #$01
|
|
||||||
STA $420B ; Start DMA transfer
|
|
||||||
|
|
||||||
LDX.w #$8000
|
|
||||||
STX $4302 ; Low DMA source address
|
|
||||||
LDA.b #$38 ; (ZSNES_Tiles>>16)+1
|
|
||||||
STA $4304 ; High DMA source address
|
|
||||||
LDX.w #$6040
|
|
||||||
STX $4305 ; Transfer 24640 bytes
|
|
||||||
LDA #$01
|
|
||||||
STA $420B ; Start DMA transfer
|
|
||||||
|
|
||||||
; Load CGRAM via DMA transfer
|
|
||||||
|
|
||||||
STZ $2121 ; Start at color 0
|
|
||||||
LDX #$2200
|
|
||||||
STX $4300 ; DMA destination: CGDATA, byte increment
|
|
||||||
LDX.w #ZSNES_Palette
|
|
||||||
STX $4302 ; Low DMA source address
|
|
||||||
LDA.b #ZSNES_Palette>>16
|
|
||||||
STA $4304 ; High DMA source address
|
|
||||||
LDX #$0200
|
|
||||||
STX $4305 ; Transfer 512 bytes
|
|
||||||
LDA #$01
|
|
||||||
STA $420B ; Start DMA transfer
|
|
||||||
|
|
||||||
LDA #$0F ; screen on, full brightness
|
|
||||||
STA $2100 ; brightness + screen enable register
|
|
||||||
|
|
||||||
STP ; !
|
STP ; !
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
;@ pushpc
|
|
||||||
;@ check bankcross off
|
|
||||||
|
|
||||||
org $378000
|
|
||||||
|
|
||||||
ZSNES_Tiles:
|
|
||||||
incbin zsnes_tiles.bin
|
|
||||||
|
|
||||||
ZSNES_TileMap:
|
|
||||||
incbin zsnes_tilemap.bin
|
|
||||||
|
|
||||||
ZSNES_Palette:
|
|
||||||
incbin zsnes_pal.bin
|
|
||||||
|
|
||||||
;@ check bankcross on
|
|
||||||
;@ pullpc
|
|
||||||
Reference in New Issue
Block a user