File tree Expand file tree Collapse file tree 9 files changed +65
-9
lines changed Expand file tree Collapse file tree 9 files changed +65
-9
lines changed Original file line number Diff line number Diff line change 3
3
compile_flags=()
4
4
5
5
help () {
6
- echo " Usage: $0 [-v] [-m <1|3>] [-a] [-s] [-k] [-h]"
6
+ echo " Usage: $0 [-v] [-m <1|3|4 >] [-a] [-s] [-k] [-h]"
7
7
echo " -v verbose"
8
8
echo " -m mapper"
9
9
echo " -a faster aeppoz + press select to end game"
@@ -16,8 +16,8 @@ while getopts "vm:askh" flag; do
16
16
case " ${flag} " in
17
17
v) set -x ;;
18
18
m)
19
- if ! [[ " ${OPTARG} " =~ ^[13 ]$ ]]; then
20
- echo " Valid INES_MAPPER (-m) options are 1 or 3 "
19
+ if ! [[ " ${OPTARG} " =~ ^[134 ]$ ]]; then
20
+ echo " Valid INES_MAPPER (-m) options are 1, 3 or 4 "
21
21
exit 1
22
22
fi
23
23
compile_flags+=(" -D INES_MAPPER=${OPTARG} " )
Original file line number Diff line number Diff line change 1
1
.segment "CHR"
2
2
3
- .if INES_MAPPER = 1
3
+ .if INES_MAPPER = 1 || INES_MAPPER = 4
4
4
.incbin "chr/title_menu_tileset.chr"
5
5
.incbin "chr/game_tileset.chr"
6
6
.incbin "chr/rocket_tileset.chr"
Original file line number Diff line number Diff line change @@ -11,11 +11,16 @@ gameMode_gameTypeMenu:
11
11
lda #0
12
12
sta displayNextPiece
13
13
RESET_MMC1
14
- .if INES_MAPPER = 1
14
+ .if INES_MAPPER = 1 || INES_MAPPER = 4
15
15
; switch to blank charmap
16
16
; (stops glitching when resetting)
17
17
lda #$03
18
18
jsr changeCHRBank1
19
+ .endif
20
+ .if INES_MAPPER = 4
21
+ ; Horizontal mirroring
22
+ lda #$1
23
+ sta MMC3_MIRRORING
19
24
.endif
20
25
lda #%10011 ; used to be $10 (enable horizontal mirroring)
21
26
jsr setMMC1Control
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ gameMode_speedTest:
21
21
sta PPUADDR
22
22
lda #$30
23
23
sta PPUDATA
24
- .if INES_MAPPER = 1
24
+ .if INES_MAPPER = 1 || INES_MAPPER = 4
25
25
lda #$01
26
26
jsr changeCHRBank0
27
27
lda #$01
Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ waitScreenLoad:
6
6
sta renderMode
7
7
jsr updateAudioWaitForNmiAndDisablePpuRendering
8
8
jsr disableNmi
9
- .if INES_MAPPER = 1
9
+ .if INES_MAPPER = 1 || INES_MAPPER = 4
10
10
lda #$02
11
11
jsr changeCHRBank0
12
12
lda #$02
Original file line number Diff line number Diff line change 1
1
gameModeState_initGameBackground:
2
2
jsr updateAudioWaitForNmiAndDisablePpuRendering
3
3
jsr disableNmi
4
- .if INES_MAPPER = 1
4
+ .if INES_MAPPER = 1 || INES_MAPPER = 4
5
5
lda #$01
6
6
jsr changeCHRBank0
7
7
lda #$01
@@ -47,6 +47,10 @@ gameModeState_initGameBackground:
47
47
lda #%10011000
48
48
sta PPUCTRL
49
49
sta currentPpuCtrl
50
+ .elseif INES_MAPPER = 4
51
+ ; Vertical mirroring (Prevents screen glitching)
52
+ lda #$0
53
+ sta MMC3_MIRRORING
50
54
.endif
51
55
jsr resetScroll
52
56
jsr waitForVBlankAndEnableNmi
Original file line number Diff line number Diff line change @@ -46,6 +46,10 @@ MMC1_Control := $8000
46
46
MMC1_CHR0 := $ BFFF
47
47
MMC1_CHR1 := $ DFFF
48
48
49
+ MMC3_BANK_SELECT := $ 8000
50
+ MMC3_BANK_DATA := $ 8001
51
+ MMC3_MIRRORING := $ A000
52
+
49
53
.macro RESET_MMC1
50
54
.if INES_MAPPER = 1
51
55
inc $ 8000 ; initRam
Original file line number Diff line number Diff line change @@ -76,7 +76,7 @@ sleep_gameplay:
76
76
endingAnimation: ; rocket_screen
77
77
jsr updateAudioWaitForNmiAndDisablePpuRendering
78
78
jsr disableNmi
79
- .if INES_MAPPER = 1
79
+ .if INES_MAPPER = 1 || INES_MAPPER = 4
80
80
lda #$02
81
81
jsr changeCHRBank0
82
82
lda #$02
Original file line number Diff line number Diff line change @@ -311,6 +311,17 @@ changeCHRBank0:
311
311
sta MMC1_CHR0
312
312
lsr a
313
313
sta MMC1_CHR0
314
+ .elseif INES_MAPPER = 4
315
+ asl a
316
+ asl a
317
+ ldx #$00
318
+ stx MMC3_BANK_SELECT
319
+ sta MMC3_BANK_DATA
320
+ inx
321
+ clc
322
+ adc #$02
323
+ stx MMC3_BANK_SELECT
324
+ sta MMC3_BANK_DATA
314
325
.endif
315
326
rts
316
327
@@ -325,6 +336,27 @@ changeCHRBank1:
325
336
sta MMC1_CHR1
326
337
lsr a
327
338
sta MMC1_CHR1
339
+ .elseif INES_MAPPER = 4
340
+ asl a
341
+ asl a
342
+ ldx #$02
343
+ stx MMC3_BANK_SELECT
344
+ sta MMC3_BANK_DATA
345
+ inx
346
+ clc
347
+ adc #$01
348
+ stx MMC3_BANK_SELECT
349
+ sta MMC3_BANK_DATA
350
+ inx
351
+ clc
352
+ adc #$01
353
+ stx MMC3_BANK_SELECT
354
+ sta MMC3_BANK_DATA
355
+ inx
356
+ clc
357
+ adc #$01
358
+ stx MMC3_BANK_SELECT
359
+ sta MMC3_BANK_DATA
328
360
.endif
329
361
rts
330
362
@@ -339,5 +371,16 @@ changePRGBank:
339
371
sta MMC1_PRG
340
372
lsr a
341
373
sta MMC1_PRG
374
+ .elseif INES_MAPPER = 4
375
+ asl a
376
+ asl a
377
+ ldx #$06
378
+ stx MMC3_BANK_SELECT
379
+ sta MMC3_BANK_DATA
380
+ inx
381
+ clc
382
+ adc #$01
383
+ stx MMC3_BANK_SELECT
384
+ sta MMC3_BANK_DATA
342
385
.endif
343
386
rts
You can’t perform that action at this time.
0 commit comments