Merged in DR v1.4.1.6

This commit is contained in:
codemann8
2024-02-23 10:57:24 -06:00
235 changed files with 30100 additions and 17937 deletions

View File

@@ -1,9 +1,24 @@
CheckZSNES:
SEP #$28
LDA.b #$FF
CLC
ADC.b #$FF
CMP.b #$64
REP #$28
BEQ .zsnes
LDA.w #$01FF : TCS ; thing we wrote over - initialize stack
JML ReturnCheckZSNES
.zsnes
JML DontUseZSNES
;===================================================================================================
pushtable
table "bsodencode.txt"
table "data/bsodencode.txt"
; Uncomment this to force a crash to test message
;pushpc : org $008132 : db 0 : pullpc
; pushpc : org $008132 : db 0 : pullpc
;===================================================================================================
@@ -11,29 +26,29 @@ DontUseZSNES:
SEP #$35 ; sets carry and I flag too
LDA.b #$00
STA.l $4200 ; disable NMI and IRQ
STA.l $420C ; disable HDMA
STA.l NMITIMEN ; disable NMI and IRQ
STA.l HDMAEN ; disable HDMA
ROR ; A = 0x80 from carry
STA.l $2100
STA.l $2115
STA.l INIDISP
STA.l VMAIN
; Empty VRAM
LDA.b #AllZeros>>16 : STA.l $4304
LDA.b #AllZeros>>16 : STA.l A1B0
REP #$20
LDA.w #AllZeros
STA.l $4302
STA.l A1T0L
LDA.w #$1809
STA.l $4300
STA.l DMAP0
LDA.w #$0000
STA.l $4305
STA.l DAS0L
LDA.w #$0001
STA.l $420B
STA.l MDMAEN
JSR ConfigurePPUForFailureReport
JSR ConfigureBSODVWF
@@ -43,7 +58,7 @@ DontUseZSNES:
JSR DrawVWFMessage
LDA.w #$0F0F
STA.w $2100
STA.w INIDISP
-- BRA --
@@ -77,29 +92,29 @@ Crashed:
SEP #$35 ; sets carry and I flag too
LDA.b #$00
STA.l $4200 ; disable NMI and IRQ
STA.l $420C ; disable HDMA
STA.l NMITIMEN ; disable NMI and IRQ
STA.l HDMAEN ; disable HDMA
ROR ; A = 0x80 from carry
STA.l $2100
STA.l $2115
STA.l INIDISP
STA.l VMAIN
; Empty VRAM
LDA.b #AllZeros>>16 : STA.l $4304
LDA.b #AllZeros>>16 : STA.l A1B0
REP #$38
LDA.w #AllZeros
STA.l $4302
STA.l A1T0L
LDA.w #$1809
STA.l $4300
STA.l DMAP0
LDA.w #$0000
STA.l $4305
STA.l DAS0L
LDA.w #$0001
STA.l $420B
STA.l MDMAEN
;===================================================================================================
@@ -113,32 +128,32 @@ Crashed:
; stack pointer
LDA.w #$0C38>>1
STA.b $2116
STA.b VMADDL
TSC
XBA
AND.w #$00FF
ORA.w #$0100
STA.b $2118
STA.b VMDATAL
TSC
AND.w #$00FF
ORA.w #$0100
STA.l $2118
STA.l VMDATAL
; game module
LDA.w #$0C78>>1
STA.b $2116
STA.b VMADDL
LDA.l $10
LDA.l GameMode
AND.w #$00FF
ORA.w #$0100
STA.b $2118
STA.b VMDATAL
LDA.l $11
LDA.l GameSubMode
AND.w #$00FF
ORA.w #$0100
STA.b $2118
STA.b VMDATAL
;---------------------------------------------------------------------------------------------------
@@ -176,7 +191,7 @@ Crashed:
.next_row
STA.l $7F0004
STA.b $2116
STA.b VMADDL
LDY.w #20
@@ -194,7 +209,7 @@ Crashed:
AND.w #$01FF
.in_stack
STA.b $2118
STA.b VMDATAL
DEX
TXA
@@ -235,16 +250,10 @@ Crashed:
JSR DrawVWFMessage
LDA.w #$0F0F
STA.w $2100
STA.w INIDISP
-- BRA --
; LDA.w #$0000
; TCD
;
; TSC
BSODMessage:
db "A fatal error has occurred and resulted in an", $80
db "unrecoverable crash. ?", $80
@@ -260,11 +269,11 @@ BSODMessage:
;===================================================================================================
DrawVWFMessage:
STA.b $06
STA.b Scrap06
.next
LDA.b ($06)
INC.b $06
LDA.b (Scrap06)
INC.b Scrap06
AND.w #$00FF
CMP.w #$0080
BEQ .done_row
@@ -284,26 +293,26 @@ DrawVWFMessage:
ASL
TAX
LDA.w .row_offset,X
STA.w $2116
STA.w VMADDL
INC.b VWFR
LDA.w #$1800
STA.w $4300
STA.w DMAP0
LDA.w #20*16
STA.w $4305
STA.w DAS0L
LDA.w #$1000
STA.w $4302
STA.w A1T0L
SEP #$20
STZ.w $2115
STZ.w $4304
STZ.w VMAIN
STZ.w A1B0
LDA.b #$01
STA.w $420B
STA.w MDMAEN
REP #$20
@@ -347,7 +356,7 @@ DrawFailureVWFChar:
ASL
ASL
ADC.w #BSODFontGFX
STA.b $08
STA.b Scrap08
LDA.b VWFP
AND.w #$FFF8
@@ -402,23 +411,23 @@ LoadBSODHexFont:
REP #$20
LDA.w #BSODHex
STA.w $4302
STA.w A1T0L
LDA.w #$1801
STA.w $4300
STA.w DMAP0
LDA.w #$1000
STA.w $4305
STA.w DAS0L
LDA.w #$2800
STA.w $2116
STA.w VMADDL
SEP #$20
LDA.b #BSODHex>>16
STA.w $4304
STA.w A1B0
LDA.b #$01
STA.w $420B
STA.w MDMAEN
REP #$30
@@ -437,28 +446,28 @@ ConfigureBSODVWF:
LDX.b #$FF
LDY.b #$7F
STZ.b $2121
STZ.b $2122 : STZ.b $2122
STZ.b CGADD
STZ.b CGDATA : STZ.b CGDATA
STX.b $2122 : STY.b $2122
STX.b CGDATA : STY.b CGDATA
LDA.b #$05
STA.b $2121
STA.b CGADD
LDA.b #$11 : STA.b $2122 : STY.b $2122
LDA.b #$11 : STA.b CGDATA : STY.b CGDATA
LDA.b #$21 : STA.b $2121
STX.b $2122 : STY.b $2122
LDA.b #$21 : STA.b CGADD
STX.b CGDATA : STY.b CGDATA
LDA.b #$25 : STA.b $2121
LDA.b #$11 : STA.b $2122 : STY.b $2122
LDA.b #$25 : STA.b CGADD
LDA.b #$11 : STA.b CGDATA : STY.b CGDATA
REP #$30
PEA.w $0001
LDA.w #15
STA.w $28
STA.w LinkRecoilX
LDA.w #$0042>>1
BRA .start
@@ -466,26 +475,26 @@ ConfigureBSODVWF:
.next_row
PHA
LDA.w $20
LDA.w LinkPosY
CLC
LDA.w $20
LDA.w LinkPosY
ADC.w #32
.start
STA.w $20
STA.b $2116
STA.w LinkPosY
STA.b VMADDL
PLA
LDY.w #30
.next_char
STA.b $2118
STA.b VMDATAL
INC
DEY
BNE .next_char
DEC.w $28
DEC.w LinkRecoilX
BNE .next_row
LDA.w #$0000
@@ -516,39 +525,39 @@ ConfigurePPUForFailureReport:
PHK
PLB
STZ.w $2105 ; BG mode 0
STZ.w $2106 ; no mosaic
STZ.w $2107 ; BG1 tilemap to $0000
STZ.w $212D
STZ.w BGMODE ; BG mode 0
STZ.w MOSAIC ; no mosaic
STZ.w BG1SC ; BG1 tilemap to $0000
STZ.w TS
STZ.w $210D : STZ.w $210D
STZ.w $210E : STZ.w $210E
STZ.w $210F : STZ.w $210F
STZ.w $2110 : STZ.w $2110
STZ.w BG1HOFS : STZ.w BG1HOFS
STZ.w BG1VOFS : STZ.w BG1VOFS
STZ.w BG2HOFS : STZ.w BG2HOFS
STZ.w BG2VOFS : STZ.w BG2VOFS
STZ.w $2123
STZ.w $2131
STZ.w $2133
STZ.w W12SEL
STZ.w CGADSUB
STZ.w SETINI
LDA.b #$04
STA.w $2108 ; BG1 tilemap to $0800
STA.w BG2SC ; BG1 tilemap to $0800
LDA.b #$21
STA.w $210B
STA.w BG12NBA
LDA.b #$03
STA.w $212C
STA.w TM
RTS
;===================================================================================================
BSODHex:
incbin "bsodhex.2bpp"
incbin "data/bsodhex.2bpp"
BSODFontGFX:
incbin "bsodfont.1bpp"
incbin "data/bsodfont.1bpp"
BSODCharWidths:
; [space]