This commit is contained in:
spannerisms
2021-11-12 09:25:43 -05:00
parent 553821885f
commit 24f6a4d8a8
2 changed files with 64 additions and 97 deletions

67
spc.asm
View File

@@ -1,42 +1,27 @@
; WARNING: THIS CODE IS EXTREMELY FRAGILE
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
MSUCode = $00277E
;@ 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
; Change track 15 (unused) to point to 13 (Death Mountain) so dark woods can be track 15
; Bank 1
org $1A9F15 ; PC 0x0D1F15 ; SPC $D01C
dw $2B00 ; Set track 15 pointer to track 13's data
dw ($0F9E+(!SPCEngineStart-!SPCCodeStart))
dw !SPCCodeStart
pullpc
;---------------------------------------------------------------------------------------------------
arch spc700
;@ pushpc
;@ pushbase
org $19FE41 ; SPC 0A73
JMP MSUCode
arch spc700
base !SPCCodeStart
org $34FBCE;-(!SPCEngineStart-!SPCCodeStart)
NewSPCCode:
; Hijack unreachable SFX data for globally available code
org $1A9B2E
base MSUCode
SpecialCommand_Mute:
CMP A,#$F0 ; The thing we overwrote
@@ -74,34 +59,16 @@ MOV $0C33,A
MOV $0D1A,A
+++
CALL $0A81 ; SilenceSong
- : MOV A,$F4
- MOV A,$F4
BNE -
CMP A,$F4
BNE -
MOV $F4,$00
RET
org !SPCEngineStart
warnpc $1A9B91
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
; Bank 1
org $1A9F15 ; PC 0x0D1F15 ; SPC $D01C
dw #$2B00 ; Set track 15 pointer to track 13's data
; Bank 2
org $359F6E ; PC 0x1A9F6E ; SPC $D01C
dw #$2B00 ; Set track 15 pointer to track 13's data
arch spc700
org $34FE9A ; PC 0x1A7E9A ; SPC $0A73
JMP !SPCCodeStart : NOP
arch 65816