summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorcadmic <cadmic24@gmail.com>2024-09-30 12:52:38 -0700
committerGitHub <noreply@github.com>2024-09-30 15:52:38 -0400
commitbdc11c2894d482208ba9acef6f572fb317ee69d2 (patch)
treeda4d2925be53a2479fafe0188feab2f05f390086 /src/code
parent80ed596c56e89c1de600caf2c4656f8205c529a1 (diff)
[ntsc-1.0/1.1] Match "game engine" files (#2244)
* [ntsc-1.0/1.1] Match "game engine" files * Use R_START_BTN_X/R_START_BTN_Y * Comment obvious bugs * Move Magic_Fill comments * Move EVENTINF_HORSES_INDEX printf inside #if * Replace "this function"
Diffstat (limited to 'src/code')
-rw-r--r--src/code/z_actor.c5
-rw-r--r--src/code/z_collision_check.c20
-rw-r--r--src/code/z_construct.c13
-rw-r--r--src/code/z_kankyo.c18
-rw-r--r--src/code/z_message.c14
-rw-r--r--src/code/z_onepointdemo.c15
-rw-r--r--src/code/z_parameter.c58
-rw-r--r--src/code/z_room.c15
-rw-r--r--src/code/z_scene.c10
-rw-r--r--src/code/z_sram.c31
10 files changed, 174 insertions, 25 deletions
diff --git a/src/code/z_actor.c b/src/code/z_actor.c
index f0d43e632..71e25d953 100644
--- a/src/code/z_actor.c
+++ b/src/code/z_actor.c
@@ -3561,7 +3561,12 @@ s32 BodyBreak_SpawnParts(Actor* actor, BodyBreak* bodyBreak, PlayState* play, s1
mtx->zw, 0, 0, objectSlot, type);
if (spawnedEnPart != NULL) {
+#if OOT_VERSION < PAL_1_0
+ //! @bug Wrong rotation order compared to Actor_Draw
+ Matrix_MtxFToZYXRotS(&bodyBreak->matrices[bodyBreak->count], &spawnedEnPart->actor.shape.rot, 0);
+#else
Matrix_MtxFToYXZRotS(&bodyBreak->matrices[bodyBreak->count], &spawnedEnPart->actor.shape.rot, 0);
+#endif
spawnedEnPart->displayList = bodyBreak->dLists[bodyBreak->count];
spawnedEnPart->actor.scale = actor->scale;
}
diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c
index 803cdeaeb..fd0a83d98 100644
--- a/src/code/z_collision_check.c
+++ b/src/code/z_collision_check.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "terminal.h"
+#include "versions.h"
#include "z64frame_advance.h"
@@ -1830,7 +1831,6 @@ void CollisionCheck_ATJntSphVsACCyl(PlayState* play, CollisionCheckContext* colC
Vec3f hitPos;
Vec3f atPos;
Vec3f acPos;
- f32 acToHit;
atPos.x = atJntSphElem->dim.worldSphere.center.x;
atPos.y = atJntSphElem->dim.worldSphere.center.y;
@@ -1839,7 +1839,13 @@ void CollisionCheck_ATJntSphVsACCyl(PlayState* play, CollisionCheckContext* colC
acPos.y = acCyl->dim.pos.y;
acPos.z = acCyl->dim.pos.z;
if (!IS_ZERO(centerDist)) {
- acToHit = acCyl->dim.radius / centerDist;
+ f32 acToHit = acCyl->dim.radius / centerDist;
+
+#if OOT_VERSION < PAL_1_0
+ hitPos.x = ((atPos.x - acPos.x) * acToHit) + acPos.x;
+ hitPos.y = ((atPos.y - acPos.y) * acToHit) + acPos.y;
+ hitPos.z = ((atPos.z - acPos.z) * acToHit) + acPos.z;
+#else
if (acToHit <= 1.0f) {
hitPos.x = ((atPos.x - acPos.x) * acToHit) + acPos.x;
hitPos.y = ((atPos.y - acPos.y) * acToHit) + acPos.y;
@@ -1847,6 +1853,7 @@ void CollisionCheck_ATJntSphVsACCyl(PlayState* play, CollisionCheckContext* colC
} else {
Math_Vec3f_Copy(&hitPos, &atPos);
}
+#endif
} else {
Math_Vec3f_Copy(&hitPos, &atPos);
}
@@ -1891,7 +1898,13 @@ void CollisionCheck_ATCylVsACJntSph(PlayState* play, CollisionCheckContext* colC
acPos.y = acJntSphElem->dim.worldSphere.center.y;
acPos.z = acJntSphElem->dim.worldSphere.center.z;
if (!IS_ZERO(centerDist)) {
- acToHit = acJntSphElem->dim.worldSphere.radius / centerDist;
+ f32 acToHit = acJntSphElem->dim.worldSphere.radius / centerDist;
+
+#if OOT_VERSION < PAL_1_0
+ hitPos.x = ((atPos.x - acPos.x) * acToHit) + acPos.x;
+ hitPos.y = ((atPos.y - acPos.y) * acToHit) + acPos.y;
+ hitPos.z = ((atPos.z - acPos.z) * acToHit) + acPos.z;
+#else
if (acToHit <= 1.0f) {
hitPos.x = ((atPos.x - acPos.x) * acToHit) + acPos.x;
hitPos.y = ((atPos.y - acPos.y) * acToHit) + acPos.y;
@@ -1899,6 +1912,7 @@ void CollisionCheck_ATCylVsACJntSph(PlayState* play, CollisionCheckContext* colC
} else {
Math_Vec3f_Copy(&hitPos, &atPos);
}
+#endif
} else {
Math_Vec3f_Copy(&hitPos, &atPos);
}
diff --git a/src/code/z_construct.c b/src/code/z_construct.c
index e190e19d2..0720bc8b9 100644
--- a/src/code/z_construct.c
+++ b/src/code/z_construct.c
@@ -162,8 +162,13 @@ void Interface_Init(PlayState* play) {
gSaveContext.timerY[timerId] = 46; // one row of hearts
}
}
-
- if ((gSaveContext.timerState >= TIMER_STATE_UP_INIT) && (gSaveContext.timerState <= TIMER_STATE_UP_FREEZE)) {
+#if OOT_VERSION < PAL_1_0
+ else if ((gSaveContext.timerState >= TIMER_STATE_UP_INIT) && (gSaveContext.timerState <= TIMER_STATE_UP_FREEZE))
+#else
+ // No "else"
+ if ((gSaveContext.timerState >= TIMER_STATE_UP_INIT) && (gSaveContext.timerState <= TIMER_STATE_UP_FREEZE))
+#endif
+ {
gSaveContext.timerState = TIMER_STATE_OFF;
PRINTF(T("タイマー停止!!!!!!!!!!!!!!!!!!!!! = %d\n",
"Timer Stop!!!!!!!!!!!!!!!!!!!!! = %d\n"),
@@ -381,6 +386,10 @@ void Regs_InitDataImpl(void) {
ZREG(65) = 21;
ZREG(66) = 122;
+#if OOT_VERSION < PAL_1_0
+ R_START_BTN_X = 132;
+ R_START_BTN_Y = 17;
+#endif
R_ITEM_BTN_X(1) = C_LEFT_BUTTON_X;
R_ITEM_BTN_X(2) = C_DOWN_BUTTON_X;
R_ITEM_BTN_X(3) = C_RIGHT_BUTTON_X;
diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c
index cae5718ca..908e01d67 100644
--- a/src/code/z_kankyo.c
+++ b/src/code/z_kankyo.c
@@ -4,6 +4,7 @@
#include "global.h"
#include "ultra64.h"
#include "terminal.h"
+#include "versions.h"
#include "z64frame_advance.h"
@@ -957,9 +958,15 @@ void Environment_Update(PlayState* play, EnvironmentContext* envCtx, LightContex
}
//! @bug `gTimeSpeed` is unsigned, it can't be negative
+#if OOT_VERSION < PAL_1_0
+ if ((((void)0, gSaveContext.save.dayTime) > ((void)0, gSaveContext.skyboxTime)) ||
+ (((void)0, gSaveContext.save.dayTime) < CLOCK_TIME(1, 0) || gTimeSpeed < 0))
+#else
if (((((void)0, gSaveContext.sceneLayer) >= 5 || gTimeSpeed != 0) &&
- ((void)0, gSaveContext.save.dayTime) > gSaveContext.skyboxTime) ||
- (((void)0, gSaveContext.save.dayTime) < CLOCK_TIME(1, 0) || gTimeSpeed < 0)) {
+ ((void)0, gSaveContext.save.dayTime) > ((void)0, gSaveContext.skyboxTime)) ||
+ (((void)0, gSaveContext.save.dayTime) < CLOCK_TIME(1, 0) || gTimeSpeed < 0))
+#endif
+ {
gSaveContext.skyboxTime = ((void)0, gSaveContext.save.dayTime);
}
@@ -1724,8 +1731,13 @@ void Environment_DrawRain(PlayState* play, View* view, GraphicsContext* gfxCtx)
Vec3f windDirection = { 0.0f, 0.0f, 0.0f };
Player* player = GET_PLAYER(play);
+#if OOT_VERSION < PAL_1_0
+ if (!(play->cameraPtrs[CAM_ID_MAIN]->stateFlags & CAM_STATE_CAMERA_IN_WATER))
+#else
if (!(play->cameraPtrs[CAM_ID_MAIN]->stateFlags & CAM_STATE_CAMERA_IN_WATER) &&
- (play->envCtx.precipitation[PRECIP_SNOW_CUR] == 0)) {
+ (play->envCtx.precipitation[PRECIP_SNOW_CUR] == 0))
+#endif
+ {
OPEN_DISPS(gfxCtx, "../z_kankyo.c", 2799);
vec.x = view->at.x - view->eye.x;
diff --git a/src/code/z_message.c b/src/code/z_message.c
index 920fd9bad..9094f2580 100644
--- a/src/code/z_message.c
+++ b/src/code/z_message.c
@@ -2074,8 +2074,9 @@ void Message_Decode(PlayState* play) {
decodedBufPos++;
msgCtx->msgBufPos++;
}
- } else {
+ } else
#endif
+ {
// English text for NTSC, eng/ger/fra text for PAL
while (true) {
curChar = msgCtx->msgBufDecoded[decodedBufPos] = font->msgBuf[msgCtx->msgBufPos];
@@ -2397,8 +2398,15 @@ void Message_Decode(PlayState* play) {
Message_LoadItemIcon(play, font->msgBuf[msgCtx->msgBufPos + 1], R_TEXTBOX_Y + 10);
} else if (curChar == MESSAGE_BACKGROUND) {
msgCtx->textboxBackgroundIdx = font->msgBuf[msgCtx->msgBufPos + 1] * 2;
+#if OOT_VERSION < PAL_1_0
+ //! @bug Wrong shift amounts cause textboxBackgroundForeColorIdx and textboxBackgroundBackColorIdx
+ //! to always be 0. Fortunately MESSAGE_BACKGROUND is only present in unused messages.
+ msgCtx->textboxBackgroundForeColorIdx = (font->msgBuf[msgCtx->msgBufPos + 2] & 0xF0) >> 12;
+ msgCtx->textboxBackgroundBackColorIdx = (font->msgBuf[msgCtx->msgBufPos + 2] & 0xF) >> 8;
+#else
msgCtx->textboxBackgroundForeColorIdx = (font->msgBuf[msgCtx->msgBufPos + 2] & 0xF0) >> 4;
msgCtx->textboxBackgroundBackColorIdx = font->msgBuf[msgCtx->msgBufPos + 2] & 0xF;
+#endif
msgCtx->textboxBackgroundYOffsetIdx = (font->msgBuf[msgCtx->msgBufPos + 3] & 0xF0) >> 4;
msgCtx->textboxBackgroundUnkArg = font->msgBuf[msgCtx->msgBufPos + 3] & 0xF;
DMA_REQUEST_SYNC(msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE,
@@ -2448,9 +2456,7 @@ void Message_Decode(PlayState* play) {
decodedBufPos++;
msgCtx->msgBufPos++;
}
-#if OOT_NTSC
}
-#endif
}
void Message_OpenText(PlayState* play, u16 textId) {
@@ -3062,9 +3068,11 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
if (msgCtx->ocarinaStaff->pos) {
PRINTF("locate=%d onpu_pt=%d\n", msgCtx->ocarinaStaff->pos, sOcarinaButtonIndexBufPos);
+#if OOT_VERSION >= PAL_1_0
if (msgCtx->ocarinaStaff->pos == 1 && sOcarinaButtonIndexBufPos == 8) {
sOcarinaButtonIndexBufPos = 0;
}
+#endif
if (sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) {
msgCtx->lastOcarinaButtonIndex = sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] =
msgCtx->ocarinaStaff->buttonIndex;
diff --git a/src/code/z_onepointdemo.c b/src/code/z_onepointdemo.c
index 17193eee9..2fd634e5e 100644
--- a/src/code/z_onepointdemo.c
+++ b/src/code/z_onepointdemo.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "quake.h"
#include "terminal.h"
+#include "versions.h"
#include "overlays/actors/ovl_En_Sw/z_en_sw.h"
static s16 sDisableAttention = false;
@@ -1858,7 +1859,9 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
Play_RequestCameraSetting(play, subCamId, CAM_SET_CS_3);
Player_SetCsActionWithHaltedActors(play, &player->actor, PLAYER_CSACTION_5);
OnePointCutscene_SetCsCamPoints(subCam, D_80120304 | 0x2000, D_80120300, D_8012013C, D_8012021C);
+#if OOT_VERSION >= PAL_1_0
Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME);
+#endif
OnePointCutscene_Vec3sToVec3f(&mainCam->at, &D_8012013C[D_801202FC - 2].pos);
OnePointCutscene_Vec3sToVec3f(&mainCam->eye, &D_8012021C[D_801202FC - 2].pos);
D_8012013C[D_801202FC - 3].pos.x +=
@@ -1874,10 +1877,22 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
D_8012021C[D_801202FC - 3].pos.z +=
(D_8012021C[D_801202FC - 2].pos.z - D_8012021C[D_801202FC - 3].pos.z) / 2;
+#if OOT_VERSION < PAL_1_0
+ i = Quake_Request(subCam, QUAKE_TYPE_1);
+ Quake_SetSpeed(i, 30000);
+ Quake_SetPerturbations(i, 3, 1, 1, 0);
+ Quake_SetDuration(i, D_80120300);
+
+ i = Quake_Request(mainCam, QUAKE_TYPE_3);
+ Quake_SetSpeed(i, 30000);
+ Quake_SetPerturbations(i, 3, 1, 1, 0);
+ Quake_SetDuration(i, D_80120300 + 50);
+#else
i = Quake_Request(mainCam, QUAKE_TYPE_3);
Quake_SetSpeed(i, 30000);
Quake_SetPerturbations(i, 2, 1, 1, 0);
Quake_SetDuration(i, 200);
+#endif
break;
}
diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c
index b1bbf7c8a..c7289316c 100644
--- a/src/code/z_parameter.c
+++ b/src/code/z_parameter.c
@@ -1733,12 +1733,16 @@ u8 Item_Give(PlayState* play, u8 item) {
Health_ChangeBy(play, 0x10);
return item;
} else if (item == ITEM_MAGIC_JAR_SMALL) {
+ // Magic_Fill is only used to store the magicState.
+ // Setting the state to FILL gets immediately overwritten in Magic_RequestChange.
+ // I.e. magic is added not filled.
+#if OOT_VERSION < PAL_1_0
+ Magic_Fill(play);
+#else
if (gSaveContext.magicState != MAGIC_STATE_ADD) {
- // This function is only used to store the magicState.
- // Setting the state to FILL gets immediately overwritten in Magic_RequestChange.
- // I.e. magic is added not filled
Magic_Fill(play);
}
+#endif
Magic_RequestChange(play, 12, MAGIC_ADD);
@@ -1749,12 +1753,16 @@ u8 Item_Give(PlayState* play, u8 item) {
return item;
} else if (item == ITEM_MAGIC_JAR_BIG) {
+ // Magic_Fill is only used to store the magicState.
+ // Setting the state to FILL gets immediately overwritten in Magic_RequestChange.
+ // I.e. magic is added not filled.
+#if OOT_VERSION < PAL_1_0
+ Magic_Fill(play);
+#else
if (gSaveContext.magicState != MAGIC_STATE_ADD) {
- // This function is only used to store the magicState.
- // Setting the state to FILL gets immediately overwritten in Magic_RequestChange.
- // I.e. magic is added not filled.
Magic_Fill(play);
}
+#endif
Magic_RequestChange(play, 24, MAGIC_ADD);
@@ -2110,12 +2118,19 @@ void Interface_LoadActionLabel(InterfaceContext* interfaceCtx, u16 action, s16 l
action += DO_ACTION_MAX;
}
+#if OOT_VERSION >= PAL_1_0
if (gSaveContext.language == 2) { // LANGUAGE_FRA for PAL versions
action += DO_ACTION_MAX;
}
+#endif
+#if OOT_VERSION < PAL_1_0
+ if ((action != DO_ACTION_NONE) && (action != DO_ACTION_MAX + DO_ACTION_NONE))
+#else
if ((action != DO_ACTION_NONE) && (action != DO_ACTION_MAX + DO_ACTION_NONE) &&
- (action != 2 * DO_ACTION_MAX + DO_ACTION_NONE)) {
+ (action != 2 * DO_ACTION_MAX + DO_ACTION_NONE))
+#endif
+ {
osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, 1);
DMA_REQUEST_ASYNC(&interfaceCtx->dmaRequest_160,
interfaceCtx->doActionSegment + (loadOffset * DO_ACTION_TEX_SIZE),
@@ -2174,9 +2189,11 @@ void Interface_LoadActionLabelB(PlayState* play, u16 action) {
action += DO_ACTION_MAX;
}
+#if OOT_VERSION >= PAL_1_0
if (gSaveContext.language == 2) { // LANGUAGE_FRA for PAL versions
action += DO_ACTION_MAX;
}
+#endif
interfaceCtx->unk_1FC = action;
@@ -2765,7 +2782,9 @@ void Interface_DrawActionLabel(GraphicsContext* gfxCtx, void* texture) {
void Interface_DrawItemButtons(PlayState* play) {
static void* cUpLabelTextures[] = LANGUAGE_ARRAY(gNaviCUpJPNTex, gNaviCUpENGTex, gNaviCUpENGTex, gNaviCUpENGTex);
+#if OOT_VERSION >= PAL_1_0
static s16 startButtonLeftPos[] = { 132, 130, 130 };
+#endif
InterfaceContext* interfaceCtx = &play->interfaceCtx;
Player* player = GET_PLAYER(play);
PauseContext* pauseCtx = &play->pauseCtx;
@@ -2817,13 +2836,17 @@ void Interface_DrawItemButtons(PlayState* play) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, START_BUTTON_R, START_BUTTON_G, START_BUTTON_B,
interfaceCtx->startAlpha);
-#if OOT_NTSC
- gSPTextureRectangle(OVERLAY_DISP++, 132 << 2, 17 << 2, (132 + 22) << 2, 39 << 2, G_TX_RENDERTILE, 0, 0,
- (s32)(1.4277344 * (1 << 10)), (s32)(1.4277344 * (1 << 10)));
+#if OOT_VERSION < PAL_1_0
+ gSPTextureRectangle(OVERLAY_DISP++, R_START_BTN_X << 2, R_START_BTN_Y << 2, (R_START_BTN_X + 22) << 2,
+ (R_START_BTN_Y + 22) << 2, G_TX_RENDERTILE, 0, 0, (s32)(1.4277344 * (1 << 10)),
+ (s32)(1.4277344 * (1 << 10)));
+#elif OOT_NTSC
+ gSPTextureRectangle(OVERLAY_DISP++, 132 << 2, 17 << 2, (132 + 22) << 2, (17 + 22) << 2, G_TX_RENDERTILE, 0,
+ 0, (s32)(1.4277344 * (1 << 10)), (s32)(1.4277344 * (1 << 10)));
#else
gSPTextureRectangle(OVERLAY_DISP++, startButtonLeftPos[gSaveContext.language] << 2, 17 << 2,
- (startButtonLeftPos[gSaveContext.language] + 22) << 2, 39 << 2, G_TX_RENDERTILE, 0, 0,
- (s32)(1.4277344 * (1 << 10)), (s32)(1.4277344 * (1 << 10)));
+ (startButtonLeftPos[gSaveContext.language] + 22) << 2, (17 + 22) << 2, G_TX_RENDERTILE,
+ 0, 0, (s32)(1.4277344 * (1 << 10)), (s32)(1.4277344 * (1 << 10)));
#endif
gDPPipeSync(OVERLAY_DISP++);
@@ -3519,10 +3542,12 @@ void Interface_Draw(PlayState* play) {
// Revert any spoiling trade quest items
for (svar1 = 0; svar1 < ARRAY_COUNT(gSpoilingItems); svar1++) {
if (INV_CONTENT(ITEM_TRADE_ADULT) == gSpoilingItems[svar1]) {
+#if OOT_VERSION >= NTSC_1_1
gSaveContext.eventInf[EVENTINF_HORSES_INDEX] &=
(u16) ~(EVENTINF_HORSES_STATE_MASK | EVENTINF_HORSES_HORSETYPE_MASK | EVENTINF_HORSES_05_MASK |
EVENTINF_HORSES_06_MASK | EVENTINF_HORSES_0F_MASK);
PRINTF("EVENT_INF=%x\n", gSaveContext.eventInf[EVENTINF_HORSES_INDEX]);
+#endif
play->nextEntranceIndex = spoilingItemEntrances[svar1];
INV_CONTENT(gSpoilingItemReverts[svar1]) = gSpoilingItemReverts[svar1];
@@ -3822,7 +3847,12 @@ void Interface_Draw(PlayState* play) {
gSaveContext.subTimerSeconds--;
PRINTF("TOTAL_EVENT_TM=%d\n", gSaveContext.subTimerSeconds);
- if (gSaveContext.subTimerSeconds <= 0) {
+#if OOT_VERSION < PAL_1_0
+ if (gSaveContext.subTimerSeconds == 0)
+#else
+ if (gSaveContext.subTimerSeconds <= 0)
+#endif
+ {
// Out of time
if (!Flags_GetSwitch(play, 0x37) ||
((play->sceneId != SCENE_GANON_BOSS) &&
@@ -4362,9 +4392,11 @@ void Interface_Update(PlayState* play) {
play->nextEntranceIndex = gSaveContext.save.entranceIndex;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
+#if OOT_VERSION >= PAL_1_0
func_800F6964(30);
gSaveContext.seqId = (u8)NA_BGM_DISABLED;
gSaveContext.natureAmbienceId = NATURE_ID_DISABLED;
+#endif
} else {
gSaveContext.sunsSongState = SUNSSONG_SPECIAL;
}
diff --git a/src/code/z_room.c b/src/code/z_room.c
index a9fa462fd..6ac20bbd9 100644
--- a/src/code/z_room.c
+++ b/src/code/z_room.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "fault.h"
#include "terminal.h"
+#include "versions.h"
#if PLATFORM_N64
#include "n64dd.h"
#endif
@@ -350,6 +351,14 @@ void Room_DrawBackground2D(Gfx** gfxP, void* tex, void* tlut, u16 width, u16 hei
*gfxP = gfx;
}
+#if OOT_VERSION < PAL_1_0
+void func_8007FF50(Gfx** gfxP, void* tex, void* tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 tlutMode,
+ u16 tlutCount) {
+ if (1) {}
+ Room_DrawBackground2D(gfxP, tex, tlut, width, height, fmt, siz, tlutMode, tlutCount, 0.0f, 0.0f);
+}
+#endif
+
#define ROOM_IMAGE_NODRAW_BACKGROUND (1 << 0)
#define ROOM_IMAGE_NODRAW_OPA (1 << 1)
#define ROOM_IMAGE_NODRAW_XLU (1 << 2)
@@ -389,6 +398,9 @@ void Room_DrawImageSingle(PlayState* play, Room* room, u32 flags) {
gfx = POLY_OPA_DISP;
+#if OOT_VERSION < PAL_1_0
+ if (1)
+#endif
{
Vec3f quakeOffset;
@@ -494,6 +506,9 @@ void Room_DrawImageMulti(PlayState* play, Room* room, u32 flags) {
gfx = POLY_OPA_DISP;
+#if OOT_VERSION < PAL_1_0
+ if (1)
+#endif
{
Vec3f quakeOffset;
diff --git a/src/code/z_scene.c b/src/code/z_scene.c
index 44ad2f9bb..9b04bccec 100644
--- a/src/code/z_scene.c
+++ b/src/code/z_scene.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "terminal.h"
+#include "versions.h"
RomFile sNaviQuestHintFiles[];
@@ -382,12 +383,21 @@ BAD_RETURN(s32) Scene_CommandTimeSettings(PlayState* play, SceneCmd* cmd) {
if (((play->envCtx.sceneTimeSpeed == 0) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) ||
(gSaveContext.save.entranceIndex == ENTR_LAKE_HYLIA_8)) {
+#if OOT_VERSION >= PAL_1_0
gSaveContext.skyboxTime = ((void)0, gSaveContext.save.dayTime);
+#endif
+#if OOT_VERSION < PAL_1_0
+ if ((gSaveContext.skyboxTime > CLOCK_TIME(4, 0)) && (gSaveContext.skyboxTime <= CLOCK_TIME(5, 0))) {
+ gSaveContext.skyboxTime = CLOCK_TIME(5, 0) + 1;
+ } else if ((gSaveContext.skyboxTime >= CLOCK_TIME(6, 0)) && (gSaveContext.skyboxTime <= CLOCK_TIME(8, 0))) {
+ gSaveContext.skyboxTime = CLOCK_TIME(8, 0) + 1;
+#else
if ((gSaveContext.skyboxTime > CLOCK_TIME(4, 0)) && (gSaveContext.skyboxTime < CLOCK_TIME(6, 30))) {
gSaveContext.skyboxTime = CLOCK_TIME(5, 0) + 1;
} else if ((gSaveContext.skyboxTime >= CLOCK_TIME(6, 30)) && (gSaveContext.skyboxTime <= CLOCK_TIME(8, 0))) {
gSaveContext.skyboxTime = CLOCK_TIME(8, 0) + 1;
+#endif
} else if ((gSaveContext.skyboxTime >= CLOCK_TIME(16, 0)) && (gSaveContext.skyboxTime <= CLOCK_TIME(17, 0))) {
gSaveContext.skyboxTime = CLOCK_TIME(17, 0) + 1;
} else if ((gSaveContext.skyboxTime >= CLOCK_TIME(18, 0) + 1) &&
diff --git a/src/code/z_sram.c b/src/code/z_sram.c
index 9da2f405f..3a5060abf 100644
--- a/src/code/z_sram.c
+++ b/src/code/z_sram.c
@@ -169,6 +169,18 @@ void Sram_InitNewSave(void) {
static SavePlayerData sDebugSavePlayerData = {
{ 'Z', 'E', 'L', 'D', 'A', 'Z' }, // newf
0, // deaths
+#if OOT_VERSION < PAL_1_0
+ {
+ 0x81, // リ
+ 0x87, // ン
+ 0x61, // ク
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ }, // playerName
+#else
{
FILENAME_UPPERCASE('L'),
FILENAME_UPPERCASE('I'),
@@ -178,7 +190,8 @@ static SavePlayerData sDebugSavePlayerData = {
FILENAME_SPACE,
FILENAME_SPACE,
FILENAME_SPACE,
- }, // playerName
+ }, // playerName
+#endif
0, // n64ddFlag
0xE0, // healthCapacity
0xE0, // health
@@ -499,9 +512,11 @@ void Sram_OpenSave(SramContext* sramCtx) {
if (LINK_AGE_IN_YEARS == YEARS_ADULT && !CHECK_OWNED_EQUIP(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_MASTER)) {
gSaveContext.save.info.inventory.equipment |= OWNED_EQUIP_FLAG(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_MASTER);
+#if OOT_VERSION >= NTSC_1_1
gSaveContext.save.info.equips.buttonItems[0] = ITEM_SWORD_MASTER;
gSaveContext.save.info.equips.equipment &= ~(0xF << (EQUIP_TYPE_SWORD * 4));
gSaveContext.save.info.equips.equipment |= EQUIP_VALUE_SWORD_MASTER << (EQUIP_TYPE_SWORD * 4);
+#endif
}
for (i = 0; i < ARRAY_COUNT(gSpoilingItems); i++) {
@@ -604,6 +619,13 @@ void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCt
PRINTF("\n============= S(%d) =============\n", slotNum);
for (i = newChecksum = j = 0; i < CHECKSUM_SIZE; i++, offset += 2) {
+#if OOT_VERSION < PAL_1_0
+ if (j) {}
+ j += 2;
+ if (j == 0x20) {
+ j = 0;
+ }
+#endif
newChecksum += *ptr++;
}
@@ -622,6 +644,13 @@ void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCt
PRINTF("================= BACK─UP ========================\n");
for (i = newChecksum = j = 0; i < CHECKSUM_SIZE; i++, offset += 2) {
+#if OOT_VERSION < PAL_1_0
+ if (j) {}
+ j += 2;
+ if (j == 0x20) {
+ j = 0;
+ }
+#endif
newChecksum += *ptr++;
}
PRINTF(T("\n(B)SAVEチェックサム計算 j=%x mmm=%x ",