diff --git a/CMakeLists.txt b/CMakeLists.txt index 92d8aea28..c18f21cee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,6 +17,8 @@ add_compile_options(-fms-extensions) add_subdirectory(arm9) +add_subdirectory(arm7) + add_executable(calcrom .github/calcrom/calcrom.cpp) target_include_directories(calcrom PRIVATE /usr/local/include) diff --git a/arm7/CMakeLists.txt b/arm7/CMakeLists.txt new file mode 100644 index 000000000..f9dc2e3ce --- /dev/null +++ b/arm7/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required (VERSION 3.15) +set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") +set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") +project(DP_Arm7) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_C_STANDARD 11) + +# TODO: Add commands + +enable_language(ASM) + +add_compile_options(-fms-extensions) + +file(GLOB_RECURSE SOURCES "*.c" "*.cpp" "*.s") + +add_executable(DP_Arm7 ${SOURCES}) +target_include_directories(DP_Arm7 PRIVATE lib/include) +target_compile_definitions(DP_Arm7 PUBLIC __CLION_IDE__) diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s index c4e827cd5..0c153ae9b 100644 --- a/arm9/modules/59/asm/mod59_021D74E0_asm.s +++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s @@ -4,13 +4,6 @@ .balign 4, 0 .rodata - - .global MOD59_021D9F18 -MOD59_021D9F18: ; 0x021D9F18 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global MOD59_021D9F40 MOD59_021D9F40: ; 0x021D9F40 .byte 0x24, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 diff --git a/arm9/modules/59/src/mod59_021D74E0_src.c b/arm9/modules/59/src/mod59_021D74E0_src.c index 13260b000..8e0b3e81f 100644 --- a/arm9/modules/59/src/mod59_021D74E0_src.c +++ b/arm9/modules/59/src/mod59_021D74E0_src.c @@ -33,8 +33,6 @@ extern BOOL MOD59_021D9898(struct UnkStruct_02006234 *param0, u32 *param1); extern BOOL MOD59_021D99F8(struct UnkStruct_02006234 *param0, u32 *param1); //todo move with the other rodata -extern struct GraphicsBanks MOD59_021D9F18; - extern const struct MOD59_ListStruct021D9E0C MOD59_021D9F40[5]; extern const struct MOD59_ListStruct021D9E0C MOD59_021D9F68[5]; @@ -42,26 +40,15 @@ extern const struct MOD59_GraphicsPaletteMap021D9F90 MOD59_021D9F90; extern const u8 MOD59_021D9FE8[0x64]; -const struct WindowTemplate MOD59_021D9D90 = +const struct WindowTemplate MOD59_021D9DB0 = { .bgId = GF_BG_LYR_MAIN_0, - .tilemapLeft = 8, - .tilemapTop = 0, - .width = 24, - .height = 24, + .tilemapLeft = 1, + .tilemapTop = 3, + .width = 16, + .height = 6, .paletteNum = 5, - .baseTile = 301, - }; - -const struct WindowTemplate MOD59_021D9DB8 = - { - .bgId = GF_BG_LYR_MAIN_0, - .tilemapLeft = 2, - .tilemapTop = 19, - .width = 27, - .height = 4, - .paletteNum = 6, - .baseTile = 877, + .baseTile = 781, }; const struct WindowTemplate MOD59_021D9DA0 = @@ -75,6 +62,17 @@ const struct WindowTemplate MOD59_021D9DA0 = .baseTile = 737, }; +const struct WindowTemplate MOD59_021D9DB8 = + { + .bgId = GF_BG_LYR_MAIN_0, + .tilemapLeft = 2, + .tilemapTop = 19, + .width = 27, + .height = 4, + .paletteNum = 6, + .baseTile = 877, + }; + const struct WindowTemplate MOD59_021D9D98 = { .bgId = GF_BG_LYR_MAIN_0, @@ -86,17 +84,6 @@ const struct WindowTemplate MOD59_021D9D98 = .baseTile = 301, }; -const struct WindowTemplate MOD59_021D9DB0 = - { - .bgId = GF_BG_LYR_MAIN_0, - .tilemapLeft = 1, - .tilemapTop = 3, - .width = 16, - .height = 6, - .paletteNum = 5, - .baseTile = 781, - }; - const struct WindowTemplate MOD59_021D9DA8 = { .bgId = GF_BG_LYR_MAIN_0, @@ -108,6 +95,17 @@ const struct WindowTemplate MOD59_021D9DA8 = .baseTile = 853, }; +const struct WindowTemplate MOD59_021D9D90 = + { + .bgId = GF_BG_LYR_MAIN_0, + .tilemapLeft = 8, + .tilemapTop = 0, + .width = 24, + .height = 24, + .paletteNum = 5, + .baseTile = 301, + }; + const u32 MOD59_021D9DC0[3] = { NARC_intro_narc_0031_NCGR, NARC_intro_narc_0032_NCGR, 0xFFFF }; const struct MOD59_ListStruct021D9E0C MOD59_021D9E0C[2] = @@ -122,6 +120,11 @@ const struct MOD59_ListStruct021D9E0C MOD59_021D9E0C[2] = } }; +const struct MOD59_CharStruct021D9DEC MOD59_021D9DFC = + { + .narcId = { NARC_intro_narc_0013_NCGR, NARC_intro_narc_0014_NCGR, NARC_intro_narc_0015_NCGR, NARC_intro_narc_0016_NCGR } + }; + const struct GraphicsModes MOD59_021D9DCC = { .dispMode = GX_DISPMODE_GRAPHICS, @@ -143,11 +146,6 @@ const struct MOD59_CharStruct021D9DEC MOD59_021D9DEC = .narcId = { NARC_intro_narc_0008_NCGR, NARC_intro_narc_0009_NCGR, NARC_intro_narc_0010_NCGR, NARC_intro_narc_0011_NCGR } }; -const struct MOD59_CharStruct021D9DEC MOD59_021D9DFC = - { - .narcId = { NARC_intro_narc_0013_NCGR, NARC_intro_narc_0014_NCGR, NARC_intro_narc_0015_NCGR, NARC_intro_narc_0016_NCGR } - }; - const struct MOD59_UnkStruct021D9E30 MOD59_021D9E1C = { .scrnIds = { NARC_intro_narc_0003_NSCR, NARC_intro_narc_0004_NSCR, NARC_intro_narc_0005_NSCR, NARC_intro_narc_0006_NSCR, NARC_intro_narc_0007_NSCR } @@ -160,6 +158,11 @@ const struct MOD59_UnkStruct021D9E30 MOD59_021D9E30 = const u32 MOD59_021D9E44[5] = { 0, 6, 1, 12, 2060 }; +const struct MOD59_CharStruct021D9E70 MOD59_021D9E88 = + { + .charData = { NARC_intro_narc_0008_NCGR, NARC_intro_narc_0040_NCGR, NARC_intro_narc_0041_NCGR, NARC_intro_narc_0042_NCGR, NARC_intro_narc_0043_NCGR, 0xFF } + }; + const struct MOD59_ListStruct021D9E0C MOD59_021D9E58[3] = { { @@ -176,35 +179,11 @@ const struct MOD59_ListStruct021D9E0C MOD59_021D9E58[3] = } }; - const struct MOD59_CharStruct021D9E70 MOD59_021D9E70 = { .charData = { NARC_intro_narc_0013_NCGR, NARC_intro_narc_0044_NCGR, NARC_intro_narc_0045_NCGR, NARC_intro_narc_0046_NCGR, NARC_intro_narc_0047_NCGR, 0xFF } }; -const struct MOD59_CharStruct021D9E70 MOD59_021D9E88 = - { - .charData = { NARC_intro_narc_0008_NCGR, NARC_intro_narc_0040_NCGR, NARC_intro_narc_0041_NCGR, NARC_intro_narc_0042_NCGR, NARC_intro_narc_0043_NCGR, 0xFF } - }; - -const struct BgTemplate MOD59_021D9EBC = - { - .x = 0, - .y = 0, - .bufferSize = 2048, - .baseTile = 0, - - .size = 1, - .colorMode = 0, - .screenBase = 0, - .charBase = 0, - .bgExtPltt = 0, - .priority = 0, - .areaOver = 0, - .unk17 = 0, - .mosaic = 0 - }; - const struct BgTemplate MOD59_021D9EA0 = { .x = 0, @@ -223,6 +202,24 @@ const struct BgTemplate MOD59_021D9EA0 = .mosaic = 0 }; +const struct BgTemplate MOD59_021D9EBC = + { + .x = 0, + .y = 0, + .bufferSize = 2048, + .baseTile = 0, + + .size = 1, + .colorMode = 0, + .screenBase = 0, + .charBase = 0, + .bgExtPltt = 0, + .priority = 0, + .areaOver = 0, + .unk17 = 0, + .mosaic = 0 + }; + const u16 MOD59_021D9ED8[0x10] = { 0x6A3C, 0x6A3C, 0x6A3C, 0x6A3C, 0x6A3C, 0x6A3C, 0x6A3C, 0x6A3C, 0x6A3C, 0x6A3C, 0x6A3C, 0x6A3C, 0x6A3C, 0x6A3C, 0x6A3C, 0x6A3C }; const struct ListMenuTemplate MOD59_021D9EF8 = @@ -248,6 +245,20 @@ const struct ListMenuTemplate MOD59_021D9EF8 = .unk_1C = 0 }; +const struct GraphicsBanks MOD59_021D9F18 = + { + .bg = 2, + .bgextpltt = 0, + .subbg = 4, + .subbgextpltt = 0, + .obj = 0, + .objextpltt = 0, + .subobj = 0, + .subobjextpltt = 0, + .tex = 0, + .texpltt = 0 + }; + extern void FUN_0200E1D0(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 heap_id); extern u32 FUN_0200E308(void);