mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-14 21:40:03 +00:00
[PAL N64] Match z_message.c (#2202)
This commit is contained in:
parent
8ff4faa084
commit
0acaed6d17
2 changed files with 51 additions and 7 deletions
|
@ -6,6 +6,7 @@
|
||||||
#include "z64pause.h"
|
#include "z64pause.h"
|
||||||
#include "z64scene.h"
|
#include "z64scene.h"
|
||||||
#include "z64map_mark.h"
|
#include "z64map_mark.h"
|
||||||
|
#include "versions.h"
|
||||||
|
|
||||||
struct Font;
|
struct Font;
|
||||||
struct GameState;
|
struct GameState;
|
||||||
|
@ -49,11 +50,18 @@ typedef struct n64ddStruct_80121220 {
|
||||||
struct SceneTableEntry* (*unk_48)(s32 sceneId, struct SceneTableEntry* sceneTable);
|
struct SceneTableEntry* (*unk_48)(s32 sceneId, struct SceneTableEntry* sceneTable);
|
||||||
char unk_4C[0x08];
|
char unk_4C[0x08];
|
||||||
s32 (*unk_54)(struct PlayState*);
|
s32 (*unk_54)(struct PlayState*);
|
||||||
|
#if OOT_NTSC
|
||||||
void (*unk_58)(struct MessageTableEntry**, struct MessageTableEntry**, struct MessageTableEntry**);
|
void (*unk_58)(struct MessageTableEntry**, struct MessageTableEntry**, struct MessageTableEntry**);
|
||||||
|
#else
|
||||||
|
void (*unk_58)(struct MessageTableEntry**, const char***, const char***, struct MessageTableEntry**);
|
||||||
|
#endif
|
||||||
char unk_5C[0x4];
|
char unk_5C[0x4];
|
||||||
s32 (*unk_60)(struct Font*);
|
s32 (*unk_60)(struct Font*);
|
||||||
s32 (*unk_64)(struct Font*);
|
s32 (*unk_64)(struct Font*);
|
||||||
s32 (*unk_68)(struct Font*);
|
s32 (*unk_68)(struct Font*);
|
||||||
|
#if OOT_PAL
|
||||||
|
s32 (*unk_6C_PAL)(struct Font*);
|
||||||
|
#endif
|
||||||
void (*unk_6C)(struct PlayState*, SceneDrawConfigFunc*);
|
void (*unk_6C)(struct PlayState*, SceneDrawConfigFunc*);
|
||||||
s32 (*unk_70)(struct DmaRequest* req, void* ram, uintptr_t vrom, size_t size, u32 unk, OSMesgQueue* queue, OSMesg msg);
|
s32 (*unk_70)(struct DmaRequest* req, void* ram, uintptr_t vrom, size_t size, u32 unk, OSMesgQueue* queue, OSMesg msg);
|
||||||
void (*unk_74)(struct GameState*);
|
void (*unk_74)(struct GameState*);
|
||||||
|
|
|
@ -3,13 +3,12 @@
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
#include "versions.h"
|
#include "versions.h"
|
||||||
#include "assets/textures/parameter_static/parameter_static.h"
|
#include "assets/textures/parameter_static/parameter_static.h"
|
||||||
#include "versions.h"
|
|
||||||
#if PLATFORM_N64
|
#if PLATFORM_N64
|
||||||
#include "n64dd.h"
|
#include "n64dd.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
||||||
"ntsc-1.2:112"
|
"ntsc-1.2:112 pal-1.0:128 pal-1.1:128"
|
||||||
|
|
||||||
#if !PLATFORM_GC
|
#if !PLATFORM_GC
|
||||||
#define OCARINA_BUTTON_A_PRIM_1_R 80
|
#define OCARINA_BUTTON_A_PRIM_1_R 80
|
||||||
|
@ -108,7 +107,7 @@ u16 sNextTextId = 0;
|
||||||
|
|
||||||
s16 sTextIsCredits = false;
|
s16 sTextIsCredits = false;
|
||||||
|
|
||||||
#if OOT_PAL
|
#if PLATFORM_GC && OOT_PAL
|
||||||
UNK_TYPE D_8014B30C = 0;
|
UNK_TYPE D_8014B30C = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1724,7 +1723,7 @@ void Message_Decode(PlayState* play) {
|
||||||
Font* font = &play->msgCtx.font;
|
Font* font = &play->msgCtx.font;
|
||||||
s32 charTexIdx = 0;
|
s32 charTexIdx = 0;
|
||||||
s16 i;
|
s16 i;
|
||||||
#if OOT_NTSC
|
#if !(PLATFORM_GC && OOT_PAL)
|
||||||
s16 j;
|
s16 j;
|
||||||
#endif
|
#endif
|
||||||
s16 decodedBufPos = 0;
|
s16 decodedBufPos = 0;
|
||||||
|
@ -1735,7 +1734,7 @@ void Message_Decode(PlayState* play) {
|
||||||
s16 loadChar;
|
s16 loadChar;
|
||||||
u16 value;
|
u16 value;
|
||||||
u8 curChar;
|
u8 curChar;
|
||||||
#if OOT_NTSC
|
#if !(PLATFORM_GC && OOT_PAL)
|
||||||
u16 curCharWide;
|
u16 curCharWide;
|
||||||
u8* fontBuf;
|
u8* fontBuf;
|
||||||
#endif
|
#endif
|
||||||
|
@ -2562,18 +2561,47 @@ void Message_OpenText(PlayState* play, u16 textId) {
|
||||||
if (gSaveContext.language == LANGUAGE_ENG) {
|
if (gSaveContext.language == LANGUAGE_ENG) {
|
||||||
Message_FindMessagePAL(play, textId);
|
Message_FindMessagePAL(play, textId);
|
||||||
msgCtx->msgLength = font->msgLength;
|
msgCtx->msgLength = font->msgLength;
|
||||||
|
#if PLATFORM_N64
|
||||||
|
if ((B_80121220 != NULL) && (B_80121220->unk_64 != NULL) && B_80121220->unk_64(&play->msgCtx.font)) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_nes_message_data_staticSegmentRomStart + font->msgOffset,
|
||||||
|
font->msgLength);
|
||||||
|
}
|
||||||
|
#else
|
||||||
DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_nes_message_data_staticSegmentRomStart + font->msgOffset,
|
DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_nes_message_data_staticSegmentRomStart + font->msgOffset,
|
||||||
font->msgLength, "../z_message_PAL.c", 1966);
|
font->msgLength, "../z_message_PAL.c", 1966);
|
||||||
|
#endif
|
||||||
} else if (gSaveContext.language == LANGUAGE_GER) {
|
} else if (gSaveContext.language == LANGUAGE_GER) {
|
||||||
Message_FindMessagePAL(play, textId);
|
Message_FindMessagePAL(play, textId);
|
||||||
msgCtx->msgLength = font->msgLength;
|
msgCtx->msgLength = font->msgLength;
|
||||||
|
#if PLATFORM_N64
|
||||||
|
//! @bug checks unk_64 != NULL instead of unk_68 != NULL
|
||||||
|
if ((B_80121220 != NULL) && (B_80121220->unk_64 != NULL) && B_80121220->unk_68(&play->msgCtx.font)) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_ger_message_data_staticSegmentRomStart + font->msgOffset,
|
||||||
|
font->msgLength);
|
||||||
|
}
|
||||||
|
#else
|
||||||
DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_ger_message_data_staticSegmentRomStart + font->msgOffset,
|
DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_ger_message_data_staticSegmentRomStart + font->msgOffset,
|
||||||
font->msgLength, "../z_message_PAL.c", 1978);
|
font->msgLength, "../z_message_PAL.c", 1978);
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
Message_FindMessagePAL(play, textId);
|
Message_FindMessagePAL(play, textId);
|
||||||
msgCtx->msgLength = font->msgLength;
|
msgCtx->msgLength = font->msgLength;
|
||||||
|
#if PLATFORM_N64
|
||||||
|
//! @bug checks unk_64 != NULL instead of unk_6C_PAL != NULL
|
||||||
|
if ((B_80121220 != NULL) && (B_80121220->unk_64 != NULL) && B_80121220->unk_6C_PAL(&play->msgCtx.font)) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_fra_message_data_staticSegmentRomStart + font->msgOffset,
|
||||||
|
font->msgLength);
|
||||||
|
}
|
||||||
|
#else
|
||||||
DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_fra_message_data_staticSegmentRomStart + font->msgOffset,
|
DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_fra_message_data_staticSegmentRomStart + font->msgOffset,
|
||||||
font->msgLength, "../z_message_PAL.c", 1990);
|
font->msgLength, "../z_message_PAL.c", 1990);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -4005,7 +4033,10 @@ void Message_Update(PlayState* play) {
|
||||||
s16 playerFocusScreenPosY;
|
s16 playerFocusScreenPosY;
|
||||||
s16 actorFocusScreenPosY;
|
s16 actorFocusScreenPosY;
|
||||||
#if OOT_VERSION < GC_US
|
#if OOT_VERSION < GC_US
|
||||||
s32 pad[2];
|
s32 pad1;
|
||||||
|
#endif
|
||||||
|
#if OOT_NTSC && OOT_VERSION < GC_US
|
||||||
|
s32 pad2;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if OOT_DEBUG
|
#if OOT_DEBUG
|
||||||
|
@ -4323,9 +4354,14 @@ void Message_SetTables(void) {
|
||||||
|
|
||||||
sStaffMessageEntryTablePtr = sStaffMessageEntryTable;
|
sStaffMessageEntryTablePtr = sStaffMessageEntryTable;
|
||||||
|
|
||||||
#if PLATFORM_N64
|
#if PLATFORM_N64 && OOT_NTSC
|
||||||
if ((B_80121220 != NULL) && (B_80121220->unk_58 != NULL)) {
|
if ((B_80121220 != NULL) && (B_80121220->unk_58 != NULL)) {
|
||||||
B_80121220->unk_58(&sJpnMessageEntryTablePtr, &sNesMessageEntryTablePtr, &sStaffMessageEntryTablePtr);
|
B_80121220->unk_58(&sJpnMessageEntryTablePtr, &sNesMessageEntryTablePtr, &sStaffMessageEntryTablePtr);
|
||||||
}
|
}
|
||||||
|
#elif PLATFORM_N64 && OOT_PAL
|
||||||
|
if ((B_80121220 != NULL) && (B_80121220->unk_58 != NULL)) {
|
||||||
|
B_80121220->unk_58(&sNesMessageEntryTablePtr, &sGerMessageEntryTablePtr, &sFraMessageEntryTablePtr,
|
||||||
|
&sStaffMessageEntryTablePtr);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue