From e13e4ba987a6993bddda52a346f8f83ebc802c49 Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Tue, 10 Sep 2024 12:43:37 -0500 Subject: [PATCH] main: rename to "2d_engine" --- arm9/{main.c => 2d_engine.c} | 35 +++++++++++++++++++++++++---------- arm9/Makefile | 14 +++++++------- texture/bowser.data | Bin 0 -> 4096 bytes texture/bowser.data.h | 5 +++++ texture/bowser.data.pal | Bin 0 -> 48 bytes texture/bowser.data.pal.h | 5 +++++ texture/player.data | Bin 0 -> 384 bytes texture/player.data.h | 5 +++++ texture/player.data.pal | Bin 0 -> 45 bytes texture/player.data.pal.h | 5 +++++ 10 files changed, 52 insertions(+), 17 deletions(-) rename arm9/{main.c => 2d_engine.c} (94%) create mode 100644 texture/bowser.data create mode 100644 texture/bowser.data.h create mode 100644 texture/bowser.data.pal create mode 100644 texture/bowser.data.pal.h create mode 100644 texture/player.data create mode 100644 texture/player.data.h create mode 100644 texture/player.data.pal create mode 100644 texture/player.data.pal.h diff --git a/arm9/main.c b/arm9/2d_engine.c similarity index 94% rename from arm9/main.c rename to arm9/2d_engine.c index 4a18f65..96428cb 100644 --- a/arm9/main.c +++ b/arm9/2d_engine.c @@ -5,10 +5,10 @@ #include "obj.h" #include "oam.h" -#include "../res/player.data.h" -#include "../res/player.data.pal.h" -#include "../res/bowser.data.h" -#include "../res/bowser.data.pal.h" +#include "../texture/player.data.h" +#include "../texture/player.data.pal.h" +#include "../texture/bowser.data.h" +#include "../texture/bowser.data.pal.h" static inline uint16_t rgb565(const uint8_t * buf) { @@ -390,13 +390,28 @@ struct sign_v cos_table[360] = { void main() { - // 2d graphics engine A BG - io_registers.a.VRAMCNT = (1 << 31) | (1 << 24); +#define REG_IME (*(volatile uint32_t *)0x04000208) + REG_IME = 0; - io_registers.a.WVRAMCNT = 0; + // 2d graphics engine A BG + io_registers.a.VRAMCNT = (1 << 31) | (1 << 24) + | 0x80 << 16 + | 0x80 << 8 + | 0x80 << 0; + + io_registers.a.WVRAMCNT = 0 + | 0x80 << 16 + | 0x80 << 8 + | 0x80 << 0; // 2d graphics engine B OBJ - io_registers.a.VRAM_HI_CNT = (1 << 15) | (0b10 << 8); + io_registers.a.VRAM_HI_CNT = (1 << 15) | (0b10 << 8) + | 0x80 << 0; + + io_registers.a.DISPCAPCNT = 0; + + io_registers.a.MASTER_BRIGHT = (0b01 << 14) | 0b11111; + io_registers.b.MASTER_BRIGHT = (0b01 << 14) | 0b11111; io_registers.a.POWCNT = 0 | POWCNT__lcd_output_destination__a_to_upper__b_to_lower @@ -411,8 +426,8 @@ void main() | DISPCNT__bg_character_base_offset(0) | DISPCNT__display_mode__graphics_display | DISPCNT__bg0__enable - //| DISPCNT__display_selection_for_bg0__2d_graphics - | DISPCNT__display_selection_for_bg0__3d_graphics + | DISPCNT__display_selection_for_bg0__2d_graphics + //| DISPCNT__display_selection_for_bg0__3d_graphics | DISPCNT__bg_mode__text0_text1_text2_text3 ; diff --git a/arm9/Makefile b/arm9/Makefile index be6e841..cb1f4ee 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -6,17 +6,17 @@ ALL = \ all: arm9.bin -OBJ = \ +2D_ENGINE_OBJ = \ start.o \ - main.o \ - ../res/player.data.o \ - ../res/player.data.pal.o \ - ../res/bowser.data.o \ - ../res/bowser.data.pal.o + 2d_engine.o \ + ../texture/player.data.o \ + ../texture/player.data.pal.o \ + ../texture/bowser.data.o \ + ../texture/bowser.data.pal.o include ../texture/texture.mk -arm9.elf: $(OBJ) +2d_engine.elf: $(2D_ENGINE_OBJ) triangle.elf: start.o examples/triangle.o diff --git a/texture/bowser.data b/texture/bowser.data new file mode 100644 index 0000000000000000000000000000000000000000..b7d2526519ea9038fb2e936449403682bb546501 GIT binary patch literal 4096 zcmeH}*_NX?5JXcpLK{&3|F?5PVi7LD-Saw=r^?2lh>YAMet!P9+YFekkGAjIl~)hU z-WzWFzFKy7&)#o0HlW47BhYHW-~89>zr_OrU*Slw7@r9Y>%*{2?A69`Tx`dmR~-nO zrqmPIJW6{tUl#AYe+a`Yr!-9+xy@yRzu$3=4y$2QmTsXW$axBUYz$^Tdhmewf6oo? ztg0|8xt9vQ$a_qX1f1{(>LsukT%2b=46k7rj9+6cKMIX;lb_Kad9PRKH;MN!jKm%y{v|#_gUh^R zlYC-O1ho=9g=!Ch@U|?$>78GAmLk;0Fg+uBu1y zhvi@XE8ao~HTX0aW$dM(2XbHhAOW4NGxZ_C%qexT%+0`omf840KnTsw6s)tb;~Q3= zap1{r2+69#?~#JjrwG9&VWlVoIb1z9EzAQ0`O!uaL+#Wco9|K-0{%5133+A|VOioj zPiOu7GEe6_zY-LDz^1e&=5t)=4jAYMP1B_jf)@d%QfIXr7_aFx(~x=LFKgHcB~c`v zS#b-cl*ceN5z{mU5B_5U&r;NmF{2TcaR!)|AoqBmLLLoGk9gQDkAg2T&eH8CpYsUZ z+ejt?V|sS^`HPVT?J`*)XRZPx-YGDj)MDFeK7sAGvR=xP`2tV!KpHTI^E8DR18G3l zHCj8;)&aAp7HxBMObGdhCZZywcz>wa(Ly4EK?0~r$w3iFgznt>r@5PiHbUUp8!1O# zT*Jfg&;#(+Goz+KS`-72L@r%W60lqEYYrKNmIdV!1u`YgX`j2Co<1BM0SuWGXjE4` zo16%~oQ9Ggyh0aN-U*=kSN@%LgKy%INa31(eQp7WfC(CVsTbGG>x9akpcJyUD`3Db zFx{;>Dv9_jfdVKTZymumyw)c6!fI9i;hzWhol`~7>eW}vp@L@@+1(4@X}!4I@Dm-Y z;(_)W{>}av&y+QSGyZGqZNchL-0aYQe$~0q&uLht0;k^~(Am}n@I3*CGxkF8j7yh5 zy{0@`t$)iFD;q)3HdL*u`hwpD$P=#=1hC=JLR3$9&hit!Dj{}=pTeywkgY7+kt ze}b=gwj+Ne@G<|!Vb$3lC`s4^JT(AYlDU zfeN--&%NRkuV-REi2Fqk*E+x^-hu+}KYF8lSbFn_BO$Z({cHRYSD%*~XaAYo{{RwY Bw`l+X literal 0 HcmV?d00001 diff --git a/texture/bowser.data.h b/texture/bowser.data.h new file mode 100644 index 0000000..1133820 --- /dev/null +++ b/texture/bowser.data.h @@ -0,0 +1,5 @@ +#pragma once +#include +extern uint32_t _binary_bowser_data_start __asm("_binary_bowser_data_start"); +extern uint32_t _binary_bowser_data_end __asm("_binary_bowser_data_end"); +extern uint32_t _binary_bowser_data_size __asm("_binary_bowser_data_size"); diff --git a/texture/bowser.data.pal b/texture/bowser.data.pal new file mode 100644 index 0000000000000000000000000000000000000000..a8c6d94a98ff54766bf50d066e13375a327e73cd GIT binary patch literal 48 zcmV-00MGvb004k72oG2Q?HB+OYXFjK7=U|Yz>EODluGuk0Km1J +extern uint32_t _binary_bowser_data_pal_start __asm("_binary_bowser_data_pal_start"); +extern uint32_t _binary_bowser_data_pal_end __asm("_binary_bowser_data_pal_end"); +extern uint32_t _binary_bowser_data_pal_size __asm("_binary_bowser_data_pal_size"); diff --git a/texture/player.data b/texture/player.data new file mode 100644 index 0000000000000000000000000000000000000000..e1805465e1e1fd6481e9c8fb2bd93ff26cb174d0 GIT binary patch literal 384 zcmaivOBTc+2m~7x5 +extern uint32_t _binary_player_data_start __asm("_binary_player_data_start"); +extern uint32_t _binary_player_data_end __asm("_binary_player_data_end"); +extern uint32_t _binary_player_data_size __asm("_binary_player_data_size"); diff --git a/texture/player.data.pal b/texture/player.data.pal new file mode 100644 index 0000000000000000000000000000000000000000..838f34ad227d71bb0182bf67c51bd936d998b344 GIT binary patch literal 45 zcmZSh&j17h3ikRI3HBcK^$rdP931{9#P6RGe}6*3{{!*=4@~%fVZ;3g@Bjb!4*-EG B7hV7W literal 0 HcmV?d00001 diff --git a/texture/player.data.pal.h b/texture/player.data.pal.h new file mode 100644 index 0000000..873735e --- /dev/null +++ b/texture/player.data.pal.h @@ -0,0 +1,5 @@ +#pragma once +#include +extern uint32_t _binary_player_data_pal_start __asm("_binary_player_data_pal_start"); +extern uint32_t _binary_player_data_pal_end __asm("_binary_player_data_pal_end"); +extern uint32_t _binary_player_data_pal_size __asm("_binary_player_data_pal_size");