Split Japanese DOL till saveload.c

Renamed VERSION_JAP to VERSION_JPN because it might be offensive for some
This commit is contained in:
dbalatoni13 2024-11-26 16:48:31 +01:00
parent b47cadcf21
commit 3b50a4bdb7
9 changed files with 87 additions and 97 deletions

View file

@ -304,6 +304,6 @@ game/saveload.c:
.text start:0x80057D18 end:0x8005A324 .text start:0x80057D18 end:0x8005A324
.data start:0x80131D30 end:0x80131DE8 .data start:0x80131D30 end:0x80131DE8
.bss start:0x801980C0 end:0x8019C0E0 .bss start:0x801980C0 end:0x8019C0E0
.sdata start:0x801D32D8 end:0x801D32F0 .sdata start:0x801D32D8 end:0x801D3300
.sbss start:0x801D3B68 end:0x801D3B78 .sbss start:0x801D3B68 end:0x801D3B78
.sdata2 start:0x801D4DF8 end:0x801D4E08 .sdata2 start:0x801D4DF8 end:0x801D4E08

View file

@ -4117,7 +4117,7 @@ lbl_80130EC8 = .data:0x80130EC8; // type:object size:0x4D scope:local
lbl_80130F15 = .data:0x80130F15; // type:object size:0x1B scope:local lbl_80130F15 = .data:0x80130F15; // type:object size:0x1B scope:local
mgInfoTbl = .data:0x80130F30; // type:object size:0xE00 data:2byte mgInfoTbl = .data:0x80130F30; // type:object size:0xE00 data:2byte
commentTbl = .data:0x80131D30; // type:object size:0x40 scope:local data:byte commentTbl = .data:0x80131D30; // type:object size:0x40 scope:local data:byte
lbl_80131D70 = .data:0x80131D70; // type:object size:0x14 scope:local data:byte sjisNumTbl = .data:0x80131D70; // type:object size:0x14 scope:local data:byte
lbl_80131D84 = .data:0x80131D84; // type:object size:0xC scope:local data:string lbl_80131D84 = .data:0x80131D84; // type:object size:0xC scope:local data:string
lbl_80131D90 = .data:0x80131D90; // type:object size:0xC scope:local data:string lbl_80131D90 = .data:0x80131D90; // type:object size:0xC scope:local data:string
lbl_80131D9C = .data:0x80131D9C; // type:object size:0xC scope:local data:string lbl_80131D9C = .data:0x80131D9C; // type:object size:0xC scope:local data:string
@ -4728,15 +4728,15 @@ lbl_801D32BB = .sdata:0x801D32BB; // type:object size:0x8 scope:local data:strin
lbl_801D32C3 = .sdata:0x801D32C3; // type:object size:0x6 scope:local data:string lbl_801D32C3 = .sdata:0x801D32C3; // type:object size:0x6 scope:local data:string
lbl_801D32C9 = .sdata:0x801D32C9; // type:object size:0x7 scope:local lbl_801D32C9 = .sdata:0x801D32C9; // type:object size:0x7 scope:local
lbl_801D32D0 = .sdata:0x801D32D0; // type:object size:0x8 scope:local lbl_801D32D0 = .sdata:0x801D32D0; // type:object size:0x8 scope:local
saveEnableF = .sdata:0x801D32D8; // type:object size:0x4 data:4byte SaveEnableF = .sdata:0x801D32D8; // type:object size:0x4 data:4byte
@228 = .sdata:0x801D32DC; // type:object size:0x2 scope:local data:string @228 = .sdata:0x801D32DC; // type:object size:0x2 scope:local data:string
@229 = .sdata:0x801D32DE; // type:object size:0x2 scope:local data:string @229 = .sdata:0x801D32DE; // type:object size:0x2 scope:local data:string
SlotNameTbl = .sdata:0x801D32E0; // type:object size:0x8 scope:local SlotNameTbl = .sdata:0x801D32E0; // type:object size:0x8 scope:local
lbl_801D32E8 = .sdata:0x801D32E8; // type:object size:0x3 lbl_801D32E8 = .sdata:0x801D32E8; // type:object size:0x3 scope:local
lbl_801D32EB = .sdata:0x801D32EB; // type:object size:0x5 lbl_801D32EB = .sdata:0x801D32EB; // type:object size:0x4 scope:local
lbl_801D32F0 = .sdata:0x801D32F0; // type:object size:0x8 slotIconMesTbl = .sdata:0x801D32F0; // type:object size:0x8 scope:local
lbl_801D32F8 = .sdata:0x801D32F8; // type:object size:0x1 data:byte sjisSpace = .sdata:0x801D32F8; // type:object size:0x3 scope:local data:byte
lbl_801D32FC = .sdata:0x801D32FC; // type:object size:0x4 data:4byte saveMessWin = .sdata:0x801D32FC; // type:object size:0x4 scope:local data:4byte
lbl_801D3300 = .sdata:0x801D3300; // type:object size:0x8 data:2byte lbl_801D3300 = .sdata:0x801D3300; // type:object size:0x8 data:2byte
lbl_801D3308 = .sdata:0x801D3308; // type:object size:0x1 data:byte lbl_801D3308 = .sdata:0x801D3308; // type:object size:0x1 data:byte
lbl_801D330C = .sdata:0x801D330C; // type:object size:0xC data:4byte lbl_801D330C = .sdata:0x801D330C; // type:object size:0xC data:4byte
@ -5211,8 +5211,7 @@ mgTypeCurr = .sbss:0x801D3B60; // type:object size:0x2
curSlotNo = .sbss:0x801D3B68; // type:object size:0x2 data:2byte curSlotNo = .sbss:0x801D3B68; // type:object size:0x2 data:2byte
curBoxNo = .sbss:0x801D3B6A; // type:object size:0x1 data:byte curBoxNo = .sbss:0x801D3B6A; // type:object size:0x1 data:byte
saveExecF = .sbss:0x801D3B6C; // type:object size:0x4 saveExecF = .sbss:0x801D3B6C; // type:object size:0x4
SLSerialNo = .sbss:0x801D3B70; // type:object size:0x4 data:4byte SLSerialNo = .sbss:0x801D3B70; // type:object size:0x8 data:4byte
lbl_801D3B74 = .sbss:0x801D3B74; // type:object size:0x4 data:4byte
lbl_801D3B78 = .sbss:0x801D3B78; // type:object size:0x4 data:4byte lbl_801D3B78 = .sbss:0x801D3B78; // type:object size:0x4 data:4byte
lbl_801D3B7C = .sbss:0x801D3B7C; // type:object size:0x4 data:4byte lbl_801D3B7C = .sbss:0x801D3B7C; // type:object size:0x4 data:4byte
lbl_801D3B80 = .sbss:0x801D3B80; // type:object size:0x4 data:4byte lbl_801D3B80 = .sbss:0x801D3B80; // type:object size:0x4 data:4byte
@ -6196,9 +6195,9 @@ lbl_801D4DE7 = .sdata2:0x801D4DE7; // type:object size:0x1 scope:local data:byte
lbl_801D4DE8 = .sdata2:0x801D4DE8; // type:object size:0x4 scope:local data:float lbl_801D4DE8 = .sdata2:0x801D4DE8; // type:object size:0x4 scope:local data:float
lbl_801D4DEC = .sdata2:0x801D4DEC; // type:object size:0x4 scope:local data:float lbl_801D4DEC = .sdata2:0x801D4DEC; // type:object size:0x4 scope:local data:float
lbl_801D4DF0 = .sdata2:0x801D4DF0; // type:object size:0x8 scope:local data:float lbl_801D4DF0 = .sdata2:0x801D4DF0; // type:object size:0x8 scope:local data:float
lbl_801D4DF8 = .sdata2:0x801D4DF8; // type:object size:0x4 scope:local data:float @293 = .sdata2:0x801D4DF8; // type:object size:0x4 scope:local data:float
lbl_801D4DFC = .sdata2:0x801D4DFC; // type:object size:0x4 scope:local data:float @294 = .sdata2:0x801D4DFC; // type:object size:0x4 scope:local data:float
lbl_801D4E00 = .sdata2:0x801D4E00; // type:object size:0x8 scope:local data:float @295 = .sdata2:0x801D4E00; // type:object size:0x4 scope:local data:float
lbl_801D4E08 = .sdata2:0x801D4E08; // type:object size:0x4 scope:local data:float lbl_801D4E08 = .sdata2:0x801D4E08; // type:object size:0x4 scope:local data:float
lbl_801D4E0C = .sdata2:0x801D4E0C; // type:object size:0x4 scope:local data:float lbl_801D4E0C = .sdata2:0x801D4E0C; // type:object size:0x4 scope:local data:float
lbl_801D4E10 = .sdata2:0x801D4E10; // type:object size:0x4 scope:local data:float lbl_801D4E10 = .sdata2:0x801D4E10; // type:object size:0x4 scope:local data:float

