Skip to content

Commit 4855048

Browse files
committed
GBC: Moved all tables out of the way
1 parent c9847d6 commit 4855048

File tree

3 files changed

+94
-85
lines changed

3 files changed

+94
-85
lines changed

gnuboy-go/components/gnuboy/lcd.c

Lines changed: 1 addition & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -6,52 +6,7 @@
66
#include "hw.h"
77
#include "lcd.h"
88
#include "cpu.h"
9-
10-
static const uint16_t colorization_palettes[48][3][4] = {
11-
// 0x00 - 0x1F: Game-specific colorization palettes extracted from GBC's BIOS
12-
{{0x7FFF, 0x01DF, 0x0112, 0x0000}, {0x7FFF, 0x7EEB, 0x001F, 0x7C00}, {0x7FFF, 0x42B5, 0x3DC8, 0x0000}},
13-
{{0x231F, 0x035F, 0x00F2, 0x0009}, {0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x4FFF, 0x7ED2, 0x3A4C, 0x1CE0}},
14-
{{0x7FFF, 0x7FFF, 0x7E8C, 0x7C00}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x03ED, 0x7FFF, 0x255F, 0x0000}},
15-
{{0x7FFF, 0x7FFF, 0x7E8C, 0x7C00}, {0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x036A, 0x021F, 0x03FF, 0x7FFF}},
16-
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x03EF, 0x01D6, 0x0000}},
17-
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x7EEB, 0x001F, 0x7C00}, {0x7FFF, 0x03EA, 0x011F, 0x0000}},
18-
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x7EEB, 0x001F, 0x7C00}, {0x7FFF, 0x027F, 0x001F, 0x0000}},
19-
{{0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x7EEB, 0x001F, 0x7C00}, {0x7FFF, 0x03FF, 0x001F, 0x0000}},
20-
{{0x299F, 0x001A, 0x000C, 0x0000}, {0x7C00, 0x7FFF, 0x3FFF, 0x7E00}, {0x7E74, 0x03FF, 0x0180, 0x0000}},
21-
{{0x7FFF, 0x01DF, 0x0112, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x67FF, 0x77AC, 0x1A13, 0x2D6B}},
22-
{{0x0000, 0x7FFF, 0x421F, 0x1CF2}, {0x0000, 0x7FFF, 0x421F, 0x1CF2}, {0x7ED6, 0x4BFF, 0x2175, 0x0000}},
23-
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x3FFF, 0x7E00, 0x001F}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}},
24-
{{0x231F, 0x035F, 0x00F2, 0x0009}, {0x7FFF, 0x7EEB, 0x001F, 0x7C00}, {0x7FFF, 0x6E31, 0x454A, 0x0000}},
25-
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x6E31, 0x454A, 0x0000}},
26-
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x1BEF, 0x0200, 0x0000}},
27-
{{0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}},
28-
{{0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x421F, 0x1CF2, 0x0000}},
29-
{{0x7FFF, 0x03E0, 0x0206, 0x0120}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x421F, 0x1CF2, 0x0000}},
30-
{{0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}},
31-
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x0000, 0x4200, 0x037F, 0x7FFF}},
32-
{{0x03FF, 0x001F, 0x000C, 0x0000}, {0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}},
33-
{{0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x42B5, 0x3DC8, 0x0000}},
34-
{{0x7FFF, 0x5294, 0x294A, 0x0000}, {0x7FFF, 0x5294, 0x294A, 0x0000}, {0x7FFF, 0x5294, 0x294A, 0x0000}},
35-
{{0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x53FF, 0x4A5F, 0x7E52, 0x0000}},
36-
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}},
37-
{{0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x639F, 0x4279, 0x15B0, 0x04CB}},
38-
{{0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x03FF, 0x012F, 0x0000}},
39-
{{0x7FFF, 0x033F, 0x0193, 0x0000}, {0x7FFF, 0x033F, 0x0193, 0x0000}, {0x7FFF, 0x033F, 0x0193, 0x0000}},
40-
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x1BEF, 0x6180, 0x0000}},
41-
{{0x2120, 0x8022, 0x8281, 0x1110}, {0xFF7F, 0xDF7F, 0x1201, 0x0001}, {0xFF00, 0xFF7F, 0x1F03, 0x0000}},
42-
{{0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}},
43-
{{0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}},
44-
45-
// 0x20 - 0x24 : Console-based colorization palettes
46-
{{0x0272, 0x0DCA, 0x0D45, 0x0102}, {0x0272, 0x0DCA, 0x0D45, 0x0102}, {0x0272, 0x0DCA, 0x0D45, 0x0102}}, // GB_PALETTE_DMG
47-
{{0x7FFF, 0x5AD6, 0x318C, 0x0000}, {0x7FFF, 0x5AD6, 0x318C, 0x0000}, {0x7FFF, 0x5AD6, 0x318C, 0x0000}}, // GB_PALETTE_MGB0
48-
{{0x36D5, 0x260E, 0x1D47, 0x18C4}, {0x36D5, 0x260E, 0x1D47, 0x18C4}, {0x36D5, 0x260E, 0x1D47, 0x18C4}}, // GB_PALETTE_MGB1
49-
{{0x6BDD, 0x3ED4, 0x1D86, 0x0860}, {0x6BDD, 0x3ED4, 0x1D86, 0x0860}, {0x6BDD, 0x3ED4, 0x1D86, 0x0860}}, // GB_PALETTE_CGB (real colors calculated in code)
50-
{{0x6BDD, 0x3ED4, 0x1D86, 0x0860}, {0x6BDD, 0x3ED4, 0x1D86, 0x0860}, {0x6BDD, 0x3ED4, 0x1D86, 0x0860}}, // GB_PALETTE_SGB (real colors calculated in code)
51-
52-
// 0x25 - 0x2F : Other misc palettes
53-
{{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}, // Bleh
54-
};
9+
#include "tables.h"
5510

5611
#define BG (lcd.BG)
5712
#define WND (lcd.WND)

gnuboy-go/components/gnuboy/sound.c

Lines changed: 1 addition & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,7 @@
33
#include "gnuboy.h"
44
#include "sound.h"
55
#include "hw.h"
6-
#include "noise.h"
7-
8-
static const byte dmgwave[16] =
9-
{
10-
0xac, 0xdd, 0xda, 0x48,
11-
0x36, 0x02, 0xcf, 0x16,
12-
0x2c, 0x04, 0xe5, 0x2c,
13-
0xac, 0xdd, 0xda, 0x48
14-
};
15-
16-
static const byte cgbwave[16] =
17-
{
18-
0x00, 0xff, 0x00, 0xff,
19-
0x00, 0xff, 0x00, 0xff,
20-
0x00, 0xff, 0x00, 0xff,
21-
0x00, 0xff, 0x00, 0xff,
22-
};
23-
24-
static const byte sqwave[4][8] =
25-
{
26-
{ 0, 0,-1, 0, 0, 0, 0, 0 },
27-
{ 0,-1,-1, 0, 0, 0, 0, 0 },
28-
{ -1,-1,-1,-1, 0, 0, 0, 0 },
29-
{ -1, 0, 0,-1,-1,-1,-1,-1 }
30-
};
31-
32-
static const int freqtab[8] =
33-
{
34-
(1<<14)*2,
35-
(1<<14),
36-
(1<<14)/2,
37-
(1<<14)/3,
38-
(1<<14)/4,
39-
(1<<14)/5,
40-
(1<<14)/6,
41-
(1<<14)/7
42-
};
6+
#include "tables.h"
437

448
gb_snd_t snd;
459

gnuboy-go/components/gnuboy/noise.h renamed to gnuboy-go/components/gnuboy/tables.h

Lines changed: 92 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,100 @@
1-
static const byte noise7[] =
1+
#include <stdint.h>
2+
3+
/********************* LCD *********************/
4+
5+
static const uint16_t colorization_palettes[48][3][4] = {
6+
// 0x00 - 0x1F: Game-specific colorization palettes extracted from GBC's BIOS
7+
{{0x7FFF, 0x01DF, 0x0112, 0x0000}, {0x7FFF, 0x7EEB, 0x001F, 0x7C00}, {0x7FFF, 0x42B5, 0x3DC8, 0x0000}},
8+
{{0x231F, 0x035F, 0x00F2, 0x0009}, {0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x4FFF, 0x7ED2, 0x3A4C, 0x1CE0}},
9+
{{0x7FFF, 0x7FFF, 0x7E8C, 0x7C00}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x03ED, 0x7FFF, 0x255F, 0x0000}},
10+
{{0x7FFF, 0x7FFF, 0x7E8C, 0x7C00}, {0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x036A, 0x021F, 0x03FF, 0x7FFF}},
11+
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x03EF, 0x01D6, 0x0000}},
12+
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x7EEB, 0x001F, 0x7C00}, {0x7FFF, 0x03EA, 0x011F, 0x0000}},
13+
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x7EEB, 0x001F, 0x7C00}, {0x7FFF, 0x027F, 0x001F, 0x0000}},
14+
{{0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x7EEB, 0x001F, 0x7C00}, {0x7FFF, 0x03FF, 0x001F, 0x0000}},
15+
{{0x299F, 0x001A, 0x000C, 0x0000}, {0x7C00, 0x7FFF, 0x3FFF, 0x7E00}, {0x7E74, 0x03FF, 0x0180, 0x0000}},
16+
{{0x7FFF, 0x01DF, 0x0112, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x67FF, 0x77AC, 0x1A13, 0x2D6B}},
17+
{{0x0000, 0x7FFF, 0x421F, 0x1CF2}, {0x0000, 0x7FFF, 0x421F, 0x1CF2}, {0x7ED6, 0x4BFF, 0x2175, 0x0000}},
18+
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x3FFF, 0x7E00, 0x001F}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}},
19+
{{0x231F, 0x035F, 0x00F2, 0x0009}, {0x7FFF, 0x7EEB, 0x001F, 0x7C00}, {0x7FFF, 0x6E31, 0x454A, 0x0000}},
20+
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x6E31, 0x454A, 0x0000}},
21+
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x1BEF, 0x0200, 0x0000}},
22+
{{0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}},
23+
{{0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x421F, 0x1CF2, 0x0000}},
24+
{{0x7FFF, 0x03E0, 0x0206, 0x0120}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x421F, 0x1CF2, 0x0000}},
25+
{{0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}},
26+
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x0000, 0x4200, 0x037F, 0x7FFF}},
27+
{{0x03FF, 0x001F, 0x000C, 0x0000}, {0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}},
28+
{{0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x42B5, 0x3DC8, 0x0000}},
29+
{{0x7FFF, 0x5294, 0x294A, 0x0000}, {0x7FFF, 0x5294, 0x294A, 0x0000}, {0x7FFF, 0x5294, 0x294A, 0x0000}},
30+
{{0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x53FF, 0x4A5F, 0x7E52, 0x0000}},
31+
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}},
32+
{{0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x639F, 0x4279, 0x15B0, 0x04CB}},
33+
{{0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x1BEF, 0x0200, 0x0000}, {0x7FFF, 0x03FF, 0x012F, 0x0000}},
34+
{{0x7FFF, 0x033F, 0x0193, 0x0000}, {0x7FFF, 0x033F, 0x0193, 0x0000}, {0x7FFF, 0x033F, 0x0193, 0x0000}},
35+
{{0x7FFF, 0x421F, 0x1CF2, 0x0000}, {0x7FFF, 0x7E8C, 0x7C00, 0x0000}, {0x7FFF, 0x1BEF, 0x6180, 0x0000}},
36+
{{0x2120, 0x8022, 0x8281, 0x1110}, {0xFF7F, 0xDF7F, 0x1201, 0x0001}, {0xFF00, 0xFF7F, 0x1F03, 0x0000}},
37+
{{0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}},
38+
{{0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}, {0x7FFF, 0x32BF, 0x00D0, 0x0000}},
39+
40+
// 0x20 - 0x24 : Console-based colorization palettes
41+
{{0x0272, 0x0DCA, 0x0D45, 0x0102}, {0x0272, 0x0DCA, 0x0D45, 0x0102}, {0x0272, 0x0DCA, 0x0D45, 0x0102}}, // GB_PALETTE_DMG
42+
{{0x7FFF, 0x5AD6, 0x318C, 0x0000}, {0x7FFF, 0x5AD6, 0x318C, 0x0000}, {0x7FFF, 0x5AD6, 0x318C, 0x0000}}, // GB_PALETTE_MGB0
43+
{{0x36D5, 0x260E, 0x1D47, 0x18C4}, {0x36D5, 0x260E, 0x1D47, 0x18C4}, {0x36D5, 0x260E, 0x1D47, 0x18C4}}, // GB_PALETTE_MGB1
44+
{{0x6BDD, 0x3ED4, 0x1D86, 0x0860}, {0x6BDD, 0x3ED4, 0x1D86, 0x0860}, {0x6BDD, 0x3ED4, 0x1D86, 0x0860}}, // GB_PALETTE_CGB (real colors calculated in code)
45+
{{0x6BDD, 0x3ED4, 0x1D86, 0x0860}, {0x6BDD, 0x3ED4, 0x1D86, 0x0860}, {0x6BDD, 0x3ED4, 0x1D86, 0x0860}}, // GB_PALETTE_SGB (real colors calculated in code)
46+
47+
// 0x25 - 0x2F : Other misc palettes
48+
{{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}, // Bleh
49+
};
50+
51+
52+
53+
/********************* SOUND *********************/
54+
55+
static const uint8_t dmgwave[16] =
56+
{
57+
0xac, 0xdd, 0xda, 0x48,
58+
0x36, 0x02, 0xcf, 0x16,
59+
0x2c, 0x04, 0xe5, 0x2c,
60+
0xac, 0xdd, 0xda, 0x48
61+
};
62+
63+
static const uint8_t cgbwave[16] =
64+
{
65+
0x00, 0xff, 0x00, 0xff,
66+
0x00, 0xff, 0x00, 0xff,
67+
0x00, 0xff, 0x00, 0xff,
68+
0x00, 0xff, 0x00, 0xff,
69+
};
70+
71+
static const uint8_t sqwave[4][8] =
72+
{
73+
{ 0, 0,-1, 0, 0, 0, 0, 0 },
74+
{ 0,-1,-1, 0, 0, 0, 0, 0 },
75+
{ -1,-1,-1,-1, 0, 0, 0, 0 },
76+
{ -1, 0, 0,-1,-1,-1,-1,-1 }
77+
};
78+
79+
static const int freqtab[8] =
80+
{
81+
(1<<14)*2,
82+
(1<<14),
83+
(1<<14)/2,
84+
(1<<14)/3,
85+
(1<<14)/4,
86+
(1<<14)/5,
87+
(1<<14)/6,
88+
(1<<14)/7
89+
};
90+
91+
static const uint8_t noise7[] =
292
{
393
0xfb,0xe7,0xae,0x1b,0xa6,0x2b,0x05,0xe3,
494
0xb6,0x4a,0x42,0x72,0xd1,0x19,0xaa,0x03,
595
};
696

7-
static const byte noise15[] =
97+
static const uint8_t noise15[] =
898
{
999
0xff,0xfb,0xff,0xe7,0xff,0xaf,0xfe,0x1f,
10100
0xfb,0xbf,0xe6,0x7f,0xaa,0xfe,0x01,0xfb,

0 commit comments

Comments
 (0)