summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xengine/color.asm95
-rw-r--r--home/palettes.asm8
-rwxr-xr-xpredef/cgb.asm874
-rwxr-xr-xpredef/sgb.asm6
-rw-r--r--wram.asm19
5 files changed, 903 insertions, 99 deletions
diff --git a/engine/color.asm b/engine/color.asm
index c6cb3553..872fcefa 100755
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -121,11 +121,11 @@ Function9102:
call CheckCGB
ret z
ld hl, .BGPal
- ld de, wUnknBGPals
+ ld de, wTempBGPals
ld bc, $8
call CopyBytes
ld hl, .OBPal
- ld de, wUnknOBPals
+ ld de, wTempOBPals
ld bc, $8
call CopyBytes
call Function9b28
@@ -164,7 +164,7 @@ Function9144:
jp PushSGBPals_
.asm_9153
- ld de, wUnknOBPals
+ ld de, wTempOBPals
ld a, $3b
call Function9ac7
jp Function9ad2
@@ -179,7 +179,7 @@ Function915e:
jp PushSGBPals_
.asm_916d
- ld de, wUnknOBPals
+ ld de, wTempOBPals
ld a, $3c
call Function9ac7
jp Function9ad2
@@ -210,7 +210,7 @@ Function9178:
jp PushSGBPals_
.asm_91a9
- ld de, wUnknOBPals
+ ld de, wTempOBPals
ld a, c
call Function9be4
call Function9adb
@@ -260,7 +260,7 @@ ApplyMonOrTrainerPals: ; 91e5 (2:51e5)
ld a, [wTrainerClass]
call Function9bda
.asm_91fb
- ld de, wUnknBGPals
+ ld de, wTempBGPals
call Function9adb
call Function9b1d
call Function9b35
@@ -324,11 +324,11 @@ LoadStatsScreenPals:
add hl, bc
add hl, bc
ld a, [hli]
- ld [wUnknBGPals], a
- ld [wUnknBGPals + $10], a
+ ld [wTempBGPals], a
+ ld [wTempBGPals + $10], a
ld a, [hl]
- ld [wUnknBGPals + 1], a
- ld [wUnknBGPals + $11], a
+ ld [wTempBGPals + 1], a
+ ld [wTempBGPals + $11], a
call Function9b28
ld a, $1
ld [hCGBPalUpdate], a
@@ -367,7 +367,7 @@ LoadMailPalettes:
ret
.asm_92ae
- ld de, wUnknBGPals
+ ld de, wTempBGPals
ld bc, $8
call CopyBytes
call Function9b28
@@ -431,7 +431,9 @@ INCLUDE "predef/cgb.asm"
Function9a94:
dr $9a94, $9ab2
Function9ab2:
- dr $9ab2, $9ac7
+ dr $9ab2, $9ab7
+Function9ab7:
+ dr $9ab7, $9ac7
Function9ac7:
dr $9ac7, $9ad2
Function9ad2:
@@ -463,7 +465,9 @@ Function9bd3:
Function9bda:
dr $9bda, $9be4
Function9be4:
- dr $9be4, $9c76
+ dr $9be4, $9c09
+Palettes_9c09:
+ dr $9c09, $9c76
PushSGBPals_:
dr $9c76, $9cc0
InitSGBBorder:
@@ -514,13 +518,17 @@ PalPacket_a005:
dr $a005, $a015
PalPacket_a015:
- dr $a015, $a025
+ db $51
+Palettes_a016:
+ dr $a016, $a025
PalPacket_a025:
dr $a025, $a035
PalPacket_a035:
- dr $a035, $a045
+ db $51
+Palettes_a036:
+ dr $a036, $a045
PalPacket_a045:
dr $a045, $a055
@@ -534,15 +542,24 @@ PalPacket_a095:
dr $a095, $a0a5
PalPacket_a0a5:
- dr $a0a5, $a0b5
+ db $51
+Palettes_a0a6:
+ dr $a0a6, $a0b5
PalPacket_a0b5:
- dr $a0b5, $a0c5
+ db $51
+Palettes_a0b6:
+ dr $a0b6, $a0c5
+
PalPacket_a0c5:
- dr $a0c5, $a0d5
+ db $51
+Palettes_a0c6:
+ dr $a0c6, $a0d5
PalPacket_a0d5:
- dr $a0d5, $a0e5
+ db $51
+Palettes_a0d6:
+ dr $a0d6, $a0e5
PalPacket_a0e5:
dr $a0e5, $a105
@@ -551,13 +568,19 @@ PalPacket_a105:
dr $a105, $a115
PalPacket_a115:
- dr $a115, $a125
+ db $51
+Palettes_a116:
+ dr $a116, $a125
PalPacket_a125:
- dr $a125, $a135
+ db $51
+Palettes_a126:
+ dr $a126, $a135
PalPacket_a135:
- dr $a135, $a145
+ db $51
+Palettes_a136:
+ dr $a136, $a145
PalPacket_a145:
dr $a145, $a155
@@ -567,8 +590,30 @@ PalPacket_a155:
PalPacket_a165:
dr $a165, $ad2d
-BlkPacket_ad2d:
- dr $ad2d, $ad3d
+Palettes_ad2d:
+ dr $ad2d, $ad39
+Palettes_ad39:
+ dr $ad39, $ad3d
BlkPacket_ad3d:
- dr $ad3d, $bc3a
+ dr $ad3d, $b649
+
+Functionb649:
+ dr $b649, $b796
+Palettes_b796:
+ dr $b796, $ba86
+
+Palettes_ba86:
+ dr $ba86, $bac6
+Palettes_bac6:
+ dr $bac6, $bb36
+Palettes_bb36:
+ dr $bb36, $bb5e
+Palettes_bb5e:
+ dr $bb5e, $bb6e
+Palettes_bb6e:
+ dr $bb6e, $bb9e
+Palettes_bb9e:
+ dr $bb9e, $bbbe
+Palettes_bbbe:
+ dr $bbbe, $bc3a
diff --git a/home/palettes.asm b/home/palettes.asm
index 384df17b..1fcc7ad8 100644
--- a/home/palettes.asm
+++ b/home/palettes.asm
@@ -43,7 +43,7 @@ DmgToCgbBGPals:: ; c61 (0:0c61)
push de
push bc
ld hl, wBGPals
- ld de, wUnknBGPals
+ ld de, wTempBGPals
ld a, [rBGP]
ld b, a
ld c, $8
@@ -69,7 +69,7 @@ DmgToCgbObjPals:: ; c83 (0:0c83)
push de
push bc
ld hl, wOBPals
- ld de, wUnknOBPals
+ ld de, wTempOBPals
ld a, [rOBP0]
ld b, a
ld c, $8
@@ -91,7 +91,7 @@ DmgToCgbObjPal0::
push de
push bc
ld hl, wOBPals
- ld de, wUnknOBPals
+ ld de, wTempOBPals
ld a, [rOBP0]
ld b, a
ld c, $1
@@ -115,7 +115,7 @@ DmgToCgbObjPal1::
push de
push bc
ld hl, wOBPals + 1 palettes
- ld de, wUnknOBPals + 1 palettes
+ ld de, wTempOBPals + 1 palettes
ld a, [rOBP1]
ld b, a
ld c, $1
diff --git a/predef/cgb.asm b/predef/cgb.asm
index 96dea80e..9b141ff4 100755
--- a/predef/cgb.asm
+++ b/predef/cgb.asm
@@ -61,98 +61,846 @@ Predef_LoadSGBLayoutCGB:
dw Function9a47
dw Function9502
-Function9376:
- dr $9376, $9399
+Function9376: ; 9376 (2:5376)
+ ld hl, Palettes_a0d6
+ ld de, wTempBGPals
+ ld c, $4
+ call Function9ab7
+ ld hl, Palettes_a0d6
+ ld de, wTempBGPal4
+ ld c, $4
+ call Function9ab7
+ ld hl, Palettes_a0d6
+ ld de, wTempOBPals
+ ld c, $2
+ call Function9ab7
+ jr asm_93e1
+
+Function9399: ; 9399 (2:5399)
+ ld de, wTempBGPal0
+ call Function9ba9
+ push hl
+ call Function9adb
+ call Function9bba
+ push hl
+ call Function9adb
+ ld a, [wcc9a]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, Palettes_ad2d
+ add hl, bc
+ call Function9adb
+ ld a, [wcc99]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, Palettes_ad2d
+ add hl, bc
+ call Function9adb
+ ld hl, Palettes_ad39
+ call Function9adb
+ ld de, wTempOBPals
+ pop hl
+ call Function9adb
+ pop hl
+ call Function9adb
+ ld a, $1
+ ld [wColorLayoutPredefID], a
+ call Function9b28
+asm_93e1
+ ld hl, Palettes_b796
+ ld de, wTempBGPal7
+ ld bc, $8
+ call CopyBytes
+ hlcoord 0, 0, wAttrMap
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, $2
+ call ByteFill
+ hlcoord 0, 4, wAttrMap
+ lb bc, $8, $a
+ ld a, $0
+ call Function9af1
+ hlcoord 10, 0, wAttrMap
+ lb bc, $7, $a
+ ld a, $1
+ call Function9af1
+ hlcoord 0, 0, wAttrMap
+ lb bc, $4, $a
+ ld a, $2
+ call Function9af1
+ hlcoord 10, 7, wAttrMap
+ lb bc, $5, $a
+ ld a, $3
+ call Function9af1
+ hlcoord 10, 11, wAttrMap
+ lb bc, $1, $9
+ ld a, $4
+ call Function9af1
+ hlcoord 0, 12, wAttrMap
+ ld bc, $78
+ ld a, $7
+ call ByteFill
+ ld hl, Palettes_9c09
+ ld de, wTempOBPal2
+ ld bc, $30
+ call CopyBytes
+ call Function9b35
+ ret
+
+Function944a: ; 944a (2:544a)
+ ld hl, Palettes_bb6e
+ ld de, wTempBGPal0
+ ld bc, $30
+ call CopyBytes
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+
+Function945e: ; 945e (2:545e)
+ ld de, wTempBGPal0
+ ld a, [wcca1]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, Palettes_ad2d
+ add hl, bc
+ call Function9adb
+ ld a, [wd004]
+ ld bc, wTempMonDVs
+ call Function9bcb
+ call Function9adb
+ ld hl, Palettes_ad39
+ call Function9adb
+ ld hl, Palettes_94d3
+ ld de, wTempBGPal3
+ ld bc, $18
+ call CopyBytes
+ call Function9b1d
+ hlcoord 0, 0, wAttrMap
+ lb bc, $8, $14
+ ld a, $1
+ call Function9af1
+ hlcoord 10, 16, wAttrMap
+ ld bc, $a
+ ld a, $2
+ call ByteFill
+ hlcoord 13, 5, wAttrMap
+ lb bc, $2, $2
+ ld a, $3
+ call Function9af1
+ hlcoord 15, 5, wAttrMap
+ lb bc, $2, $2
+ ld a, $4
+ call Function9af1
+ hlcoord 17, 5, wAttrMap
+ lb bc, $2, $2
+ ld a, $5
+ call Function9af1
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function9399:
- dr $9399, $944a
+Palettes_94d3:
+ RGB 31, 31, 31
+ RGB 31, 19, 31
+ RGB 31, 15, 31
+ RGB 00, 00, 00
-Function944a:
- dr $944a, $945e
+ RGB 31, 31, 31
+ RGB 21, 31, 14
+ RGB 17, 31, 00
+ RGB 00, 00, 00
-Function945e:
- dr $945e, $94eb
+ RGB 31, 31, 31
+ RGB 17, 31, 31
+ RGB 17, 31, 31
+ RGB 00, 00, 00
StatsScreenPals:
- dr $94eb, $94f1
+ RGB 31, 19, 31
+
+ RGB 21, 31, 14
+
+ RGB 17, 31, 31
+
+Function94f1: ; 94f1 (2:54f1)
+ call Function9513
+ hlcoord 1, 1, wAttrMap
+ lb bc, 7, 7
+ ld a, $1
+ call Function9af1
+ jp Function9537
+
+Function9502: ; 9502 (2:5502)
+ call Function9513
+ hlcoord 1, 1, wAttrMap
+ lb bc, 5, 5
+ ld a, $1
+ call Function9af1
+ jp Function9537
+
+Function9513: ; 9513 (2:5513)
+ ld de, wTempBGPal0
+ ld a, $1d
+ call Function9ac7
+ call Function9ad2
+ ld a, [wCurPartySpecies]
+ cp $ff
+ jr nz, .asm_952d
+ ld hl, Palettes_9559
+ call Function9ad2
+ jr .asm_9533
+
+.asm_952d
+ call Function9be4
+ call Function9adb
+.asm_9533
+ call Function9b1d
+ ret
-Function94f1:
- dr $94f1, $9502
+Function9537: ; 9537 (2:5537)
+ call Function9b9c
+ ld hl, Palettes_9551
+ ld de, wTempOBPal7
+ ld bc, $8
+ call CopyBytes
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function9502:
- dr $9502, $9561
+Palettes_9551:
+ RGB 0, 0, 0
+ RGB 11, 23, 0
+ RGB 7, 17, 0
+ RGB 0, 0, 0
+
+Palettes_9559:
+ RGB 11, 23, 0
+ RGB 7, 17, 0
+ RGB 6, 16, 3
+ RGB 5, 12, 1
+
+Function9561: ; 9561 (2:5561)
+ ld de, wTempBGPal0
+ ld a, $1d
+ call Function9ac7
+ call Function9ad2
+ ld a, [wd004]
+ cp $ff
+ jr nz, .asm_957b
+ ld hl, Palettes_95cd
+ call Function9ad2
+ jr .asm_9584
+
+.asm_957b
+ ld bc, wTempMonDVs
+ call Function9bcb
+ call Function9adb
+.asm_9584
+ call Function9b1d
+ hlcoord 1, 4, wAttrMap
+ lb bc, 7, 7
+ ld a, $1
+ call Function9af1
+ call Function9b9c
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function9561:
- dr $9561, $95d5
+Function95a0:
+ ld hl, Palettes_95cd
+ call Function9ad2
+ jr asm_95b1
+
+Function95a8:
+ ld bc, wTempMonDVs
+ call Function9bcb
+ call Function9adb
+asm_95b1
+ call Function9b1d
+ hlcoord 1, 1, wAttrMap
+ lb bc, 7, 7
+ ld a, $1
+ call Function9af1
+ call Function9b9c
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function95d5:
- dr $95d5, $9605
+Palettes_95cd:
+ RGB 31, 15, 0
+ RGB 23, 12, 0
+ RGB 15, 7, 0
+ RGB 0, 0, 0
+
+Function95d5: ; 95d5 (2:55d5)
+ ld de, wTempBGPals
+ ld a, $1d
+ call Function9ac7
+ call Function9ad2
+ ld a, [wCurPartySpecies]
+ call Function9be4
+ call Function9adb
+ call Function9b1d
+ hlcoord 7, 5, wAttrMap
+ lb bc, 7, 7
+ ld a, $1
+ call Function9af1
+ call Function9b9c
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function9605:
- dr $9605, $968d
+Function9605: ; 9605 (2:5605)
+ ld hl, Palettes_bbbe
+ ld de, wTempBGPals
+ ld bc, $80
+ call CopyBytes
+ call Function9b1d
+ hlcoord 0, 2, wAttrMap
+ lb bc, $a, $3
+ ld a, $2
+ call Function9af1
+ hlcoord 17, 2, wAttrMap
+ lb bc, $a, $3
+ ld a, $2
+ call Function9af1
+ hlcoord 0, 4, wAttrMap
+ lb bc, $6, $3
+ ld a, $3
+ call Function9af1
+ hlcoord 17, 4, wAttrMap
+ lb bc, $6, $3
+ ld a, $3
+ call Function9af1
+ hlcoord 0, 6, wAttrMap
+ lb bc, $2, $3
+ ld a, $4
+ call Function9af1
+ hlcoord 17, 6, wAttrMap
+ lb bc, $2, $3
+ ld a, $4
+ call Function9af1
+ hlcoord 4, 2, wAttrMap
+ lb bc, $2, $c
+ ld a, $1
+ call Function9af1
+ hlcoord 3, 2, wAttrMap
+ lb bc, $a, $1
+ ld a, $1
+ call Function9af1
+ hlcoord 16, 2, wAttrMap
+ lb bc, $a, $1
+ ld a, $1
+ call Function9af1
+ hlcoord 0, 12, wAttrMap
+ ld bc, $78
+ ld a, $7
+ call ByteFill
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function968d:
- dr $968d, $96b7
+Function968d: ; 968d (2:568d)
+ ld hl, Palettes_a116
+ call Function9ab2
+ call Function9b1d
+ ld de, wTempOBPals
+ ld a, $3c
+ call Function9ac7
+ call Function9ad2
+ hlcoord 0, 6, wAttrMap
+ lb bc, $c, $14
+ ld a, $1
+ call Function9af1
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function96b7:
- dr $96b7, $9728
+Function96b7: ; 96b7 (2:56b7)
+ ld b, $0
+ ld hl, .Jumptable
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
-Function9728:
- dr $9728, $973e
+.Jumptable:
+ dw Function96c8
+ dw Function96f9
+ dw Function9713
+
+Function96c8:
+ ld hl, Palettes_96e1
+ ld de, wTempBGPal0
+ call Function9ad2
+ ld hl, Palettes_96e9
+ ld de, wTempOBPal0
+ ld bc, $10
+ call CopyBytes
+ call Function9b1d
+ ret
-Function973e:
- dr $973e, $9757
+Palettes_96e1:
+ RGB 19, 31, 19
+ RGB 18, 23, 31
+ RGB 11, 21, 28
+ RGB 4, 16, 24
+
+Palettes_96e9:
+ RGB 29, 29, 29
+ RGB 20, 19, 20
+ RGB 19, 6, 4
+ RGB 3, 4, 6
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 0, 0
+ RGB 3, 4, 6
+
+Function96f9:
+ ld de, wTempBGPal0
+ ld a, $38
+ call Function9ac7
+ call Function9ad2
+ ld de, wTempOBPals
+ ld a, $39
+ call Function9ac7
+.asm_970b
+ call Function9ad2
+ call Function9b1d
+ ret
-Function9757:
- dr $9757, $9760
+Function9713:
+ ld hl, Palettes_a0a6
+ call Function9ab2
+ ld de, wTempOBPals
+ ld a, $3a
+ call Function9ac7
+ call Function9ad2
+ call Function9b1d
+ ret
-Function9760:
- dr $9760, $976d
+Function9728: ; 9728 (2:5728)
+ ld hl, Palettes_bb9e
+ ld de, wTempBGPals
+ ld bc, $28
+ call CopyBytes
+ call Function9b28
+ call Function9b1d
+ call Function9b35
+ ret
-Function976d:
- dr $976d, $97af
+Function973e: ; 973e (2:573e)
+ ld hl, Palettes_ba86
+ ld de, wTempBGPals
+ ld bc, $80
+ call CopyBytes
+ ld hl, Palettes_a126
+ call Function9ab2
+ call Function9b1d
+ call Function9b35
+ ret
-Function97af:
- dr $97af, $97d4
+Function9757: ; 9757 (2:5757)
+ call Functionb649
+ ld a, $9
+ ld [wColorLayoutPredefID], a
+ ret
-Function97d4:
- dr $97d4, $97e1
+Function9760: ; 9760 (2:5760)
+ ld hl, Palettes_a0c6
+ call Function9ab2
+ call Function9b9c
+ call Function9b35
+ ret
-Function97e1:
- dr $97e1, $9802
+Function976d: ; 976d (2:576d)
+ ld de, wTempBGPal0
+ ld a, c
+ and a
+ jr z, .asm_977e
+ ld a, $1a
+ call Function9ac7
+ call Function9ad2
+ jr .asm_97a1
+
+.asm_977e
+ ld hl, wPartyMon1DVs
+ ld bc, $30
+ ld a, [wd005]
+ call AddNTimes
+ ld c, l
+ ld b, h
+ ld a, [wcc99]
+ call Function9bcb
+ call Function9adb
+ ld hl, Palettes_9c09
+ ld de, wTempOBPal2
+ ld bc, $30
+ call CopyBytes
+.asm_97a1
+ call Function9b1d
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function9802:
- dr $9802, $98be
+Function97af: ; 97af (2:57af)
+ ld hl, Palettes_bb36
+ ld de, wTempBGPal0
+ ld bc, $28
+ call CopyBytes
+ ld hl, Palettes_bb5e
+ ld de, wTempOBPals
+ ld bc, $10
+ call CopyBytes
+ ld a, $8
+ ld [wColorLayoutPredefID], a
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function98be:
- dr $98be, $98f1
+Function97d4: ; 97d4 (2:57d4)
+ ld hl, Palettes_a126
+ call Function9ab2
+ call Function9b1d
+ call Function9b35
+ ret
-Function98f1:
- dr $98f1, $9905
+Function97e1: ; 97e1 (2:57e1)
+ ld hl, Palettes_a036
+ call Function9ab2
+ ld de, wTempOBPals
+ ld a, $4c
+ call Function9ac7
+ call Function9ad2
+ ld hl, wTempOBPal0
+ ld a, $1f
+ ld [hli], a
+ ld a, $0
+ ld [hl], a
+ call Function9b1d
+ call Function9b35
+ ret
-Function9905:
- dr $9905, $991e
+Function9802: ; 9802 (2:5802)
+ ld de, wTempBGPal0
+ xor a
+ call Function9bda
+ call Function9adb
+ ld a, $1
+ call Function9bda
+ call Function9adb
+ ld a, $3
+ call Function9bda
+ call Function9adb
+ ld a, $2
+ call Function9bda
+ call Function9adb
+ ld a, $4
+ call Function9bda
+ call Function9adb
+ ld a, $7
+ call Function9bda
+ call Function9adb
+ ld a, $6
+ call Function9bda
+ call Function9adb
+ ld a, $5
+ call Function9bda
+ call Function9adb
+ ld a, $24
+ call Function9ac7
+ call Function9ad2
+ hlcoord 0, 0, wAttrMap
+ ld bc, $168
+ ld a, $1
+ call ByteFill
+ hlcoord 14, 1, wAttrMap
+ lb bc, $7, $5
+ xor a
+ call Function9af1
+ hlcoord 18, 1, wAttrMap
+ ld [hl], $1
+ hlcoord 2, 11, wAttrMap
+ lb bc, $2, $4
+ ld a, $1
+ call Function9af1
+ hlcoord 6, 11, wAttrMap
+ lb bc, $2, $4
+ ld a, $2
+ call Function9af1
+ hlcoord 10, 11, wAttrMap
+ lb bc, $2, $4
+ ld a, $3
+ call Function9af1
+ hlcoord 14, 11, wAttrMap
+ lb bc, $2, $4
+ ld a, $4
+ call Function9af1
+ hlcoord 2, 14, wAttrMap
+ lb bc, $2, $4
+ ld a, $5
+ call Function9af1
+ hlcoord 6, 14, wAttrMap
+ lb bc, $2, $4
+ ld a, $6
+ call Function9af1
+ hlcoord 10, 14, wAttrMap
+ lb bc, $2, $4
+ ld a, $7
+ call Function9af1
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function991e:
- dr $991e, $999f
+Function98be: ; 98be (2:58be)
+ ld de, wTempBGPals
+ ld a, $10
+ call Function9ac7
+ call Function9ad2
+ ld a, [wcc99]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, Palettes_ad2d
+ add hl, bc
+ call Function9adb
+ call Function9b1d
+ hlcoord 11, 1, wAttrMap
+ lb bc, $2, $9
+ ld a, $1
+ call Function9af1
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function999f:
- dr $999f, $99d9
+Function98f1: ; 98f1 (2:58f1)
+ ld hl, Palettes_a0b6
+ call Function9ab2
+ call Function9b1d
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function99d9:
- dr $99d9, $9a03
+Function9905: ; 9905 (2:5905)
+ ld de, wTempBGPals
+ ld a, $1d
+ call Function9ac7
+ call Function9ad2
+ call Function9b1d
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function9a03:
- dr $9a03, $9a2e
+Function991e: ; 991e (2:591e)
+ ld de, wTempBGPals
+ ld hl, Palettes_996f
+ ld bc, $40
+ call CopyBytes
+ call Function9b1d
+ hlcoord 0, 0, wAttrMap
+ lb bc, $1, $a
+ ld a, $1
+ call Function9af1
+ hlcoord 10, 0, wAttrMap
+ lb bc, $1, $a
+ ld a, $2
+ call Function9af1
+ hlcoord 7, 2, wAttrMap
+ lb bc, $9, $1
+ ld a, $3
+ call Function9af1
+ hlcoord 0, 7, wAttrMap
+ lb bc, $3, $5
+ ld a, $4
+ call Function9af1
+ hlcoord 0, 3, wAttrMap
+ lb bc, $3, $5
+ ld a, $5
+ call Function9af1
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+
+Palettes_996f:
+ RGB 31, 31, 31
+ RGB 15, 15, 31
+ RGB 0, 0, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 15, 15, 31
+ RGB 0, 0, 31
+ RGB 0, 0, 0
+
+ RGB 31, 11, 31
+ RGB 15, 15, 31
+ RGB 0, 0, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 15, 15, 31
+ RGB 0, 0, 31
+ RGB 31, 0, 0
+
+ RGB 31, 31, 31
+ RGB 15, 15, 31
+ RGB 31, 0, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 7, 19, 7
+ RGB 7, 19, 7
+ RGB 0, 0, 0
+
+Function999f: ; 999f (2:599f)
+ call Function9757
+ call FarCallSwapTextboxPalettes
+ ld de, $14
+ hlcoord 0, 0, wAttrMap
+ ld a, [wMenuBorderTopCoord]
+.asm_99ae
+ and a
+ jr z, .asm_99b5
+ dec a
+ add hl, de
+ jr .asm_99ae
-Function9a2e:
- dr $9a2e, $9a47
+.asm_99b5
+ ld a, [wMenuBorderLeftCoord]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [wMenuBorderTopCoord]
+ ld b, a
+ ld a, [wMenuBorderBottomCoord]
+ inc a
+ sub b
+ ld b, a
+ ld a, [wMenuBorderLeftCoord]
+ ld c, a
+ ld a, [wMenuBorderRightCoord]
+ sub c
+ inc a
+ ld c, a
+ ld a, $0
+ call Function9af1
+ call Function9b35
+ ret
-Function9a47:
- dr $9a47, $9a5a
+Function99d9: ; 99d9 (2:59d9)
+ ld hl, Palettes_a016
+ call Function9ab2
+ call Function9b1d
+ hlcoord 0, 4, wAttrMap
+ lb bc, $a, $14
+ ld a, $2
+ call Function9af1
+ hlcoord 0, 6, wAttrMap
+ lb bc, $6, $14
+ ld a, $1
+ call Function9af1
+ call Function9b35
+ call Function9b28
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
-Function9a5a:
- dr $9a5a, $9a7b
+Function9a03: ; 9a03 (2:5a03)
+ ld de, wTempBGPal0
+ ld a, $4e
+ call Function9ac7
+ call Function9ad2
+ ld de, wTempOBPal0
+ ld a, $4d
+ call Function9ac7
+ call Function9ad2
+ ld de, wTempOBPal1
+ ld a, $4d
+ call Function9ac7
+ call Function9ad2
+ call Function9b1d
+ call Function9b35
+ call Function9b28
+ ret
-Function9a7b:
- dr $9a7b, $9a94
+Function9a2e: ; 9a2e (2:5a2e)
+ ld de, wTempBGPal0
+ ld a, [wCurPartySpecies]
+ ld bc, wTempMonDVs
+ call Function9bcb
+ call Function9adb
+ call Function9b1d
+ call Function9b35
+ call Function9b28
+ ret
+
+Function9a47: ; 9a47 (2:5a47)
+ ld de, wTempBGPal0
+ ld a, [wd004]
+ call Function9be4
+ call Function9adb
+ call Function9b1d
+ call Function9b35
+ ret
+
+Function9a5a: ; 9a5a (2:5a5a)
+ ld hl, Palettes_a136
+ call Function9ab2
+ ld hl, Palettes_bac6
+ ld de, wTempOBPal0
+ ld bc, $8
+ call CopyBytes
+ ld de, wTempOBPal7
+ ld a, $1c
+ call Function9ac7
+ call Function9ad2
+ call Function9b1d
+ ret
+
+Function9a7b: ; 9a7b (2:5a7b)
+ ld de, wTempBGPal0
+ ld a, [wd004]
+ ld bc, wTempMonDVs
+ call Function9bd3
+ call Function9adb
+ call Function9b1d
+ call Function9b35
+ call Function9b28
+ ret
diff --git a/predef/sgb.asm b/predef/sgb.asm
index 34d6d467..af35020c 100755
--- a/predef/sgb.asm
+++ b/predef/sgb.asm
@@ -71,7 +71,7 @@ Function8c97: ; 8c97 (2:4c97)
ld h, $0
add hl, hl
add hl, hl
- ld de, BlkPacket_ad2d
+ ld de, Palettes_ad2d
add hl, de
ld a, [hli]
ld [wccac], a
@@ -86,7 +86,7 @@ Function8c97: ; 8c97 (2:4c97)
ld h, $0
add hl, hl
add hl, hl
- ld de, BlkPacket_ad2d
+ ld de, Palettes_ad2d
add hl, de
ld a, [hli]
ld [wccb2], a
@@ -155,7 +155,7 @@ Function8d46: ; 8d46 (2:4d46)
ld h, $0
add hl, hl
add hl, hl
- ld de, BlkPacket_ad2d
+ ld de, Palettes_ad2d
add hl, de
ld a, [hli]
ld [wccac], a
diff --git a/wram.asm b/wram.asm
index 98de8db9..ca4b599f 100644
--- a/wram.asm
+++ b/wram.asm
@@ -186,10 +186,21 @@ wc1fe:: ds 1 ; c1fe
wc1ff:: ds 1 ; c1ff
SECTION "GBC Palettes", WRAM0
-wUnknBGPals:: ds 8 * 8 ; c200
-wUnknOBPals:: ds 8 * 8 ; c240
-wBGPals:: ds 8 * 8 ; c280
-wOBPals:: ds 8 * 8 ; c2c0
+palbuffer: MACRO
+\1Pal0:: ds 8
+\1Pal1:: ds 8
+\1Pal2:: ds 8
+\1Pal3:: ds 8
+\1Pal4:: ds 8
+\1Pal5:: ds 8
+\1Pal6:: ds 8
+\1Pal7:: ds 8
+ENDM
+
+wTempBGPals:: palbuffer wTempBG ; c200
+wTempOBPals:: palbuffer wTempOB ; c240
+wBGPals:: palbuffer wBG ; c280
+wOBPals:: palbuffer wOB ; c2c0
SECTION "OAM Buffer", WRAM0
wOAMBuffer:: ; c300