@@ -11,11 +11,13 @@ gameModeState_initGameBackground:
11
11
.addr game_palette
12
12
jsr copyRleNametableToPpu
13
13
.addr game_nametable
14
+ jsr scoringBackground
15
+ jsr debugNametableUI
16
+
14
17
lda darkMode
15
18
beq @notDarkMode
16
19
jsr drawDarkMode
17
20
@notDarkMode:
18
- jsr scoringBackground
19
21
20
22
lda hzFlag
21
23
beq @noHz
@@ -29,7 +31,6 @@ gameModeState_initGameBackground:
29
31
sta tmp2
30
32
jsr displayModeText
31
33
jsr statisticsNametablePatch ; for input display
32
- jsr debugNametableUI
33
34
34
35
; ingame hearts
35
36
lda heartsAndReady
@@ -107,11 +108,6 @@ scoringBackground:
107
108
bne @noSevenDigit
108
109
jsr bulkCopyToPpu
109
110
.addr seven_digit_nametable
110
- lda darkMode
111
- beq @notDarkMode
112
- jsr bulkCopyToPpu
113
- .addr seven_digit_nametable_dark
114
- @notDarkMode:
115
111
116
112
@noSevenDigit:
117
113
@@ -161,7 +157,8 @@ MODENAMES
161
157
debugNametableUI:
162
158
lda debugFlag
163
159
beq @notDebug
164
- jsr saveStateNametableUI
160
+ jsr bulkCopyToPpu
161
+ .addr savestate_nametable
165
162
jsr saveSlotNametablePatch
166
163
@notDebug:
167
164
rts
@@ -175,13 +172,6 @@ saveSlotNametablePatch:
175
172
sta PPUDATA
176
173
rts
177
174
178
- saveStateNametableUI:
179
- lda darkMode
180
- bne @noDark
181
- jsr bulkCopyToPpu
182
- .addr savestate_nametable
183
- @noDark:
184
- rts
185
175
186
176
statisticsNametablePatch:
187
177
lda #$21
@@ -233,134 +223,95 @@ hzStats: ; stripe
233
223
.byte $FF
234
224
235
225
seven_digit_nametable:
236
- .byte $20 , $5F , $41 , $3a ; -
237
- .byte $20 , $7f , $C7 , $3c ; |
238
- .byte $21 , $5F , $41 , $3F ; -
226
+ .byte $20 , $5F , $41 , $75 ; -
227
+ .byte $20 , $7f , $C7 , $36 ; |
228
+ .byte $21 , $5F , $41 , $77 ; -
239
229
.byte $20 , $7E , $C7 , $FF ; |
240
- .byte $20 , $5E , $41 , $39 ; -
241
- .byte $21 , $5E , $41 , $3E ; -
230
+ .byte $20 , $5E , $41 , $34 ; -
231
+ .byte $21 , $5E , $41 , $37 ; -
242
232
.byte $21 , $1E , $41 , $0 ; 0
243
233
.byte $FF
244
234
245
- seven_digit_nametable_dark:
246
- .byte $20 , $5F , $41 , DARK_CORNER_TILES+1
247
- .byte $21 , $5F , $41 , DARK_CORNER_TILES+3
248
- .byte $FF
249
-
250
235
savestate_nametable:
251
- .byte $22 ,$F7 ,$8 ,$38 , $39 , $39 , $39 , $39 , $39 , $39 , $3A
252
- .byte $23 ,$17 ,$8 ,$3B ,$1C ,$15 ,$18 ,$1D ,$FF ,$FF ,$3C
253
- .byte $23 ,$37 ,$8 ,$3B ,$FF ,$FF ,$FF ,$FF ,$FF ,$FF ,$3C
254
- .byte $23 ,$57 ,$8 ,$3D , $3E , $3E , $3E , $3E , $3E , $3E , $3F
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
255
240
.byte $FF
256
241
257
- DARK_CORNER_TILES := $94
258
- DARK_CORNER_TILES2 := $90
242
+ NORMAL_CORNER_TILES := $70
243
+ DARK_CORNER_TILES := $80
259
244
260
245
drawDarkMode:
261
- jsr bulkCopyToPpu
262
- .addr darkmode_stripes
263
246
264
- ldx #0
265
- lda darkCorners, x
266
- @darkCornerLoop:
267
- stx tmpZ
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
268
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
269
inx
270
- lda darkCorners, x
270
+ cpx #16
271
+ bne @copyToBuffer
272
+
273
+ ; reset PPUADDR
274
+ lda tmpX
275
+ sta PPUADDR
276
+ lda tmpY
271
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
272
300
inx
301
+ cpx #16
302
+ bne @copyToNametable
303
+
273
304
clc
274
- lda #DARK_CORNER_TILES
275
- ldy tmpZ
276
- cpy #40
277
- bmi @notAlt
278
- lda #DARK_CORNER_TILES2
279
- @notAlt:
280
- sta tmpX
305
+ lda tmpY
306
+ adc #16
307
+ sta tmpY
308
+ bcc @noverflow
309
+ inc tmpX
310
+ @noverflow:
311
+
312
+ sec
281
313
lda tmpZ
282
- lsr
283
- and #$3
284
- adc tmpX
285
- sta PPUDATA
286
- lda darkCorners, x
287
- bne @darkCornerLoop
288
- @notDarkMode:
314
+ sbc #1
315
+ sta tmpZ
316
+ bne @processChunk
289
317
rts
290
-
291
- stripeHoriz = $40
292
- stripeVert = $C0
293
-
294
- darkmode_stripes:
295
- .byte $20 ,$00
296
- .byte $00 |stripeHoriz,$FF
297
- .byte $20 ,$40
298
- .byte $0B |stripeHoriz,$FF
299
- .byte $20 ,$60
300
- .byte $18 |stripeVert,$FF
301
- .byte $20 ,$61
302
- .byte $03 |stripeVert,$FF
303
- .byte $20 ,$6A
304
- .byte $05 |stripeVert,$FF
305
- .byte $20 ,$5F
306
- .byte $15 |stripeVert,$FF
307
- .byte $20 ,$C1
308
- .byte $09 |stripeHoriz,$FF
309
- .byte $20 ,$E1
310
- .byte $09 |stripeHoriz,$FF
311
- .byte $21 ,$77
312
- .byte $08 |stripeHoriz,$FF
313
- .byte $21 ,$9D
314
- .byte $07 |stripeVert,$FF
315
- .byte $21 ,$7E
316
- .byte $0C |stripeVert,$FF
317
- .byte $22 ,$F7
318
- .byte $09 |stripeHoriz,$FF
319
- .byte $23 ,$17
320
- .byte $09 |stripeHoriz,$FF
321
- .byte $23 ,$37
322
- .byte $09 |stripeHoriz,$FF
323
- .byte $23 ,$57
324
- .byte $00 |stripeHoriz,$FF
325
- .byte $23 ,$97
326
- .byte $29 |stripeHoriz,$FF
327
- .byte $FF
328
-
329
- darkCorners:
330
- ; mode
331
- .byte $20 ,$62
332
- .byte $20 ,$69
333
- .byte $20 ,$A2
334
- .byte $20 ,$A9
335
- ; stats
336
- .byte $21 ,$01
337
- .byte $21 ,$0A
338
- .byte $23 ,$41
339
- .byte $23 ,$4A
340
- ; lines
341
- .byte $20 ,$4B
342
- .byte $20 ,$56
343
- .byte $20 ,$8B
344
- .byte $20 ,$96
345
- ; score
346
- .byte $20 ,$57
347
- .byte $20 ,$5E
348
- .byte $21 ,$57
349
- .byte $21 ,$5E
350
- ; level
351
- .byte $22 ,$77
352
- .byte $22 ,$7D
353
- .byte $22 ,$D7
354
- .byte $22 ,$DD
355
- ; alt tiles
356
- ; next
357
- .byte $21 ,$97
358
- .byte $21 ,$9C
359
- .byte $22 ,$57
360
- .byte $22 ,$5c
361
- ; game
362
- .byte $20 ,$AB
363
- .byte $20 ,$B6
364
- .byte $23 ,$4B
365
- .byte $23 ,$56
366
- .byte $0
0 commit comments