From 03bc9fb6dff19793de3de3f6d43beca0bde9dc19 Mon Sep 17 00:00:00 2001 From: Akashi Akira Date: Sat, 6 May 2023 19:11:58 +0100 Subject: [PATCH] add enums for palette loading --- arm9/modules/59/src/mod59_Intro.c | 12 +++---- arm9/modules/59/src/mod59_TV.c | 2 +- arm9/src/gf_gfx_loader.c | 26 +++++++-------- files/demo/intro/intro/.gitignore | 1 + files/demo/intro/intro/.knarcorder | 1 + files/demo/intro/intro/narc_0030.NCGR | Bin 576 -> 0 bytes files/demo/intro/intro/pokeball_button_1.png | Bin 0 -> 331 bytes filesystem.mk | 3 +- graphics_rules.mk | 2 ++ include/bg_window.h | 32 +++++++++++++++++++ include/gf_gfx_loader.h | 4 +-- 11 files changed, 60 insertions(+), 23 deletions(-) delete mode 100644 files/demo/intro/intro/narc_0030.NCGR create mode 100644 files/demo/intro/intro/pokeball_button_1.png diff --git a/arm9/modules/59/src/mod59_Intro.c b/arm9/modules/59/src/mod59_Intro.c index 2c1d94f78..501aed989 100644 --- a/arm9/modules/59/src/mod59_Intro.c +++ b/arm9/modules/59/src/mod59_Intro.c @@ -1021,8 +1021,8 @@ THUMB_FUNC void MOD59_LoadInitialTilemap(MOD59_IntroOverlayData *data) mainPal = NARC_intro_main_background_pearl_NCLR; subPal = NARC_intro_sub_background_pearl_NCLR; } - GfGfxLoader_GXLoadPal(NARC_DEMO_INTRO_INTRO, mainPal, GF_BG_LYR_MAIN_0, 0, 0x60, data->heap_id); - GfGfxLoader_GXLoadPal(NARC_DEMO_INTRO_INTRO, subPal, GF_BG_LYR_SUB_0, 0, 0xa0, data->heap_id); + GfGfxLoader_GXLoadPal(NARC_DEMO_INTRO_INTRO, mainPal, GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_OFFSET_0, 0x60, data->heap_id); + GfGfxLoader_GXLoadPal(NARC_DEMO_INTRO_INTRO, subPal, GF_PAL_LOCATION_SUB_BG, GF_PAL_SLOT_OFFSET_0, 0xa0, data->heap_id); MOD59_LoadMainScrnData(data); MOD59_LoadCharDataFromIndex(data); MOD59_LoadSubScrnData(data); @@ -1046,14 +1046,14 @@ THUMB_FUNC void MOD59_LoadCharDataFromIndex(MOD59_IntroOverlayData *data) if (data->spriteDataIndex0 != 0 && data->spriteDataIndex0 < 12) { GfGfxLoader_LoadCharData(NARC_DEMO_INTRO_INTRO, graphicsPaletteMap.map[data->spriteDataIndex0].charNum, data->bgConfig, GF_BG_LYR_MAIN_1, 0, 0, FALSE, data->heap_id); - GfGfxLoader_GXLoadPal(NARC_DEMO_INTRO_INTRO, graphicsPaletteMap.map[data->spriteDataIndex0].palNum, GF_BG_LYR_MAIN_0, 0xE0, 0x20, data->heap_id); + GfGfxLoader_GXLoadPal(NARC_DEMO_INTRO_INTRO, graphicsPaletteMap.map[data->spriteDataIndex0].palNum, GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_OFFSET_7, 0x20, data->heap_id); GfGfxLoader_LoadScrnData(NARC_DEMO_INTRO_INTRO, NARC_intro_character_screen_NSCR, data->bgConfig, GF_BG_LYR_MAIN_1, 0, 0, FALSE, data->heap_id); MOD59_TilemapChangePalette(data, GF_BG_LYR_MAIN_1, 7); } if (data->spriteDataIndex1 != 0 && data->spriteDataIndex1 < 12) { GfGfxLoader_LoadCharData(NARC_DEMO_INTRO_INTRO, graphicsPaletteMap.map[data->spriteDataIndex1].charNum, data->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, FALSE, data->heap_id); - GfGfxLoader_GXLoadPal(NARC_DEMO_INTRO_INTRO, graphicsPaletteMap.map[data->spriteDataIndex1].palNum, GF_BG_LYR_MAIN_0, 0x100, 0x20, data->heap_id); + GfGfxLoader_GXLoadPal(NARC_DEMO_INTRO_INTRO, graphicsPaletteMap.map[data->spriteDataIndex1].palNum, GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_OFFSET_8, 0x20, data->heap_id); GfGfxLoader_LoadScrnData(NARC_DEMO_INTRO_INTRO, NARC_intro_character_screen_NSCR, data->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, FALSE, data->heap_id); MOD59_TilemapChangePalette(data, GF_BG_LYR_MAIN_2, 8); } @@ -1266,9 +1266,9 @@ THUMB_FUNC void MOD59_LoadPokeballButton(MOD59_IntroOverlayData *data) { GfGfxLoader_LoadScrnData(NARC_DEMO_INTRO_INTRO, NARC_intro_narc_0038_NSCR, data->bgConfig, GF_BG_LYR_SUB_2, 0, 0, FALSE, data->heap_id); MOD59_TilemapChangePalette(data, GF_BG_LYR_SUB_2, 9); - GfGfxLoader_GXLoadPal(NARC_DEMO_INTRO_INTRO, NARC_intro_narc_0039_NCLR, GF_BG_LYR_SUB_0, 0xe0, 0x60, data->heap_id); + GfGfxLoader_GXLoadPal(NARC_DEMO_INTRO_INTRO, NARC_intro_narc_0039_NCLR, GF_PAL_LOCATION_SUB_BG, GF_PAL_SLOT_OFFSET_7, 0x60, data->heap_id); BG_ClearCharDataRange(GF_BG_LYR_SUB_2, 0x20, 0, data->heap_id); - GfGfxLoader_LoadCharData(NARC_DEMO_INTRO_INTRO, NARC_intro_narc_0030_NCGR, data->bgConfig, GF_BG_LYR_SUB_2, 0x20, 0, FALSE, data->heap_id); + GfGfxLoader_LoadCharData(NARC_DEMO_INTRO_INTRO, NARC_intro_pokeball_button_1_NCGR, data->bgConfig, GF_BG_LYR_SUB_2, 0x20, 0, FALSE, data->heap_id); } THUMB_FUNC BOOL MOD59_MoveSprite(MOD59_IntroOverlayData *data, u32 layer, u32 param2) diff --git a/arm9/modules/59/src/mod59_TV.c b/arm9/modules/59/src/mod59_TV.c index 55e029636..5defe0ba1 100644 --- a/arm9/modules/59/src/mod59_TV.c +++ b/arm9/modules/59/src/mod59_TV.c @@ -456,7 +456,7 @@ THUMB_FUNC void MOD59_TVSetupGraphics(MOD59_TVOverlayData *data) GfGfxLoader_LoadCharData(NARC_DEMO_INTRO_INTRO_TV, NARC_intro_tv_narc_0000_NCGR, data->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, FALSE, data->heap_id); GfGfxLoader_LoadScrnData(NARC_DEMO_INTRO_INTRO_TV, NARC_intro_tv_narc_0003_NSCR, data->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, FALSE, data->heap_id); - GfGfxLoader_GXLoadPal(NARC_DEMO_INTRO_INTRO_TV, NARC_intro_tv_narc_0006_NCLR, GF_BG_LYR_MAIN_0, 0, 0, data->heap_id); + GfGfxLoader_GXLoadPal(NARC_DEMO_INTRO_INTRO_TV, NARC_intro_tv_narc_0006_NCLR, GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_OFFSET_0, 0, data->heap_id); FUN_02002ED0(GF_BG_LYR_MAIN_0, 0x20, data->heap_id); diff --git a/arm9/src/gf_gfx_loader.c b/arm9/src/gf_gfx_loader.c index 0c6d593e8..0b827be69 100644 --- a/arm9/src/gf_gfx_loader.c +++ b/arm9/src/gf_gfx_loader.c @@ -38,12 +38,12 @@ THUMB_FUNC void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct BgC } } -THUMB_FUNC void GfGfxLoader_GXLoadPal(NarcId narcId, s32 memberNo, u32 layer, u32 baseAddr, u32 szByte, u32 heap_id) +THUMB_FUNC void GfGfxLoader_GXLoadPal(NarcId narcId, s32 memberNo, enum GFPalLoadLocation location, enum GFPalSlotOffset palSlotOffset, u32 szByte, u32 heap_id) { - GfGfxLoader_GXLoadPalWithSrcOffset(narcId, memberNo, layer, 0, baseAddr, szByte, heap_id); + GfGfxLoader_GXLoadPalWithSrcOffset(narcId, memberNo, location, 0, palSlotOffset, szByte, heap_id); } -THUMB_FUNC void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, u32 layer, u32 srcOffset, u32 baseAddr, u32 szByte, u32 heap_id) +THUMB_FUNC void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, enum GFPalLoadLocation location, u32 srcOffset, enum GFPalSlotOffset palSlotOffset, u32 szByte, u32 heap_id) { static void (*const load_funcs[])(void *, u32, u32) = { GX_LoadBGPltt, @@ -65,30 +65,30 @@ THUMB_FUNC void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, if (szByte == 0) szByte = pPltData->szByte - srcOffset; DC_FlushRange(pPltData->pRawData, szByte); - switch (layer) + switch (location) { - case 2: + case GF_PAL_LOCATION_MAIN_BGEXT: GX_BeginLoadBGExtPltt(); - load_funcs[layer](pPltData->pRawData, baseAddr, szByte); + load_funcs[location](pPltData->pRawData, palSlotOffset, szByte); GX_EndLoadBGExtPltt(); break; - case 6: + case GF_PAL_LOCATION_SUB_BGEXT: GXS_BeginLoadBGExtPltt(); - load_funcs[layer](pPltData->pRawData, baseAddr, szByte); + load_funcs[location](pPltData->pRawData, palSlotOffset, szByte); GXS_EndLoadBGExtPltt(); break; - case 3: + case GF_PAL_LOCATION_MAIN_OBJEXT: GX_BeginLoadOBJExtPltt(); - load_funcs[layer](pPltData->pRawData, baseAddr, szByte); + load_funcs[location](pPltData->pRawData, palSlotOffset, szByte); GX_EndLoadOBJExtPltt(); break; - case 7: + case GF_PAL_LOCATION_SUB_OBJEXT: GXS_BeginLoadOBJExtPltt(); - load_funcs[layer](pPltData->pRawData, baseAddr, szByte); + load_funcs[location](pPltData->pRawData, palSlotOffset, szByte); GXS_EndLoadOBJExtPltt(); break; default: - load_funcs[layer](pPltData->pRawData, baseAddr, szByte); + load_funcs[location](pPltData->pRawData, palSlotOffset, szByte); break; } } diff --git a/files/demo/intro/intro/.gitignore b/files/demo/intro/intro/.gitignore index abd5fa247..d546d0d50 100644 --- a/files/demo/intro/intro/.gitignore +++ b/files/demo/intro/intro/.gitignore @@ -18,3 +18,4 @@ barry_front.NCLR sub_background_tileset.NCGR sub_background_diamond.NCLR sub_background_pearl.NCLR +pokeball_button_1.NCGR diff --git a/files/demo/intro/intro/.knarcorder b/files/demo/intro/intro/.knarcorder index 55f4aefc2..68bb7b81d 100644 --- a/files/demo/intro/intro/.knarcorder +++ b/files/demo/intro/intro/.knarcorder @@ -28,3 +28,4 @@ sub_background_1.NSCR sub_background_2.NSCR sub_background_3.NSCR sub_background_4.NSCR +pokeball_button_1.NCGR diff --git a/files/demo/intro/intro/narc_0030.NCGR b/files/demo/intro/intro/narc_0030.NCGR deleted file mode 100644 index 55e8b5fe201392c61bc049300bc724ee9ca0e81a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmaiyF>ZrE5Jf-E1ze`gQ4&!kRe~Ii<#HQ(SE;EiF0d=jS+Ea4l{$h^&OsCV4(gGktkFbPurY>hMOw;a;a6@fFQo=#`jojZF+v%e}60T^;Gf?$#4NEaQ4Um diff --git a/files/demo/intro/intro/pokeball_button_1.png b/files/demo/intro/intro/pokeball_button_1.png new file mode 100644 index 0000000000000000000000000000000000000000..31276cdc23a37426507b942b3acae373aeaacfe5 GIT binary patch literal 331 zcmeAS@N?(olHy`uVBq!ia0vp^4M5Dn!VDx2e}3f)qznRlLR{Z%Ir{9V<+o=^-PM*r zv1iY|Em^YW>a+hq5EKN`1{9gH6TcEM)#