mirror of
https://github.com/a2-4am/4sports.git
synced 2025-04-09 18:38:23 +00:00
auto-select MB slot for Black Belt
This commit is contained in:
parent
657cb6c9f1
commit
020fe79133
@ -189,6 +189,7 @@ EnableAccelerator = DisableAccelerator+3
|
||||
; AND masks for MockingboardStuff
|
||||
MOCKINGBOARD_SLOT = %00001111
|
||||
HAS_SPEECH = %11000000
|
||||
MOCKINGBOARD_NEW = %00100000
|
||||
|
||||
; AND masks for game info bitfield (after game display name in gSearchStore)
|
||||
HAS_DHGR_TITLE = %10000000 ; this one is hard-coded via BMI instead of AND/BNE
|
||||
|
@ -1 +1,3 @@
|
||||
# This file is maintained by hand
|
||||
|
||||
BLACK.BELT.MB=Type(06),AuxType(0200),Access(C3)
|
||||
|
@ -7,49 +7,15 @@
|
||||
|
||||
!source "src/prelaunch/common.a"
|
||||
|
||||
+ENABLE_ACCEL
|
||||
lda #$4C
|
||||
sta $85F
|
||||
jsr $800 ; decompress
|
||||
+DISABLE_ACCEL
|
||||
jsr $8F00 ; title
|
||||
+ENABLE_ACCEL
|
||||
lda #$4C
|
||||
sta $8A0
|
||||
ldy #0
|
||||
jsr $865 ; decompress
|
||||
+READ_RAM2_NO_WRITE
|
||||
lda MockingboardStuff
|
||||
beq .nomock
|
||||
pha
|
||||
lda #$a9
|
||||
sta $1506
|
||||
jsr $BC0E ; decompress new Mockingboard support
|
||||
pla
|
||||
and #$20
|
||||
bne .newmock
|
||||
jsr $BC07 ; decompress old Mockingboard support
|
||||
.newmock
|
||||
|
||||
.nomock
|
||||
lda #$4C
|
||||
sta $BC12
|
||||
lda #<callback
|
||||
sta $BC13
|
||||
lda #>callback
|
||||
sta $BC14
|
||||
jsr DisableAccelerator
|
||||
+READ_RAM2_WRITE_RAM2
|
||||
jsr EnableAccelerator
|
||||
+LOAD_FILE_AT blackbelt_mb, $200
|
||||
+READ_ROM_NO_WRITE
|
||||
jmp $8A3
|
||||
jmp $200
|
||||
|
||||
callback
|
||||
+ENABLE_ACCEL
|
||||
lda #0
|
||||
sta $B6
|
||||
jsr $BC16
|
||||
+DISABLE_ACCEL
|
||||
lda #0
|
||||
rts
|
||||
blackbelt_mb
|
||||
!byte 23
|
||||
!text "PRELAUNCH/BLACK.BELT.MB"
|
||||
|
||||
!if * > $1C0 {
|
||||
!error "code is too large, ends at ", *
|
||||
|
78
src/prelaunch/black.belt.mb.a
Normal file
78
src/prelaunch/black.belt.mb.a
Normal file
@ -0,0 +1,78 @@
|
||||
;license:MIT
|
||||
;(c) 2023 by qkumba
|
||||
|
||||
!cpu 6502
|
||||
!to "build/PRELAUNCH/BLACK.BELT.MB",plain
|
||||
*=$200
|
||||
|
||||
!source "src/constants.a" ; no code in these
|
||||
!source "src/macros.a"
|
||||
|
||||
+ENABLE_ACCEL
|
||||
lda #$4C
|
||||
sta $85F
|
||||
jsr $800 ; decompress
|
||||
+DISABLE_ACCEL
|
||||
jsr $8F00 ; title
|
||||
+ENABLE_ACCEL
|
||||
lda #$4C
|
||||
sta $8A0
|
||||
ldy #0
|
||||
nop
|
||||
nop
|
||||
nop ; alignment for SMC
|
||||
jsr $865 ; decompress
|
||||
+READ_RAM2_NO_WRITE
|
||||
lda MockingboardStuff
|
||||
beq .nomock
|
||||
pha
|
||||
jsr $BC0E ; decompress new Mockingboard support
|
||||
lda #0 ; SMC
|
||||
pla
|
||||
pha
|
||||
and #MOCKINGBOARD_NEW
|
||||
bne .newmock
|
||||
jsr $BC07 ; decompress old Mockingboard support
|
||||
.newmock
|
||||
pla
|
||||
and #7
|
||||
ora #$C0
|
||||
ldx #0
|
||||
- ldy $15FB, x
|
||||
cpy #$C4
|
||||
bne +
|
||||
sta $15FB, x
|
||||
+ ldy $A000, x
|
||||
cpy #$C4
|
||||
bne +
|
||||
sta $A000, x
|
||||
+ ldy $A100, x
|
||||
cpy #$C4
|
||||
bne +
|
||||
sta $A100, x
|
||||
+ inx
|
||||
bne -
|
||||
|
||||
.nomock
|
||||
lda #$4C
|
||||
sta $BC12
|
||||
lda #<callback
|
||||
sta $BC13
|
||||
lda #>callback
|
||||
sta $BC14
|
||||
jsr DisableAccelerator
|
||||
+READ_ROM_NO_WRITE
|
||||
jmp $8A3
|
||||
|
||||
callback
|
||||
+ENABLE_ACCEL
|
||||
lda #0
|
||||
sta $B6
|
||||
jsr $BC16
|
||||
+DISABLE_ACCEL
|
||||
lda #0
|
||||
rts
|
||||
|
||||
!if * > $2FF {
|
||||
!error "code is too large, ends at ", *
|
||||
}
|
@ -29,6 +29,7 @@ rem version 3.1.0 or later
|
||||
set EXOMIZER=exomizer mem -q -P23 -lnone
|
||||
|
||||
if "%1" equ "dsk" (
|
||||
call :clean
|
||||
call :index
|
||||
if "%2". equ "". (
|
||||
call :asmproboot
|
||||
@ -73,6 +74,7 @@ if "%1" equ "clean" (
|
||||
if "%2". neq "". (
|
||||
1>nul move build\%DISK%
|
||||
)
|
||||
:clean
|
||||
echo y|1>nul 2>nul rd build /s
|
||||
if "%2". neq "". (
|
||||
md build
|
||||
@ -314,8 +316,7 @@ goto :EOF
|
||||
|
||||
:asmlauncher
|
||||
2>nul 1>build\buildnum.log %GIT% rev-list --count HEAD
|
||||
if errorlevel 1 (set _build=0
|
||||
) else for /f "tokens=*" %%q in (build\buildnum.log) do set _build=%%q
|
||||
if errorlevel 1 (set _build=0) else for /f "tokens=*" %%q in (build\buildnum.log) do set _build=%%q
|
||||
2>build\relbase.log %ACME% -DBUILDNUMBER=%_build% src\4cade.a
|
||||
for /f "tokens=*" %%q in (build\relbase.log) do set _make=%%q
|
||||
%ACME% -DBUILDNUMBER=%_build% -DRELBASE=$!_make:~-5,4! -r build\4cade.lst src\4cade.a
|
||||
|
Loading…
x
Reference in New Issue
Block a user