View file

@ -421,7 +421,7 @@ config.libs = [
Object(Matching, "game/thpmain.c"), Object(Matching, "game/thpmain.c"),
Object(Matching, "game/objsub.c"), Object(Matching, "game/objsub.c"),
Object(Matching, "game/flag.c"), Object(Matching, "game/flag.c"),
Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/saveload.c"), Object(Matching, "game/saveload.c"),
Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/sreset.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/sreset.c"),
Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/main.c"),
Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/player.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/player.c"),

View file

@ -71,7 +71,7 @@ OVL_DEFINE(OVL_M461, "dll/m461dll.rel")
OVL_DEFINE(OVL_M462, "dll/m462dll.rel") OVL_DEFINE(OVL_M462, "dll/m462dll.rel")
OVL_DEFINE(OVL_M463, "dll/m463dll.rel") OVL_DEFINE(OVL_M463, "dll/m463dll.rel")
OVL_DEFINE(OVL_MENT, "dll/mentdll.rel") OVL_DEFINE(OVL_MENT, "dll/mentdll.rel")
#if VERSION_JAP #if VERSION_JPN
OVL_DEFINE(OVL_MGMODE, "dll/mgmodedll.rel") OVL_DEFINE(OVL_MGMODE, "dll/mgmodedll.rel")
OVL_DEFINE(OVL_MODELTEST, "dll/modeltestdll.rel") OVL_DEFINE(OVL_MODELTEST, "dll/modeltestdll.rel")
OVL_DEFINE(OVL_MODESEL, "dll/modeseldll.rel") OVL_DEFINE(OVL_MODESEL, "dll/modeseldll.rel")

View file

@ -9,7 +9,7 @@
#define VERSION_ENG (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_ENG1) #define VERSION_ENG (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_ENG1)
#define VERSION_PAL (VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_PAL2) #define VERSION_PAL (VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_PAL2)
#define VERSION_JAP (VERSION == VERSION_NO_JAP) #define VERSION_JPN (VERSION == VERSION_NO_JAP)
#define VERSION_NTSC (!VERSION_PAL) #define VERSION_NTSC (!VERSION_PAL)
#define VERSION_REV0 (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_JAP) #define VERSION_REV0 (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_JAP)

View file

@ -4,7 +4,6 @@
#include "string.h" #include "string.h"
#include "version.h" #include "version.h"
s16 GwLanguage = 1; s16 GwLanguage = 1;
s16 GwLanguageSave = -1; s16 GwLanguageSave = -1;
@ -55,7 +54,7 @@ void GWInit(void)
_InitFlag(); _InitFlag();
GWErase(); GWErase();
InitPlayerConfig(); InitPlayerConfig();
#if VERSION_JAP #if VERSION_JPN
GWGameStat.language = 0; GWGameStat.language = 0;
#elif VERSION_ENG #elif VERSION_ENG
GWGameStat.language = 1; GWGameStat.language = 1;
@ -132,7 +131,7 @@ void GWGameStatReset(void)
GameStat *game_stat = &GWGameStatDefault; GameStat *game_stat = &GWGameStatDefault;
memset(game_stat, 0, sizeof(GameStat)); memset(game_stat, 0, sizeof(GameStat));
game_stat->unk_00 = 0; game_stat->unk_00 = 0;
#if VERSION_JAP #if VERSION_JPN
game_stat->language = 0; game_stat->language = 0;
#elif VERSION_ENG #elif VERSION_ENG
game_stat->language = 1; game_stat->language = 1;
@ -163,7 +162,7 @@ s32 GWMessDelayGet(void)
GWSystem.mess_speed = 1; GWSystem.mess_speed = 1;
GWSystem.mess_delay = 32; GWSystem.mess_delay = 32;
} }
#else #else
if (GWSystem.mess_delay > 64) { if (GWSystem.mess_delay > 64) {
GWSystem.mess_speed = 1; GWSystem.mess_speed = 1;
GWSystem.mess_delay = 48; GWSystem.mess_delay = 48;

View file

@ -808,7 +808,7 @@ static s32 SeqMakeWord(SeqWork *work, char *str, s16 flags)
s16 x; s16 x;
s16 i; s16 i;
s16 grp_idx; s16 grp_idx;
#if VERSION_JAP #if VERSION_JPN
char *str_ptr; char *str_ptr;
AnimData **char_anim; AnimData **char_anim;
s16 *char_pos; s16 *char_pos;
@ -832,7 +832,7 @@ static s32 SeqMakeWord(SeqWork *work, char *str, s16 flags)
x = 0; x = 0;
len = 0; len = 0;
while (*str_ptr != '\0') { while (*str_ptr != '\0') {
#if VERSION_JAP #if VERSION_JPN
if (*str_ptr == ' ') { if (*str_ptr == ' ') {
x += 56; x += 56;
} }
@ -876,26 +876,26 @@ static AnimData *SeqLoadFontChar(char *str, s16 flags)
if (c == 222 || c == 223) { if (c == 222 || c == 223) {
return NULL; return NULL;
} }
#if !VERSION_JAP #if !VERSION_JPN
if (c == 32) { if (c == 32) {
return HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 10))); return HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 10)));
} }
#endif #endif
for (id = 0, list = seqFontAlphaTbl; *list != 0; id++, list++) { for (id = 0, list = seqFontAlphaTbl; *list != 0; id++, list++) {
if (*list == c) { if (*list == c) {
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 20 : 21)); data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 20 : 21));
return HuSprAnimRead(SeqReadFile(data_num)); return HuSprAnimRead(SeqReadFile(data_num));
} }
} }
for (id = 0, list = seqFontNumTbl; *list != 0; id++, list++) { for (id = 0, list = seqFontNumTbl; *list != 0; id++, list++) {
if (*list == c) { if (*list == c) {
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 10 : 11)); data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 10 : 11));
return HuSprAnimRead(SeqReadFile(data_num)); return HuSprAnimRead(SeqReadFile(data_num));
} }
} }
for (id = 0, list = seqPunctTbl; *list != 0; id++, list++) { for (id = 0, list = seqPunctTbl; *list != 0; id++, list++) {
if (*list == c) { if (*list == c) {
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 153 : 154)); data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 153 : 154));
return HuSprAnimRead(SeqReadFile(data_num)); return HuSprAnimRead(SeqReadFile(data_num));
} }
} }
@ -916,10 +916,10 @@ static AnimData *SeqLoadFontChar(char *str, s16 flags)
while (*list != 0) { while (*list != 0) {
if (*list == c) { if (*list == c) {
if (flags & 0x1) { if (flags & 0x1) {
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 155 : 156)); data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 155 : 156));
} }
else { else {
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 72 : 73)); data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 72 : 73));
} }
return HuSprAnimRead(SeqReadFile(data_num)); return HuSprAnimRead(SeqReadFile(data_num));
} }
@ -2685,7 +2685,7 @@ static char *winCharNameTbl[] = {
"ワリオ", "ワリオ",
"WARIO", "WARIO",
"ドンキー", "ドンキー",
VERSION_JAP ? "DK" : " DK ", VERSION_JPN ? "DK" : " DK ",
"デイジー", "デイジー",
"DAISY", "DAISY",
"ワルイージ", "ワルイージ",
@ -2695,21 +2695,21 @@ static char *winCharNameTbl[] = {
"キノピオ", "キノピオ",
"TOAD", "TOAD",
"ヘイホー", "ヘイホー",
VERSION_JAP ? "HEHOH" : "SHY GUY", VERSION_JPN ? "HEHOH" : "SHY GUY",
"テレサ", "テレサ",
VERSION_JAP ? "TERETHA" : "BOO", VERSION_JPN ? "TERETHA" : "BOO",
"ノコノコ", "ノコノコ",
VERSION_JAP ? "NOKONOKO" : "KOOPA", VERSION_JPN ? "NOKONOKO" : "KOOPA",
"ミニクッパ", "ミニクッパ",
VERSION_NTSC ? (VERSION_ENG ? "KOOPA KID" : "BABYBOWSER") : "MINI BOWSER", VERSION_NTSC ? (VERSION_ENG ? "KOOPA KID" : "BABYBOWSER") : "MINI BOWSER",
"クリボー", "クリボー",
VERSION_JAP ? "KURIBO" : "GOOMBA", VERSION_JPN ? "KURIBO" : "GOOMBA",
}; };
static char *winWordTbl[] = { "カチ", "WON!", "ハイボク", "LOSE", "ユウショウ!", "CHAMPION!" }; static char *winWordTbl[] = { "カチ", "WON!", "ハイボク", "LOSE", "ユウショウ!", "CHAMPION!" };
static s16 winPosOfs[][5][2] = { static s16 winPosOfs[][5][2] = {
{ { VERSION_JAP ? 144 : 114, 0 }, { -144, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, { { VERSION_JPN ? 144 : 114, 0 }, { -144, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } },
{ { 0, 35 }, { -144, -35 }, { 144, -35 }, { 0, 0 }, { 0, 0 } }, { { 0, 35 }, { -144, -35 }, { 144, -35 }, { 0, 0 }, { 0, 0 } },
{ { 0, 105 }, { 0, -105 }, { -144, 0 }, { 144, 0 }, { 0, 0 } }, { { 0, 105 }, { 0, -105 }, { -144, 0 }, { 144, 0 }, { 0, 0 } },
{ { 0, 105 }, { -144, -105 }, { 144, -105 }, { -144, 0 }, { 144, 0 } }, { { 0, 105 }, { -144, -105 }, { 144, -105 }, { -144, 0 }, { 144, 0 } },
@ -2745,15 +2745,15 @@ s32 MGSeqInitWin(SeqWork *work, va_list params)
} }
} }
word_grp = SeqMakeWord(work, winWordTbl[word_idx], GET_WIN_KANAF()); word_grp = SeqMakeWord(work, winWordTbl[word_idx], GET_WIN_KANAF());
winnerNameW[0] = work->word_len * (VERSION_JAP ? 56 : 50); winnerNameW[0] = work->word_len * (VERSION_JPN ? 56 : 50);
#if !VERSION_JAP #if !VERSION_JPN
for (i = 0; i < work->word_len; i++) { for (i = 0; i < work->word_len; i++) {
HuSprPosSet(work->spr_grp[word_grp], i, 25.0f + ((i * 50) - (0.5f * (work->word_len * 50))), 0.0f); HuSprPosSet(work->spr_grp[word_grp], i, 25.0f + ((i * 50) - (0.5f * (work->word_len * 50))), 0.0f);
HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR);
} }
#endif #endif
num_winners = 0; num_winners = 0;
#if !VERSION_JAP #if !VERSION_JPN
work->win_scale = 1.0f; work->win_scale = 1.0f;
#endif #endif
for (j = 0; j < 4; j++) { for (j = 0; j < 4; j++) {
@ -2855,7 +2855,7 @@ s32 MGSeqInitWin(SeqWork *work, va_list params)
work->type = 0; work->type = 0;
for (j = 0; j < num_winners + 1; j++) { for (j = 0; j < num_winners + 1; j++) {
if (num_winners == 1) { if (num_winners == 1) {
#if VERSION_JAP #if VERSION_JPN
word_x = 32 + (winnerNameW[1] + winnerNameW[0]); word_x = 32 + (winnerNameW[1] + winnerNameW[0]);
#else #else
word_x = 32.0f + ((float)winnerNameW[0] + (winnerNameW[1] * work->win_scale)); word_x = 32.0f + ((float)winnerNameW[0] + (winnerNameW[1] * work->win_scale));

View file

@ -35,9 +35,9 @@ s32 saveExecF;
u8 curBoxNo; u8 curBoxNo;
s16 curSlotNo; s16 curSlotNo;
#if VERSION_JAP #if VERSION_JPN
static u8 commentTbl[2][32] = { "マリオパーティ4", "??月??日 データ?です。" }; static u8 commentTbl[2][32] = { "マリオパーティ4", "??月??日 データ?です。" };
static char *lbl_80131D70 = { "" }; static u8 sjisNumTbl[20] = "";
#else #else
static u8 commentTbl[2][32] = { "Mario Party 4", "File 0 00/00/0000" }; static u8 commentTbl[2][32] = { "Mario Party 4", "File 0 00/00/0000" };
#endif #endif
@ -48,6 +48,11 @@ s32 SaveEnableF = 1;
static char *SlotNameTbl[] = { "A", "B" }; static char *SlotNameTbl[] = { "A", "B" };
#if VERSION_JPN
static char *slotIconMesTbl[] = { "\x0E\x16", "\x0E\x17" };
static u8 sjisSpace[] = " ";
#endif
static s32 saveMessWin = -1; static s32 saveMessWin = -1;
s32 SLFileOpen(char *fileName) s32 SLFileOpen(char *fileName)
@ -338,51 +343,32 @@ void SLSaveDataInfoSet(OSTime *time)
year -= digit * 10; year -= digit * 10;
saveBuf.data.comment[49] = year + '0'; saveBuf.data.comment[49] = year + '0';
#else #else
saveBuf.data.comment[37] = curBoxNo + '1'; saveBuf.data.comment[52] = sjisNumTbl[(curBoxNo + 1) * 2];
saveBuf.data.comment[53] = sjisNumTbl[(curBoxNo + 1) * 2 + 1];
digit = (sp8.mon + 1) / 10; digit = (sp8.mon + 1) / 10;
saveBuf.data.comment[40] = digit + '0'; if (digit == 0) {
saveBuf.data.comment[32] = sjisSpace[0];
saveBuf.data.comment[33] = sjisSpace[1];
}
else {
saveBuf.data.comment[32] = sjisNumTbl[digit * 2];
saveBuf.data.comment[33] = sjisNumTbl[digit * 2 + 1];
}
digit = (sp8.mon + 1) % 10; digit = (sp8.mon + 1) % 10;
saveBuf.data.comment[41] = digit + '0'; saveBuf.data.comment[34] = sjisNumTbl[digit * 2];
saveBuf.data.comment[35] = sjisNumTbl[digit * 2 + 1];
digit = sp8.mday / 10; digit = sp8.mday / 10;
saveBuf.data.comment[43] = digit + '0'; if (digit == 0) {
saveBuf.data.comment[38] = sjisSpace[0];
saveBuf.data.comment[39] = sjisSpace[1];
}
else {
saveBuf.data.comment[38] = sjisNumTbl[digit * 2];
saveBuf.data.comment[39] = sjisNumTbl[digit * 2 + 1];
}
digit = sp8.mday % 10; digit = sp8.mday % 10;
saveBuf.data.comment[44] = digit + '0'; saveBuf.data.comment[40] = sjisNumTbl[digit * 2];
year = sp8.year; saveBuf.data.comment[41] = sjisNumTbl[digit * 2 + 1];
digit = year / 1000;
saveBuf.data.comment[46] = digit + '0';
year -= digit * 1000;
digit = year / 100;
saveBuf.data.comment[47] = digit + '0';
year -= digit * 100;
digit = year / 10;
saveBuf.data.comment[48] = digit + '0';
year -= digit * 10;
saveBuf.data.comment[49] = year + '0';
saveBuf.data.comment[52] = lbl_80131D70[curBoxNo + 1];
saveBuf.data.comment[53] = lbl_80131D70[curBoxNo + 1];
digit = (sp8.mon + 1) / 10;
// if (digit == 0) {
// saveBuf.data.comment[32] = lbl_801D32F8.unk_00;
// saveBuf.data.comment[33] = lbl_801D32F8.unk_01;
// } else {
// saveBuf.data.comment[32] = *(&@lbl_80131D70 + (var_r31 * 2));
// saveBuf.data.comment[33] = ((var_r31 * 2) + &@lbl_80131D70)->unk_01;
// }
digit = (sp8.mon + 1) % 10;
// saveBuf.data.comment[34] = *(&@lbl_80131D70 + (var_r31 * 2));
// saveBuf.data.comment[35] = ((var_r31 * 2) + &@lbl_80131D70)->unk_01;
digit = sp8.mday / 10;
// if (digit == 0) {
// saveBuf.data.comment[38] = lbl_801D32F8.unk_00;
// saveBuf.data.comment[39] = lbl_801D32F8.unk_01;
// } else {
// saveBuf.data.comment[38] = *(&@lbl_80131D70 + (var_r31 * 2));
// saveBuf.data.comment[39] = ((var_r31 * 2) + &@lbl_80131D70)->unk_01;
// }
digit = sp8.mday % 10;
// saveBuf.data.comment[40] = *(&@lbl_80131D70 + (var_r31 * 2));
// saveBuf.data.comment[41] = ((var_r31 * 2) + &@lbl_80131D70)->unk_01;
#endif #endif
} }
@ -512,18 +498,24 @@ s32 SLSave(void)
#define SAVEWIN_POS 120 #define SAVEWIN_POS 120
#endif #endif
#if VERSION_JPN
#define SAVEWIN_MESS slotIconMesTbl
#else
#define SAVEWIN_MESS SlotNameTbl
#endif
static s16 SLCreateSaveWin(void) static s16 SLCreateSaveWin(void)
{ {
float size[2]; float size[2];
s16 window; s16 window;
HuWinInit(1); HuWinInit(1);
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SAVEWIN_MESS[curSlotNo]), 0);
HuWinMesMaxSizeGet(1, size, MAKE_MESSID(16, 68)); HuWinMesMaxSizeGet(1, size, MAKE_MESSID(16, 68));
window = HuWinExCreateStyled(-10000.0f, SAVEWIN_POS, size[0], size[1], -1, 2); window = HuWinExCreateStyled(-10000.0f, SAVEWIN_POS, size[0], size[1], -1, 2);
saveMessWin = window; saveMessWin = window;
HuWinExAnimIn(window); HuWinExAnimIn(window);
HuWinInsertMesSet(window, MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); HuWinInsertMesSet(window, MAKE_MESSID_PTR(SAVEWIN_MESS[curSlotNo]), 0);
HuWinMesSet(window, MAKE_MESSID(16, 68)); HuWinMesSet(window, MAKE_MESSID(16, 68));
HuWinMesWait(window); HuWinMesWait(window);
return window; return window;
@ -758,11 +750,11 @@ s32 SLFormat(s16 slotNo)
OSTime time; OSTime time;
HuWinInit(1); HuWinInit(1);
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SAVEWIN_MESS[curSlotNo]), 0);
HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(16, 56)); HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(16, 56));
window1 = HuWinExCreateStyled(-10000.0f, SAVEWIN_POS, winSize[0], winSize[1], -1, 2); window1 = HuWinExCreateStyled(-10000.0f, SAVEWIN_POS, winSize[0], winSize[1], -1, 2);
HuWinExAnimIn(window1); HuWinExAnimIn(window1);
HuWinInsertMesSet(window1, MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); HuWinInsertMesSet(window1, MAKE_MESSID_PTR(SAVEWIN_MESS[curSlotNo]), 0);
HuWinMesSet(window1, MAKE_MESSID(16, 56)); HuWinMesSet(window1, MAKE_MESSID(16, 56));
HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(16, 11)); HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(16, 11));
window2 = HuWinExCreateStyled(-10000.0f, 200.0f, winSize[0], winSize[1], -1, 2); window2 = HuWinExCreateStyled(-10000.0f, 200.0f, winSize[0], winSize[1], -1, 2);

