1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-12 01:40:47 +00:00

Use enums for settings in SRAM header (#2429)

* Use enums for settings in SRAM header

* Fix bss

* Uglify z_en_mag to match ique
This commit is contained in:
cadmic 2025-02-15 16:36:19 -08:00 committed by GitHub
parent a64fd8dea8
commit aba3720d62
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 68 additions and 60 deletions

View file

@ -68,6 +68,13 @@ typedef void (*AudioCustomUpdateFunction)(void);
#define AUDIO_RELOCATED_ADDRESS_START K0BASE #define AUDIO_RELOCATED_ADDRESS_START K0BASE
typedef enum SoundSetting {
/* 0 */ SOUND_SETTING_STEREO,
/* 1 */ SOUND_SETTING_MONO,
/* 2 */ SOUND_SETTING_HEADSET,
/* 3 */ SOUND_SETTING_SURROUND
} SoundSetting;
typedef enum SoundMode { typedef enum SoundMode {
/* 0 */ SOUNDMODE_STEREO, /* 0 */ SOUNDMODE_STEREO,
/* 1 */ SOUNDMODE_HEADSET, /* 1 */ SOUNDMODE_HEADSET,
@ -1197,7 +1204,7 @@ void func_800F64E0(u8 arg0);
void Audio_ToggleMalonSinging(u8 malonSingingDisabled); void Audio_ToggleMalonSinging(u8 malonSingingDisabled);
void Audio_SetEnvReverb(s8 reverb); void Audio_SetEnvReverb(s8 reverb);
void Audio_SetCodeReverb(s8 reverb); void Audio_SetCodeReverb(s8 reverb);
void func_800F6700(s8 audioSetting); void Audio_SetSoundMode(s8 soundSetting);
void Audio_SetBaseFilter(u8); void Audio_SetBaseFilter(u8);
void Audio_SetExtraFilter(u8); void Audio_SetExtraFilter(u8);
void Audio_SetCutsceneFlag(s8 flag); void Audio_SetCutsceneFlag(s8 flag);

View file

@ -6,6 +6,11 @@
#include "z64inventory.h" #include "z64inventory.h"
#include "z64math.h" #include "z64math.h"
typedef enum ZTargetSetting {
/* 0 */ Z_TARGET_SETTING_SWITCH,
/* 1 */ Z_TARGET_SETTING_HOLD
} ZTargetSetting;
typedef enum Language { typedef enum Language {
#if OOT_NTSC #if OOT_NTSC
/* 0 */ LANGUAGE_JPN, /* 0 */ LANGUAGE_JPN,
@ -315,10 +320,10 @@ typedef struct SaveContext {
/* 0x1404 */ u16 minigameState; /* 0x1404 */ u16 minigameState;
/* 0x1406 */ u16 minigameScore; // "yabusame_total" /* 0x1406 */ u16 minigameScore; // "yabusame_total"
/* 0x1408 */ char unk_1408[0x0001]; /* 0x1408 */ char unk_1408[0x0001];
/* 0x1409 */ u8 language; // NTSC 0: Japanese; 1: English | PAL 0: English; 1: German; 2: French /* 0x1409 */ u8 language; // NTSC 0: Japanese; 1: English | PAL 0: English; 1: German; 2: French (see enum `Language`)
/* 0x140A */ u8 audioSetting; /* 0x140A */ u8 soundSetting; // 0: Stereo; 1: Mono; 2: Headset; 3: Surround (see enum `SoundSetting`)
/* 0x140B */ char unk_140B[0x0001]; /* 0x140B */ char unk_140B[0x0001];
/* 0x140C */ u8 zTargetSetting; // 0: Switch; 1: Hold /* 0x140C */ u8 zTargetSetting; // 0: Switch; 1: Hold (see enum `ZTargetSetting`)
/* 0x140E */ u16 forcedSeqId; // immediately start playing the sequence if set /* 0x140E */ u16 forcedSeqId; // immediately start playing the sequence if set
/* 0x1410 */ u8 cutsceneTransitionControl; // context dependent usage: can either trigger a delayed fade or control fill alpha /* 0x1410 */ u8 cutsceneTransitionControl; // context dependent usage: can either trigger a delayed fade or control fill alpha
/* 0x1411 */ char unk_1411[0x0001]; /* 0x1411 */ char unk_1411[0x0001];

View file

@ -12,7 +12,7 @@ typedef struct SramContext {
typedef enum SramHeaderField { typedef enum SramHeaderField {
/* 0x00 */ SRAM_HEADER_SOUND, /* 0x00 */ SRAM_HEADER_SOUND,
/* 0x01 */ SRAM_HEADER_ZTARGET, /* 0x01 */ SRAM_HEADER_Z_TARGET,
/* 0x02 */ SRAM_HEADER_LANGUAGE, /* 0x02 */ SRAM_HEADER_LANGUAGE,
/* 0x03 */ SRAM_HEADER_MAGIC // must be the value in `sSramDefaultHeader` for save to be considered valid /* 0x03 */ SRAM_HEADER_MAGIC // must be the value in `sSramDefaultHeader` for save to be considered valid
} SramHeaderField; } SramHeaderField;

View file

@ -847,7 +847,7 @@ void AudioDebug_ProcessInput_SndCont(void) {
&gSfxDefaultReverb); &gSfxDefaultReverb);
break; break;
case 4: case 4:
func_800F6700(sAudioSndContWork[sAudioSndContSel]); Audio_SetSoundMode(sAudioSndContWork[sAudioSndContSel]);
break; break;
case 5: case 5:
SEQCMD_DISABLE_PLAY_SEQUENCES(sAudioSndContWork[sAudioSndContSel]); SEQCMD_DISABLE_PLAY_SEQUENCES(sAudioSndContWork[sAudioSndContSel]);

View file

@ -3766,26 +3766,26 @@ void Audio_SetCodeReverb(s8 reverb) {
} }
} }
void func_800F6700(s8 audioSetting) { void Audio_SetSoundMode(s8 soundSetting) {
s8 soundModeIndex; s8 soundModeIndex;
switch (audioSetting) { switch (soundSetting) {
case 0: case SOUND_SETTING_STEREO:
soundModeIndex = SOUNDMODE_STEREO; soundModeIndex = SOUNDMODE_STEREO;
sSoundMode = SOUNDMODE_STEREO; sSoundMode = SOUNDMODE_STEREO;
break; break;
case 1: case SOUND_SETTING_MONO:
soundModeIndex = SOUNDMODE_MONO; soundModeIndex = SOUNDMODE_MONO;
sSoundMode = SOUNDMODE_MONO; sSoundMode = SOUNDMODE_MONO;
break; break;
case 2: case SOUND_SETTING_HEADSET:
soundModeIndex = SOUNDMODE_HEADSET; soundModeIndex = SOUNDMODE_HEADSET;
sSoundMode = SOUNDMODE_HEADSET; sSoundMode = SOUNDMODE_HEADSET;
break; break;
case 3: case SOUND_SETTING_SURROUND:
soundModeIndex = SOUNDMODE_STEREO; soundModeIndex = SOUNDMODE_STEREO;
sSoundMode = SOUNDMODE_SURROUND; sSoundMode = SOUNDMODE_SURROUND;
break; break;

View file

@ -29,7 +29,7 @@
#include "z64thread.h" #include "z64thread.h"
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
"ntsc-1.2:78 pal-1.0:76 pal-1.1:76" "ntsc-1.2:72 pal-1.0:70 pal-1.1:70"
StackEntry sDmaMgrStackInfo; StackEntry sDmaMgrStackInfo;
OSMesgQueue sDmaMgrMsgQueue; OSMesgQueue sDmaMgrMsgQueue;

View file

@ -25,7 +25,7 @@ extern struct IrqMgr gIrqMgr;
#include "z64thread.h" #include "z64thread.h"
#pragma increment_block_number "gc-eu:144 gc-eu-mq:144 gc-jp:144 gc-jp-ce:144 gc-jp-mq:144 gc-us:144 gc-us-mq:144" \ #pragma increment_block_number "gc-eu:144 gc-eu-mq:144 gc-jp:144 gc-jp-ce:144 gc-jp-mq:144 gc-us:144 gc-us-mq:144" \
"ique-cn:160 ntsc-1.0:139 ntsc-1.1:139 ntsc-1.2:139 pal-1.0:137 pal-1.1:137" "ique-cn:160 ntsc-1.0:133 ntsc-1.1:133 ntsc-1.2:133 pal-1.0:131 pal-1.1:131"
extern u8 _buffersSegmentEnd[]; extern u8 _buffersSegmentEnd[];

View file

@ -5,8 +5,8 @@
#include "z64olib.h" #include "z64olib.h"
#include "overlays/actors/ovl_En_Horse/z_en_horse.h" #include "overlays/actors/ovl_En_Horse/z_en_horse.h"
#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
"ique-cn:192 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags); s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags);
s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange); s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange);
@ -3640,7 +3640,7 @@ s32 Camera_KeepOn3(Camera* camera) {
} }
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
"ique-cn:128 ntsc-1.0:140 ntsc-1.1:140 ntsc-1.2:140 pal-1.0:138 pal-1.1:138" "ique-cn:128 ntsc-1.0:134 ntsc-1.1:134 ntsc-1.2:134 pal-1.0:132 pal-1.1:132"
s32 Camera_KeepOn4(Camera* camera) { s32 Camera_KeepOn4(Camera* camera) {
static Vec3f D_8015BD50; static Vec3f D_8015BD50;

View file

@ -3,7 +3,7 @@
#include "versions.h" #include "versions.h"
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
"ntsc-1.0:176 ntsc-1.1:176 ntsc-1.2:176 pal-1.0:192 pal-1.1:192" "ntsc-1.0:176 ntsc-1.1:176 ntsc-1.2:176 pal-1.0:176 pal-1.1:176"
ALIGNED(16) SaveContext gSaveContext; ALIGNED(16) SaveContext gSaveContext;
#if PLATFORM_IQUE #if PLATFORM_IQUE

View file

@ -1,5 +1,5 @@
#pragma increment_block_number "gc-eu:228 gc-eu-mq:228 gc-jp:208 gc-jp-ce:208 gc-jp-mq:208 gc-us:208 gc-us-mq:208" \ #pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:208 gc-jp-ce:208 gc-jp-mq:208 gc-us:208 gc-us-mq:208" \
"ique-cn:208 ntsc-1.0:224 ntsc-1.1:224 ntsc-1.2:224 pal-1.0:236 pal-1.1:236" "ique-cn:208 ntsc-1.0:224 ntsc-1.1:224 ntsc-1.2:224 pal-1.0:232 pal-1.1:232"
#include "global.h" #include "global.h"
#include "ultra64.h" #include "ultra64.h"

View file

@ -52,10 +52,13 @@ u16 gSramSlotOffsets[] = {
}; };
static u8 sSramDefaultHeader[] = { static u8 sSramDefaultHeader[] = {
// TODO: use enums for these SOUND_SETTING_STEREO, // SRAM_HEADER_SOUND
0, // SRAM_HEADER_SOUND Z_TARGET_SETTING_SWITCH, // SRAM_HEADER_Z_TARGET
0, // SRAM_HEADER_ZTARGET #if OOT_NTSC
0, // SRAM_HEADER_LANGUAGE LANGUAGE_JPN, // SRAM_HEADER_LANGUAGE
#else
LANGUAGE_ENG, // SRAM_HEADER_LANGUAGE
#endif
// SRAM_HEADER_MAGIC // SRAM_HEADER_MAGIC
0x98, 0x98,
@ -1016,8 +1019,8 @@ void Sram_InitSram(GameState* gameState, SramContext* sramCtx) {
} }
} }
gSaveContext.audioSetting = sramCtx->readBuff[SRAM_HEADER_SOUND] & 3; gSaveContext.soundSetting = sramCtx->readBuff[SRAM_HEADER_SOUND] & 3;
gSaveContext.zTargetSetting = sramCtx->readBuff[SRAM_HEADER_ZTARGET] & 1; gSaveContext.zTargetSetting = sramCtx->readBuff[SRAM_HEADER_Z_TARGET] & 1;
#if OOT_PAL #if OOT_PAL
gSaveContext.language = sramCtx->readBuff[SRAM_HEADER_LANGUAGE]; gSaveContext.language = sramCtx->readBuff[SRAM_HEADER_LANGUAGE];
@ -1042,11 +1045,11 @@ void Sram_InitSram(GameState* gameState, SramContext* sramCtx) {
PRINTF(T(" サイズ=%d + %d %d\n", "GOOD! GOOD! Size = %d + %d = %d\n"), sizeof(SaveInfo), 4, PRINTF(T(" サイズ=%d + %d %d\n", "GOOD! GOOD! Size = %d + %d = %d\n"), sizeof(SaveInfo), 4,
sizeof(SaveInfo) + 4); sizeof(SaveInfo) + 4);
PRINTF_COLOR_BLUE(); PRINTF_COLOR_BLUE();
PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.audioSetting); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.soundSetting);
PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.audioSetting); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.soundSetting);
PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.audioSetting); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.soundSetting);
PRINTF_RST(); PRINTF_RST();
func_800F6700(gSaveContext.audioSetting); Audio_SetSoundMode(gSaveContext.soundSetting);
} }
void Sram_Alloc(GameState* gameState, SramContext* sramCtx) { void Sram_Alloc(GameState* gameState, SramContext* sramCtx) {

View file

@ -31,7 +31,7 @@
#include "assets/objects/object_sst/object_sst.h" #include "assets/objects/object_sst/object_sst.h"
#include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/gameplay_keep/gameplay_keep.h"
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 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" \
"pal-1.0:128 pal-1.1:128" "pal-1.0:128 pal-1.1:128"
#define FLAGS \ #define FLAGS \

View file

@ -69,8 +69,8 @@ void EnMag_ResetSram(void) {
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8007000), buffer, 0x800, 1); SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8007000), buffer, 0x800, 1);
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8007800), buffer, 0x800, 1); SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8007800), buffer, 0x800, 1);
gSaveContext.audioSetting = gSaveContext.zTargetSetting = 0; gSaveContext.soundSetting = gSaveContext.zTargetSetting = 0; // SOUND_SETTING_STEREO/Z_TARGET_SETTING_SWITCH
func_800F6700(gSaveContext.audioSetting); Audio_SetSoundMode(gSaveContext.soundSetting);
} }
#endif #endif

