abcd
This commit is contained in:
67
spc.asm
67
spc.asm
@@ -1,42 +1,27 @@
|
|||||||
; 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
|
; Change track 15 (unused) to point to 13 (Death Mountain) so dark woods can be track 15
|
||||||
!SPCCodeStart = $07A7
|
; Bank 1
|
||||||
|
org $1A9F15 ; PC 0x0D1F15 ; SPC $D01C
|
||||||
|
dw $2B00 ; Set track 15 pointer to track 13's data
|
||||||
|
|
||||||
dw ($0F9E+(!SPCEngineStart-!SPCCodeStart))
|
pullpc
|
||||||
dw !SPCCodeStart
|
|
||||||
|
;---------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
arch spc700
|
||||||
|
|
||||||
;@ pushpc
|
;@ pushpc
|
||||||
;@ pushbase
|
;@ pushbase
|
||||||
|
org $19FE41 ; SPC 0A73
|
||||||
|
JMP MSUCode
|
||||||
|
|
||||||
arch spc700
|
; Hijack unreachable SFX data for globally available code
|
||||||
base !SPCCodeStart
|
org $1A9B2E
|
||||||
org $34FBCE;-(!SPCEngineStart-!SPCCodeStart)
|
base MSUCode
|
||||||
NewSPCCode:
|
|
||||||
|
|
||||||
SpecialCommand_Mute:
|
SpecialCommand_Mute:
|
||||||
CMP A,#$F0 ; The thing we overwrote
|
CMP A,#$F0 ; The thing we overwrote
|
||||||
@@ -74,34 +59,16 @@ MOV $0C33,A
|
|||||||
MOV $0D1A,A
|
MOV $0D1A,A
|
||||||
+++
|
+++
|
||||||
CALL $0A81 ; SilenceSong
|
CALL $0A81 ; SilenceSong
|
||||||
- : MOV A,$F4
|
- MOV A,$F4
|
||||||
BNE -
|
BNE -
|
||||||
CMP A,$F4
|
CMP A,$F4
|
||||||
BNE -
|
BNE -
|
||||||
MOV $F4,$00
|
MOV $F4,$00
|
||||||
RET
|
RET
|
||||||
|
|
||||||
org !SPCEngineStart
|
warnpc $1A9B91
|
||||||
|
|
||||||
arch 65816
|
|
||||||
SPCEngineStart:
|
|
||||||
;@ pullbase
|
;@ pullbase
|
||||||
;@ pullpc
|
;@ 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
|
arch 65816
|
||||||
|
|||||||
Reference in New Issue
Block a user