Fix water world palette table

This commit is contained in:
Lucas Scharenbroich 2023-06-06 10:57:23 -05:00
parent a2a0d3af9d
commit c2b37fdb71
5 changed files with 50 additions and 48 deletions

View File

@ -191,19 +191,19 @@ EvtLoop
beq :spin
stz nmiCount
; sep #$20
; lda #0
; stal ROMBase+$075f
; stal ROMBase+$0766
sep #$20
lda #1
stal ROMBase+$075f
stal ROMBase+$0766
; lda #3
; stal ROMBase+$0763
; stal ROMBase+$075c
lda #1
stal ROMBase+$0763
stal ROMBase+$075c
; lda #4
; stal ROMBase+$0767
; stal ROMBase+$0760
; rep #$30
lda #2
stal ROMBase+$0767
stal ROMBase+$0760
rep #$30
; The GTE playfield is 41 tiles wide, but the NES is 32 tiles wide. Fortunately, the game
; keeps track of the global coordinates of each level at
@ -423,8 +423,8 @@ SetAreaType
:out
rts
AreaPalettes dw Area1Palette,Area1Palette,Area2Palette,Area3Palette,Area4Palette
SwizzleTables adrl AT1_T0,AT1_T0,AT2_T0,AT3_T0,AT2_T0
AreaPalettes dw WaterPalette,Area1Palette,Area2Palette,Area3Palette,Area4Palette
SwizzleTables adrl AT0_T0,AT1_T0,AT2_T0,AT3_T0,AT2_T0
SwizzlePtr adrl AT1_T0
; Take a PPU address and convert it to a tile store coordinate
@ -1585,6 +1585,8 @@ CHR_ROM put chr2.s ; 8K of CHR-ROM at PPU memory $0000 - $2000
PPU_NT ds $2000 ; Nametable memory from $2000 - $3000, $3F00 - $3F14 is palette RAM
PPU_OAM ds 256 ; 256 bytes of separate OAM RAM
; If AreaStyle is 1 then load an alternate palette 'b'
;
; Palettes of NES color indexes
Area1Palette dw $22, $00, $29, $1A, $0F, $36, $17, $30, $21, $27, $1A, $16, $00, $00, $16, $18
Area4Palette

View File

@ -29,11 +29,11 @@ node swizzle.js AT3_S2 5 2 7
node swizzle.js AT3_S3 11 2 3
# Area Type $00, Water
node swizzle.js ATx_T0 2 3 4
node swizzle.js ATx_T1 5 6 7
node swizzle.js ATx_T2 8 9 7
node swizzle.js ATx_T3 1 9 7
node swizzle.js ATx_S0 15 10 14
node swizzle.js ATx_S1 11 8 10
node swizzle.js ATx_S2 12 8 10
node swizzle.js ATx_S3 7 8 11
node swizzle.js AT0_T0 2 3 4
node swizzle.js AT0_T1 5 6 7
node swizzle.js AT0_T2 8 9 7
node swizzle.js AT0_T3 1 9 7
node swizzle.js AT0_S0 14 10 15
node swizzle.js AT0_S1 11 8 10
node swizzle.js AT0_S2 12 8 10
node swizzle.js AT0_S3 7 8 11

View File

@ -406,7 +406,7 @@ AT3_S3
dw $003b,$0b3b,$023b,$033b,$b03b,$bb3b,$b23b,$b33b,$203b,$2b3b,$223b,$233b,$303b,$3b3b,$323b,$333b
dw $0032,$0b32,$0232,$0332,$b032,$bb32,$b232,$b332,$2032,$2b32,$2232,$2332,$3032,$3b32,$3232,$3332
dw $0033,$0b33,$0233,$0333,$b033,$bb33,$b233,$b333,$2033,$2b33,$2233,$2333,$3033,$3b33,$3233,$3333
ATx_T0
AT0_T0
dw $0000,$0200,$0300,$0400,$2000,$2200,$2300,$2400,$3000,$3200,$3300,$3400,$4000,$4200,$4300,$4400
dw $0002,$0202,$0302,$0402,$2002,$2202,$2302,$2402,$3002,$3202,$3302,$3402,$4002,$4202,$4302,$4402
dw $0003,$0203,$0303,$0403,$2003,$2203,$2303,$2403,$3003,$3203,$3303,$3403,$4003,$4203,$4303,$4403
@ -423,7 +423,7 @@ ATx_T0
dw $0042,$0242,$0342,$0442,$2042,$2242,$2342,$2442,$3042,$3242,$3342,$3442,$4042,$4242,$4342,$4442
dw $0043,$0243,$0343,$0443,$2043,$2243,$2343,$2443,$3043,$3243,$3343,$3443,$4043,$4243,$4343,$4443
dw $0044,$0244,$0344,$0444,$2044,$2244,$2344,$2444,$3044,$3244,$3344,$3444,$4044,$4244,$4344,$4444
ATx_T1
AT0_T1
dw $0000,$0500,$0600,$0700,$5000,$5500,$5600,$5700,$6000,$6500,$6600,$6700,$7000,$7500,$7600,$7700
dw $0005,$0505,$0605,$0705,$5005,$5505,$5605,$5705,$6005,$6505,$6605,$6705,$7005,$7505,$7605,$7705
dw $0006,$0506,$0606,$0706,$5006,$5506,$5606,$5706,$6006,$6506,$6606,$6706,$7006,$7506,$7606,$7706
@ -440,7 +440,7 @@ ATx_T1
dw $0075,$0575,$0675,$0775,$5075,$5575,$5675,$5775,$6075,$6575,$6675,$6775,$7075,$7575,$7675,$7775
dw $0076,$0576,$0676,$0776,$5076,$5576,$5676,$5776,$6076,$6576,$6676,$6776,$7076,$7576,$7676,$7776
dw $0077,$0577,$0677,$0777,$5077,$5577,$5677,$5777,$6077,$6577,$6677,$6777,$7077,$7577,$7677,$7777
ATx_T2
AT0_T2
dw $0000,$0800,$0900,$0700,$8000,$8800,$8900,$8700,$9000,$9800,$9900,$9700,$7000,$7800,$7900,$7700
dw $0008,$0808,$0908,$0708,$8008,$8808,$8908,$8708,$9008,$9808,$9908,$9708,$7008,$7808,$7908,$7708
dw $0009,$0809,$0909,$0709,$8009,$8809,$8909,$8709,$9009,$9809,$9909,$9709,$7009,$7809,$7909,$7709
@ -457,7 +457,7 @@ ATx_T2
dw $0078,$0878,$0978,$0778,$8078,$8878,$8978,$8778,$9078,$9878,$9978,$9778,$7078,$7878,$7978,$7778
dw $0079,$0879,$0979,$0779,$8079,$8879,$8979,$8779,$9079,$9879,$9979,$9779,$7079,$7879,$7979,$7779
dw $0077,$0877,$0977,$0777,$8077,$8877,$8977,$8777,$9077,$9877,$9977,$9777,$7077,$7877,$7977,$7777
ATx_T3
AT0_T3
dw $0000,$0100,$0900,$0700,$1000,$1100,$1900,$1700,$9000,$9100,$9900,$9700,$7000,$7100,$7900,$7700
dw $0001,$0101,$0901,$0701,$1001,$1101,$1901,$1701,$9001,$9101,$9901,$9701,$7001,$7101,$7901,$7701
dw $0009,$0109,$0909,$0709,$1009,$1109,$1909,$1709,$9009,$9109,$9909,$9709,$7009,$7109,$7909,$7709
@ -474,24 +474,24 @@ ATx_T3
dw $0071,$0171,$0971,$0771,$1071,$1171,$1971,$1771,$9071,$9171,$9971,$9771,$7071,$7171,$7971,$7771
dw $0079,$0179,$0979,$0779,$1079,$1179,$1979,$1779,$9079,$9179,$9979,$9779,$7079,$7179,$7979,$7779
dw $0077,$0177,$0977,$0777,$1077,$1177,$1977,$1777,$9077,$9177,$9977,$9777,$7077,$7177,$7977,$7777
ATx_S0
dw $0000,$0f00,$0a00,$0e00,$f000,$ff00,$fa00,$fe00,$a000,$af00,$aa00,$ae00,$e000,$ef00,$ea00,$ee00
dw $000f,$0f0f,$0a0f,$0e0f,$f00f,$ff0f,$fa0f,$fe0f,$a00f,$af0f,$aa0f,$ae0f,$e00f,$ef0f,$ea0f,$ee0f
dw $000a,$0f0a,$0a0a,$0e0a,$f00a,$ff0a,$fa0a,$fe0a,$a00a,$af0a,$aa0a,$ae0a,$e00a,$ef0a,$ea0a,$ee0a
dw $000e,$0f0e,$0a0e,$0e0e,$f00e,$ff0e,$fa0e,$fe0e,$a00e,$af0e,$aa0e,$ae0e,$e00e,$ef0e,$ea0e,$ee0e
dw $00f0,$0ff0,$0af0,$0ef0,$f0f0,$fff0,$faf0,$fef0,$a0f0,$aff0,$aaf0,$aef0,$e0f0,$eff0,$eaf0,$eef0
dw $00ff,$0fff,$0aff,$0eff,$f0ff,$ffff,$faff,$feff,$a0ff,$afff,$aaff,$aeff,$e0ff,$efff,$eaff,$eeff
dw $00fa,$0ffa,$0afa,$0efa,$f0fa,$fffa,$fafa,$fefa,$a0fa,$affa,$aafa,$aefa,$e0fa,$effa,$eafa,$eefa
dw $00fe,$0ffe,$0afe,$0efe,$f0fe,$fffe,$fafe,$fefe,$a0fe,$affe,$aafe,$aefe,$e0fe,$effe,$eafe,$eefe
dw $00a0,$0fa0,$0aa0,$0ea0,$f0a0,$ffa0,$faa0,$fea0,$a0a0,$afa0,$aaa0,$aea0,$e0a0,$efa0,$eaa0,$eea0
dw $00af,$0faf,$0aaf,$0eaf,$f0af,$ffaf,$faaf,$feaf,$a0af,$afaf,$aaaf,$aeaf,$e0af,$efaf,$eaaf,$eeaf
dw $00aa,$0faa,$0aaa,$0eaa,$f0aa,$ffaa,$faaa,$feaa,$a0aa,$afaa,$aaaa,$aeaa,$e0aa,$efaa,$eaaa,$eeaa
dw $00ae,$0fae,$0aae,$0eae,$f0ae,$ffae,$faae,$feae,$a0ae,$afae,$aaae,$aeae,$e0ae,$efae,$eaae,$eeae
dw $00e0,$0fe0,$0ae0,$0ee0,$f0e0,$ffe0,$fae0,$fee0,$a0e0,$afe0,$aae0,$aee0,$e0e0,$efe0,$eae0,$eee0
dw $00ef,$0fef,$0aef,$0eef,$f0ef,$ffef,$faef,$feef,$a0ef,$afef,$aaef,$aeef,$e0ef,$efef,$eaef,$eeef
dw $00ea,$0fea,$0aea,$0eea,$f0ea,$ffea,$faea,$feea,$a0ea,$afea,$aaea,$aeea,$e0ea,$efea,$eaea,$eeea
dw $00ee,$0fee,$0aee,$0eee,$f0ee,$ffee,$faee,$feee,$a0ee,$afee,$aaee,$aeee,$e0ee,$efee,$eaee,$eeee
ATx_S1
AT0_S0
dw $0000,$0e00,$0a00,$0f00,$e000,$ee00,$ea00,$ef00,$a000,$ae00,$aa00,$af00,$f000,$fe00,$fa00,$ff00
dw $000e,$0e0e,$0a0e,$0f0e,$e00e,$ee0e,$ea0e,$ef0e,$a00e,$ae0e,$aa0e,$af0e,$f00e,$fe0e,$fa0e,$ff0e
dw $000a,$0e0a,$0a0a,$0f0a,$e00a,$ee0a,$ea0a,$ef0a,$a00a,$ae0a,$aa0a,$af0a,$f00a,$fe0a,$fa0a,$ff0a
dw $000f,$0e0f,$0a0f,$0f0f,$e00f,$ee0f,$ea0f,$ef0f,$a00f,$ae0f,$aa0f,$af0f,$f00f,$fe0f,$fa0f,$ff0f
dw $00e0,$0ee0,$0ae0,$0fe0,$e0e0,$eee0,$eae0,$efe0,$a0e0,$aee0,$aae0,$afe0,$f0e0,$fee0,$fae0,$ffe0
dw $00ee,$0eee,$0aee,$0fee,$e0ee,$eeee,$eaee,$efee,$a0ee,$aeee,$aaee,$afee,$f0ee,$feee,$faee,$ffee
dw $00ea,$0eea,$0aea,$0fea,$e0ea,$eeea,$eaea,$efea,$a0ea,$aeea,$aaea,$afea,$f0ea,$feea,$faea,$ffea
dw $00ef,$0eef,$0aef,$0fef,$e0ef,$eeef,$eaef,$efef,$a0ef,$aeef,$aaef,$afef,$f0ef,$feef,$faef,$ffef
dw $00a0,$0ea0,$0aa0,$0fa0,$e0a0,$eea0,$eaa0,$efa0,$a0a0,$aea0,$aaa0,$afa0,$f0a0,$fea0,$faa0,$ffa0
dw $00ae,$0eae,$0aae,$0fae,$e0ae,$eeae,$eaae,$efae,$a0ae,$aeae,$aaae,$afae,$f0ae,$feae,$faae,$ffae
dw $00aa,$0eaa,$0aaa,$0faa,$e0aa,$eeaa,$eaaa,$efaa,$a0aa,$aeaa,$aaaa,$afaa,$f0aa,$feaa,$faaa,$ffaa
dw $00af,$0eaf,$0aaf,$0faf,$e0af,$eeaf,$eaaf,$efaf,$a0af,$aeaf,$aaaf,$afaf,$f0af,$feaf,$faaf,$ffaf
dw $00f0,$0ef0,$0af0,$0ff0,$e0f0,$eef0,$eaf0,$eff0,$a0f0,$aef0,$aaf0,$aff0,$f0f0,$fef0,$faf0,$fff0
dw $00fe,$0efe,$0afe,$0ffe,$e0fe,$eefe,$eafe,$effe,$a0fe,$aefe,$aafe,$affe,$f0fe,$fefe,$fafe,$fffe
dw $00fa,$0efa,$0afa,$0ffa,$e0fa,$eefa,$eafa,$effa,$a0fa,$aefa,$aafa,$affa,$f0fa,$fefa,$fafa,$fffa
dw $00ff,$0eff,$0aff,$0fff,$e0ff,$eeff,$eaff,$efff,$a0ff,$aeff,$aaff,$afff,$f0ff,$feff,$faff,$ffff
AT0_S1
dw $0000,$0b00,$0800,$0a00,$b000,$bb00,$b800,$ba00,$8000,$8b00,$8800,$8a00,$a000,$ab00,$a800,$aa00
dw $000b,$0b0b,$080b,$0a0b,$b00b,$bb0b,$b80b,$ba0b,$800b,$8b0b,$880b,$8a0b,$a00b,$ab0b,$a80b,$aa0b
dw $0008,$0b08,$0808,$0a08,$b008,$bb08,$b808,$ba08,$8008,$8b08,$8808,$8a08,$a008,$ab08,$a808,$aa08
@ -508,7 +508,7 @@ ATx_S1
dw $00ab,$0bab,$08ab,$0aab,$b0ab,$bbab,$b8ab,$baab,$80ab,$8bab,$88ab,$8aab,$a0ab,$abab,$a8ab,$aaab
dw $00a8,$0ba8,$08a8,$0aa8,$b0a8,$bba8,$b8a8,$baa8,$80a8,$8ba8,$88a8,$8aa8,$a0a8,$aba8,$a8a8,$aaa8
dw $00aa,$0baa,$08aa,$0aaa,$b0aa,$bbaa,$b8aa,$baaa,$80aa,$8baa,$88aa,$8aaa,$a0aa,$abaa,$a8aa,$aaaa
ATx_S2
AT0_S2
dw $0000,$0c00,$0800,$0a00,$c000,$cc00,$c800,$ca00,$8000,$8c00,$8800,$8a00,$a000,$ac00,$a800,$aa00
dw $000c,$0c0c,$080c,$0a0c,$c00c,$cc0c,$c80c,$ca0c,$800c,$8c0c,$880c,$8a0c,$a00c,$ac0c,$a80c,$aa0c
dw $0008,$0c08,$0808,$0a08,$c008,$cc08,$c808,$ca08,$8008,$8c08,$8808,$8a08,$a008,$ac08,$a808,$aa08
@ -525,7 +525,7 @@ ATx_S2
dw $00ac,$0cac,$08ac,$0aac,$c0ac,$ccac,$c8ac,$caac,$80ac,$8cac,$88ac,$8aac,$a0ac,$acac,$a8ac,$aaac
dw $00a8,$0ca8,$08a8,$0aa8,$c0a8,$cca8,$c8a8,$caa8,$80a8,$8ca8,$88a8,$8aa8,$a0a8,$aca8,$a8a8,$aaa8
dw $00aa,$0caa,$08aa,$0aaa,$c0aa,$ccaa,$c8aa,$caaa,$80aa,$8caa,$88aa,$8aaa,$a0aa,$acaa,$a8aa,$aaaa
ATx_S3
AT0_S3
dw $0000,$0700,$0800,$0b00,$7000,$7700,$7800,$7b00,$8000,$8700,$8800,$8b00,$b000,$b700,$b800,$bb00
dw $0007,$0707,$0807,$0b07,$7007,$7707,$7807,$7b07,$8007,$8707,$8807,$8b07,$b007,$b707,$b807,$bb07
dw $0008,$0708,$0808,$0b08,$7008,$7708,$7808,$7b08,$8008,$8708,$8808,$8b08,$b008,$b708,$b808,$bb08

View File

@ -160,7 +160,7 @@ nesPalette
; T1: 0 5 6 7
; T2: 0 8 9 7
; T3: 0 1 9 7
; S0: 0 F A E
; S0: 0 E A F
; S1: 0 B 8 A
; S2: 0 C 8 A
; S3: 0 7 8 B

View File

@ -2044,7 +2044,7 @@ ColorRotation
cpx #$31
bcs ExitColorRot ;if offset over 48 bytes, branch to leave
tay ;otherwise use frame counter's 3 LSB as offset here
GetBlankPal lda BlankPalette,y ;get blank palette for palette 3
GetBlankPal lda BlankPalette,y ;get blank palette for palette 3
sta VRAM_Buffer1,x ;store it in the vram buffer
inx ;increment offsets
iny
@ -2057,7 +2057,7 @@ GetBlankPal lda BlankPalette,y ;get blank palette for palette 3
asl ;multiply by 4 to get proper offset
asl
tay ;save as offset here
GetAreaPal lda Palette3Data,y ;fetch palette to be written based on area type
GetAreaPal lda Palette3Data,y ;fetch palette to be written based on area type
sta VRAM_Buffer1+3,x ;store it to overwrite blank palette in vram buffer
iny
inx