summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcadmic <cadmic24@gmail.com>2024-07-17 15:36:17 -0700
committerGitHub <noreply@github.com>2024-07-17 18:36:17 -0400
commit4fbb48177fcf38d339cab6bc725421e13be7d6bb (patch)
treed52c2d000f7bad2302b1e47c203d9f3796c505c4 /src
parentf0796afb8621e60ea56b44a443b73af6a4d763c1 (diff)
Create FILENAME_ macros for NTSC filename encoding (#1986)
* Create FILENAME_ macros for NTSC filename encoding * Add defines/comments for all filename characters * FILENAME_EXCLAMATION_POINT -> FILENAME_EXCLAMATION_MARK to match kanji file * hirigana -> hiragana
Diffstat (limited to 'src')
-rw-r--r--src/code/z_message.c24
-rw-r--r--src/code/z_sram.c86
-rw-r--r--src/overlays/actors/ovl_En_Mag/z_en_mag.c8
-rw-r--r--src/overlays/gamestates/ovl_file_choose/z_file_choose.c5
-rw-r--r--src/overlays/gamestates/ovl_file_choose/z_file_nameset.c15
5 files changed, 82 insertions, 56 deletions
diff --git a/src/code/z_message.c b/src/code/z_message.c
index e0a98beb5..6e3477871 100644
--- a/src/code/z_message.c
+++ b/src/code/z_message.c
@@ -1303,7 +1303,7 @@ void Message_Decode(PlayState* play) {
// Substitute the player name control character for the file's player name.
for (playerNameLen = ARRAY_COUNT(gSaveContext.save.info.playerData.playerName); playerNameLen > 0;
playerNameLen--) {
- if (gSaveContext.save.info.playerData.playerName[playerNameLen - 1] != 0x3E) {
+ if (gSaveContext.save.info.playerData.playerName[playerNameLen - 1] != FILENAME_SPACE) {
break;
}
}
@@ -1311,21 +1311,21 @@ void Message_Decode(PlayState* play) {
PRINTF("\n名前 = ");
for (i = 0; i < playerNameLen; i++) {
curChar2 = gSaveContext.save.info.playerData.playerName[i];
- if (curChar2 == 0x3E) {
+ if (curChar2 == FILENAME_SPACE) {
curChar2 = ' ';
- } else if (curChar2 == 0x40) {
+ } else if (curChar2 == FILENAME_PERIOD) {
curChar2 = '.';
- } else if (curChar2 == 0x3F) {
+ } else if (curChar2 == FILENAME_DASH) {
curChar2 = '-';
- } else if (curChar2 < 0xA) {
- curChar2 += 0;
+ } else if (curChar2 <= FILENAME_DIGIT('9')) {
+ curChar2 -= FILENAME_DIGIT('0');
curChar2 += '0';
- } else if (curChar2 < 0x24) {
- curChar2 += 0;
- curChar2 += '7';
- } else if (curChar2 < 0x3E) {
- curChar2 += 0;
- curChar2 += '=';
+ } else if (curChar2 <= FILENAME_UPPERCASE('Z')) {
+ curChar2 -= FILENAME_UPPERCASE('A');
+ curChar2 += 'A';
+ } else if (curChar2 <= FILENAME_LOWERCASE('z')) {
+ curChar2 -= FILENAME_LOWERCASE('a');
+ curChar2 += 'a';
}
if (curChar2 != ' ') {
Font_LoadChar(font, curChar2 - ' ', charTexIdx);
diff --git a/src/code/z_sram.c b/src/code/z_sram.c
index b5da4691c..fb2a4d119 100644
--- a/src/code/z_sram.c
+++ b/src/code/z_sram.c
@@ -27,23 +27,32 @@ u16 gSramSlotOffsets[] = {
static char sZeldaMagic[] = { '\0', '\0', '\0', '\x98', '\x09', '\x10', '\x21', 'Z', 'E', 'L', 'D', 'A' };
static SavePlayerData sNewSavePlayerData = {
- { '\0', '\0', '\0', '\0', '\0', '\0' }, // newf
- 0, // deaths
- { 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E }, // playerName
- 0, // n64ddFlag
- 0x30, // healthCapacity
- 0x30, // defense
- 0, // magicLevel
- MAGIC_NORMAL_METER, // magic
- 0, // rupees
- 0, // swordHealth
- 0, // naviTimer
- false, // isMagicAcquired
- 0, // unk_1F
- false, // isDoubleMagicAcquired
- false, // isDoubleDefenseAcquired
- 0, // bgsFlag
- 0, // ocarinaGameRoundNum
+ { '\0', '\0', '\0', '\0', '\0', '\0' }, // newf
+ 0, // deaths
+ {
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ }, // playerName
+ 0, // n64ddFlag
+ 0x30, // healthCapacity
+ 0x30, // defense
+ 0, // magicLevel
+ MAGIC_NORMAL_METER, // magic
+ 0, // rupees
+ 0, // swordHealth
+ 0, // naviTimer
+ false, // isMagicAcquired
+ 0, // unk_1F
+ false, // isDoubleMagicAcquired
+ false, // isDoubleDefenseAcquired
+ 0, // bgsFlag
+ 0, // ocarinaGameRoundNum
{
{ ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE }, // buttonItems
{ SLOT_NONE, SLOT_NONE, SLOT_NONE }, // cButtonSlots
@@ -155,23 +164,32 @@ void Sram_InitNewSave(void) {
}
static SavePlayerData sDebugSavePlayerData = {
- { 'Z', 'E', 'L', 'D', 'A', 'Z' }, // newf
- 0, // deaths
- { 0x15, 0x12, 0x17, 0x14, 0x3E, 0x3E, 0x3E, 0x3E }, // playerName ( "LINK" )
- 0, // n64ddFlag
- 0xE0, // healthCapacity
- 0xE0, // health
- 0, // magicLevel
- MAGIC_NORMAL_METER, // magic
- 150, // rupees
- 8, // swordHealth
- 0, // naviTimer
- true, // isMagicAcquired
- 0, // unk_1F
- false, // isDoubleMagicAcquired
- false, // isDoubleDefenseAcquired
- 0, // bgsFlag
- 0, // ocarinaGameRoundNum
+ { 'Z', 'E', 'L', 'D', 'A', 'Z' }, // newf
+ 0, // deaths
+ {
+ FILENAME_UPPERCASE('L'),
+ FILENAME_UPPERCASE('I'),
+ FILENAME_UPPERCASE('N'),
+ FILENAME_UPPERCASE('K'),
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ FILENAME_SPACE,
+ }, // playerName
+ 0, // n64ddFlag
+ 0xE0, // healthCapacity
+ 0xE0, // health
+ 0, // magicLevel
+ MAGIC_NORMAL_METER, // magic
+ 150, // rupees
+ 8, // swordHealth
+ 0, // naviTimer
+ true, // isMagicAcquired
+ 0, // unk_1F
+ false, // isDoubleMagicAcquired
+ false, // isDoubleDefenseAcquired
+ 0, // bgsFlag
+ 0, // ocarinaGameRoundNum
{
{ ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE }, // buttonItems
{ SLOT_NONE, SLOT_NONE, SLOT_NONE }, // cButtonSlots
diff --git a/src/overlays/actors/ovl_En_Mag/z_en_mag.c b/src/overlays/actors/ovl_En_Mag/z_en_mag.c
index e32b01b4e..840b056a8 100644
--- a/src/overlays/actors/ovl_En_Mag/z_en_mag.c
+++ b/src/overlays/actors/ovl_En_Mag/z_en_mag.c
@@ -409,10 +409,14 @@ void EnMag_DrawInner(Actor* thisx, PlayState* play, Gfx** gfxP) {
static s16 textFadeDirection = 0;
static s16 textFadeTimer = 0;
static u8 noControllerFontIndices[] = {
- 0x17, 0x18, 0x0C, 0x18, 0x17, 0x1D, 0x1B, 0x18, 0x15, 0x15, 0x0E, 0x1B,
+ FILENAME_UPPERCASE('N'), FILENAME_UPPERCASE('O'), FILENAME_UPPERCASE('C'), FILENAME_UPPERCASE('O'),
+ FILENAME_UPPERCASE('N'), FILENAME_UPPERCASE('T'), FILENAME_UPPERCASE('R'), FILENAME_UPPERCASE('O'),
+ FILENAME_UPPERCASE('L'), FILENAME_UPPERCASE('L'), FILENAME_UPPERCASE('E'), FILENAME_UPPERCASE('R'),
};
static u8 pressStartFontIndices[] = {
- 0x19, 0x1B, 0x0E, 0x1C, 0x1C, 0x1C, 0x1D, 0x0A, 0x1B, 0x1D,
+ FILENAME_UPPERCASE('P'), FILENAME_UPPERCASE('R'), FILENAME_UPPERCASE('E'), FILENAME_UPPERCASE('S'),
+ FILENAME_UPPERCASE('S'), FILENAME_UPPERCASE('S'), FILENAME_UPPERCASE('T'), FILENAME_UPPERCASE('A'),
+ FILENAME_UPPERCASE('R'), FILENAME_UPPERCASE('T'),
};
static void* effectMaskTextures[] = {
gTitleEffectMask00Tex, gTitleEffectMask01Tex, gTitleEffectMask02Tex,
diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c
index 9569fc956..df6118dce 100644
--- a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c
+++ b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c
@@ -169,7 +169,10 @@ void FileSelect_FinishFadeIn(GameState* thisx) {
* Update function for `CM_MAIN_MENU`
*/
void FileSelect_UpdateMainMenu(GameState* thisx) {
- static u8 emptyName[] = { 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E };
+ static u8 emptyName[] = {
+ FILENAME_SPACE, FILENAME_SPACE, FILENAME_SPACE, FILENAME_SPACE,
+ FILENAME_SPACE, FILENAME_SPACE, FILENAME_SPACE, FILENAME_SPACE,
+ };
FileSelectState* this = (FileSelectState*)thisx;
SramContext* sramCtx = &this->sramCtx;
Input* input = &this->state.input[0];
diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c
index 3067ea368..b6f452546 100644
--- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c
+++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c
@@ -373,12 +373,12 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
this->kbdY = 5;
this->kbdX = 4;
} else if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
- if ((this->newFileNameCharCount == 7) && (this->fileNames[this->buttonIndex][7] != 0x3E)) {
+ if ((this->newFileNameCharCount == 7) && (this->fileNames[this->buttonIndex][7] != FILENAME_SPACE)) {
for (i = this->newFileNameCharCount; i < 7; i++) {
this->fileNames[this->buttonIndex][i] = this->fileNames[this->buttonIndex][i + 1];
}
- this->fileNames[this->buttonIndex][i] = 0x3E;
+ this->fileNames[this->buttonIndex][i] = FILENAME_SPACE;
Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
} else {
@@ -392,7 +392,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
this->fileNames[this->buttonIndex][i] = this->fileNames[this->buttonIndex][i + 1];
}
- this->fileNames[this->buttonIndex][i] = 0x3E;
+ this->fileNames[this->buttonIndex][i] = FILENAME_SPACE;
Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
}
@@ -419,12 +419,13 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
}
} else if (CHECK_BTN_ALL(input->press.button, BTN_A) && (this->charPage != this->kbdButton)) {
if (this->kbdButton == FS_KBD_BTN_BACKSPACE) {
- if ((this->newFileNameCharCount == 7) && (this->fileNames[this->buttonIndex][7] != 0x3E)) {
+ if ((this->newFileNameCharCount == 7) &&
+ (this->fileNames[this->buttonIndex][7] != FILENAME_SPACE)) {
for (i = this->newFileNameCharCount; i < 7; i++) {
this->fileNames[this->buttonIndex][i] = this->fileNames[this->buttonIndex][i + 1];
}
- this->fileNames[this->buttonIndex][i] = 0x3E;
+ this->fileNames[this->buttonIndex][i] = FILENAME_SPACE;
Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
@@ -439,7 +440,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
this->fileNames[this->buttonIndex][i] = this->fileNames[this->buttonIndex][i + 1];
}
- this->fileNames[this->buttonIndex][i] = 0x3E;
+ this->fileNames[this->buttonIndex][i] = FILENAME_SPACE;
Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
@@ -448,7 +449,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
validName = false;
for (i = 0; i < 8; i++) {
- if (this->fileNames[this->buttonIndex][i] != 0x3E) {
+ if (this->fileNames[this->buttonIndex][i] != FILENAME_SPACE) {
validName = true;
break;
}