View file

@ -91,7 +91,7 @@ u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0
17, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 17, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 };
#elif VERSION_JAP #elif VERSION_JPN
u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 13, 8, 11, 12, 13, 12, 11, 11, 12, 11, 18, 20, 12, 12, 11, 14, 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, 12, 0, 0, 0, 0, 0, 13, 8, 11, 12, 13, 12, 11, 11, 12, 11, 18, 20, 12, 12, 11, 14, 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, 12,
13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, 11, 12, 9, 11, 9, 11, 11, 15, 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, 11, 12, 9, 11, 9, 11, 11, 15,
@ -257,7 +257,7 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame)
sprite_ptr->work[0] = window_id; sprite_ptr->work[0] = window_id;
HuSprGrpMemberSet(group, 1, sprite); HuSprGrpMemberSet(group, 1, sprite);
window->num_chars = 0; window->num_chars = 0;
#if VERSION_JAP #if VERSION_JPN
window->max_chars = (w / 20) * (h / 24) * 3; window->max_chars = (w / 20) * (h / 24) * 3;
#else #else
window->max_chars = (w / 8) * (h / 24) * 4; window->max_chars = (w / 8) * (h / 24) * 4;
@ -290,7 +290,7 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame)
window->scissor_h = 0x1E0; window->scissor_h = 0x1E0;
window->tab_w = 24; window->tab_w = 24;
window->push_key = 0x300; window->push_key = 0x300;
#if !VERSION_JAP #if !VERSION_JPN
window->key_auto = 0; window->key_auto = 0;
#endif #endif
if (frame == 0 || frame == 2) { if (frame == 0 || frame == 2) {
@ -425,12 +425,12 @@ static void MesDispFunc(HuSprite *sprite)
MTXConcat(*sprite->group_mtx, modelview, modelview); MTXConcat(*sprite->group_mtx, modelview, modelview);
GXLoadPosMtxImm(modelview, 0); GXLoadPosMtxImm(modelview, 0);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);
HuSprTexLoad(fontAnim, 0, 0, GX_CLAMP, GX_CLAMP, VERSION_JAP ? GX_NEAR : GX_LINEAR); HuSprTexLoad(fontAnim, 0, 0, GX_CLAMP, GX_CLAMP, VERSION_JPN ? GX_NEAR : GX_LINEAR);
GXBegin(GX_QUADS, GX_VTXFMT0, window->num_chars * 4); GXBegin(GX_QUADS, GX_VTXFMT0, window->num_chars * 4);
char_uv_h = (LanguageNo == 0) ? (24.0f / 408.0f) : (24.0f / 312.0f); char_uv_h = (LanguageNo == 0) ? (24.0f / 408.0f) : (24.0f / 312.0f);
for (i = 0; i < window->num_chars; i++) { for (i = 0; i < window->num_chars; i++) {
char_w = fontWidthP[window->char_data[i].character + 48]; char_w = fontWidthP[window->char_data[i].character + 48];
#if VERSION_JAP #if VERSION_JPN
uv_minx = 0.003125 + (20.0f / 320.0f) * (window->char_data[i].character % 16); uv_minx = 0.003125 + (20.0f / 320.0f) * (window->char_data[i].character % 16);
#else #else
uv_minx = (20.0f / 320.0f) * (window->char_data[i].character % 16); uv_minx = (20.0f / 320.0f) * (window->char_data[i].character % 16);
@ -605,9 +605,9 @@ static void HuWinDrawMes(s16 window)
s16 color; s16 color;
s16 mess_w; s16 mess_w;
window_ptr->mess_time += VERSION_JAP ? 1 : 3; window_ptr->mess_time += VERSION_JPN ? 1 : 3;
while (window_ptr->mess_time >= window_ptr->speed || (window_ptr->attr & 0x2000)) { while (window_ptr->mess_time >= window_ptr->speed || (window_ptr->attr & 0x2000)) {
#if VERSION_JAP #if VERSION_JPN
window_ptr->mess_time = 0; window_ptr->mess_time = 0;
#else #else
window_ptr->mess_time -= window_ptr->speed; window_ptr->mess_time -= window_ptr->speed;
@ -634,7 +634,7 @@ static void HuWinDrawMes(s16 window)
} }
window_ptr->mess_stackptr--; window_ptr->mess_stackptr--;
window_ptr->mess = window_ptr->mess_stack[window_ptr->mess_stackptr]; window_ptr->mess = window_ptr->mess_stack[window_ptr->mess_stackptr];
#if !VERSION_JAP #if !VERSION_JPN
window_ptr->mess_time = 0; window_ptr->mess_time = 0;
#endif #endif
break; break;
@ -1108,14 +1108,14 @@ static void HuWinChoice(WindowData *window)
window->choice = choice_next; window->choice = choice_next;
HuAudFXPlay(0); HuAudFXPlay(0);
} }
else if (key & (VERSION_JAP ? PAD_BUTTON_A : (window->key_auto | PAD_BUTTON_A))) { else if (key & (VERSION_JPN ? PAD_BUTTON_A : (window->key_auto | PAD_BUTTON_A))) {
HuAudFXPlay(2); HuAudFXPlay(2);
window->key_down = key; window->key_down = key;
window->stat = 0; window->stat = 0;
} }
else if ((key & PAD_BUTTON_B) && !(window->attr & 0x10)) { else if ((key & PAD_BUTTON_B) && !(window->attr & 0x10)) {
HuAudFXPlay(3); HuAudFXPlay(3);
#if !VERSION_JAP #if !VERSION_JPN
window->key_down = key; window->key_down = key;
#else #else
(void)key; // hack to match Japanese version (void)key; // hack to match Japanese version
@ -1324,7 +1324,7 @@ void HuWinMesSet(s16 window, u32 mess)
window_ptr->mess = MessData_MesPtrGet(messDataPtr, mess); window_ptr->mess = MessData_MesPtrGet(messDataPtr, mess);
if (window_ptr->mess == 0) { if (window_ptr->mess == 0) {
OSReport("Error: No Message data\n"); OSReport("Error: No Message data\n");
#if !VERSION_JAP #if !VERSION_JPN
HuWinMesSet(window, 0); HuWinMesSet(window, 0);
return; return;
#endif #endif
@ -1335,7 +1335,7 @@ void HuWinMesSet(s16 window, u32 mess)
} }
if (!(window_ptr->attr & 0x80)) { if (!(window_ptr->attr & 0x80)) {
window_ptr->mess_color = 7; window_ptr->mess_color = 7;
#if !VERSION_JAP #if !VERSION_JPN
window_ptr->mess_time = 0; window_ptr->mess_time = 0;
#endif #endif
} }