trogdor: timing sorta good

This commit is contained in:
Vince Weaver
2024-01-29 21:27:35 -05:00
parent 223eccd5d3
commit 66e9e04d39
5 changed files with 81 additions and 42 deletions

View File

@@ -115,6 +115,33 @@ music.inc: generate_common MUSIC
./generate_common -a 0xd000 -s mute_ay_both music.lst >> music.inc ./generate_common -a 0xd000 -s mute_ay_both music.lst >> music.inc
./generate_common -a 0xd000 -s unmute_ay_both music.lst >> music.inc ./generate_common -a 0xd000 -s unmute_ay_both music.lst >> music.inc
./generate_common -a 0xd000 -s interrupt_handler music.lst >> music.inc ./generate_common -a 0xd000 -s interrupt_handler music.lst >> music.inc
./generate_common -a 0xd000 -s disable_irq_smc2 music.lst >> music.inc
./generate_common -a 0xd000 -s disable_irq_smc1 music.lst >> music.inc
./generate_common -a 0xd000 -s setup_irq_smc6 music.lst >> music.inc
./generate_common -a 0xd000 -s setup_irq_smc5 music.lst >> music.inc
./generate_common -a 0xd000 -s setup_irq_smc4 music.lst >> music.inc
./generate_common -a 0xd000 -s setup_irq_smc3 music.lst >> music.inc
./generate_common -a 0xd000 -s setup_irq_smc2 music.lst >> music.inc
./generate_common -a 0xd000 -s setup_irq_smc1 music.lst >> music.inc
./generate_common -a 0xd000 -s write_ay_smc6 music.lst >> music.inc
./generate_common -a 0xd000 -s write_ay_smc5 music.lst >> music.inc
./generate_common -a 0xd000 -s write_ay_smc4 music.lst >> music.inc
./generate_common -a 0xd000 -s write_ay_smc3 music.lst >> music.inc
./generate_common -a 0xd000 -s write_ay_smc2 music.lst >> music.inc
./generate_common -a 0xd000 -s write_ay_smc1 music.lst >> music.inc
./generate_common -a 0xd000 -s reset_ay_smc4 music.lst >> music.inc
./generate_common -a 0xd000 -s reset_ay_smc3 music.lst >> music.inc
./generate_common -a 0xd000 -s reset_ay_smc2 music.lst >> music.inc
./generate_common -a 0xd000 -s reset_ay_smc1 music.lst >> music.inc
./generate_common -a 0xd000 -s mock_init_smc2 music.lst >> music.inc
./generate_common -a 0xd000 -s mock_init_smc1 music.lst >> music.inc
./generate_common -a 0xd000 -s pt3_irq_smc7 music.lst >> music.inc
./generate_common -a 0xd000 -s pt3_irq_smc6 music.lst >> music.inc
./generate_common -a 0xd000 -s pt3_irq_smc5 music.lst >> music.inc
./generate_common -a 0xd000 -s pt3_irq_smc4 music.lst >> music.inc
./generate_common -a 0xd000 -s pt3_irq_smc3 music.lst >> music.inc
./generate_common -a 0xd000 -s pt3_irq_smc2 music.lst >> music.inc
./generate_common -a 0xd000 -s pt3_irq_smc1 music.lst >> music.inc
#### ####

View File

@@ -160,3 +160,9 @@ dragonman:
TODO: TODO:
always call clear screen before left/right copy? always call clear screen before left/right copy?
patcher:
mockingboard_init
to done_pt3_irq_handler

View File

@@ -21,6 +21,7 @@ PT3_ENABLE_APPLE_IIC = 1
.include "pt3_lib_mockingboard_setup.s" .include "pt3_lib_mockingboard_setup.s"
.include "interrupt_handler.s" .include "interrupt_handler.s"
.include "pt3_lib_mockingboard_detect.s" .include "pt3_lib_mockingboard_detect.s"
; .include "pt3_lib_mockingboard_patch.s"
; only load one music track, self modify to make other ; only load one music track, self modify to make other

View File

@@ -5,70 +5,74 @@
; this is the brute force version, we have to patch 39 locations ; this is the brute force version, we have to patch 39 locations
; see further below if you want to try a smaller, more dangerous, patch ; see further below if you want to try a smaller, more dangerous, patch
.if 0
mockingboard_patch: mockingboard_patch:
lda MB_ADDR_H lda MB_ADDR_H
sta pt3_irq_smc1+2 ; 1 sta pt3_irq_smc1+2 ; 1 *
sta pt3_irq_smc2+2 ; 2 sta pt3_irq_smc2+2 ; 2 *
sta pt3_irq_smc2+5 ; 3 sta pt3_irq_smc2+5 ; 3 *
sta pt3_irq_smc3+2 ; 4 sta pt3_irq_smc3+2 ; 4 *
sta pt3_irq_smc3+5 ; 5 sta pt3_irq_smc3+5 ; 5 *
sta pt3_irq_smc4+2 ; 6 sta pt3_irq_smc4+2 ; 6 *
sta pt3_irq_smc4+5 ; 7 sta pt3_irq_smc4+5 ; 7 *
sta pt3_irq_smc5+2 ; 8 sta pt3_irq_smc5+2 ; 8 *
sta pt3_irq_smc5+5 ; 9 sta pt3_irq_smc5+5 ; 9 *
sta pt3_irq_smc6+2 ; 10 sta pt3_irq_smc6+2 ; 10 *
sta pt3_irq_smc6+5 ; 11 sta pt3_irq_smc6+5 ; 11 *
sta pt3_irq_smc7+2 ; 12 sta pt3_irq_smc7+2 ; 12 *
sta pt3_irq_smc7+5 ; 13 sta pt3_irq_smc7+5 ; 13 *
sta mock_init_smc1+2 ; 14 sta mock_init_smc1+2 ; 14 *
sta mock_init_smc1+5 ; 15 sta mock_init_smc1+5 ; 15 *
sta mock_init_smc2+2 ; 16 sta mock_init_smc2+2 ; 16 *
sta mock_init_smc2+5 ; 17 sta mock_init_smc2+5 ; 17 *
sta reset_ay_smc1+2 ; 18 sta reset_ay_smc1+2 ; 18 *
sta reset_ay_smc2+2 ; 19 sta reset_ay_smc2+2 ; 19 *
sta reset_ay_smc3+2 ; 20 sta reset_ay_smc3+2 ; 20 *
sta reset_ay_smc4+2 ; 21 sta reset_ay_smc4+2 ; 21 *
sta write_ay_smc1+2 ; 22 sta write_ay_smc1+2 ; 22 *
sta write_ay_smc1+5 ; 23 sta write_ay_smc1+5 ; 23 *
sta write_ay_smc2+2 ; 24 sta write_ay_smc2+2 ; 24 *
sta write_ay_smc2+5 ; 25 sta write_ay_smc2+5 ; 25 *
sta write_ay_smc3+2 ; 26 sta write_ay_smc3+2 ; 26 *
sta write_ay_smc3+5 ; 27 sta write_ay_smc3+5 ; 27 *
sta write_ay_smc4+2 ; 28 sta write_ay_smc4+2 ; 28 *
sta write_ay_smc4+5 ; 29 sta write_ay_smc4+5 ; 29 *
sta write_ay_smc5+2 ; 30 sta write_ay_smc5+2 ; 30 *
sta write_ay_smc5+5 ; 31 sta write_ay_smc5+5 ; 31 *
sta write_ay_smc6+2 ; 32 sta write_ay_smc6+2 ; 32 *
sta write_ay_smc6+5 ; 33 sta write_ay_smc6+5 ; 33 *
sta setup_irq_smc1+2 ; 34 sta setup_irq_smc1+2 ; 34 *
sta setup_irq_smc2+2 ; 35 sta setup_irq_smc2+2 ; 35 *
sta setup_irq_smc3+2 ; 36 sta setup_irq_smc3+2 ; 36 *
sta setup_irq_smc4+2 ; 37 sta setup_irq_smc4+2 ; 37 *
sta setup_irq_smc5+2 ; 38 sta setup_irq_smc5+2 ; 38 *
sta setup_irq_smc6+2 ; 39 sta setup_irq_smc6+2 ; 39 *
sta disable_irq_smc1+2 ; 40 *
sta disable_irq_smc2+2 ; 41 *
rts rts
.endif
.if 0
;=================================================================== ;===================================================================
; dangerous code to patch mockingboard if not in slot#4 ; dangerous code to patch mockingboard if not in slot#4
;=================================================================== ;===================================================================
@@ -119,3 +123,4 @@ mb_patch_done:
stx MB_ADDR_H ; restore slot for later stx MB_ADDR_H ; restore slot for later
rts rts
.endif

View File

@@ -48,7 +48,7 @@ restart:
lda SOUND_STATUS lda SOUND_STATUS
beq skip_mbp1 beq skip_mbp1
jsr mockingboard_patch ; patch to work in slots other than 4? jsr mockingboard_patch ; patch to work in slots other than 4?
skip_mbp1: skip_mbp1: