Skip to content

Commit d7cf62c

Browse files
Merge pull request #71 from zohassadar/darkmode_toggle
Darkmode toggle
2 parents 1ac2a80 + 63bc5b9 commit d7cf62c

File tree

7 files changed

+161
-89
lines changed

7 files changed

+161
-89
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* Crunch Mode
66
* Marathon Mode
77
* Hidden Score Mode
8+
* Dark Mode
89
* Low Stack Mode
910
* M Score changed to Classic Scoring + Millions counter
1011
* Invisible linecap turns entire playfield invisible

src/chr/game_tileset.png

1.29 KB
Loading

src/constants.asm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ MODE_DISABLE_FLASH
9393
MODE_DISABLE_PAUSE
9494
MODE_GOOFY
9595
MODE_DEBUG
96+
MODE_DARK
9697
MODE_LINECAP
9798
MODE_DASONLY
9899
MODE_QUAL
@@ -160,6 +161,7 @@ MENU_TOP_MARGIN_SCROLL := 7 ; in blocks
160161
.byte $1 ; MODE_DISABLE_PAUSE
161162
.byte $1 ; MODE_GOOFY
162163
.byte $1 ; MODE_DEBUG
164+
.byte $1 ; MODE_DARK
163165
.byte $1 ; MODE_LINECAP
164166
.byte $1 ; MODE_DASONLY
165167
.byte $1 ; MODE_QUAL

src/gamemodestate/initbackground.asm

Lines changed: 99 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ gameModeState_initGameBackground:
1212
jsr copyRleNametableToPpu
1313
.addr game_nametable
1414
jsr scoringBackground
15+
jsr debugNametableUI
16+
17+
lda darkMode
18+
beq @notDarkMode
19+
jsr drawDarkMode
20+
@notDarkMode:
1521

1622
lda hzFlag
1723
beq @noHz
@@ -25,7 +31,6 @@ gameModeState_initGameBackground:
2531
sta tmp2
2632
jsr displayModeText
2733
jsr statisticsNametablePatch ; for input display
28-
jsr debugNametableUI
2934

3035
; ingame hearts
3136
lda heartsAndReady
@@ -86,6 +91,7 @@ scoringBackground:
8691
sta PPUDATA
8792
jmp @noSevenDigit
8893
@noFloat:
94+
; hidden score
8995
cmp #SCORING_HIDDEN
9096
bne @notHidden
9197
jsr scoreSetupPPU
@@ -97,10 +103,12 @@ scoringBackground:
97103
bne @hiddenScoreLoop
98104
jmp @noSevenDigit
99105
@notHidden:
106+
; 7 digit
100107
cmp #SCORING_SEVENDIGIT
101108
bne @noSevenDigit
102109
jsr bulkCopyToPpu
103110
.addr seven_digit_nametable
111+
104112
@noSevenDigit:
105113

106114
jsr showPaceDiffText
@@ -149,7 +157,8 @@ MODENAMES
149157
debugNametableUI:
150158
lda debugFlag
151159
beq @notDebug
152-
jsr saveStateNametableUI
160+
jsr bulkCopyToPpu
161+
.addr savestate_nametable
153162
jsr saveSlotNametablePatch
154163
@notDebug:
155164
rts
@@ -163,27 +172,6 @@ saveSlotNametablePatch:
163172
sta PPUDATA
164173
rts
165174

166-
saveStateNametableUI:
167-
; todo: replace with stripe
168-
ldx #$00
169-
@nextPpuAddress:
170-
lda savestate_nametable_patch,x
171-
inx
172-
sta PPUADDR
173-
lda savestate_nametable_patch,x
174-
inx
175-
sta PPUADDR
176-
@nextPpuData:
177-
lda savestate_nametable_patch,x
178-
inx
179-
cmp #$FE
180-
beq @nextPpuAddress
181-
cmp #$FD
182-
beq @endOfPpuPatching
183-
sta PPUDATA
184-
jmp @nextPpuData
185-
@endOfPpuPatching:
186-
rts
187175

188176
statisticsNametablePatch:
189177
lda #$21
@@ -235,17 +223,95 @@ hzStats: ; stripe
235223
.byte $FF
236224

237225
seven_digit_nametable:
238-
.byte $20, $5F, $41, $3a ; -
239-
.byte $20, $7f, $C7, $3c ; |
240-
.byte $21, $5F, $41, $3F ; -
226+
.byte $20, $5F, $41, $75 ; -
227+
.byte $20, $7f, $C7, $36 ; |
228+
.byte $21, $5F, $41, $77 ; -
241229
.byte $20, $7E, $C7, $FF ; |
242-
.byte $20, $5E, $41, $39 ; -
243-
.byte $21, $5E, $41, $3E ; -
230+
.byte $20, $5E, $41, $34 ; -
231+
.byte $21, $5E, $41, $37 ; -
244232
.byte $21, $1E, $41, $0 ; 0
245233
.byte $FF
246234

247-
savestate_nametable_patch:
248-
.byte $22,$F7,$38,$39,$39,$39,$39,$39,$39,$3A,$FE
249-
.byte $23,$17,$3B,$1C,$15,$18,$1D,$FF,$FF,$3C,$FE
250-
.byte $23,$37,$3B,$FF,$FF,$FF,$FF,$FF,$FF,$3C,$FE
251-
.byte $23,$57,$3D,$3E,$3E,$3E,$3E,$3E,$3E,$3F,$FD
235+
savestate_nametable:
236+
.byte $22,$F7,$8,$74,$34,$34,$34,$34,$34,$34,$75
237+
.byte $23,$17,$8,$35,$1C,$15,$18,$1D,$FF,$FF,$36
238+
.byte $23,$37,$8,$35,$FF,$FF,$FF,$FF,$FF,$FF,$36
239+
.byte $23,$57,$8,$76,$37,$37,$37,$37,$37,$37,$77
240+
.byte $FF
241+
242+
NORMAL_CORNER_TILES := $70
243+
DARK_CORNER_TILES := $80
244+
245+
drawDarkMode:
246+
247+
darkBuffer := playfield ; cleared right after in initGameState
248+
249+
; process the playfield in 60 chunks
250+
lda #60
251+
sta tmpZ
252+
253+
lda #$20
254+
sta tmpX
255+
lda #$00
256+
sta tmpY
257+
258+
@processChunk: ; process 16 tiles at a time
259+
lda tmpX
260+
sta PPUADDR
261+
lda tmpY
262+
sta PPUADDR
263+
lda PPUDATA
264+
265+
ldx #0
266+
@copyToBuffer:
267+
lda PPUDATA
268+
sta darkBuffer, x
269+
inx
270+
cpx #16
271+
bne @copyToBuffer
272+
273+
; reset PPUADDR
274+
lda tmpX
275+
sta PPUADDR
276+
lda tmpY
277+
sta PPUADDR
278+
279+
ldx #0
280+
@copyToNametable:
281+
lda darkBuffer, x
282+
283+
; set pattern as blank
284+
cmp #$90
285+
bmi :+
286+
cmp #$A2
287+
bpl :+
288+
lda #$EF
289+
:
290+
; use rounded corners
291+
cmp #$70
292+
bmi :+
293+
cmp #$78
294+
bpl :+
295+
clc
296+
adc #$10
297+
:
298+
299+
sta PPUDATA
300+
inx
301+
cpx #16
302+
bne @copyToNametable
303+
304+
clc
305+
lda tmpY
306+
adc #16
307+
sta tmpY
308+
bcc @noverflow
309+
inc tmpX
310+
@noverflow:
311+
312+
sec
313+
lda tmpZ
314+
sbc #1
315+
sta tmpZ
316+
bne @processChunk
317+
rts

src/nametables/game.js

Lines changed: 57 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ const {
44
drawTiles,
55
drawAttrs,
66
flatLookup,
7+
printNT,
78
} = require('./nametables');
89

910
const buffer = blankNT();
1011

1112
const lookup = flatLookup(`
1213
0123456789ABCDEF
1314
GHIJKLMNOPQRSTUV
14-
WXYZ-+!>˙^()#.##
15+
WXYZ-#!######.##
1516
########qweadzxc
1617
################
1718
################
@@ -30,67 +31,67 @@ WXYZ-+!>˙^()#.##
3031
drawTiles(buffer, lookup, `
3132
################################
3233
################################
33-
###########qwwwwwwwwwweqwwwwwwe#
34-
##qwwwwwwe#a LINES-000da d#
35-
##a d#zxxxxxxxxxxcaTOP d#
36-
##zxxxxxxc#############a d#
37-
############ #a d#
38-
############ #aSCORE d#
39-
#qwwwwwwwwe# #a000000d#
40-
#a########d# #a d#
41-
#a d# #zxxxxxxc#
42-
#a ### d# ##########
43-
#a ###000 d# ##########
44-
#a ### d# ##NEXT####
45-
#a ###000 d# ## ####
46-
#a ## d# ## ####
47-
#a ###000 d# ## ####
48-
#a ## d# ## ####
49-
#a ## 000 d# ##########
50-
#a ### d# #qwwwwwe##
51-
#a ###000 d# #aLEVELd##
52-
#a ### d# #a d##
53-
#a ###000 d# #zxxxxxc##
54-
#a d# ##########
55-
#a ###000 d# ##########
56-
#a d# ##########
57-
#zxxxxxxxxc#####################
34+
###########ɴȴȴȴȴȴȴȴȴȴȴɵɴȴȴȴȴȴȴɵ#
35+
##ɴȴȴȴȴȴȴɵ#ȵ#LINES-000ȶȵ######ȶ#
36+
##ȵ######ȶ#ɶȷȷȷȷȷȷȷȷȷȷɷȵTOP###ȶ#
37+
##ɶȷȷȷȷȷȷɷ#############ȵ######ȶ#
38+
#######################ȵ######ȶ#
39+
#######################ȵSCORE#ȶ#
40+
#ɴȴȴȴȴȴȴȴȴɵ############ȵ000000ȶ#
41+
#ȵ########ȶ############ȵ######ȶ#
42+
#ȵ########ȶ############ɶȷȷȷȷȷȷɷ#
43+
#ȵ########ȶ#####################
44+
#ȵ####000#ȶ#####################
45+
#ȵ########ȶ#############NEXT####
46+
#ȵ####000#ȶ#####################
47+
#ȵ########ȶ#####################
48+
#ȵ####000#ȶ#####################
49+
#ȵ########ȶ#####################
50+
#ȵ####000#ȶ#####################
51+
#ȵ########ȶ############ɴȴȴȴȴȴɵ##
52+
#ȵ####000#ȶ############ȵLEVELȶ##
53+
#ȵ########ȶ############ȵ#####ȶ##
54+
#ȵ####000#ȶ############ɶȷȷȷȷȷɷ##
55+
#ȵ########ȶ#####################
56+
#ȵ####000#ȶ#####################
57+
#ȵ########ȶ#####################
58+
#ɶȷȷȷȷȷȷȷȷɷ#####################
5859
################################
5960
################################
6061
################################
6162
`);
6263

6364
drawTiles(buffer, lookup, `
64-
ɺɧɷɷɲɹɺɸɵɺɧɷɸʃɸʃɷʇɧɸɳʇɰɱɧʇɸɵɺɲɺɧ
65-
ɲʃʇɷʇɧɸɳʇɲʃʇɸɹɹɺʇɸʄɺʂɺʀʁʂɹɺʇɸʃɸʅ
66-
ʇɲɺʇɸʄɺʂɺʇɧ####################ʇ
67-
ɧɷ########ɷ####################ɧ
68-
ɷʇ########ɷ####################ɷ
69-
ʀɺ########ʇȰȱȱȱȱȱȱȱȱȱȱȲ########ɷ
70-
ɸɹɹɺɧɰɱɧɸɹɳȳ##########ȴ########ʇ
71-
ɹɺɸɹʃʀʁʂɹɺʇȳ##########ȴ########ɧ
72-
ɳ##########ȳ##########ȴ########ʂ
73-
ɷ#ɩɪɫɬɭɮɯɟ#ȳ##########ȴ########ɧ
74-
ʇ##########ȳ##########ȴ########ɷ
75-
ɺ##ɀɁɂ#####ȳ##########ȴɸɹɹɺɸɹɳɸʃ
76-
ɺ##ɐɑɒ#####ȳ##########ȴȰȱȱȱȱȲʇɧɸ
77-
ɺ##ɉɊɋ#####ȳ##########ȴȳ####ȴɲʃɸ
78-
ɧ##əɚɛ#####ȳ##########ȴȳ####ȴʇɲɺ
79-
ɷ##Ɇɇ######ȳ##########ȴȳ####ȴɸʃɰ
80-
ɷ##ɖɗɘ#####ȳ##########ȴȳ####ȴɲɺʀ
81-
ʇ##ɠɡ######ȳ##########ȴȳ####ȴɷɸɳ
82-
ɱ##ɢɣ######ȳ##########ȴȵȶȶȶȶȷʇɧɷ
83-
ʁ##ɃɄɅ#####ȳ##########ȴ#######ɷʇ
84-
ɺ##ɓɔɕ#####ȳ##########ȴ#######ɷɸ
85-
ɺ##ɌɍɎ#####ȳ##########ȴ#######ʇɧ
86-
ɧ##ɜɝɞ#####ȳ##########ȴ#######ɸʅ
87-
ʃ##########ȳ##########ȴɧɸɵɺɧɲɹɺʇ
88-
ɳ##ɤɥɦ#####ȳ##########ȴɴɺʇɸʅʇɧɸɹ
89-
ɷ##########ȳ##########ȴʇɸɹɳʇɲʃɲɺ
90-
ʇ##########ȵȶȶȶȶȶȶȶȶȶȶȷɧɰɱʇɧʇɸʃɧ
91-
ɧɧɸɵɺɲɹɺɧɸɳɸɳɧɲɺɲɹɺɸɹɹɺɷʀʁɸʅɧɸɹʃ
92-
ɷʂɳʇɧʇɧɲʃɧʂɺɷɷɷɧʇɧɰɱɲɺɧʀɺɸɳʇɷɸɹɹ
93-
ʀɺʇɸʄɺɷʇɸʄɺɧʇɷʇɷɲʃʀʁɷɧʂɹɺɧɷɸʃɲɺɧ
65+
ʞʟʠʠʒʝʞʜʕʞʟʠʜʙʜʙʠʡʟʜʓʡʐʑʟʡʜʕʞʒʞʟ
66+
ʒʙʡʠʡʟʜʓʡʒʙʡʜʝʝʞʡʜʚʞʘʞʖʗʘʝʞʡʜʙʜʛ
67+
ʡʒʞʡʜʚʞʘʞʡʟ####################ʡ
68+
ʟʠ########ʠ####################ʟ
69+
ʠʡ########ʠ####################ʠ
70+
ʖʞ########ʡɰȰȰȰȰȰȰȰȰȰȰɱ########ʠ
71+
ʜʝʝʞʟʐʑʟʜʝʓȱ##########Ȳ########ʡ
72+
ʝʞʜʝʙʖʗʘʝʞʡȱ##########Ȳ########ʟ
73+
ʓ##########ȱ##########Ȳ########ʘ
74+
ʠ#ɩɪɫɬɭɮɯɟ#ȱ##########Ȳ########ʟ
75+
ʡ##########ȱ##########Ȳ########ʠ
76+
ʞ##ɀɁɂ#####ȱ##########Ȳʜʝʝʞʜʝʓʜʙ
77+
ʞ##ɐɑɒ#####ȱ##########ȲɰȰȰȰȰɱʡʟʜ
78+
ʞ##ɉɊɋ#####ȱ##########Ȳȱ####Ȳʒʙʜ
79+
ʟ##əɚɛ#####ȱ##########Ȳȱ####Ȳʡʒʞ
80+
ʠ##Ɇɇ######ȱ##########Ȳȱ####Ȳʜʙʐ
81+
ʠ##ɖɗɘ#####ȱ##########Ȳȱ####Ȳʒʞʖ
82+
ʡ##ɠɡ######ȱ##########Ȳȱ####Ȳʠʜʓ
83+
ʑ##ɢɣ######ȱ##########Ȳɲȳȳȳȳɳʡʟʠ
84+
ʗ##ɃɄɅ#####ȱ##########Ȳ#######ʠʡ
85+
ʞ##ɓɔɕ#####ȱ##########Ȳ#######ʠʜ
86+
ʞ##ɌɍɎ#####ȱ##########Ȳ#######ʡʟ
87+
ʟ##ɜɝɞ#####ȱ##########Ȳ#######ʜʛ
88+
ʙ##########ȱ##########Ȳʟʜʕʞʟʒʝʞʡ
89+
ʓ##ɤɥɦ#####ȱ##########Ȳʔʞʡʜʛʡʟʜʝ
90+
ʠ##########ȱ##########Ȳʡʜʝʓʡʒʙʒʞ
91+
ʡ##########ɲȳȳȳȳȳȳȳȳȳȳɳʟʐʑʡʟʡʜʙʟ
92+
ʟʟʜʕʞʒʝʞʟʜʓʜʓʟʒʞʒʝʞʜʝʝʞʠʖʗʜʛʟʜʝʙ
93+
ʠʘʓʡʟʡʟʒʙʟʘʞʠʠʠʟʡʟʐʑʒʞʟʖʞʜʓʡʠʜʝʝ
94+
ʖʞʡʜʚʞʠʡʜʚʞʟʡʠʡʠʒʙʖʗʠʟʘʝʞʟʠʜʙʒʞʟ
9495
`);
9596

9697
drawAttrs(buffer, [`

src/nametables/game_type_menu.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ drawTiles(buffer, lookup, `
7171
#a DISABLE PAUSE d#
7272
#a GOOFY FOOT d#
7373
#a BLOCK TOOL d#
74+
#a DARK MODE d#
7475
#a LINECAP d#
7576
#a DAS ONLY d#
7677
#a QUAL MODE d#

src/ram.asm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ disableFlashFlag: .res 1
349349
disablePauseFlag: .res 1
350350
goofyFlag: .res 1
351351
debugFlag: .res 1
352+
darkMode: .res 1
352353
linecapFlag: .res 1
353354
dasOnlyFlag: .res 1
354355
qualFlag: .res 1

0 commit comments

Comments
 (0)