mirror of
https://github.com/zeldaret/oot
synced 2026-05-22 22:44:26 -04:00
gc-eu-dbg OK (#2700)
* gc-eu-dbg OK * cleanup/fortify makefile and line_numbers.h changes * fill segments.csv * add gc-eu-dbg to Jenkinsfile * cleanup/fortify dmadata_table.h * add gc-eu-dbg to readme * fix checksum check and compressed checksum
This commit is contained in:
Vendored
+7
@@ -127,6 +127,13 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Build gc-eu-dbg') {
|
||||
steps {
|
||||
script {
|
||||
build('gc-eu-dbg', 'oot-gc-eu-dbg.z64')
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Generate patch') {
|
||||
when {
|
||||
not {
|
||||
|
||||
@@ -141,6 +141,14 @@ else ifeq ($(VERSION),gc-eu-mq-dbg)
|
||||
BUILD_DATE := 03-02-21
|
||||
BUILD_TIME := 00:16:31
|
||||
REVISION := 15
|
||||
else ifeq ($(VERSION),gc-eu-dbg)
|
||||
REGION ?= EU
|
||||
PLATFORM := GC
|
||||
DEBUG_FEATURES ?= 1
|
||||
BUILD_CREATOR := zelda@srd022j
|
||||
BUILD_DATE := 03-02-21
|
||||
BUILD_TIME := 00:49:18
|
||||
REVISION := 15
|
||||
else ifeq ($(VERSION),gc-eu)
|
||||
REGION ?= EU
|
||||
PLATFORM := GC
|
||||
|
||||
@@ -39,6 +39,7 @@ It builds the following versions:
|
||||
| gc-us | 02-12-19 13:28:09 | GameCube US | `cd09029edcfb7c097ac01986a0f83d3f` |
|
||||
| gc-us-mq | 02-12-19 14:05:42 | GameCube US Master Quest | `da35577fe54579f6a266931cc75f512d` |
|
||||
| gc-eu-mq-dbg | 03-02-21 00:16:31 | GameCube Europe/PAL Master Quest Debug | `75e344f41c26ec2ec5ad92caa9e25629`<br>`8ca71e87de4ce5e9f6ec916202a623e9`<br>`f751d1a097764e2337b1ac9ba1e27699`<br>`dde376d47187b931820d5b2957cded14` |
|
||||
| gc-eu-dbg | 03-02-21 00:49:18 | GameCube Europe/PAL Debug | `3c10b67a76616ae2c162def7528724cf`<br>`382dc484e317d6522745c95387e7d5b9` |
|
||||
| gc-eu | 03-02-21 20:12:23 | GameCube Europe/PAL | `2c27b4e000e85fd78dbca551f1b1c965` |
|
||||
| gc-eu-mq | 03-02-21 20:37:19 | GameCube Europe/PAL Master Quest | `1618403427e4344a57833043db5ce3c3` |
|
||||
| gc-jp-ce | 03-10-08 21:53:00 | GameCube Japan (Collector's Edition Disc) | `0c13e0449a28ea5b925cdb8af8d29768` |
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
414fdf77955f510da713c12cbc90d6f0 build/gc-eu-dbg/oot-gc-eu-dbg-compressed.z64
|
||||
@@ -0,0 +1 @@
|
||||
382dc484e317d6522745c95387e7d5b9 build/gc-eu-dbg/oot-gc-eu-dbg.z64
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+26
-20
@@ -7,33 +7,35 @@
|
||||
|
||||
// The "LN" macros defined here are not meant to be used directly. See the wrapper macros below.
|
||||
#if OOT_VERSION == NTSC_1_0
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (ntsc_1_0)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (ntsc_1_0)
|
||||
#elif OOT_VERSION == NTSC_1_1
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (ntsc_1_1)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (ntsc_1_1)
|
||||
#elif OOT_VERSION == PAL_1_0
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (pal_1_0)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (pal_1_0)
|
||||
#elif OOT_VERSION == NTSC_1_2
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (ntsc_1_2)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (ntsc_1_2)
|
||||
#elif OOT_VERSION == PAL_1_1
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (pal_1_1)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (pal_1_1)
|
||||
#elif OOT_VERSION == GC_JP
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_jp)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_jp)
|
||||
#elif OOT_VERSION == GC_JP_MQ
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_jp_mq)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_jp_mq)
|
||||
#elif OOT_VERSION == GC_US
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_us)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_us)
|
||||
#elif OOT_VERSION == GC_US_MQ
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_us_mq)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_us_mq)
|
||||
#elif OOT_VERSION == GC_EU_MQ_DBG
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_eu_mq_dbg)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_eu_mq_dbg)
|
||||
#elif OOT_VERSION == GC_EU_DBG
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_eu_dbg)
|
||||
#elif OOT_VERSION == GC_EU
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_eu)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_eu)
|
||||
#elif OOT_VERSION == GC_EU_MQ
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_eu_mq)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_eu_mq)
|
||||
#elif OOT_VERSION == GC_JP_CE
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_jp_ce)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_jp_ce)
|
||||
#elif OOT_VERSION == IQUE_CN
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (ique_cn)
|
||||
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (ique_cn)
|
||||
#else
|
||||
#error "Unsupported OOT version"
|
||||
#endif
|
||||
@@ -48,22 +50,26 @@
|
||||
|
||||
// NTSC 1.0 and all the other versions
|
||||
#define LN1(ntsc_1_0, other) \
|
||||
LN(ntsc_1_0, other, other, other, other, other, other, other, other, other, other, other, other, other)
|
||||
LN(ntsc_1_0, other, other, other, other, other, other, other, other, other, other, other, other, other, other)
|
||||
|
||||
// NTSC 1.0, NTSC 1.1, and all the other versions
|
||||
#define LN2(ntsc_1_0, ntsc_1_1, other) \
|
||||
LN(ntsc_1_0, ntsc_1_1, other, other, other, other, other, other, other, other, other, other, other, other)
|
||||
LN(ntsc_1_0, ntsc_1_1, other, other, other, other, other, other, other, other, other, other, other, other, other)
|
||||
|
||||
// NTSC 1.0, iQue, GameCube, and all the other versions
|
||||
#define LN3(ntsc_1_0, other, ique, gc) \
|
||||
LN(ntsc_1_0, other, other, other, other, gc, gc, gc, gc, gc, gc, gc, gc, ique)
|
||||
LN(ntsc_1_0, other, other, other, other, gc, gc, gc, gc, gc, gc, gc, gc, gc, ique)
|
||||
|
||||
// NTSC 1.0, NTSC 1.1, iQue, GameCube, and all the other versions
|
||||
#define LN4(ntsc_1_0, ntsc_1_1, other, ique, gc) \
|
||||
LN(ntsc_1_0, ntsc_1_1, other, other, other, gc, gc, gc, gc, gc, gc, gc, gc, ique)
|
||||
LN(ntsc_1_0, ntsc_1_1, other, other, other, gc, gc, gc, gc, gc, gc, gc, gc, gc, ique)
|
||||
|
||||
// NTSC 1.0, NTSC 1.1, NTSC 1.2/PAL 1.0, iQue, Gamecube US/JP, Gamecube EU, and Gamecube CE
|
||||
// NTSC 1.0, NTSC 1.1, NTSC 1.2/PAL 1.0, iQue, GameCube US/JP, GameCube EU, and GameCube CE
|
||||
#define LN5(ntsc_1_0, ntsc_1_1, other, pal_1_1, ique, gc_ntsc, gc_eu, gc_jp_ce) \
|
||||
LN(ntsc_1_0, ntsc_1_1, other, other, pal_1_1, gc_ntsc, gc_ntsc, gc_ntsc, gc_ntsc, gc_eu, gc_eu, gc_eu, gc_jp_ce, ique)
|
||||
LN(ntsc_1_0, ntsc_1_1, other, other, pal_1_1, gc_ntsc, gc_ntsc, gc_ntsc, gc_ntsc, gc_eu, gc_eu, gc_eu, gc_eu, gc_jp_ce, ique)
|
||||
|
||||
// GameCube EU Debug and all the other versions
|
||||
#define LN6(other, gc_eu_dbg) \
|
||||
LN(other, other, other, other, other, other, other, other, other, other, gc_eu_dbg, other, other, other, other)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/**
|
||||
* Select dmadata table for version
|
||||
*/
|
||||
#if OOT_VERSION == GC_EU_MQ_DBG && !NON_MATCHING
|
||||
#include "dmadata_table_mqdbg.h"
|
||||
#if (OOT_VERSION == GC_EU_MQ_DBG || OOT_VERSION == GC_EU_DBG) && !NON_MATCHING
|
||||
#include "dmadata_table_dbg.h"
|
||||
#else
|
||||
// For retail versions and non-matching builds, dmadata is generated from the specfile segments
|
||||
#include "dmadata_table_spec.h"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Matching dmadata layout for PAL MQ Debug
|
||||
* Matching dmadata layout for PAL MQ Debug and PAL Debug
|
||||
*
|
||||
* DEFINE_DMA_ENTRY should be used for all dmadata entries
|
||||
* - Argument 1: Name of the spec segment
|
||||
+7
-6
@@ -12,13 +12,14 @@
|
||||
#define GC_US 8
|
||||
#define GC_US_MQ 9
|
||||
#define GC_EU_MQ_DBG 10
|
||||
#define GC_EU 11
|
||||
#define GC_EU_MQ 12
|
||||
#define GC_JP_CE 13
|
||||
#define IQUE_CN 14
|
||||
#define GC_EU_DBG 11
|
||||
#define GC_EU 12
|
||||
#define GC_EU_MQ 13
|
||||
#define GC_JP_CE 14
|
||||
#define IQUE_CN 15
|
||||
|
||||
// NTSC/PAL
|
||||
#if OOT_VERSION == PAL_1_0 || OOT_VERSION == PAL_1_1 || OOT_VERSION == GC_EU || OOT_VERSION == GC_EU_MQ || OOT_VERSION == GC_EU_MQ_DBG
|
||||
#if OOT_VERSION == PAL_1_0 || OOT_VERSION == PAL_1_1 || OOT_VERSION == GC_EU || OOT_VERSION == GC_EU_MQ || OOT_VERSION == GC_EU_DBG || OOT_VERSION == GC_EU_MQ_DBG
|
||||
#define OOT_NTSC 0
|
||||
#define OOT_PAL 1
|
||||
#else
|
||||
@@ -50,7 +51,7 @@
|
||||
// Debug Assets
|
||||
// Due to asset extraction limitations, all versions will not have access to some assets present in debug ROMs
|
||||
// To allow the inclusion of debug features in any version there is a separation between DEBUG_FEATURES and DEBUG_ASSETS
|
||||
#if OOT_VERSION == GC_EU_MQ_DBG && DEBUG_FEATURES
|
||||
#if (OOT_VERSION == GC_EU_MQ_DBG || OOT_VERSION == GC_EU_DBG) && DEBUG_FEATURES
|
||||
#define DEBUG_ASSETS 1
|
||||
#else
|
||||
#define DEBUG_ASSETS 0
|
||||
|
||||
+2
-2
@@ -41,8 +41,8 @@
|
||||
* DPad-Down disables sending fault pages over osSyncPrintf.
|
||||
*/
|
||||
|
||||
#pragma increment_block_number "gc-eu:160 gc-eu-mq:160 gc-eu-mq-dbg:160 gc-jp:160 gc-jp-ce:160 gc-jp-mq:160 gc-us:160" \
|
||||
"gc-us-mq:160 ique-cn:160"
|
||||
#pragma increment_block_number "gc-eu:160 gc-eu-dbg:160 gc-eu-mq:160 gc-eu-mq-dbg:160 gc-jp:160 gc-jp-ce:160" \
|
||||
"gc-jp-mq:160 gc-us:160 gc-us-mq:160 ique-cn:160"
|
||||
|
||||
#include "libc64/sleep.h"
|
||||
#include "libc64/sprintf.h"
|
||||
|
||||
+19
-18
@@ -15,6 +15,7 @@
|
||||
#include "play_state.h"
|
||||
#include "player.h"
|
||||
#include "save.h"
|
||||
#include "line_numbers.h"
|
||||
|
||||
#include "assets/scenes/indoors/miharigoya/miharigoya_scene.h"
|
||||
#include "assets/scenes/indoors/souko/souko_scene.h"
|
||||
@@ -233,7 +234,7 @@ void* sDekuTreeEntranceTextures[] = {
|
||||
void Scene_DrawConfigDekuTree(PlayState* play) {
|
||||
u32 gameplayFrames = play->gameplayFrames;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4763);
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(4763, 4810));
|
||||
|
||||
gSPSegment(POLY_XLU_DISP++, 0x09,
|
||||
Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 127 - (gameplayFrames % 128),
|
||||
@@ -246,7 +247,7 @@ void Scene_DrawConfigDekuTree(PlayState* play) {
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08,
|
||||
SEGMENTED_TO_VIRTUAL(sDekuTreeEntranceTextures[((void)0, gSaveContext.save.nightFlag)]));
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4783);
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(4783, 4830));
|
||||
}
|
||||
|
||||
void Scene_DrawConfigDekuTreeBoss(PlayState* play) {
|
||||
@@ -279,7 +280,7 @@ void Scene_DrawConfigDodongosCavern(PlayState* play) {
|
||||
s32 pad;
|
||||
Gfx* displayListHead = GRAPH_ALLOC(play->state.gfxCtx, 2 * sizeof(Gfx[3]));
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4905);
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(4905, 5001));
|
||||
|
||||
gameplayFrames = play->gameplayFrames;
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08,
|
||||
@@ -308,7 +309,7 @@ void Scene_DrawConfigDodongosCavern(PlayState* play) {
|
||||
gDPSetEnvColor(displayListHead++, 255, 255, 255, play->roomCtx.drawParams[BGDODOAGO_EYE_RIGHT]);
|
||||
gSPEndDisplayList(displayListHead++);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4956);
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(4956, 5052));
|
||||
}
|
||||
|
||||
void Scene_DrawConfigTempleOfTime(PlayState* play) {
|
||||
@@ -496,7 +497,7 @@ void Scene_DrawConfigFairysFountain(PlayState* play) {
|
||||
void Scene_DrawConfigShadowTempleAndWell(PlayState* play) {
|
||||
u32 gameplayFrames;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5384);
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(5384, 5432));
|
||||
|
||||
gameplayFrames = play->gameplayFrames;
|
||||
|
||||
@@ -516,7 +517,7 @@ void Scene_DrawConfigShadowTempleAndWell(PlayState* play) {
|
||||
gDPPipeSync(POLY_XLU_DISP++);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5416);
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(5416, 5464));
|
||||
}
|
||||
|
||||
void* sThievesHideoutEntranceTextures[] = {
|
||||
@@ -548,7 +549,7 @@ void Scene_DrawConfigWaterTemple(PlayState* play) {
|
||||
s32 spB0;
|
||||
s32 spAC;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5535);
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(5535, 5671));
|
||||
|
||||
spB0 = (play->roomCtx.drawParams[1] >> 8) & 0xFF;
|
||||
spAC = play->roomCtx.drawParams[1] & 0xFF;
|
||||
@@ -613,7 +614,7 @@ void Scene_DrawConfigWaterTemple(PlayState* play) {
|
||||
Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, G_TX_RENDERTILE, gameplayFrames * 4, 0, 32, 32, 1,
|
||||
gameplayFrames * 4, 0, 32, 32, 0, 0, 0, 128));
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5644);
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(5644, 5776));
|
||||
}
|
||||
|
||||
void Scene_DrawConfigWaterTempleBoss(PlayState* play) {
|
||||
@@ -774,7 +775,7 @@ void* sIceCavernEntranceTextures[] = {
|
||||
void Scene_DrawConfigIceCavern(PlayState* play) {
|
||||
u32 gameplayFrames;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6042);
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(6042, 6102));
|
||||
|
||||
gameplayFrames = play->gameplayFrames;
|
||||
gSPSegment(POLY_XLU_DISP++, 0x08,
|
||||
@@ -794,7 +795,7 @@ void Scene_DrawConfigIceCavern(PlayState* play) {
|
||||
gDPPipeSync(POLY_XLU_DISP++);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6076);
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(6076, 6136));
|
||||
}
|
||||
|
||||
void Scene_DrawConfigRoyalFamilysTomb(PlayState* play) {
|
||||
@@ -875,7 +876,7 @@ void* sGTGEntranceTextures[] = {
|
||||
void Scene_DrawConfigGerudoTrainingGround(PlayState* play) {
|
||||
u32 gameplayFrames;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6290);
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(6290, 6345));
|
||||
|
||||
gameplayFrames = play->gameplayFrames;
|
||||
gSPSegment(POLY_XLU_DISP++, 0x08,
|
||||
@@ -895,7 +896,7 @@ void Scene_DrawConfigGerudoTrainingGround(PlayState* play) {
|
||||
gDPPipeSync(POLY_XLU_DISP++);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6320);
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(6320, 6375));
|
||||
}
|
||||
|
||||
Gfx* Gfx_TwoTexScrollPrimColor(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2,
|
||||
@@ -1039,7 +1040,7 @@ void* sForestTempleEntranceTextures[] = {
|
||||
void Scene_DrawConfigForestTemple(PlayState* play) {
|
||||
u32 gameplayFrames;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6640);
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(6640, 6695));
|
||||
|
||||
gameplayFrames = play->gameplayFrames;
|
||||
gSPSegment(POLY_XLU_DISP++, 0x08,
|
||||
@@ -1059,7 +1060,7 @@ void Scene_DrawConfigForestTemple(PlayState* play) {
|
||||
gDPPipeSync(POLY_XLU_DISP++);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6671);
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(6671, 6726));
|
||||
}
|
||||
|
||||
void* sSpiritTempleEntranceTextures[] = {
|
||||
@@ -1068,12 +1069,12 @@ void* sSpiritTempleEntranceTextures[] = {
|
||||
};
|
||||
|
||||
void Scene_DrawConfigSpiritTemple(PlayState* play) {
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6752);
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(6752, 6786));
|
||||
|
||||
gSPSegment(POLY_XLU_DISP++, 0x08,
|
||||
SEGMENTED_TO_VIRTUAL(sSpiritTempleEntranceTextures[((void)0, gSaveContext.save.nightFlag)]));
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6762);
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(6762, 6796));
|
||||
}
|
||||
|
||||
void Scene_DrawConfigHyruleField(PlayState* play) {
|
||||
@@ -1558,7 +1559,7 @@ void Scene_DrawConfigLonLonRanch(PlayState* play) {
|
||||
void Scene_DrawConfigFireTemple(PlayState* play) {
|
||||
u32 gameplayFrames;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7630);
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(7630, 7667));
|
||||
|
||||
gameplayFrames = play->gameplayFrames;
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08,
|
||||
@@ -1575,7 +1576,7 @@ void Scene_DrawConfigFireTemple(PlayState* play) {
|
||||
gDPPipeSync(POLY_XLU_DISP++);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 64);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7653);
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", LN6(7653, 7690));
|
||||
}
|
||||
|
||||
f32 D_8012A398 = 0.0f;
|
||||
|
||||
@@ -141,6 +141,11 @@ def per_version_fixes(file_content: bytearray, version: str) -> bytearray:
|
||||
# Patch the header
|
||||
print("Patching header...")
|
||||
file_content[0x3E] = 0x50
|
||||
if version == "gc-eu-dbg":
|
||||
# Strip the overdump, which consists of an area of 0xFF bytes (which may
|
||||
# be erased flash memory) and some unknown data
|
||||
print("Stripping overdump...")
|
||||
file_content = file_content[0:0x035C3000]
|
||||
return file_content
|
||||
|
||||
|
||||
@@ -228,7 +233,7 @@ def main():
|
||||
|
||||
# Check to see if the ROM is a "vanilla" ROM
|
||||
str_hash = get_str_hash(file_content)
|
||||
if version == "gc-eu-mq-dbg":
|
||||
if version in {"gc-eu-mq-dbg", "gc-eu-dbg"}:
|
||||
correct_str_hashes = decompressed_str_hashes
|
||||
else:
|
||||
correct_str_hashes = compressed_str_hashes
|
||||
|
||||
Reference in New Issue
Block a user