commit 315dfa9509308695ee2117fd01f35535fb576fc3 Author: Zack Buhman Date: Thu Jun 15 16:46:40 2023 +0000 initial diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..522c166 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*.sav +*.map +*.o + +*.elf +*.gba diff --git a/DSC09311_256.data b/DSC09311_256.data new file mode 100644 index 0000000..7b526bc --- /dev/null +++ b/DSC09311_256.data @@ -0,0 +1,5 @@ +У}j}и۔j}УRI}jIIIIgg}̊R}}gwwР}}}}}}ʤն}}}}}־ն}[}}÷ϣЁI3j÷ϣ[III÷϶IIIj÷ʶj\PIw÷j33I÷I3IR÷̐I3RwõIIR÷⣣jIR÷ՐjI}÷õ̐jjøwww̐jj}ø~\PP\\g~̐jwï|||lqq~~~~wjʵ|y~~~~~|qqjá|l~||||ʷiii|||ll|ʭiL:&ZkOiii||գʷ|iiF8O.iOODD⣐÷|iilliilâ.L&M␐÷|ylli|Âiin됐÷yli||Ñ|yÔ÷|||ʷ|yʏ÷ʭv÷޷÷yy~۰ô÷~~flyyyʷ޴yʷyvK,KfyO۰Ǧâ÷yvvfKfKfyKKv༦ūð÷yfKff]fyfKyyyƦzzxzzzxzʷʿyfyfyfyy׺zzrccrrrurrrxx޿ʷʿyyyyyfyyyদuu_d_uudddddrrxzÿʿyyyylyyť__UUXXXccxx{ttttttʿϿyyyyffyyثmTTUUUXccxttttaaaa{ʧyyvyffy߳÷mTGUddXXstttaaaaaat{||yf]]]]]]yɹ÷nWEGUurcxtteaaaaaa{{t{||iKKK,,,KK]yܹ÷mm_Uuzz؃tteaaaaaa{{ttaatiDDDff]]fffyfKly÷Wmttutteeeaaaaa{taaaaaSaiifff]]]]]fyy~~÷STa{u؃tteeaaSSSataaaaaSSaaSt||||fffff]vy~~õmaSudtteeeSSSSSaaaaaSSaaaSamk||||illffff~ʰnWS_uudreeeSSSSSSaaaaaSSaaSSSVmnnnnk||iiiiiffly䆺۷nMGT_teeeSSSSSaaaaSSaaSaaSSVWWnnn|||iliffyyWϷnmTGTurdz𙃃teeVSSSSSaaaaSS_a_aaaSSVWZZnn||lllyyy|--;{E;ṹGh""    C4Γ+dHxNhSVE=:VeoeeeeeVVVVVVEECEEEC6"""""+++"""   #@   66%@T5 _ C=ڽkQJJJJJJ3.#ZbY3N%% &8//NheSEVVVeeVVVVEVVEEEEEEEEEEEEE=*"++!!"    .'    6=*@.5T <+ )a`Q9OOJ9998EmSpY0&%%%::%%%&NNNkVEEVeeVVVVVVVVEVVEEEEEEEEEEEEEE6!++!!!"" * @    *=*{_ T 4ɛhQ9OO983l$pbb%&%)VotaSE::78NNNeeooeVVVVVVVVEEEEEEEEEEEEEEEEEEGE=!++!!!!!!!   * '    45)_ G +"\N9N9R}nG_Tpbb7E:=o{aeNk{tteVVVVVVSVSVSSSEEEEEEEEEEEEESSSSSE=+++4+!!!+!! * ''    u< +%ݱpRNNL[Yp[FVVVttߗoeeVSVEVEEEEEEEESSEEEEEEEEEEEESSSTTTTE*+++4!!!!++!    @    *83Q-m6YppP.P\wqetu_tإ::ooStzuu_TTT_rzzuTG**hQ9:VėdrTȳĻĻij_!$hQQ9&V66ŋHua==_{rŻm$rrrddddrssssssscssssscUUUXXXH<++<<    Kgww\ /hQQ9&e*6ŃauCS{{ŻtdrrrrddddssssssssssssscUUXXXXUH++<4   Jww\. &hQ9/&t*ťe{taCEƻmټssrrrrsrssssssssssssscXUHUUXU<+4<+4 3qqJ h99&%tŻtauCaƻaUsssssssssssssxxsscccccXHHUUUH<+44-.q~\9N9&7t ƺtatVtƻWdcssssssssxxxxxssccccccXHHHUUH<+44 #\w~qJN/ +:{ tƗƺaatSaƺƻĻׄcsssssssxxxxxssscXXXccXHHHUUH<++4 ,,,3. +J~~~l.>/e:a{ƫaeƺƻĻĻӓccsssssxxxxxxssccUXXXXXXHHUUH<++4,?(?KJJ3.\~J8/4EatƻmĻĻĻӓccssxxxxxxxxxsscXXXXXXXXHHUUH<44]B?^^^^PJ. +#J~q#//+ $@ + +%.glyph.o: %.glyph + $(BUILD_BINARY_O) + +%.data.o: %.data + $(BUILD_BINARY_IMAGE_O) + +%.data.pal.o: %.data.pal + $(BUILD_BINARY_IMAGE_O) diff --git a/gba-lib b/gba-lib new file mode 120000 index 0000000..2d8868e --- /dev/null +++ b/gba-lib @@ -0,0 +1 @@ +../gba-lib \ No newline at end of file diff --git a/main.c b/main.c new file mode 100644 index 0000000..ad5e46e --- /dev/null +++ b/main.c @@ -0,0 +1,59 @@ +extern unsigned int _binary_DSC09311_256_data_pal_start; +extern unsigned int _binary_DSC09311_256_data_pal_end; +extern unsigned int _binary_DSC09311_256_data_pal_size; + +extern unsigned int _binary_DSC09311_256_data_start; +extern unsigned int _binary_DSC09311_256_data_end; +extern unsigned int _binary_DSC09311_256_data_size; + +#include "io_reg.h" +#include "vram.h" +#include "register_values.h" +#include "copy.h" +#include "nib.h" +#include "type.h" +#include "oam.h" + +void _start(void) +{ + int height = 240; + int width = 160; + + u8 * pal = (u8*)&_binary_DSC09311_256_data_pal_start; + u16 * _pram = (u16 *)&pram.bg[0][0]; + for (int color = 0; color < 256; color++) { + int r = pal[color * 3 + 0] >> 3; + int g = pal[color * 3 + 1] >> 3; + int b = pal[color * 3 + 2] >> 3; + _pram[color] = PRAM_RGB15(r, g, b); + } + + u32 _vram; + + for (int y = 0; y < height; y++) { + for (int x = 0; x < width; x++) { + u8 index = ((u8 *)(&_binary_DSC09311_256_data_start))[y * width + x]; + + switch (x & 0x3) { + case 0: _vram = index; break; + case 1: _vram |= index << 8; break; + case 2: _vram |= index << 16; break; + case 3: _vram |= index << 24; + *((u32 *)(0x6000000 + (y * width + x))) = _vram; + break; + } + } + } + + while ((io_reg.VCOUNT & 0xff) < 161); + + io_reg.DISPCNT = + ( DISPCNT__BG2 + | DISPCNT__BG_MODE_4 + | DISPCNT__FRAMEBUFFER(0) + ); + + while (1) { + io_reg.HALTCNT = 0; + }; +} diff --git a/palette.py b/palette.py new file mode 100644 index 0000000..6727deb --- /dev/null +++ b/palette.py @@ -0,0 +1,7 @@ +f = open("DSC09311-256.data.pal", 'rb') +b = f.read() + + +def grouper(iterable, n): + args = [iter(iterable)] * n + return zip(*args, strict=True)