From c273cc641f29c35d212f9f2c957c725e4222ce64 Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Wed, 26 Feb 2025 21:24:27 -0800 Subject: [PATCH] fix Star Maze on the IIc+ --- src/demo/star.maze.a | 20 +++++++++++++++++++- src/prelaunch/star.maze.a | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/demo/star.maze.a b/src/demo/star.maze.a index 13d2b54bd..9dbc74dd2 100644 --- a/src/demo/star.maze.a +++ b/src/demo/star.maze.a @@ -13,6 +13,10 @@ +LOAD_FILE_KEEP_DIR star_maze, star_maze_dir_e-star_maze_dir_b +READ_ROM_NO_WRITE + lda #$E2 + sta $5F07 + sta $5F0D + lda #$60 sta $21FD jsr $2000 ; decompress @@ -34,10 +38,18 @@ stx $7BD5 stx $984B + lda #$D3 + sta $7E52 + dec $7E53 + ldx #(patch_e-patch_b)-1 +- lda patch_b, x + sta $7ED9, x + dex + bpl - + jsr $7F8B ; swap screen holes +DISABLE_ACCEL jsr $7F8B ; swap screen holes - lda $c082 ; maybe STA doesn't work reliably? jmp $79D3 callback @@ -48,6 +60,12 @@ callback counter !byte 5 +patch_b +READ_ROM_NO_WRITE + lda #$2C + sta $7ED6 + rts +patch_e + star_maze !byte star_maze_e-star_maze_b star_maze_b diff --git a/src/prelaunch/star.maze.a b/src/prelaunch/star.maze.a index 6af443d83..60a7dfb19 100644 --- a/src/prelaunch/star.maze.a +++ b/src/prelaunch/star.maze.a @@ -9,12 +9,25 @@ +ENABLE_ACCEL + lda #$E2 + sta $5F07 + sta $5F0D + lda #$60 sta $21FD jsr $2000 ; decompress sta $7A07 sty $7A08 ; reset vector + lda #$D3 + sta $7E52 + dec $7E53 + ldx #(patch_e-patch_b)-1 +- lda patch_b, x + sta $7ED9, x + dex + bpl - + +GET_MACHINE_STATUS and #CHEATS_ENABLED beq + @@ -26,6 +39,12 @@ jsr $7F8B ; swap screen holes jmp $79D3 +patch_b +READ_ROM_NO_WRITE + lda #$2C + sta $7ED6 + rts +patch_e + !if * > PrelaunchMax { !error "code is too large, ends at ", * }