Skip to content

Commit 6af4023

Browse files
Merge pull request #86 from zohassadar/palettes
reduce palette table size + add tests
2 parents ca30007 + 41da8e0 commit 6af4023

File tree

3 files changed

+365
-36
lines changed

3 files changed

+365
-36
lines changed

src/nmi/render_mode_play_and_demo.asm

Lines changed: 68 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -321,52 +321,84 @@ updatePaletteForLevel:
321321
jmp @mod10
322322

323323
@copyPalettes:
324-
asl a
325-
asl a
324+
and #$3F
326325
tax
327-
lda #$00
328-
sta generalCounter
329-
@copyPalette:
330326
lda #$3F
331327
sta PPUADDR
332-
lda #$08
333-
clc
334-
adc generalCounter
328+
lda #$09
335329
sta PPUADDR
336-
lda colorTable,x
330+
lda colorTable0,x
337331
sta PPUDATA
338-
lda colorTable+1,x
332+
lda colorTable1,x
339333
sta PPUDATA
340-
lda colorTable+1+1,x
334+
lda colorTable2,x
341335
sta PPUDATA
342-
lda colorTable+1+1+1,x
336+
lda #$3F
337+
sta PPUADDR
338+
lda #$19
339+
sta PPUADDR
340+
lda colorTable0,x
341+
sta PPUDATA
342+
lda colorTable1,x
343+
sta PPUDATA
344+
lda colorTable2,x
343345
sta PPUDATA
344-
lda generalCounter
345-
clc
346-
adc #$10
347-
sta generalCounter
348-
cmp #$20
349-
bne @copyPalette
350346
rts
351347

352-
; 4 bytes per level (bg, fg, c3, c4)
353-
colorTable:
354-
.dbyt $0F30,$2112,$0F30,$291A,$0F30,$2414,$0F30,$2A12
355-
.dbyt $0F30,$2B15,$0F30,$222B,$0F30,$0016,$0F30,$0513
356-
.dbyt $0F30,$1612,$0F30,$2716,$60E6,$69A5,$69C9,$1430
357-
.dbyt $04A9,$2085,$69E6,$89A5,$89C9,$1430,$04A9,$2085
358-
.dbyt $8960,$A549,$C920,$3056,$A5BE,$C901,$F020,$A5A4
359-
.dbyt $C900,$D00E,$E6A4,$A5B7,$85A5,$20EB,$9885,$A64C
360-
.dbyt $EA98,$A5A5,$C5B7,$D036,$A5A4,$C91C,$D030,$A900
361-
.dbyt $85A4,$8545,$8541,$A901,$8548,$A905,$8540,$A6BF
362-
.dbyt $BD56,$9985,$4220,$6999,$A5BE,$C901,$F007,$A5A6
363-
.dbyt $85BF,$4CE6,$9820,$EB98,$85BF,$A900,$854E,$60A5
364-
.dbyt $C0C9,$05D0,$12A6,$D3E6,$D3BD,$00DF,$4A4A,$4A4A
365-
.dbyt $2907,$AABD,$4E99,$6020,$0799,$60E6,$1AA5,$1718
366-
.dbyt $651A,$2907,$C907,$F008,$AABD,$4E99,$C519,$D01C
367-
.dbyt $A217,$A002,$2047,$ABA5,$1729,$0718,$6519,$C907
368-
.dbyt $9006,$38E9,$074C,$2A99,$AABD,$4E99,$8519,$6000
369-
.dbyt $0000,$0001,$0101,$0102,$0203,$0404,$0505,$0505
348+
; 3 bytes per level in separate tables
349+
colorTable0:
350+
.byte $30,$30,$30,$30
351+
.byte $30,$30,$30,$30
352+
.byte $30,$30,$E6,$C9
353+
.byte $A9,$E6,$C9,$A9
354+
.byte $60,$20,$BE,$20
355+
.byte $00,$A4,$A5,$85
356+
.byte $98,$B7,$A4,$30
357+
.byte $A4,$41,$48,$40
358+
.byte $56,$20,$BE,$07
359+
.byte $BF,$20,$BF,$4E
360+
.byte $C9,$A6,$BD,$4A
361+
.byte $07,$99,$99,$A5
362+
.byte $1A,$07,$BD,$19
363+
.byte $17,$47,$29,$19
364+
.byte $06,$4C,$BD,$19
365+
.byte $00,$01,$03,$05
366+
367+
colorTable1:
368+
.byte $21,$29,$24,$2A
369+
.byte $2B,$22,$00,$05
370+
.byte $16,$27,$69,$14
371+
.byte $20,$89,$14,$20
372+
.byte $A5,$30,$C9,$A5
373+
.byte $D0,$A5,$20,$A6
374+
.byte $A5,$D0,$C9,$A9
375+
.byte $85,$A9,$A9,$A6
376+
.byte $99,$69,$C9,$A5
377+
.byte $4C,$EB,$A9,$60
378+
.byte $05,$D3,$00,$4A
379+
.byte $AA,$60,$60,$17
380+
.byte $29,$F0,$4E,$D0
381+
.byte $A0,$AB,$07,$C9
382+
.byte $38,$2A,$4E,$60
383+
.byte $00,$01,$04,$05
384+
385+
colorTable2:
386+
.byte $12,$1A,$14,$12
387+
.byte $15,$2B,$16,$13
388+
.byte $12,$16,$A5,$30
389+
.byte $85,$A5,$30,$85
390+
.byte $49,$56,$01,$A4
391+
.byte $0E,$B7,$EB,$4C
392+
.byte $A5,$36,$1C,$00
393+
.byte $45,$01,$05,$BF
394+
.byte $85,$99,$01,$A6
395+
.byte $E6,$98,$00,$A5
396+
.byte $D0,$E6,$DF,$4A
397+
.byte $BD,$20,$E6,$18
398+
.byte $07,$08,$99,$1C
399+
.byte $02,$A5,$18,$07
400+
.byte $E9,$99,$99,$00
401+
.byte $01,$02,$04,$05
370402

371403
incrementPieceStat:
372404
tax

tests/src/main.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ mod video;
99
mod drought;
1010
mod floor;
1111
mod garbage;
12+
mod palettes;
1213
mod pushdown;
1314
mod rng;
1415
mod score;
@@ -63,6 +64,8 @@ fn main() {
6364
println!(">> rng seeds ✅");
6465
sps::test();
6566
println!(">> sps ✅");
67+
palettes::test_palettes();
68+
println!(">> palettes ✅");
6669
}
6770

6871
// count cycles

0 commit comments

Comments
 (0)