View file

@ -1411,8 +1411,8 @@ void func_80B3F3D8(void) {
Sfx_PlaySfxCentered2(NA_SE_PL_SKIP); Sfx_PlaySfxCentered2(NA_SE_PL_SKIP);
} }
#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64" \ #pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64 ique-cn:64" \
"ique-cn:128 ntsc-1.0:64 ntsc-1.1:64 ntsc-1.2:64 pal-1.0:64 pal-1.1:64" "ntsc-1.0:64 ntsc-1.1:64 ntsc-1.2:64 pal-1.0:64 pal-1.1:64"
void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) { void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) {
static Vec3f D_80B42DA0; static Vec3f D_80B42DA0;

View file

@ -155,13 +155,6 @@ typedef enum SettingIndex {
/* */ FS_SETTING_MAX /* */ FS_SETTING_MAX
} SettingIndex; } SettingIndex;
typedef enum AudioOption {
/* 0 */ FS_AUDIO_STEREO,
/* 1 */ FS_AUDIO_MONO,
/* 2 */ FS_AUDIO_HEADSET,
/* 3 */ FS_AUDIO_SURROUND
} AudioOption;
typedef enum CharPage { typedef enum CharPage {
/* 0 */ FS_CHAR_PAGE_HIRA, /* 0 */ FS_CHAR_PAGE_HIRA,
/* 1 */ FS_CHAR_PAGE_KATA, /* 1 */ FS_CHAR_PAGE_KATA,

View file

@ -741,12 +741,12 @@ void FileSelect_PulsateCursor(GameState* thisx) {
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, 3, OS_WRITE); SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, 3, OS_WRITE);
PRINTF("1:read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND], PRINTF("1:read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND],
sramCtx->readBuff[SRAM_HEADER_ZTARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE], sramCtx->readBuff[SRAM_HEADER_Z_TARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE],
sramCtx->readBuff[SRAM_HEADER_MAGIC]); sramCtx->readBuff[SRAM_HEADER_MAGIC]);
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_READ); SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_READ);
PRINTF("read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND], PRINTF("read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND],
sramCtx->readBuff[SRAM_HEADER_ZTARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE], sramCtx->readBuff[SRAM_HEADER_Z_TARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE],
sramCtx->readBuff[SRAM_HEADER_MAGIC]); sramCtx->readBuff[SRAM_HEADER_MAGIC]);
} else if (CHECK_BTN_ALL(debugInput->press.button, BTN_DUP)) { } else if (CHECK_BTN_ALL(debugInput->press.button, BTN_DUP)) {
sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language = LANGUAGE_GER; sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language = LANGUAGE_GER;
@ -754,11 +754,11 @@ void FileSelect_PulsateCursor(GameState* thisx) {
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, 3, OS_WRITE); SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, 3, OS_WRITE);
PRINTF("1:read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND], PRINTF("1:read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND],
sramCtx->readBuff[SRAM_HEADER_ZTARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE], sramCtx->readBuff[SRAM_HEADER_Z_TARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE],
sramCtx->readBuff[SRAM_HEADER_MAGIC]); sramCtx->readBuff[SRAM_HEADER_MAGIC]);
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_READ); SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_READ);
PRINTF("read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND], PRINTF("read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND],
sramCtx->readBuff[SRAM_HEADER_ZTARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE], sramCtx->readBuff[SRAM_HEADER_Z_TARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE],
sramCtx->readBuff[SRAM_HEADER_MAGIC]); sramCtx->readBuff[SRAM_HEADER_MAGIC]);
} else if (CHECK_BTN_ALL(debugInput->press.button, BTN_DRIGHT)) { } else if (CHECK_BTN_ALL(debugInput->press.button, BTN_DRIGHT)) {
sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language = LANGUAGE_FRA; sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language = LANGUAGE_FRA;
@ -766,12 +766,12 @@ void FileSelect_PulsateCursor(GameState* thisx) {
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, 3, OS_WRITE); SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, 3, OS_WRITE);
PRINTF("1:read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND], PRINTF("1:read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND],
sramCtx->readBuff[SRAM_HEADER_ZTARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE], sramCtx->readBuff[SRAM_HEADER_Z_TARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE],
sramCtx->readBuff[SRAM_HEADER_MAGIC]); sramCtx->readBuff[SRAM_HEADER_MAGIC]);
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_READ); SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_READ);
PRINTF("read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND], PRINTF("read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND],
sramCtx->readBuff[SRAM_HEADER_ZTARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE], sramCtx->readBuff[SRAM_HEADER_Z_TARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE],
sramCtx->readBuff[SRAM_HEADER_MAGIC]); sramCtx->readBuff[SRAM_HEADER_MAGIC]);
} }
#endif #endif

View file

@ -1353,7 +1353,7 @@ void FileSelect_UpdateOptionsMenu(GameState* thisx) {
Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
this->configMode = CM_OPTIONS_TO_MAIN; this->configMode = CM_OPTIONS_TO_MAIN;
sramCtx->readBuff[0] = gSaveContext.audioSetting; sramCtx->readBuff[0] = gSaveContext.soundSetting;
sramCtx->readBuff[1] = gSaveContext.zTargetSetting; sramCtx->readBuff[1] = gSaveContext.zTargetSetting;
#if OOT_PAL_N64 #if OOT_PAL_N64
sramCtx->readBuff[2] = gSaveContext.language; sramCtx->readBuff[2] = gSaveContext.language;
@ -1363,11 +1363,11 @@ void FileSelect_UpdateOptionsMenu(GameState* thisx) {
PRINTF_COLOR_YELLOW(); PRINTF_COLOR_YELLOW();
PRINTF("sram->read_buff[2] = J_N = %x\n", sramCtx->readBuff[2]); PRINTF("sram->read_buff[2] = J_N = %x\n", sramCtx->readBuff[2]);
PRINTF("sram->read_buff[2] = J_N = %x\n", &sramCtx->readBuff[2]); PRINTF("sram->read_buff[2] = J_N = %x\n", &sramCtx->readBuff[2]);
PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.audioSetting); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.soundSetting);
PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.audioSetting); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.soundSetting);
PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.audioSetting); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.soundSetting);
PRINTF_RST(); PRINTF_RST();
func_800F6700(gSaveContext.audioSetting); Audio_SetSoundMode(gSaveContext.soundSetting);
PRINTF("終了\n"); PRINTF("終了\n");
return; return;
} }
@ -1377,11 +1377,11 @@ void FileSelect_UpdateOptionsMenu(GameState* thisx) {
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
if (sSelectedSetting == FS_SETTING_AUDIO) { if (sSelectedSetting == FS_SETTING_AUDIO) {
gSaveContext.audioSetting--; gSaveContext.soundSetting--;
// because audio setting is unsigned, can't check for < 0 // because audio setting is unsigned, can't check for < 0
if (gSaveContext.audioSetting > 0xF0) { if (gSaveContext.soundSetting > 0xF0) {
gSaveContext.audioSetting = FS_AUDIO_SURROUND; gSaveContext.soundSetting = SOUND_SETTING_SURROUND;
} }
} else { } else {
#if !OOT_PAL_N64 #if !OOT_PAL_N64
@ -1402,10 +1402,10 @@ void FileSelect_UpdateOptionsMenu(GameState* thisx) {
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
if (sSelectedSetting == FS_SETTING_AUDIO) { if (sSelectedSetting == FS_SETTING_AUDIO) {
gSaveContext.audioSetting++; gSaveContext.soundSetting++;
if (gSaveContext.audioSetting > FS_AUDIO_SURROUND) { if (gSaveContext.soundSetting > SOUND_SETTING_SURROUND) {
gSaveContext.audioSetting = FS_AUDIO_STEREO; gSaveContext.soundSetting = SOUND_SETTING_STEREO;
} }
} else { } else {
#if !OOT_PAL_N64 #if !OOT_PAL_N64
@ -1719,7 +1719,7 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) {
for (i = 0, vtx = 0; i < 4; i++, vtx += 4) { for (i = 0, vtx = 0; i < 4; i++, vtx += 4) {
gDPPipeSync(POLY_OPA_DISP++); gDPPipeSync(POLY_OPA_DISP++);
if (i == gSaveContext.audioSetting) { if (i == gSaveContext.soundSetting) {
if (sSelectedSetting == FS_SETTING_AUDIO) { if (sSelectedSetting == FS_SETTING_AUDIO) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cursorPrimRed, cursorPrimGreen, cursorPrimBlue, gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cursorPrimRed, cursorPrimGreen, cursorPrimBlue,
this->titleAlpha[0]); this->titleAlpha[0]);