NTSC GC Support (#5254)

* copy n64 pal 10

doing this so i can check diffs i make

* transfer german->jp icon item

* overlays, message data, icon item jpn, audio, code

todo: title_static, gameplay keep

* add kanji and fix title cards

* title static

* spell folder correctly

* boss title cards, do action, icon item, item name, map name

* headers for jpn stuff

* gameplay_keep

* Scenes, audio, jp text extraction, rom support, overlay fixes, sheik & darunia

todo: test & disable darunia fix cvar for ntsc

* msgptr init fix

* icon item offsets

* comment out title cards until zapd can fix itself (we extract these in a different file anyway)

* compile and font implemented to get past title screen

* file select

* message, kaleido and everything else but rando

* uintptr_t

* rando and custom messages working!

* ntsc-j 1.0 support

* n64 logo?

* copy ntsc 10 to 11

* ntsc 11 extraction

* change title version names

* copy ntsc 11 to 12

* ntsc 12 extraction

* clean up some todos

* re checkout submodules post merge

* fix US filename

* support cross-version filenames

* add new versions to non-mq list

* use correct message table init

* Fix ntsc nes message table overriding pal nes message table

* actual fix, allows extraction

* fix file name using wrong font of file being hovered over

* Fix barinade crash

* re-add pal

* better jabu fix and revert LUS

* fix gerudo title cards

* better better owl select

* more owl fixes

* build

* fix some name decode issues

* Switch Language Mid Text

* Fix PAL displaying for JP filenames

* Fix AskToEquip Crash

* Disable Credits Timing Fix on NTSC

* Fix JP Text positioning

* basic language switching (BIG todo: file select, title screen)

* Title Screen Hopefully working

* add ntsc to linux appimage stuff, TODO: add .v64/.n64 support

* Update OTRExporter

* Fix pause to decide offset

* Fix bomb item name crash

* fix fire arrows and PoH

* builds

* update asset changes and fix menu language changing

* fix name decode

* Fix crashes and add rando/boss rush select stuff

* Revive debug feature by setting language cvar too

* Fix ocarina text speed softlock, and update jp text speed changes

* Merge remote-tracking branch 'upstream/develop' into NTSC

* Fix options menu and let pal use japanese fully

* Resolve some suggestions

* match up gTextSpeed changes to english (still broken!)

* Fix text speed crash

* Set default filename language on save init funcs

* copy n64 ntsc 1.2 to gc nmq ntsc and add rom info

* extractor working for ntsc gc u

* Extraction Works

* bump otrexporter

* Display same correct info for n64 ntsc-j and ntsc-u

* ovl asset fixes

* final font diff

* change the correct ovl file choose xml

* copy asset files for jp

* JP Working

* Copy jp and us xmls to mq

* MQ Working

* quicktext more closely aligned with decomp

* add versions to mq switch

* linux appimage v64/n64 checksums

* bump zapd

* Credits Fix Tooltip Adjusted

* update supported hashes json

* update shasums to include JP n64

* add shasum hashes

* Bump submodules back to upstream
This commit is contained in:
inspectredc
2025-03-30 23:16:24 +01:00
committed by GitHub
parent 026a418789
commit 0dc5ff4984
2749 changed files with 144218 additions and 7 deletions
+31 -1
View File
@@ -58,6 +58,11 @@ static constexpr uint32_t OOT_PAL_GC_DBG2 = 0x87121EFE; // 03-13-2002 build
static constexpr uint32_t OOT_PAL_GC_MQ_DBG = 0x917D18F6;
static constexpr uint32_t OOT_PAL_10 = 0xB044B569;
static constexpr uint32_t OOT_PAL_11 = 0xB2055FBD;
static constexpr uint32_t OOT_NTSC_US_GC = 0xF3DD35BA;
static constexpr uint32_t OOT_NTSC_JP_GC = 0xF611F4BA;
static constexpr uint32_t OOT_NTSC_JP_GC_CE = 0xF7F52DB8;
static constexpr uint32_t OOT_NTSC_US_MQ = 0xF034001A;
static constexpr uint32_t OOT_NTSC_JP_MQ = 0xF43B45BA;
static constexpr uint32_t OOT_NTSC_10 = 0xEC7011B7;
static constexpr uint32_t OOT_NTSC_11 = 0xD43DA81F;
static constexpr uint32_t OOT_NTSC_12 = 0x693BA2AE;
@@ -70,13 +75,18 @@ static const std::unordered_map<uint32_t, const char*> verMap = {
{ OOT_PAL_GC_MQ_DBG, "PAL MQ Debug" },
{ OOT_PAL_10, "PAL N64 1.0" },
{ OOT_PAL_11, "PAL N64 1.1" },
{ OOT_NTSC_US_GC, "NTSC Gamecube US" },
{ OOT_NTSC_JP_GC, "NTSC Gamecube JP" },
{ OOT_NTSC_JP_GC_CE, "NTSC Gamecube JP (Collector's Edition)" },
{ OOT_NTSC_US_GC, "NTSC MQ US" },
{ OOT_NTSC_JP_GC, "NTSC MQ JP" },
{ OOT_NTSC_10, "NTSC N64 1.0" },
{ OOT_NTSC_11, "NTSC N64 1.1" },
{ OOT_NTSC_12, "NTSC N64 1.2" },
};
// TODO only check the first 54MB of the rom.
static constexpr std::array<const uint32_t, 16> goodCrcs = {
static constexpr std::array<const uint32_t, 21> goodCrcs = {
0xfa8c0555, // MQ DBG 64MB (Original overdump)
0x8652ac4c, // MQ DBG 64MB
0x5B8A1EB7, // MQ DBG 64MB (Empty overdump)
@@ -93,6 +103,11 @@ static constexpr std::array<const uint32_t, 16> goodCrcs = {
0xA25D1262, // N64 NTSC JP 1.1
0x15736A58, // N64 NTSC US 1.2
0x83B8967D, // N64 NTSC JP 1.2
0xD61453DE, // GC NTSC US
0x4129C825, // GC MQ NTSC US
0x11A4BE61, // GC NTSC JP
0x2BC6C6FD, // GC NTSC JP Collector's Edition
0x02CD974C, // GC MQ NTSC JP
};
enum class ButtonId : int {
@@ -519,10 +534,15 @@ bool Extractor::IsMasterQuest() const {
switch (GetRomVerCrc()) {
case OOT_PAL_MQ:
case OOT_PAL_GC_MQ_DBG:
case OOT_NTSC_US_MQ:
case OOT_NTSC_JP_MQ:
return true;
case OOT_NTSC_10:
case OOT_NTSC_11:
case OOT_NTSC_12:
case OOT_NTSC_US_GC:
case OOT_NTSC_JP_GC:
case OOT_NTSC_JP_GC_CE:
case OOT_PAL_10:
case OOT_PAL_11:
case OOT_PAL_GC:
@@ -547,6 +567,16 @@ const char* Extractor::GetZapdVerStr() const {
return "N64_PAL_10";
case OOT_PAL_11:
return "N64_PAL_11";
case OOT_NTSC_US_GC:
return "GC_NMQ_NTSC_U";
case OOT_NTSC_JP_GC:
return "GC_NMQ_NTSC_J";
case OOT_NTSC_JP_GC_CE:
return "GC_NMQ_NTSC_J_CE";
case OOT_NTSC_US_MQ:
return "GC_MQ_NTSC_U";
case OOT_NTSC_JP_MQ:
return "GC_MQ_NTSC_J";
case OOT_NTSC_10:
return "N64_NTSC_10";
case OOT_NTSC_11: