Gamecube NTSC US Support (#155)

* initial asset xml split

* move otrexporter back

* update exporter

* update xml progress

* update xmls -- todo: rename actor.xml

* use latest otrexporter

* cherry pick over gc support changes

* zapdtr gc support

* fix title screen

* fix jumpslash

* add gc file list

* add additional asset header

* Update OTRExporter

* Update ZAPDTR

* Update libultraship

* Update OTRExporter

* submodule

* attempt 3 at submodules

* add gPowderKegFuseVtx to gc xml

* lus main

* for pr

* zapdtr rebased

* move game versions to benport

* update xml for PRs

* move audio, todo: add to GC

* gc audio

* explain commented assets

* zapdtr

* pull and update zapdtr

* Update OTRExporter
This commit is contained in:
inspectredc
2024-05-22 09:05:02 -05:00
committed by Garrett Cox
parent 3ad053807e
commit c897fc2399
1324 changed files with 28928 additions and 23 deletions
+4
View File
@@ -694,6 +694,7 @@ extern "C" uint32_t ResourceMgr_GetGamePlatform(int index) {
case OOT_NTSC_US_12:
case OOT_PAL_10:
case OOT_PAL_11:
case MM_NTSC_US_10:
return GAME_PLATFORM_N64;
case OOT_NTSC_JP_GC:
case OOT_NTSC_US_GC:
@@ -704,6 +705,7 @@ extern "C" uint32_t ResourceMgr_GetGamePlatform(int index) {
case OOT_PAL_GC_DBG1:
case OOT_PAL_GC_DBG2:
case OOT_PAL_GC_MQ_DBG:
case MM_NTSC_US_GC:
return GAME_PLATFORM_GC;
}
}
@@ -719,6 +721,8 @@ extern "C" uint32_t ResourceMgr_GetGameRegion(int index) {
case OOT_NTSC_US_GC:
case OOT_NTSC_JP_MQ:
case OOT_NTSC_US_MQ:
case MM_NTSC_US_10:
case MM_NTSC_US_GC:
return GAME_REGION_NTSC;
case OOT_PAL_10:
case OOT_PAL_11:
+3
View File
@@ -10,6 +10,9 @@
#define GAME_PLATFORM_N64 0
#define GAME_PLATFORM_GC 1
#define MM_NTSC_US_10 0x5354631C
#define MM_NTSC_US_GC 0xB443EB08
#ifdef __cplusplus
#include <Context.h>
+10 -3
View File
@@ -60,9 +60,11 @@ static constexpr uint32_t OOT_PAL_10 = 0xB044B569;
static constexpr uint32_t OOT_PAL_11 = 0xB2055FBD;
static constexpr uint32_t MM_US_10 = 0x5354631C;
static constexpr uint32_t MM_US_GC = 0xB443EB08;
static const std::unordered_map<uint32_t, const char*> verMap = {
{ MM_US_10, "US 1.0" },
{ MM_US_GC, "US GC"},
//{ OOT_PAL_GC, "PAL Gamecube" },
//{ OOT_PAL_MQ, "PAL MQ" },
//{ OOT_PAL_GC_DBG1, "PAL Debug 1" },
@@ -75,6 +77,7 @@ static const std::unordered_map<uint32_t, const char*> verMap = {
// TODO only check the first 54MB of the rom.
static constexpr std::array<const uint32_t, 10> goodCrcs = {
0x96F49400, // MM US 1.0 32MB
0xBB434787, // MM GC
//0xfa8c0555, // MQ DBG 64MB (Original overdump)
//0x8652ac4c, // MQ DBG 64MB
//0x5B8A1EB7, // MQ DBG 64MB (Empty overdump)
@@ -506,6 +509,10 @@ const char* Extractor::GetZapdVerStr() const {
return "N64_PAL_10";
case OOT_PAL_11:
return "N64_PAL_11";
case MM_US_10:
return "N64_US";
case MM_US_GC:
return "GC_US";
default:
// We should never be in a state where this path happens.
UNREACHABLE;
@@ -541,7 +548,7 @@ bool Extractor::CallZapd(std::string installPath, std::string exportdir) {
char confPath[1024];
char portVersion[18]; // 5 digits for int16_max (x3) + separators + terminator
std::array<const char*, argc> argv;
// const char* version = GetZapdVerStr();
const char* version = GetZapdVerStr();
const char* otrFile = "mm.otr";
std::string romPath = std::filesystem::absolute(mCurrentRomPath).string();
@@ -559,8 +566,8 @@ bool Extractor::CallZapd(std::string installPath, std::string exportdir) {
std::filesystem::current_path(tempdir);
snprintf(xmlPath, 1024, "assets/extractor/xmls");
snprintf(confPath, 1024, "assets/extractor/Config.xml");
snprintf(xmlPath, 1024, "assets/extractor/xmls/%s", version);
snprintf(confPath, 1024, "assets/extractor/Config_%s.xml", version);
snprintf(portVersion, 18, "%d.%d.%d", gBuildVersionMajor, gBuildVersionMinor, gBuildVersionPatch);
argv[0] = "ZAPD";
+11
View File
@@ -0,0 +1,11 @@
#ifndef CODE_ACTOR_H
#define CODE_ACTOR_H 1
#include "align_asset_macro.h"
#define dD_801AEF88 "__OTR__code/actor/D_801AEF88"
static const ALIGN_ASSET(2) char D_801AEF88[] = dD_801AEF88;
#define dD_801AEFA0 "__OTR__code/actor/D_801AEFA0"
static const ALIGN_ASSET(2) char D_801AEFA0[] = dD_801AEFA0;
#endif // CODE_ACTOR_H
@@ -3,6 +3,6 @@
<ActorList File="symbols/ActorList_MM.txt"/>
<ObjectList File="symbols/ObjectList_MM.txt"/>
<EnumData File="EnumData.xml"/>
<ExternalXMLFolder Path="assets/extractor/xmls/"/>
<ExternalXMLFolder Path="assets/extractor/xmls/GC_US/"/>
<ExternalFile XmlPath="objects/gameplay_keep.xml" OutPath="objects/gameplay_keep/"/>
</Root>
+8
View File
@@ -0,0 +1,8 @@
<Root>
<SymbolMap File="symbols/SymbolMap_MM.txt"/>
<ActorList File="symbols/ActorList_MM.txt"/>
<ObjectList File="symbols/ObjectList_MM.txt"/>
<EnumData File="EnumData.xml"/>
<ExternalXMLFolder Path="assets/extractor/xmls/N64_US/"/>
<ExternalFile XmlPath="objects/gameplay_keep.xml" OutPath="objects/gameplay_keep/"/>
</Root>
File diff suppressed because it is too large Load Diff
+6
View File
@@ -0,0 +1,6 @@
<Root>
<File Name="code" BaseAddress="0x800A6440" RangeStart="0x107218" RangeEnd="0x107238" OutName="actor">
<DList Name="D_801AEF88" Offset="0x107218"/>
<DList Name="D_801AEFA0" Offset="0x107230"/>
</File>
</Root>
@@ -0,0 +1,29 @@
<Root>
<File Name="code" BaseAddress="0x800A6440" RangeStart="0x1127E0" RangeEnd="0x1132A0" OutName="debug_display">
<Array Name="sDebugDisplay1Vtx" Count="36" Offset="0x1127E0">
<Vtx/>
</Array>
<DList Name="sDebugDisplay1DL" Offset="0x112A20"/>
<Array Name="sDebugDisplay2Vtx" Count="8" Offset="0x112A80">
<Vtx/>
</Array>
<DList Name="sDebugDisplay2DL" Offset="0x112B00"/>
<Array Name="sDebugDisplay3Vtx" Count="40" Offset="0x112B50">
<Vtx/>
</Array>
<DList Name="sDebugDisplay3DL" Offset="0x112DD0"/>
<Texture Name="sDebugDisplayCircleTex" OutName="debug_circle" Format="i8" Width="16" Height="16" Offset="0x112E48"/>
<Texture Name="sDebugDisplayBallTex" OutName="debug_ball" Format="i8" Width="16" Height="16" Offset="0x112F48"/>
<Texture Name="sDebugDisplayCursorTex" OutName="debug_cursor" Format="i8" Width="16" Height="16" Offset="0x113048"/>
<Texture Name="sDebugDisplayCrossTex" OutName="debug_cross" Format="i8" Width="16" Height="16" Offset="0x113148"/>
<Array Name="sDebugDisplaySpriteVtx" Count="4" Offset="0x113248">
<Vtx/>
</Array>
<DList Name="sDebugDisplaySpriteDL" Offset="0x113288"/>
</File>
</Root>
@@ -0,0 +1,9 @@
<Root>
<File Name="code" BaseAddress="0x800A6440" RangeStart="0x1144A0" RangeEnd="0x114530" OutName="eff_footmark">
<Array Name="gEffFootprintVtx" Count="3" Offset="0x1144A0">
<Vtx/>
</Array>
<DList Name="gEffFootprintMaterialDL" Offset="0x1144D0"/>
<DList Name="gEffFootprintModelDL" Offset="0x114518"/>
</File>
</Root>
@@ -0,0 +1,7 @@
<Root>
<File Name="code" BaseAddress="0x800A6440" RangeStart="0x106910" RangeEnd="0x106950" OutName="eff_shield_particle">
<Array Name="sEffShieldParticleVtx" Count="4" Offset="0x106910">
<Vtx/>
</Array>
</File>
</Root>
@@ -0,0 +1,5 @@
<Root>
<File Name="code" OutName="fbdemo_circle" BaseAddress="0x800A6440" RangeStart="0x11E070" RangeEnd="0x11E870">
<Texture Name="gCircleTex" Format="i4" Width="64" Height="64" Offset="0x11E070"/>
</File>
</Root>

Some files were not shown because too many files have changed in this diff Show More