diff --git a/demos/trogdor/Makefile b/demos/trogdor/Makefile index 9bb201ac..61341433 100644 --- a/demos/trogdor/Makefile +++ b/demos/trogdor/Makefile @@ -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 unmute_ay_both 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 #### diff --git a/demos/trogdor/NOTES b/demos/trogdor/NOTES index cea5c420..d4899571 100644 --- a/demos/trogdor/NOTES +++ b/demos/trogdor/NOTES @@ -160,3 +160,9 @@ dragonman: TODO: always call clear screen before left/right copy? + + + +patcher: + mockingboard_init + to done_pt3_irq_handler diff --git a/demos/trogdor/music.s b/demos/trogdor/music.s index 1e8e424b..3e982886 100644 --- a/demos/trogdor/music.s +++ b/demos/trogdor/music.s @@ -21,6 +21,7 @@ PT3_ENABLE_APPLE_IIC = 1 .include "pt3_lib_mockingboard_setup.s" .include "interrupt_handler.s" .include "pt3_lib_mockingboard_detect.s" +; .include "pt3_lib_mockingboard_patch.s" ; only load one music track, self modify to make other diff --git a/demos/trogdor/pt3_lib_mockingboard_patch.s b/demos/trogdor/pt3_lib_mockingboard_patch.s index 728396c9..d0c619b9 100644 --- a/demos/trogdor/pt3_lib_mockingboard_patch.s +++ b/demos/trogdor/pt3_lib_mockingboard_patch.s @@ -5,70 +5,74 @@ ; 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 -.if 0 + mockingboard_patch: 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+5 ; 3 + sta pt3_irq_smc2+2 ; 2 * + sta pt3_irq_smc2+5 ; 3 * - sta pt3_irq_smc3+2 ; 4 - sta pt3_irq_smc3+5 ; 5 + sta pt3_irq_smc3+2 ; 4 * + sta pt3_irq_smc3+5 ; 5 * - sta pt3_irq_smc4+2 ; 6 - sta pt3_irq_smc4+5 ; 7 + sta pt3_irq_smc4+2 ; 6 * + sta pt3_irq_smc4+5 ; 7 * - sta pt3_irq_smc5+2 ; 8 - sta pt3_irq_smc5+5 ; 9 + sta pt3_irq_smc5+2 ; 8 * + sta pt3_irq_smc5+5 ; 9 * - sta pt3_irq_smc6+2 ; 10 - sta pt3_irq_smc6+5 ; 11 + sta pt3_irq_smc6+2 ; 10 * + sta pt3_irq_smc6+5 ; 11 * - sta pt3_irq_smc7+2 ; 12 - sta pt3_irq_smc7+5 ; 13 + sta pt3_irq_smc7+2 ; 12 * + sta pt3_irq_smc7+5 ; 13 * - sta mock_init_smc1+2 ; 14 - sta mock_init_smc1+5 ; 15 + sta mock_init_smc1+2 ; 14 * + sta mock_init_smc1+5 ; 15 * - sta mock_init_smc2+2 ; 16 - sta mock_init_smc2+5 ; 17 + sta mock_init_smc2+2 ; 16 * + sta mock_init_smc2+5 ; 17 * - sta reset_ay_smc1+2 ; 18 - sta reset_ay_smc2+2 ; 19 - sta reset_ay_smc3+2 ; 20 - sta reset_ay_smc4+2 ; 21 + sta reset_ay_smc1+2 ; 18 * + sta reset_ay_smc2+2 ; 19 * + sta reset_ay_smc3+2 ; 20 * + sta reset_ay_smc4+2 ; 21 * - sta write_ay_smc1+2 ; 22 - sta write_ay_smc1+5 ; 23 + sta write_ay_smc1+2 ; 22 * + sta write_ay_smc1+5 ; 23 * - sta write_ay_smc2+2 ; 24 - sta write_ay_smc2+5 ; 25 + sta write_ay_smc2+2 ; 24 * + sta write_ay_smc2+5 ; 25 * - sta write_ay_smc3+2 ; 26 - sta write_ay_smc3+5 ; 27 + sta write_ay_smc3+2 ; 26 * + sta write_ay_smc3+5 ; 27 * - sta write_ay_smc4+2 ; 28 - sta write_ay_smc4+5 ; 29 + sta write_ay_smc4+2 ; 28 * + sta write_ay_smc4+5 ; 29 * - sta write_ay_smc5+2 ; 30 - sta write_ay_smc5+5 ; 31 + sta write_ay_smc5+2 ; 30 * + sta write_ay_smc5+5 ; 31 * - sta write_ay_smc6+2 ; 32 - sta write_ay_smc6+5 ; 33 + sta write_ay_smc6+2 ; 32 * + sta write_ay_smc6+5 ; 33 * - sta setup_irq_smc1+2 ; 34 - sta setup_irq_smc2+2 ; 35 - sta setup_irq_smc3+2 ; 36 - sta setup_irq_smc4+2 ; 37 - sta setup_irq_smc5+2 ; 38 - sta setup_irq_smc6+2 ; 39 + sta setup_irq_smc1+2 ; 34 * + sta setup_irq_smc2+2 ; 35 * + sta setup_irq_smc3+2 ; 36 * + sta setup_irq_smc4+2 ; 37 * + sta setup_irq_smc5+2 ; 38 * + sta setup_irq_smc6+2 ; 39 * + + sta disable_irq_smc1+2 ; 40 * + sta disable_irq_smc2+2 ; 41 * rts -.endif + +.if 0 ;=================================================================== ; 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 rts +.endif diff --git a/demos/trogdor/start.s b/demos/trogdor/start.s index b7ff24bb..2c19aa20 100644 --- a/demos/trogdor/start.s +++ b/demos/trogdor/start.s @@ -48,7 +48,7 @@ restart: lda SOUND_STATUS 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: