mirror of
https://github.com/zeldaret/oot
synced 2026-07-27 06:45:26 -04:00
Set up build system and disassembly for gc-us (#1982)
* Build gc-us * Set up gc-us disassembly * Don't disasm unchanged overlays * Fix gc-eu-mq BSS * romalign link_animetion for NTSC * Explicitly set CPP defines to 0/1 * Add #ifs to segment_symbols.h * Add sButtonTextures now * Fix message _SHIFTL usage * Don't ifdef LANGUAGE_MAX
This commit is contained in:
@@ -7,6 +7,10 @@ s32 gScreenWidth = SCREEN_WIDTH;
|
||||
s32 gScreenHeight = SCREEN_HEIGHT;
|
||||
u32 gSystemHeapSize = 0;
|
||||
|
||||
// For retail BSS ordering, the block number of gIrqMgr must be greater than the
|
||||
// the block numbers assigned to extern variables above (declared in variables.h).
|
||||
#pragma increment_block_number 220
|
||||
|
||||
PreNmiBuff* gAppNmiBufferPtr;
|
||||
Scheduler gScheduler;
|
||||
PadMgr gPadMgr;
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
|
||||
// For retail BSS ordering, the block number of D_8015BD7C
|
||||
// must be between 88 and 123 inclusive.
|
||||
#pragma increment_block_number 26
|
||||
#pragma increment_block_number 30
|
||||
|
||||
s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags);
|
||||
s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange);
|
||||
|
||||
@@ -50,6 +50,13 @@ void Interface_Init(PlayState* play) {
|
||||
|
||||
ASSERT(interfaceCtx->doActionSegment != NULL, "parameter->do_actionSegment != NULL", "../z_construct.c", 169);
|
||||
|
||||
#if OOT_NTSC
|
||||
if (gSaveContext.language == LANGUAGE_JPN) {
|
||||
doActionOffset = LANGUAGE_JPN * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
|
||||
} else {
|
||||
doActionOffset = LANGUAGE_ENG * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
|
||||
}
|
||||
#else
|
||||
if (gSaveContext.language == LANGUAGE_ENG) {
|
||||
doActionOffset = LANGUAGE_ENG * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
|
||||
} else if (gSaveContext.language == LANGUAGE_GER) {
|
||||
@@ -57,10 +64,18 @@ void Interface_Init(PlayState* play) {
|
||||
} else {
|
||||
doActionOffset = LANGUAGE_FRA * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
|
||||
}
|
||||
#endif
|
||||
|
||||
DMA_REQUEST_SYNC(interfaceCtx->doActionSegment, (uintptr_t)_do_action_staticSegmentRomStart + doActionOffset,
|
||||
2 * DO_ACTION_TEX_SIZE, "../z_construct.c", 174);
|
||||
|
||||
#if OOT_NTSC
|
||||
if (gSaveContext.language == LANGUAGE_JPN) {
|
||||
doActionOffset = 3 * DO_ACTION_TEX_SIZE + LANGUAGE_JPN * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
|
||||
} else {
|
||||
doActionOffset = 3 * DO_ACTION_TEX_SIZE + LANGUAGE_ENG * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
|
||||
}
|
||||
#else
|
||||
if (gSaveContext.language == LANGUAGE_ENG) {
|
||||
doActionOffset = 3 * DO_ACTION_TEX_SIZE + LANGUAGE_ENG * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
|
||||
} else if (gSaveContext.language == LANGUAGE_GER) {
|
||||
@@ -68,6 +83,7 @@ void Interface_Init(PlayState* play) {
|
||||
} else {
|
||||
doActionOffset = 3 * DO_ACTION_TEX_SIZE + LANGUAGE_FRA * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
|
||||
}
|
||||
#endif
|
||||
|
||||
DMA_REQUEST_SYNC(interfaceCtx->doActionSegment + 2 * DO_ACTION_TEX_SIZE,
|
||||
(uintptr_t)_do_action_staticSegmentRomStart + doActionOffset, DO_ACTION_TEX_SIZE,
|
||||
|
||||
+4
-2
@@ -115,13 +115,15 @@ void* sUnusedEntranceCsList[] = {
|
||||
gDekuTreeIntroCs, gJabuJabuIntroCs, gDcOpeningCs, gMinuetCs, gIceCavernSerenadeCs, gTowerBarrierCs,
|
||||
};
|
||||
|
||||
#pragma increment_block_number 248
|
||||
|
||||
// Stores the frame the relevant cam data was last applied on
|
||||
u16 gCamAtSplinePointsAppliedFrame;
|
||||
u16 gCamEyePointAppliedFrame;
|
||||
u16 gCamAtPointAppliedFrame;
|
||||
|
||||
// For retail BSS ordering, the block number of sReturnToCamId must be greater
|
||||
// than that of gCamAtPointAppliedFrame (declared in variables.h).
|
||||
#pragma increment_block_number 180
|
||||
|
||||
// Cam ID to return to when a scripted cutscene is finished
|
||||
s16 sReturnToCamId;
|
||||
|
||||
|
||||
+2
-2
@@ -10,7 +10,7 @@
|
||||
// For retail BSS ordering, the block number of sLensFlareUnused must be lower
|
||||
// than the extern variables declared in the header (e.g. gLightningStrike)
|
||||
// while the block number of sNGameOverLightNode must be higher.
|
||||
#pragma increment_block_number 70
|
||||
#pragma increment_block_number 80
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ LIGHTNING_BOLT_START,
|
||||
@@ -218,7 +218,7 @@ s16 sSunDepthTestY;
|
||||
// These variables could be moved farther down in the file to reduce the amount
|
||||
// of block number padding here, but currently this causes BSS ordering issues
|
||||
// for debug.
|
||||
#pragma increment_block_number 227
|
||||
#pragma increment_block_number 217
|
||||
|
||||
LightNode* sNGameOverLightNode;
|
||||
LightInfo sNGameOverLightInfo;
|
||||
|
||||
@@ -27,9 +27,46 @@ s16 sMessageHasSetSfx = false;
|
||||
|
||||
u16 sOcarinaSongBitFlags = 0; // ocarina bit flags
|
||||
|
||||
#if OOT_NTSC
|
||||
|
||||
MessageTableEntry sJpnMessageEntryTable[] = {
|
||||
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */
|
||||
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
{ textId, (_SHIFTL(type, 4, 4) | _SHIFTL(yPos, 0, 4)), _message_##textId##_jpn },
|
||||
#define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage)
|
||||
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
/* Present */ DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage)
|
||||
#include "assets/text/message_data.h"
|
||||
#undef DEFINE_MESSAGE
|
||||
#undef DEFINE_MESSAGE_NES
|
||||
#undef DEFINE_MESSAGE_JPN
|
||||
#undef DEFINE_MESSAGE_FFFC
|
||||
{ 0xFFFF, 0, NULL },
|
||||
};
|
||||
|
||||
MessageTableEntry sNesMessageEntryTable[] = {
|
||||
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
{ textId, (_SHIFTL(type, 4, 8) | _SHIFTL(yPos, 0, 8)), _message_##textId##_nes },
|
||||
{ textId, (_SHIFTL(type, 4, 4) | _SHIFTL(yPos, 0, 4)), _message_##textId##_nes },
|
||||
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */
|
||||
#define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage)
|
||||
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */
|
||||
#include "assets/text/message_data.h"
|
||||
#undef DEFINE_MESSAGE
|
||||
#undef DEFINE_MESSAGE_NES
|
||||
#undef DEFINE_MESSAGE_JPN
|
||||
#undef DEFINE_MESSAGE_FFFC
|
||||
{ 0xFFFF, 0, NULL },
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
MessageTableEntry sNesMessageEntryTable[] = {
|
||||
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
{ textId, (_SHIFTL(type, 4, 4) | _SHIFTL(yPos, 0, 4)), _message_##textId##_nes },
|
||||
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */
|
||||
#define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
@@ -74,6 +111,8 @@ const char* sFraMessageEntryTable[] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
MessageTableEntry sStaffMessageEntryTable[] = {
|
||||
#define DEFINE_MESSAGE(textId, type, yPos, staffMessage) \
|
||||
{ textId, (_SHIFTL(type, 4, 8) | _SHIFTL(yPos, 0, 8)), _message_##textId##_staff },
|
||||
@@ -82,9 +121,15 @@ MessageTableEntry sStaffMessageEntryTable[] = {
|
||||
{ 0xFFFF, 0, NULL },
|
||||
};
|
||||
|
||||
#if OOT_NTSC
|
||||
MessageTableEntry* sJpnMessageEntryTablePtr = sJpnMessageEntryTable;
|
||||
MessageTableEntry* sNesMessageEntryTablePtr = sNesMessageEntryTable;
|
||||
#else
|
||||
MessageTableEntry* sNesMessageEntryTablePtr = sNesMessageEntryTable;
|
||||
const char** sGerMessageEntryTablePtr = sGerMessageEntryTable;
|
||||
const char** sFraMessageEntryTablePtr = sFraMessageEntryTable;
|
||||
#endif
|
||||
|
||||
MessageTableEntry* sStaffMessageEntryTablePtr = sStaffMessageEntryTable;
|
||||
|
||||
s16 sTextboxBackgroundForePrimColors[][3] = {
|
||||
@@ -311,6 +356,8 @@ void Message_GrowTextbox(MessageContext* msgCtx) {
|
||||
R_TEXTBOX_X = (R_TEXTBOX_X_TARGET + R_TEXTBOX_WIDTH_TARGET) - (R_TEXTBOX_WIDTH / 2);
|
||||
}
|
||||
|
||||
#if OOT_PAL // TODO: implement NTSC version
|
||||
|
||||
void Message_FindMessage(PlayState* play, u16 textId) {
|
||||
const char* foundSeg;
|
||||
const char* nextSeg;
|
||||
@@ -382,6 +429,8 @@ void Message_FindMessage(PlayState* play, u16 textId) {
|
||||
font->msgLength = nextSeg - foundSeg;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void Message_FindCreditsMessage(PlayState* play, u16 textId) {
|
||||
const char* foundSeg;
|
||||
const char* nextSeg;
|
||||
@@ -1649,6 +1698,7 @@ void Message_OpenText(PlayState* play, u16 textId) {
|
||||
DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_staff_message_data_staticSegmentRomStart + font->msgOffset,
|
||||
font->msgLength, "../z_message_PAL.c", 1954);
|
||||
} else {
|
||||
#if OOT_PAL // TODO: implement NTSC version
|
||||
if (gSaveContext.language == LANGUAGE_ENG) {
|
||||
Message_FindMessage(play, textId);
|
||||
msgCtx->msgLength = font->msgLength;
|
||||
@@ -1665,6 +1715,7 @@ void Message_OpenText(PlayState* play, u16 textId) {
|
||||
DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_fra_message_data_staticSegmentRomStart + font->msgOffset,
|
||||
font->msgLength, "../z_message_PAL.c", 1990);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
msgCtx->textBoxProperties = font->charTexBuf[0];
|
||||
msgCtx->textBoxType = msgCtx->textBoxProperties >> 4;
|
||||
@@ -3372,8 +3423,14 @@ void Message_Update(PlayState* play) {
|
||||
}
|
||||
|
||||
void Message_SetTables(void) {
|
||||
#if OOT_NTSC
|
||||
sJpnMessageEntryTablePtr = sJpnMessageEntryTable;
|
||||
sNesMessageEntryTablePtr = sNesMessageEntryTable;
|
||||
#else
|
||||
sNesMessageEntryTablePtr = sNesMessageEntryTable;
|
||||
sGerMessageEntryTablePtr = sGerMessageEntryTable;
|
||||
sFraMessageEntryTablePtr = sFraMessageEntryTable;
|
||||
#endif
|
||||
|
||||
sStaffMessageEntryTablePtr = sStaffMessageEntryTable;
|
||||
}
|
||||
@@ -2103,11 +2103,11 @@ void Interface_LoadActionLabel(InterfaceContext* interfaceCtx, u16 action, s16 l
|
||||
action = DO_ACTION_NONE;
|
||||
}
|
||||
|
||||
if (gSaveContext.language != LANGUAGE_ENG) {
|
||||
if (gSaveContext.language != 0) { // LANGUAGE_JPN for NTSC versions, LANGUAGE_ENG for PAL versions
|
||||
action += DO_ACTION_MAX;
|
||||
}
|
||||
|
||||
if (gSaveContext.language == LANGUAGE_FRA) {
|
||||
if (gSaveContext.language == 2) { // LANGUAGE_FRA for PAL versions
|
||||
action += DO_ACTION_MAX;
|
||||
}
|
||||
|
||||
@@ -2167,11 +2167,11 @@ void Interface_SetNaviCall(PlayState* play, u16 naviCallState) {
|
||||
void Interface_LoadActionLabelB(PlayState* play, u16 action) {
|
||||
InterfaceContext* interfaceCtx = &play->interfaceCtx;
|
||||
|
||||
if (gSaveContext.language != LANGUAGE_ENG) {
|
||||
if (gSaveContext.language != 0) { // LANGUAGE_JPN for NTSC versions, LANGUAGE_ENG for PAL versions
|
||||
action += DO_ACTION_MAX;
|
||||
}
|
||||
|
||||
if (gSaveContext.language == LANGUAGE_FRA) {
|
||||
if (gSaveContext.language == 2) { // LANGUAGE_FRA for PAL versions
|
||||
action += DO_ACTION_MAX;
|
||||
}
|
||||
|
||||
|
||||
+7
-7
@@ -4,13 +4,6 @@
|
||||
|
||||
#include "z64frame_advance.h"
|
||||
|
||||
#if OOT_DEBUG
|
||||
void* gDebugCutsceneScript = NULL;
|
||||
UNK_TYPE D_8012D1F4 = 0; // unused
|
||||
#endif
|
||||
|
||||
Input* D_8012D1F8 = NULL;
|
||||
|
||||
TransitionTile gTransitionTile;
|
||||
s32 gTransitionTileState;
|
||||
VisMono gPlayVisMono;
|
||||
@@ -22,6 +15,13 @@ FaultClient D_801614B8;
|
||||
|
||||
s16 sTransitionFillTimer;
|
||||
|
||||
#if OOT_DEBUG
|
||||
void* gDebugCutsceneScript = NULL;
|
||||
UNK_TYPE D_8012D1F4 = 0; // unused
|
||||
#endif
|
||||
|
||||
Input* D_8012D1F8 = NULL;
|
||||
|
||||
void Play_SpawnScene(PlayState* this, s32 sceneId, s32 spawn);
|
||||
|
||||
// This macro prints the number "1" with a file and line number if R_ENABLE_PLAY_LOGS is enabled.
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "terminal.h"
|
||||
|
||||
// For retail BSS ordering, the block number of sStreamSfxProjectedPos must be 0.
|
||||
#pragma increment_block_number 182
|
||||
#pragma increment_block_number 208
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
|
||||
|
||||
@@ -897,7 +897,15 @@ static void* sFileInfoBoxTextures[] = {
|
||||
gFileSelFileInfoBox4Tex, gFileSelFileInfoBox5Tex,
|
||||
};
|
||||
|
||||
static void* sTitleLabels[3][9] = {
|
||||
static void* sTitleLabels[][9] = {
|
||||
#if OOT_NTSC
|
||||
{ gFileSelPleaseSelectAFileJPNTex, gFileSelOpenThisFileJPNTex, gFileSelCopyWhichFileJPNTex,
|
||||
gFileSelCopyToWhichFileJPNTex, gFileSelAreYouSureJPNTex, gFileSelFileCopiedJPNTex, gFileSelEraseWhichFileJPNTex,
|
||||
gFileSelAreYouSure2JPNTex, gFileSelFileErasedJPNTex },
|
||||
{ gFileSelPleaseSelectAFileENGTex, gFileSelOpenThisFileENGTex, gFileSelCopyWhichFileENGTex,
|
||||
gFileSelCopyToWhichFileENGTex, gFileSelAreYouSureENGTex, gFileSelFileCopiedENGTex, gFileSelEraseWhichFileENGTex,
|
||||
gFileSelAreYouSure2ENGTex, gFileSelFileErasedENGTex },
|
||||
#else
|
||||
{ gFileSelPleaseSelectAFileENGTex, gFileSelOpenThisFileENGTex, gFileSelCopyWhichFileENGTex,
|
||||
gFileSelCopyToWhichFileENGTex, gFileSelAreYouSureENGTex, gFileSelFileCopiedENGTex, gFileSelEraseWhichFileENGTex,
|
||||
gFileSelAreYouSure2ENGTex, gFileSelFileErasedENGTex },
|
||||
@@ -907,34 +915,49 @@ static void* sTitleLabels[3][9] = {
|
||||
{ gFileSelPleaseSelectAFileFRATex, gFileSelOpenThisFileFRATex, gFileSelCopyWhichFileFRATex,
|
||||
gFileSelCopyToWhichFileFRATex, gFileSelAreYouSureFRATex, gFileSelFileCopiedFRATex, gFileSelEraseWhichFileFRATex,
|
||||
gFileSelAreYouSure2FRATex, gFileSelFileErasedFRATex }
|
||||
#endif
|
||||
};
|
||||
|
||||
static void* sWarningLabels[3][5] = {
|
||||
static void* sWarningLabels[][5] = {
|
||||
#if OOT_NTSC
|
||||
{ gFileSelNoFileToCopyJPNTex, gFileSelNoFileToEraseJPNTex, gFileSelNoEmptyFileJPNTex, gFileSelFileEmptyJPNTex,
|
||||
gFileSelFileInUseJPNTex },
|
||||
{ gFileSelNoFileToCopyENGTex, gFileSelNoFileToEraseENGTex, gFileSelNoEmptyFileENGTex, gFileSelFileEmptyENGTex,
|
||||
gFileSelFileInUseENGTex },
|
||||
#else
|
||||
{ gFileSelNoFileToCopyENGTex, gFileSelNoFileToEraseENGTex, gFileSelNoEmptyFileENGTex, gFileSelFileEmptyENGTex,
|
||||
gFileSelFileInUseENGTex },
|
||||
{ gFileSelNoFileToCopyGERTex, gFileSelNoFileToEraseGERTex, gFileSelNoEmptyFileGERTex, gFileSelFileEmptyGERTex,
|
||||
gFileSelFileInUseGERTex },
|
||||
{ gFileSelNoFileToCopyFRATex, gFileSelNoFileToEraseFRATex, gFileSelNoEmptyFileFRATex, gFileSelFileEmptyFRATex,
|
||||
gFileSelFileInUseFRATex },
|
||||
#endif
|
||||
};
|
||||
|
||||
static void* sFileButtonTextures[3][3] = {
|
||||
static void* sFileButtonTextures[][3] = {
|
||||
#if OOT_NTSC
|
||||
{ gFileSelFile1ButtonJPNTex, gFileSelFile2ButtonJPNTex, gFileSelFile3ButtonJPNTex },
|
||||
{ gFileSelFile1ButtonENGTex, gFileSelFile2ButtonENGTex, gFileSelFile3ButtonENGTex },
|
||||
#else
|
||||
{ gFileSelFile1ButtonENGTex, gFileSelFile2ButtonENGTex, gFileSelFile3ButtonENGTex },
|
||||
{ gFileSelFile1ButtonGERTex, gFileSelFile2ButtonGERTex, gFileSelFile3ButtonGERTex },
|
||||
{ gFileSelFile1ButtonFRATex, gFileSelFile2ButtonFRATex, gFileSelFile3ButtonFRATex },
|
||||
#endif
|
||||
};
|
||||
|
||||
static void* sActionButtonTextures[3][4] = {
|
||||
static void* sActionButtonTextures[][4] = {
|
||||
#if OOT_NTSC
|
||||
{ gFileSelCopyButtonJPNTex, gFileSelEraseButtonJPNTex, gFileSelYesButtonJPNTex, gFileSelQuitButtonJPNTex },
|
||||
{ gFileSelCopyButtonENGTex, gFileSelEraseButtonENGTex, gFileSelYesButtonENGTex, gFileSelQuitButtonENGTex },
|
||||
#else
|
||||
{ gFileSelCopyButtonENGTex, gFileSelEraseButtonENGTex, gFileSelYesButtonENGTex, gFileSelQuitButtonENGTex },
|
||||
{ gFileSelCopyButtonGERTex, gFileSelEraseButtonGERTex, gFileSelYesButtonGERTex, gFileSelQuitButtonGERTex },
|
||||
{ gFileSelCopyButtonFRATex, gFileSelEraseButtonFRATex, gFileSelYesButtonFRATex, gFileSelQuitButtonFRATex },
|
||||
#endif
|
||||
};
|
||||
|
||||
static void* sOptionsButtonTextures[] = {
|
||||
gFileSelOptionsButtonENGTex,
|
||||
gFileSelOptionsButtonGERTex,
|
||||
gFileSelOptionsButtonENGTex,
|
||||
};
|
||||
static void* sOptionsButtonTextures[] = LANGUAGE_ARRAY(gFileSelOptionsButtonJPNTex, gFileSelOptionsButtonENGTex,
|
||||
gFileSelOptionsButtonGERTex, gFileSelOptionsButtonENGTex);
|
||||
|
||||
/**
|
||||
* Draw most window contents including buttons, labels, and icons.
|
||||
@@ -1597,11 +1620,8 @@ static void (*sFileSelectUpdateFuncs[])(GameState*) = {
|
||||
};
|
||||
|
||||
void FileSelect_Main(GameState* thisx) {
|
||||
static void* controlsTextures[] = {
|
||||
gFileSelControlsENGTex,
|
||||
gFileSelControlsGERTex,
|
||||
gFileSelControlsFRATex,
|
||||
};
|
||||
static void* controlsTextures[] =
|
||||
LANGUAGE_ARRAY(gFileSelControlsJPNTex, gFileSelControlsENGTex, gFileSelControlsGERTex, gFileSelControlsFRATex);
|
||||
FileSelectState* this = (FileSelectState*)thisx;
|
||||
Input* input = &this->state.input[0];
|
||||
|
||||
|
||||
+43
-16
@@ -87,15 +87,25 @@ void FileSelect_SetKeyboardVtx(GameState* thisx) {
|
||||
}
|
||||
}
|
||||
|
||||
static void* sNameLabelTextures[] = { gFileSelNameENGTex, gFileSelNameENGTex, gFileSelNameFRATex };
|
||||
static void* sNameLabelTextures[] =
|
||||
LANGUAGE_ARRAY(gFileSelNameJPNTex, gFileSelNameENGTex, gFileSelNameENGTex, gFileSelNameFRATex);
|
||||
|
||||
static void* sBackspaceEndTextures[][2] = {
|
||||
#if OOT_NTSC
|
||||
static void* sButtonTextures[] = {
|
||||
gFileSelHiraganaButtonTex, gFileSelKatakanaButtonTex, gFileSelKanjiButtonTex,
|
||||
gFileSelBackspaceButtonTex, gFileSelENDButtonENGTex,
|
||||
};
|
||||
|
||||
static u16 sButtonWidths[] = { 44, 44, 28, 28, 44 };
|
||||
#else
|
||||
static void* sButtonTextures[][2] = {
|
||||
{ gFileSelBackspaceButtonTex, gFileSelENDButtonENGTex },
|
||||
{ gFileSelBackspaceButtonTex, gFileSelENDButtonGERTex },
|
||||
{ gFileSelBackspaceButtonTex, gFileSelENDButtonFRATex },
|
||||
};
|
||||
|
||||
static u16 sBackspaceEndWidths[] = { 28, 44 };
|
||||
static u16 sButtonWidths[] = { 28, 44 };
|
||||
#endif
|
||||
|
||||
static s16 D_808125EC[] = {
|
||||
0xFFE2, 0xFFF0, 0xFFFA, 0x0004, 0x000E, 0x0018, 0x0022, 0x002C, 0x0036, 0xFFF0, 0xFFF0,
|
||||
@@ -137,9 +147,16 @@ void FileSelect_SetNameEntryVtx(GameState* thisx) {
|
||||
for (phi_t1 = 0; phi_t1 < 2; phi_t1++, phi_s0 += 4) {
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, this->windowColor[0], this->windowColor[1], this->windowColor[2], 255);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 0);
|
||||
gDPLoadTextureBlock(POLY_OPA_DISP++, sBackspaceEndTextures[gSaveContext.language][phi_t1], G_IM_FMT_IA,
|
||||
G_IM_SIZ_16b, sBackspaceEndWidths[phi_t1], 16, 0, G_TX_NOMIRROR | G_TX_WRAP,
|
||||
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
#if OOT_NTSC
|
||||
// TODO: implement NTSC version
|
||||
gDPLoadTextureBlock(POLY_OPA_DISP++, sButtonTextures[phi_t1], G_IM_FMT_IA, G_IM_SIZ_16b, sButtonWidths[phi_t1],
|
||||
16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK,
|
||||
G_TX_NOLOD, G_TX_NOLOD);
|
||||
#else
|
||||
gDPLoadTextureBlock(POLY_OPA_DISP++, sButtonTextures[gSaveContext.language][phi_t1], G_IM_FMT_IA, G_IM_SIZ_16b,
|
||||
sButtonWidths[phi_t1], 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP,
|
||||
G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
#endif
|
||||
gSP1Quadrangle(POLY_OPA_DISP++, phi_s0, phi_s0 + 2, phi_s0 + 3, phi_s0 + 1, 0);
|
||||
}
|
||||
|
||||
@@ -738,22 +755,24 @@ typedef struct {
|
||||
|
||||
static OptionsMenuTextureInfo sOptionsMenuHeaders[] = {
|
||||
{
|
||||
{ gFileSelOptionsENGTex, gFileSelOptionsGERTex, gFileSelOptionsENGTex },
|
||||
LANGUAGE_ARRAY(gFileSelOptionsJPNTex, gFileSelOptionsENGTex, gFileSelOptionsGERTex, gFileSelOptionsENGTex),
|
||||
{ 128, 128, 128 },
|
||||
16,
|
||||
},
|
||||
{
|
||||
{ gFileSelSOUNDENGTex, gFileSelSOUNDENGTex, gFileSelSOUNDFRATex },
|
||||
LANGUAGE_ARRAY(gFileSelSOUNDENGTex, gFileSelSOUNDENGTex, gFileSelSOUNDENGTex, gFileSelSOUNDFRATex),
|
||||
{ 64, 64, 64 },
|
||||
16,
|
||||
},
|
||||
{
|
||||
{ gFileSelLTargetingENGTex, gFileSelLTargetingGERTex, gFileSelLTargetingFRATex },
|
||||
LANGUAGE_ARRAY(gFileSelLTargetingJPNTex, gFileSelLTargetingENGTex, gFileSelLTargetingGERTex,
|
||||
gFileSelLTargetingFRATex),
|
||||
{ 64, 144, 64 },
|
||||
16,
|
||||
},
|
||||
{
|
||||
{ gFileSelCheckBrightnessENGTex, gFileSelCheckBrightnessGERTex, gFileSelCheckBrightnessFRATex },
|
||||
LANGUAGE_ARRAY(gFileSelCheckBrightnessJPNTex, gFileSelCheckBrightnessENGTex, gFileSelCheckBrightnessGERTex,
|
||||
gFileSelCheckBrightnessFRATex),
|
||||
{ 128, 128, 128 },
|
||||
16,
|
||||
},
|
||||
@@ -761,32 +780,32 @@ static OptionsMenuTextureInfo sOptionsMenuHeaders[] = {
|
||||
|
||||
static OptionsMenuTextureInfo sOptionsMenuSettings[] = {
|
||||
{
|
||||
{ gFileSelStereoENGTex, gFileSelStereoENGTex, gFileSelStereoFRATex },
|
||||
LANGUAGE_ARRAY(gFileSelStereoJPNTex, gFileSelStereoENGTex, gFileSelStereoENGTex, gFileSelStereoFRATex),
|
||||
{ 48, 48, 48 },
|
||||
16,
|
||||
},
|
||||
{
|
||||
{ gFileSelMonoENGTex, gFileSelMonoENGTex, gFileSelMonoENGTex },
|
||||
LANGUAGE_ARRAY(gFileSelMonoJPNTex, gFileSelMonoENGTex, gFileSelMonoENGTex, gFileSelMonoENGTex),
|
||||
{ 48, 48, 48 },
|
||||
16,
|
||||
},
|
||||
{
|
||||
{ gFileSelHeadsetENGTex, gFileSelHeadsetGERTex, gFileSelHeadsetFRATex },
|
||||
LANGUAGE_ARRAY(gFileSelHeadsetJPNTex, gFileSelHeadsetENGTex, gFileSelHeadsetGERTex, gFileSelHeadsetFRATex),
|
||||
{ 48, 48, 48 },
|
||||
16,
|
||||
},
|
||||
{
|
||||
{ gFileSelSurroundENGTex, gFileSelSurroundENGTex, gFileSelSurroundENGTex },
|
||||
LANGUAGE_ARRAY(gFileSelSurroundJPNTex, gFileSelSurroundENGTex, gFileSelSurroundENGTex, gFileSelSurroundENGTex),
|
||||
{ 48, 48, 48 },
|
||||
16,
|
||||
},
|
||||
{
|
||||
{ gFileSelSwitchENGTex, gFileSelSwitchGERTex, gFileSelSwitchFRATex },
|
||||
LANGUAGE_ARRAY(gFileSelSwitchJPNTex, gFileSelSwitchENGTex, gFileSelSwitchGERTex, gFileSelSwitchFRATex),
|
||||
{ 48, 80, 48 },
|
||||
16,
|
||||
},
|
||||
{
|
||||
{ gFileSelHoldENGTex, gFileSelHoldGERTex, gFileSelHoldFRATex },
|
||||
LANGUAGE_ARRAY(gFileSelHoldJPNTex, gFileSelHoldENGTex, gFileSelHoldGERTex, gFileSelHoldFRATex),
|
||||
{ 48, 80, 48 },
|
||||
16,
|
||||
},
|
||||
@@ -879,11 +898,15 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) {
|
||||
}
|
||||
}
|
||||
|
||||
#if OOT_NTSC
|
||||
gSPVertex(POLY_OPA_DISP++, D_80811D30, 32, 0);
|
||||
#else
|
||||
if (gSaveContext.language == LANGUAGE_GER) {
|
||||
gSPVertex(POLY_OPA_DISP++, D_80811E30, 32, 0);
|
||||
} else {
|
||||
gSPVertex(POLY_OPA_DISP++, D_80811D30, 32, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
gDPPipeSync(POLY_OPA_DISP++);
|
||||
gDPSetCombineLERP(POLY_OPA_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE,
|
||||
@@ -899,11 +922,15 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) {
|
||||
gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0);
|
||||
}
|
||||
|
||||
#if OOT_NTSC
|
||||
gSPVertex(POLY_OPA_DISP++, D_80811F30, 32, 0);
|
||||
#else
|
||||
if (gSaveContext.language == LANGUAGE_GER) {
|
||||
gSPVertex(POLY_OPA_DISP++, D_80812130, 32, 0);
|
||||
} else {
|
||||
gSPVertex(POLY_OPA_DISP++, D_80811F30, 32, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
for (i = 0, vtx = 0; i < 4; i++, vtx += 4) {
|
||||
gDPPipeSync(POLY_OPA_DISP++);
|
||||
+7
-5
@@ -1,8 +1,13 @@
|
||||
#include "z_kaleido_scope.h"
|
||||
#include "assets/textures/icon_item_24_static/icon_item_24_static.h"
|
||||
#if OOT_NTSC
|
||||
#include "assets/textures/icon_item_jpn_static/icon_item_jpn_static.h"
|
||||
#include "assets/textures/icon_item_nes_static/icon_item_nes_static.h"
|
||||
#else
|
||||
#include "assets/textures/icon_item_nes_static/icon_item_nes_static.h"
|
||||
#include "assets/textures/icon_item_ger_static/icon_item_ger_static.h"
|
||||
#include "assets/textures/icon_item_fra_static/icon_item_fra_static.h"
|
||||
#endif
|
||||
#include "assets/textures/icon_item_field_static/icon_item_field_static.h"
|
||||
#include "assets/textures/icon_item_dungeon_static/icon_item_dungeon_static.h"
|
||||
#include "assets/textures/icon_item_nes_static/icon_item_nes_static.h"
|
||||
@@ -393,11 +398,8 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
|
||||
gWorldMapAreaBox3Tex, gWorldMapAreaBox5Tex, gWorldMapAreaBox4Tex, gWorldMapAreaBox3Tex, gWorldMapAreaBox3Tex,
|
||||
gWorldMapAreaBox8Tex, gWorldMapAreaBox3Tex,
|
||||
};
|
||||
static void* currentPosTitleTexs[] = {
|
||||
gPauseCurrentPositionENGTex,
|
||||
gPauseCurrentPositionGERTex,
|
||||
gPauseCurrentPositionFRATex,
|
||||
};
|
||||
static void* currentPosTitleTexs[] = LANGUAGE_ARRAY(gPauseCurrentPositionJPNTex, gPauseCurrentPositionENGTex,
|
||||
gPauseCurrentPositionGERTex, gPauseCurrentPositionFRATex);
|
||||
static u16 D_8082A6D4 = 0;
|
||||
PauseContext* pauseCtx = &play->pauseCtx;
|
||||
s16 i;
|
||||
+126
-67
@@ -1,12 +1,46 @@
|
||||
#include "z_kaleido_scope.h"
|
||||
#include "assets/textures/icon_item_static/icon_item_static.h"
|
||||
#include "assets/textures/icon_item_24_static/icon_item_24_static.h"
|
||||
#if OOT_NTSC
|
||||
#include "assets/textures/icon_item_jpn_static/icon_item_jpn_static.h"
|
||||
#include "assets/textures/icon_item_nes_static/icon_item_nes_static.h"
|
||||
#else
|
||||
#include "assets/textures/icon_item_nes_static/icon_item_nes_static.h"
|
||||
#include "assets/textures/icon_item_ger_static/icon_item_ger_static.h"
|
||||
#include "assets/textures/icon_item_fra_static/icon_item_fra_static.h"
|
||||
#endif
|
||||
#include "assets/textures/icon_item_gameover_static/icon_item_gameover_static.h"
|
||||
#include "terminal.h"
|
||||
|
||||
#if OOT_NTSC
|
||||
static void* sEquipmentJPNTexs[] = {
|
||||
gPauseEquipment00Tex, gPauseEquipment01Tex, gPauseEquipment02Tex, gPauseEquipment03Tex, gPauseEquipment04Tex,
|
||||
gPauseEquipment10JPNTex, gPauseEquipment11Tex, gPauseEquipment12Tex, gPauseEquipment13Tex, gPauseEquipment14Tex,
|
||||
gPauseEquipment20Tex, gPauseEquipment21Tex, gPauseEquipment22Tex, gPauseEquipment23Tex, gPauseEquipment24Tex,
|
||||
};
|
||||
static void* sSelectItemJPNTexs[] = {
|
||||
gPauseSelectItem00JPNTex, gPauseSelectItem01Tex, gPauseSelectItem02Tex, gPauseSelectItem03Tex,
|
||||
gPauseSelectItem04Tex, gPauseSelectItem10JPNTex, gPauseSelectItem11Tex, gPauseSelectItem12Tex,
|
||||
gPauseSelectItem13Tex, gPauseSelectItem14Tex, gPauseSelectItem20JPNTex, gPauseSelectItem21Tex,
|
||||
gPauseSelectItem22Tex, gPauseSelectItem23Tex, gPauseSelectItem24Tex,
|
||||
};
|
||||
static void* sMapJPNTexs[] = {
|
||||
gPauseMap00Tex, gPauseMap01Tex, gPauseMap02Tex, gPauseMap03Tex, gPauseMap04Tex,
|
||||
gPauseMap10JPNTex, gPauseMap11Tex, gPauseMap12Tex, gPauseMap13Tex, gPauseMap14Tex,
|
||||
gPauseMap20Tex, gPauseMap21Tex, gPauseMap22Tex, gPauseMap23Tex, gPauseMap24Tex,
|
||||
};
|
||||
static void* sQuestStatusJPNTexs[] = {
|
||||
gPauseQuestStatus00JPNTex, gPauseQuestStatus01Tex, gPauseQuestStatus02Tex, gPauseQuestStatus03Tex,
|
||||
gPauseQuestStatus04Tex, gPauseQuestStatus10JPNTex, gPauseQuestStatus11Tex, gPauseQuestStatus12Tex,
|
||||
gPauseQuestStatus13Tex, gPauseQuestStatus14Tex, gPauseQuestStatus20JPNTex, gPauseQuestStatus21Tex,
|
||||
gPauseQuestStatus22Tex, gPauseQuestStatus23Tex, gPauseQuestStatus24Tex,
|
||||
};
|
||||
static void* sSaveJPNTexs[] = {
|
||||
gPauseSave00Tex, gPauseSave01Tex, gPauseSave02Tex, gPauseSave03Tex, gPauseSave04Tex,
|
||||
gPauseSave10JPNTex, gPauseSave11Tex, gPauseSave12Tex, gPauseSave13Tex, gPauseSave14Tex,
|
||||
gPauseSave20Tex, gPauseSave21Tex, gPauseSave22Tex, gPauseSave23Tex, gPauseSave24Tex,
|
||||
};
|
||||
#else
|
||||
static void* sEquipmentFRATexs[] = {
|
||||
gPauseEquipment00FRATex, gPauseEquipment01Tex, gPauseEquipment02Tex, gPauseEquipment03Tex, gPauseEquipment04Tex,
|
||||
gPauseEquipment10FRATex, gPauseEquipment11Tex, gPauseEquipment12Tex, gPauseEquipment13Tex, gPauseEquipment14Tex,
|
||||
@@ -62,6 +96,7 @@ static void* sSaveGERTexs[] = {
|
||||
gPauseSave10GERTex, gPauseSave11Tex, gPauseSave12Tex, gPauseSave13Tex, gPauseSave14Tex,
|
||||
gPauseSave20GERTex, gPauseSave21Tex, gPauseSave22Tex, gPauseSave23Tex, gPauseSave24Tex,
|
||||
};
|
||||
#endif
|
||||
|
||||
static void* sEquipmentENGTexs[] = {
|
||||
gPauseEquipment00Tex, gPauseEquipment01Tex, gPauseEquipment02Tex, gPauseEquipment03Tex, gPauseEquipment04Tex,
|
||||
@@ -97,35 +132,18 @@ static void* sGameOverTexs[] = {
|
||||
gPauseSave20Tex, gPauseSave21Tex, gPauseSave22Tex, gPauseSave23Tex, gPauseSave24Tex,
|
||||
};
|
||||
|
||||
static void* sEquipmentTexs[] = {
|
||||
sEquipmentENGTexs,
|
||||
sEquipmentGERTexs,
|
||||
sEquipmentFRATexs,
|
||||
};
|
||||
static void* sEquipmentTexs[] =
|
||||
LANGUAGE_ARRAY(sEquipmentJPNTexs, sEquipmentENGTexs, sEquipmentGERTexs, sEquipmentFRATexs);
|
||||
|
||||
static void* sSelectItemTexs[] = {
|
||||
sSelectItemENGTexs,
|
||||
sSelectItemGERTexs,
|
||||
sSelectItemFRATexs,
|
||||
};
|
||||
static void* sSelectItemTexs[] =
|
||||
LANGUAGE_ARRAY(sSelectItemJPNTexs, sSelectItemENGTexs, sSelectItemGERTexs, sSelectItemFRATexs);
|
||||
|
||||
static void* sMapTexs[] = {
|
||||
sMapENGTexs,
|
||||
sMapGERTexs,
|
||||
sMapFRATexs,
|
||||
};
|
||||
static void* sMapTexs[] = LANGUAGE_ARRAY(sMapJPNTexs, sMapENGTexs, sMapGERTexs, sMapFRATexs);
|
||||
|
||||
static void* sQuestStatusTexs[] = {
|
||||
sQuestStatusENGTexs,
|
||||
sQuestStatusGERTexs,
|
||||
sQuestStatusFRATexs,
|
||||
};
|
||||
static void* sQuestStatusTexs[] =
|
||||
LANGUAGE_ARRAY(sQuestStatusJPNTexs, sQuestStatusENGTexs, sQuestStatusGERTexs, sQuestStatusFRATexs);
|
||||
|
||||
static void* sSaveTexs[] = {
|
||||
sSaveENGTexs,
|
||||
sSaveGERTexs,
|
||||
sSaveFRATexs,
|
||||
};
|
||||
static void* sSaveTexs[] = LANGUAGE_ARRAY(sSaveJPNTexs, sSaveENGTexs, sSaveGERTexs, sSaveFRATexs);
|
||||
|
||||
s16 D_8082AAEC[] = {
|
||||
32, 112, 32, 48, 32, 32, 32, 48, 32, 64, 32, 48, 48, 48, 48, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 80, 64,
|
||||
@@ -394,28 +412,24 @@ static s16 sCursorColors[][3] = {
|
||||
{ 0, 255, 50 },
|
||||
};
|
||||
|
||||
static void* sSavePromptTexs[] = {
|
||||
gPauseSavePromptENGTex,
|
||||
gPauseSavePromptGERTex,
|
||||
gPauseSavePromptFRATex,
|
||||
};
|
||||
static void* sSavePromptTexs[] =
|
||||
LANGUAGE_ARRAY(gPauseSavePromptJPNTex, gPauseSavePromptENGTex, gPauseSavePromptGERTex, gPauseSavePromptFRATex);
|
||||
|
||||
static void* sSaveConfirmationTexs[] = {
|
||||
gPauseSaveConfirmationENGTex,
|
||||
gPauseSaveConfirmationGERTex,
|
||||
gPauseSaveConfirmationFRATex,
|
||||
};
|
||||
static void* sSaveConfirmationTexs[] = LANGUAGE_ARRAY(gPauseSaveConfirmationJPNTex, gPauseSaveConfirmationENGTex,
|
||||
gPauseSaveConfirmationGERTex, gPauseSaveConfirmationFRATex);
|
||||
|
||||
static void* sContinuePromptTexs[] = {
|
||||
gContinuePlayingENGTex,
|
||||
gContinuePlayingGERTex,
|
||||
gContinuePlayingFRATex,
|
||||
};
|
||||
static void* sContinuePromptTexs[] =
|
||||
LANGUAGE_ARRAY(gContinuePlayingJPNTex, gContinuePlayingENGTex, gContinuePlayingGERTex, gContinuePlayingFRATex);
|
||||
|
||||
static void* sPromptChoiceTexs[][2] = {
|
||||
#if OOT_NTSC
|
||||
{ gPauseYesJPNTex, gPauseNoJPNTex },
|
||||
{ gPauseYesENGTex, gPauseNoENGTex },
|
||||
#else
|
||||
{ gPauseYesENGTex, gPauseNoENGTex },
|
||||
{ gPauseYesGERTex, gPauseNoGERTex },
|
||||
{ gPauseYesFRATex, gPauseNoFRATex },
|
||||
#endif
|
||||
};
|
||||
|
||||
static u8 D_808321A8[5];
|
||||
@@ -1094,32 +1108,29 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
|
||||
}
|
||||
|
||||
void KaleidoScope_DrawInfoPanel(PlayState* play) {
|
||||
static void* D_8082AD54[3] = {
|
||||
gPauseToEquipENGTex,
|
||||
gPauseToEquipGERTex,
|
||||
gPauseToEquipFRATex,
|
||||
static void* D_8082AD54[] =
|
||||
LANGUAGE_ARRAY(gPauseToEquipJPNTex, gPauseToEquipENGTex, gPauseToEquipGERTex, gPauseToEquipFRATex);
|
||||
static void* D_8082AD60[] =
|
||||
LANGUAGE_ARRAY(gPauseToDecideJPNTex, gPauseToDecideENGTex, gPauseToDecideGERTex, gPauseToDecideFRATex);
|
||||
static void* D_8082AD6C[] = LANGUAGE_ARRAY(gPauseToPlayMelodyJPNTex, gPauseToPlayMelodyENGTex,
|
||||
gPauseToPlayMelodyGERTex, gPauseToPlayMelodyFRATex);
|
||||
static void* D_8082AD78[][LANGUAGE_MAX] = {
|
||||
LANGUAGE_ARRAY(gPauseToEquipmentJPNTex, gPauseToEquipmentENGTex, gPauseToEquipmentGERTex,
|
||||
gPauseToEquipmentFRATex),
|
||||
LANGUAGE_ARRAY(gPauseToSelectItemJPNTex, gPauseToSelectItemENGTex, gPauseToSelectItemGERTex,
|
||||
gPauseToSelectItemFRATex),
|
||||
LANGUAGE_ARRAY(gPauseToMapJPNTex, gPauseToMapENGTex, gPauseToMapGERTex, gPauseToMapFRATex),
|
||||
LANGUAGE_ARRAY(gPauseToQuestStatusJPNTex, gPauseToQuestStatusENGTex, gPauseToQuestStatusGERTex,
|
||||
gPauseToQuestStatusFRATex),
|
||||
};
|
||||
static void* D_8082AD60[3] = {
|
||||
gPauseToDecideENGTex,
|
||||
gPauseToDecideGERTex,
|
||||
gPauseToDecideFRATex,
|
||||
};
|
||||
static void* D_8082AD6C[3] = {
|
||||
gPauseToPlayMelodyENGTex,
|
||||
gPauseToPlayMelodyGERTex,
|
||||
gPauseToPlayMelodyFRATex,
|
||||
};
|
||||
static void* D_8082AD78[][3] = {
|
||||
{ gPauseToEquipmentENGTex, gPauseToEquipmentGERTex, gPauseToEquipmentFRATex },
|
||||
{ gPauseToSelectItemENGTex, gPauseToSelectItemGERTex, gPauseToSelectItemFRATex },
|
||||
{ gPauseToMapENGTex, gPauseToMapGERTex, gPauseToMapFRATex },
|
||||
{ gPauseToQuestStatusENGTex, gPauseToQuestStatusGERTex, gPauseToQuestStatusFRATex },
|
||||
};
|
||||
static void* D_8082ADA8[][3] = {
|
||||
{ gPauseToMapENGTex, gPauseToMapGERTex, gPauseToMapFRATex },
|
||||
{ gPauseToQuestStatusENGTex, gPauseToQuestStatusGERTex, gPauseToQuestStatusFRATex },
|
||||
{ gPauseToEquipmentENGTex, gPauseToEquipmentGERTex, gPauseToEquipmentFRATex },
|
||||
{ gPauseToSelectItemENGTex, gPauseToSelectItemGERTex, gPauseToSelectItemFRATex },
|
||||
static void* D_8082ADA8[][LANGUAGE_MAX] = {
|
||||
LANGUAGE_ARRAY(gPauseToMapJPNTex, gPauseToMapENGTex, gPauseToMapGERTex, gPauseToMapFRATex),
|
||||
LANGUAGE_ARRAY(gPauseToQuestStatusJPNTex, gPauseToQuestStatusENGTex, gPauseToQuestStatusGERTex,
|
||||
gPauseToQuestStatusFRATex),
|
||||
LANGUAGE_ARRAY(gPauseToEquipmentJPNTex, gPauseToEquipmentENGTex, gPauseToEquipmentGERTex,
|
||||
gPauseToEquipmentFRATex),
|
||||
LANGUAGE_ARRAY(gPauseToSelectItemJPNTex, gPauseToSelectItemENGTex, gPauseToSelectItemGERTex,
|
||||
gPauseToSelectItemFRATex),
|
||||
};
|
||||
static u16 D_8082ADD8[3] = { 56, 88, 80 };
|
||||
static u16 D_8082ADE0[3] = { 64, 88, 72 };
|
||||
@@ -1487,10 +1498,12 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
|
||||
pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] =
|
||||
pauseCtx->infoPanelVtx[16].v.ob[0] + WREG(52 + gSaveContext.language);
|
||||
|
||||
#if OOT_PAL
|
||||
if (gSaveContext.language == LANGUAGE_GER) {
|
||||
pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] =
|
||||
pauseCtx->infoPanelVtx[16].v.ob[0] - 99;
|
||||
}
|
||||
#endif
|
||||
|
||||
pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] =
|
||||
pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADE8[gSaveContext.language];
|
||||
@@ -1554,12 +1567,15 @@ void KaleidoScope_UpdateNamePanel(PlayState* play) {
|
||||
|
||||
if (pauseCtx->namedItem != PAUSE_ITEM_NONE) {
|
||||
if ((pauseCtx->pageIndex == PAUSE_MAP) && !sInDungeonScene) {
|
||||
if (gSaveContext.language) {
|
||||
if (gSaveContext.language) { // != LANGUAGE_JPN for NTSC versions, LANGUAGE_ENG for PAL versions
|
||||
sp2A += 12;
|
||||
}
|
||||
|
||||
#if OOT_PAL
|
||||
if (gSaveContext.language == LANGUAGE_FRA) {
|
||||
sp2A += 12;
|
||||
}
|
||||
#endif
|
||||
|
||||
DMA_REQUEST_SYNC(pauseCtx->nameSegment,
|
||||
(uintptr_t)_map_name_staticSegmentRomStart + (sp2A * MAP_NAME_TEX1_SIZE),
|
||||
@@ -1567,12 +1583,15 @@ void KaleidoScope_UpdateNamePanel(PlayState* play) {
|
||||
} else {
|
||||
PRINTF("zoom_name=%d\n", pauseCtx->namedItem);
|
||||
|
||||
if (gSaveContext.language) { // != LANGUAGE_ENG
|
||||
if (gSaveContext.language) { // != LANGUAGE_JPN for NTSC versions, LANGUAGE_ENG for PAL versions
|
||||
sp2A += 123;
|
||||
}
|
||||
|
||||
#if OOT_PAL
|
||||
if (gSaveContext.language == LANGUAGE_FRA) {
|
||||
sp2A += 123;
|
||||
}
|
||||
#endif
|
||||
|
||||
PRINTF("J_N=%d point=%d\n", gSaveContext.language, sp2A);
|
||||
|
||||
@@ -2821,6 +2840,17 @@ void KaleidoScope_Update(PlayState* play) {
|
||||
|
||||
pauseCtx->iconItemLangSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemAltSegment + size2);
|
||||
|
||||
#if OOT_NTSC
|
||||
if (gSaveContext.language == LANGUAGE_JPN) {
|
||||
size = (uintptr_t)_icon_item_jpn_staticSegmentRomEnd - (uintptr_t)_icon_item_jpn_staticSegmentRomStart;
|
||||
DmaMgr_RequestSync(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_jpn_staticSegmentRomStart,
|
||||
size);
|
||||
} else {
|
||||
size = (uintptr_t)_icon_item_nes_staticSegmentRomEnd - (uintptr_t)_icon_item_nes_staticSegmentRomStart;
|
||||
DmaMgr_RequestSync(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_nes_staticSegmentRomStart,
|
||||
size);
|
||||
}
|
||||
#else
|
||||
if (gSaveContext.language == LANGUAGE_ENG) {
|
||||
size = (uintptr_t)_icon_item_nes_staticSegmentRomEnd - (uintptr_t)_icon_item_nes_staticSegmentRomStart;
|
||||
PRINTF("icon_item_dungeon dungeon-size=%x\n", size);
|
||||
@@ -2837,6 +2867,7 @@ void KaleidoScope_Update(PlayState* play) {
|
||||
DMA_REQUEST_SYNC(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_fra_staticSegmentRomStart, size,
|
||||
"../z_kaleido_scope_PAL.c", 3753);
|
||||
}
|
||||
#endif
|
||||
|
||||
pauseCtx->nameSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemLangSegment + size);
|
||||
|
||||
@@ -2846,6 +2877,21 @@ void KaleidoScope_Update(PlayState* play) {
|
||||
PRINTF("サイズ=%x\n", size2 + size1 + size0 + size + 0x800);
|
||||
|
||||
if (((void)0, gSaveContext.worldMapArea) < 22) {
|
||||
#if OOT_NTSC
|
||||
if (gSaveContext.language == LANGUAGE_JPN) {
|
||||
DmaMgr_RequestSync(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE),
|
||||
(uintptr_t)_map_name_staticSegmentRomStart +
|
||||
(((void)0, gSaveContext.worldMapArea) * MAP_NAME_TEX2_SIZE) +
|
||||
24 * MAP_NAME_TEX1_SIZE + 22 * LANGUAGE_JPN * MAP_NAME_TEX2_SIZE,
|
||||
MAP_NAME_TEX2_SIZE);
|
||||
} else {
|
||||
DmaMgr_RequestSync(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE),
|
||||
(uintptr_t)_map_name_staticSegmentRomStart +
|
||||
(((void)0, gSaveContext.worldMapArea) * MAP_NAME_TEX2_SIZE) +
|
||||
24 * MAP_NAME_TEX1_SIZE + 22 * LANGUAGE_ENG * MAP_NAME_TEX2_SIZE,
|
||||
MAP_NAME_TEX2_SIZE);
|
||||
}
|
||||
#else
|
||||
if (gSaveContext.language == LANGUAGE_ENG) {
|
||||
DMA_REQUEST_SYNC(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE),
|
||||
(uintptr_t)_map_name_staticSegmentRomStart +
|
||||
@@ -2865,6 +2911,7 @@ void KaleidoScope_Update(PlayState* play) {
|
||||
36 * MAP_NAME_TEX1_SIZE + 22 * LANGUAGE_FRA * MAP_NAME_TEX2_SIZE,
|
||||
MAP_NAME_TEX2_SIZE, "../z_kaleido_scope_PAL.c", 3784);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
sPreRenderCvg = (void*)ALIGN16((uintptr_t)pauseCtx->nameSegment +
|
||||
@@ -3399,6 +3446,17 @@ void KaleidoScope_Update(PlayState* play) {
|
||||
|
||||
pauseCtx->iconItemLangSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemAltSegment + size2);
|
||||
|
||||
#if OOT_NTSC
|
||||
if (gSaveContext.language == LANGUAGE_JPN) {
|
||||
size = (uintptr_t)_icon_item_jpn_staticSegmentRomEnd - (uintptr_t)_icon_item_jpn_staticSegmentRomStart;
|
||||
DmaMgr_RequestSync(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_jpn_staticSegmentRomStart,
|
||||
size);
|
||||
} else {
|
||||
size = (uintptr_t)_icon_item_nes_staticSegmentRomEnd - (uintptr_t)_icon_item_nes_staticSegmentRomStart;
|
||||
DmaMgr_RequestSync(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_nes_staticSegmentRomStart,
|
||||
size);
|
||||
}
|
||||
#else
|
||||
if (gSaveContext.language == LANGUAGE_ENG) {
|
||||
size = (uintptr_t)_icon_item_nes_staticSegmentRomEnd - (uintptr_t)_icon_item_nes_staticSegmentRomStart;
|
||||
PRINTF("icon_item_dungeon dungeon-size=%x\n", size);
|
||||
@@ -3415,6 +3473,7 @@ void KaleidoScope_Update(PlayState* play) {
|
||||
DMA_REQUEST_SYNC(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_fra_staticSegmentRomStart, size,
|
||||
"../z_kaleido_scope_PAL.c", 4393);
|
||||
}
|
||||
#endif
|
||||
|
||||
D_8082AB8C = 255;
|
||||
D_8082AB90 = 130;
|
||||
Reference in New Issue
Block a user