From 55ec8579a541c63e4f583eead42b4f556fdd8c6a Mon Sep 17 00:00:00 2001 From: KiritoDv Date: Fri, 13 Oct 2023 11:58:28 -0600 Subject: [PATCH] Fixed jp text and slightly removed audio cracking --- bin/segment2.c | 22 +++++++++++++++----- libultraship | 2 +- src/audio/data.c | 18 +++++++++++++---- src/audio/data.h | 3 ++- src/audio/external.c | 2 +- src/audio/heap.c | 2 +- src/audio/load.c | 3 ++- src/game/envfx_snow.c | 3 ++- src/game/ingame_menu.c | 39 ++++++++++++++++++++---------------- src/game/screen_transition.c | 2 +- src/game/segment2.h | 3 ++- src/game/shadow.c | 3 ++- src/menu/file_select.c | 20 +++++++++--------- src/menu/star_select.c | 2 +- src/port/Engine.cpp | 2 +- src/port/Engine.h | 2 +- 16 files changed, 80 insertions(+), 48 deletions(-) diff --git a/bin/segment2.c b/bin/segment2.c index 5a5b7ae7..9e2783ba 100644 --- a/bin/segment2.c +++ b/bin/segment2.c @@ -1317,7 +1317,7 @@ const Gfx dl_ia_text_end[] = { }; #elif defined(VERSION_US) -const Gfx dl_ia_text_begin[] = { +const Gfx dl_ia_text_begin_us[] = { gsDPPipeSync(), gsSPDisableFiltering(1), gsSPClearGeometryMode(G_LIGHTING), @@ -1329,6 +1329,18 @@ const Gfx dl_ia_text_begin[] = { gsSPEndDisplayList(), }; +const Gfx dl_ia_text_begin_jp[] = { + gsDPPipeSync(), + gsSPDisableFiltering(1), + gsSPClearGeometryMode(G_LIGHTING), + gsDPSetCombineMode(G_CC_FADEA, G_CC_FADEA), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2), + gsDPSetTextureFilter(G_TF_POINT), + gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON), + gsSPEndDisplayList(), +}; + const Gfx dl_ia_text_tex_settings_us[] = { gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 3, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 4, G_TX_NOLOD), gsDPLoadSync(), @@ -1341,11 +1353,11 @@ const Gfx dl_ia_text_tex_settings_us[] = { }; const Gfx dl_ia_text_tex_settings_jp[] = { - gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 3, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 4, G_TX_NOLOD), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 0, 0, G_TX_LOADTILE, 0, G_TX_CLAMP, 4, G_TX_NOLOD, G_TX_CLAMP, 3, G_TX_NOLOD), gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, ((16 * 8 + G_IM_SIZ_4b_INCR) >> G_IM_SIZ_4b_SHIFT) - 1, CALC_DXT(16, G_IM_SIZ_4b_BYTES)), - gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_4b, 1, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 3, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 4, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (16 - 1) << G_TEXTURE_IMAGE_FRAC, (8 - 1) << G_TEXTURE_IMAGE_FRAC), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 8 * 16 - 1, CALC_DXT(8, G_IM_SIZ_8b_BYTES)), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 1, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 4, G_TX_NOLOD, G_TX_CLAMP, 3, G_TX_NOLOD), + gsDPSetTileSize(0, 0, 0, (8 - 1) << G_TEXTURE_IMAGE_FRAC, (16 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPVertex(vertex_ia8_char_jp, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/libultraship b/libultraship index 0b486122..e75054e3 160000 --- a/libultraship +++ b/libultraship @@ -1 +1 @@ -Subproject commit 0b486122c8711c8d124449435d4d05640e3f4a83 +Subproject commit e75054e386c9d8bc2ebb18c7ca303b8d287be907 diff --git a/src/audio/data.c b/src/audio/data.c index 490b991c..c856da37 100644 --- a/src/audio/data.c +++ b/src/audio/data.c @@ -49,8 +49,7 @@ struct AudioSessionSettingsEU gAudioSessionPresets[] = { // - memory used for temporary sequences // - memory used for temporary banks #if defined(VERSION_JP) || defined(VERSION_US) -struct AudioSessionSettings gAudioSessionPresets[] = { -#ifdef VERSION_JP +struct AudioSessionSettings gAudioSessionPresetsJP[] = { { 32000, 16, 1, 0x0800, 0x2FFF, 0x7FFF, 0x3900, 0x6000, 0x4400, 0x2A00 }, { 32000, 16, 1, 0x0A00, 0x47FF, 0x7FFF, 0x3900, 0x6000, 0x4400, 0x2A00 }, { 32000, 16, 1, 0x1000, 0x2FFF, 0x7FFF, 0x3900, 0x6000, 0x4400, 0x2A00 }, @@ -59,7 +58,19 @@ struct AudioSessionSettings gAudioSessionPresets[] = { { 32000, 16, 1, 0x0800, 0x2FFF, 0x7FFF, 0x3E00, 0x6200, 0x3F00, 0x2A00 }, { 32000, 16, 1, 0x0A00, 0x47FF, 0x7FFF, 0x3F00, 0x6200, 0x4400, 0x2A80 }, { 32000, 20, 1, 0x0800, 0x37FF, 0x7FFF, 0x3300, 0x5500, 0x4000, 0x1B00 }, -#else + { 27000, 16, 1, 0x0800, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, + { 27000, 16, 1, 0x0800, 0x3FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, + { 27000, 16, 1, 0x1000, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, + { 27000, 16, 1, 0x1000, 0x3FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, + { 27000, 16, 1, 0x0C00, 0x4FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, + { 32000, 14, 1, 0x0800, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, + { 32000, 12, 1, 0x0800, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, + { 32000, 10, 1, 0x0800, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, + { 32000, 8, 1, 0x0800, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +struct AudioSessionSettings gAudioSessionPresetsUS[] = { { 32000, 16, 1, 0x0C00, 0x2FFF, 0x7FFF, 0x3A00, 0x6D00, 0x4400, 0x2A00 }, { 32000, 16, 1, 0x0A00, 0x47FF, 0x7FFF, 0x3A00, 0x6D00, 0x4400, 0x2A00 }, { 32000, 16, 1, 0x1000, 0x2FFF, 0x7FFF, 0x3A00, 0x6D00, 0x4400, 0x2A00 }, @@ -68,7 +79,6 @@ struct AudioSessionSettings gAudioSessionPresets[] = { { 32000, 16, 1, 0x0C00, 0x2FFF, 0x7FFF, 0x4000, 0x6E00, 0x3F00, 0x2A00 }, { 32000, 16, 1, 0x0A00, 0x47FF, 0x7FFF, 0x4100, 0x6E00, 0x4400, 0x2A80 }, { 32000, 20, 1, 0x0800, 0x37FF, 0x7FFF, 0x34C0, 0x6280, 0x4000, 0x1B00 }, -#endif { 27000, 16, 1, 0x0800, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, { 27000, 16, 1, 0x0800, 0x3FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, { 27000, 16, 1, 0x1000, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, diff --git a/src/audio/data.h b/src/audio/data.h index a704c0c2..f359548d 100644 --- a/src/audio/data.h +++ b/src/audio/data.h @@ -16,7 +16,8 @@ #if defined(VERSION_EU) || defined(VERSION_SH) extern struct AudioSessionSettingsEU gAudioSessionPresets[]; #else -extern struct AudioSessionSettings gAudioSessionPresets[]; +extern struct AudioSessionSettings gAudioSessionPresetsJP[]; +extern struct AudioSessionSettings gAudioSessionPresetsUS[]; #endif extern u16 D_80332388[128]; // unused diff --git a/src/audio/external.c b/src/audio/external.c index d726e7e8..0fc561ae 100644 --- a/src/audio/external.c +++ b/src/audio/external.c @@ -2551,7 +2551,7 @@ void sound_reset(u8 presetId) { func_802ad74c(0xF2000000, 0); #endif #if defined(VERSION_JP) || defined(VERSION_US) -// audio_reset_session(&gAudioSessionPresets[presetId]); + // audio_reset_session(ROM_JP ? &gAudioSessionPresetsJP[presetId] : &gAudioSessionPresetsUS[presetId]); #else audio_reset_session_eu(presetId); #endif diff --git a/src/audio/heap.c b/src/audio/heap.c index 9eb180ee..9d15952d 100644 --- a/src/audio/heap.c +++ b/src/audio/heap.c @@ -1189,7 +1189,7 @@ void audio_reset_session(void) { #else reverbWindowSize = preset->reverbWindowSize; gMaxSimultaneousNotes = preset->maxSimultaneousNotes; - gSamplesPerFrameTarget = GameEngine_GetSampleRate() / 60; + gSamplesPerFrameTarget = ALIGN16(GameEngine_GetSampleRate() / 60); gReverbDownsampleRate = preset->reverbDownsampleRate; switch (gReverbDownsampleRate) { diff --git a/src/audio/load.c b/src/audio/load.c index 131932e9..85386acd 100644 --- a/src/audio/load.c +++ b/src/audio/load.c @@ -533,7 +533,8 @@ void audio_init() { gAudioResetStatus = 1; audio_shut_down_and_reset_step(); #else - audio_reset_session(&gAudioSessionPresets[0]); + struct AudioSessionSettings* settings = ROM_JP ? &gAudioSessionPresetsJP[0] : &gAudioSessionPresetsUS[0]; + audio_reset_session(settings); #endif // Load headers for sounds and sequences diff --git a/src/game/envfx_snow.c b/src/game/envfx_snow.c index 1b263271..0a8e5c8b 100644 --- a/src/game/envfx_snow.c +++ b/src/game/envfx_snow.c @@ -480,7 +480,8 @@ Gfx *envfx_update_snow(s32 snowMode, Vec3s marioPos, Vec3s camFrom, Vec3s camTo) sPrevSnowParticleCount = gSnowParticleCount; sPrevSnowTimestamp = gGlobalTimer; - gSPDisplayList(gfx++, &tiny_bubble_dl_0B006AB0) gSPEndDisplayList(gfx++); + gSPDisplayList(gfx++, &tiny_bubble_dl_0B006AB0); + gSPEndDisplayList(gfx++); return gfxStart; } diff --git a/src/game/ingame_menu.c b/src/game/ingame_menu.c index f9d7b5ed..8311f0f6 100644 --- a/src/game/ingame_menu.c +++ b/src/game/ingame_menu.c @@ -1,5 +1,6 @@ #include #include +#include #include "actors/common1.h" #include "area.h" @@ -22,6 +23,7 @@ #include "seq_ids.h" #include "sm64.h" #include "types.h" +#include "endianness.h" #ifdef VERSION_EU #undef LANGUAGE_FUNCTION @@ -244,14 +246,14 @@ void create_dl_ortho_matrix(void) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(matrix), G_MTX_PROJECTION | G_MTX_MUL | G_MTX_NOPUSH); } -static u8 *alloc_ia8_text_from_i1(char* path, s16 width, s16 height) { +static u8 *alloc_ia8_text_from_i1(u16 *in, s16 width, s16 height) { s32 inPos; u16 bitMask; u8 *out; s16 outPos = 0; - u16* in = ResourceGetDataByName(path); + // u16* in = ResourceGetDataByName(path); - out = malloc((u32) width * (u32) height); + out = alloc_display_list((u32) width * (u32) height); if (out == NULL) { return NULL; @@ -261,7 +263,7 @@ static u8 *alloc_ia8_text_from_i1(char* path, s16 width, s16 height) { bitMask = 0x8000; while (bitMask != 0) { - if (in[inPos] & bitMask) { + if (BSWAP16(in[inPos]) & bitMask) { out[outPos] = 0xFF; } else { out[outPos] = 0x00; @@ -279,10 +281,13 @@ void render_generic_char(u8 c) { void **fontLUT = segmented_to_virtual(ROM_JP ? main_font_lut_jp : main_font_lut_us); char* packedTexture = segmented_to_virtual(fontLUT[c]); + if (packedTexture == NULL) { + return; + } + gDPPipeSync(gDisplayListHead++); if(ROM_JP){ - void *unpackedTexture = alloc_ia8_text_from_i1(packedTexture, 8, 16); - gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_IA, G_IM_SIZ_8b, 1, VIRTUAL_TO_PHYSICAL(unpackedTexture)); + gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_IA, G_IM_SIZ_8b, 1, VIRTUAL_TO_PHYSICAL(packedTexture)); gSPDisplayList(gDisplayListHead++, dl_ia_text_tex_settings_jp); } else { gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_IA, G_IM_SIZ_16b, 1, VIRTUAL_TO_PHYSICAL(packedTexture)); @@ -1201,7 +1206,7 @@ void handle_dialog_text_and_pages(s8 colorMode, struct DialogEntry *dialog, s8 l totalLines = linesPerBox + 1; } - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); strIdx = gDialogTextPos; @@ -1781,7 +1786,7 @@ void do_cutscene_handler(void) { create_dl_ortho_matrix(); - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gCutsceneMsgFade); #ifdef VERSION_EU @@ -1877,7 +1882,7 @@ void print_peach_letter_message(void) { gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gCutsceneMsgFade); gSPDisplayList(gDisplayListHead++, castle_grounds_seg7_dl_0700EA58); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 20, 20, 20, gCutsceneMsgFade); print_generic_string(STR_X, STR_Y, str); @@ -2082,7 +2087,7 @@ void render_pause_my_score_coins(void) { } gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end); - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); @@ -2134,7 +2139,7 @@ void render_pause_my_score_coins(void) { void render_pause_camera_options(s16 x, s16 y, s8 *index, s16 xIndex) { handle_menu_scrolling(MENU_SCROLL_HORIZONTAL, index, 1, 2); - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); print_generic_string(x + 14, y + 2, GameEngine_LoadTranslation("TEXT_LAKITU_MARIO")); @@ -2170,7 +2175,7 @@ void render_pause_course_options(s16 x, s16 y, s8 *index, s16 yIndex) { handle_menu_scrolling(MENU_SCROLL_VERTICAL, index, 1, 3); - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); print_generic_string(x + 10, y - 2, GameEngine_LoadTranslation("TEXT_CONTINUE")); @@ -2338,7 +2343,7 @@ void render_pause_castle_main_strings(s16 x, s16 y) { } } - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); if (gDialogLineNum <= COURSE_NUM_TO_INDEX(COURSE_STAGES_MAX)) { // Main courses @@ -2597,7 +2602,7 @@ void render_course_complete_lvl_info_and_hud_str(void) { } // Print course number - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); int_to_str(gLastCompletedCourseNum, strCourseNum); @@ -2614,7 +2619,7 @@ void render_course_complete_lvl_info_and_hud_str(void) { name = GameEngine_LoadLevelName(COURSE_NUM_TO_INDEX(gLastCompletedCourseNum)); // Print course name and clear text - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, gDialogTextAlpha); #ifdef VERSION_EU @@ -2654,7 +2659,7 @@ void render_course_complete_lvl_info_and_hud_str(void) { gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end); // Print act name and catch text - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, gDialogTextAlpha); print_generic_string(76, 145, name); @@ -2718,7 +2723,7 @@ void render_save_confirmation(s16 x, s16 y, s8 *index, s16 sp6e) handle_menu_scrolling(MENU_SCROLL_VERTICAL, index, 1, 3); - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); print_generic_string(TXT_SAVEOPTIONS_X, y + TXT_SAVECONT_Y, GameEngine_LoadTranslation("TEXT_SAVE_AND_CONTINUE")); diff --git a/src/game/screen_transition.c b/src/game/screen_transition.c index d1cd93e6..d1971a35 100644 --- a/src/game/screen_transition.c +++ b/src/game/screen_transition.c @@ -252,7 +252,7 @@ s32 render_textured_transition(s8 fadeTimer, s8 transTime, struct WarpTransition load_tex_transition_vertex(verts, fadeTimer, transData, centerTransX, centerTransY, texTransRadius, transTexType); load_tex_transition_vertex(vertsInterpolated, fadeTimer, transData, centerTransX, centerTransY, texTransRadiusInterpolated, transTexType); sScreenTransitionVertices = verts; - gSPDisplayList(gDisplayListHead++, dl_proj_mtx_fullscreen) + gSPDisplayList(gDisplayListHead++, dl_proj_mtx_fullscreen); gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); sScreenTransitionVerticesPos[0] = gDisplayListHead; diff --git a/src/game/segment2.h b/src/game/segment2.h index 30758244..63cd5377 100644 --- a/src/game/segment2.h +++ b/src/game/segment2.h @@ -6,7 +6,8 @@ extern Gfx dl_rgba16_text_begin[]; extern Gfx dl_rgba16_text_end[]; -extern Gfx dl_ia_text_begin[]; +extern Gfx dl_ia_text_begin_us[]; +extern Gfx dl_ia_text_begin_jp[]; extern Gfx dl_ia_text_end[]; extern u8 texture_transition_star_half[]; extern u8 texture_transition_circle_half[]; diff --git a/src/game/shadow.c b/src/game/shadow.c index 1ca18de5..b8608401 100644 --- a/src/game/shadow.c +++ b/src/game/shadow.c @@ -466,7 +466,8 @@ void add_shadow_to_display_list(Gfx *displayListHead, Vtx *verts, s8 shadowVerte gSPDisplayList(displayListHead++, dl_shadow_circle); break; case SHADOW_SHAPE_SQUARE: - gSPDisplayList(displayListHead++, dl_shadow_square) break; + gSPDisplayList(displayListHead++, dl_shadow_square); + break; } switch (shadowVertexType) { case SHADOW_WITH_9_VERTS: diff --git a/src/menu/file_select.c b/src/menu/file_select.c index e6bd8e6b..ef2c0a20 100644 --- a/src/menu/file_select.c +++ b/src/menu/file_select.c @@ -1715,7 +1715,7 @@ void print_hud_lut_string_fade(s8 hudLUT, s16 x, s16 y, const unsigned char *tex * Prints a generic white string with text fade properties. */ void print_generic_string_fade(s16 x, s16 y, const unsigned char *text) { - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha - sTextFadeAlpha); print_generic_string(x, y, text); gSPDisplayList(gDisplayListHead++, dl_ia_text_end); @@ -1824,7 +1824,7 @@ void print_main_menu_strings(void) { gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end); #ifndef VERSION_EU // Print menu names - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); print_generic_string(SCORE_X, 39, GameEngine_LoadTranslation("TEXT_SCORE")); print_generic_string(COPY_X, 39, GameEngine_LoadTranslation("TEXT_COPY")); @@ -1867,7 +1867,7 @@ void print_main_lang_strings(void) { gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end); // Print menu names - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); centeredX = get_str_x_pos_from_center(76, textScore[sLanguageMode], 10.0f); print_generic_string(centeredX, 39, textScore[sLanguageMode]); @@ -1972,7 +1972,7 @@ void print_score_menu_strings(void) { #endif // Print menu names - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); #ifdef VERSION_EU centeredX = get_str_x_pos_from_center(69, textReturn[sLanguageMode], 10.0f); @@ -2158,7 +2158,7 @@ void print_copy_menu_strings(void) { gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end); #endif // Print menu names - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); #ifdef VERSION_EU centeredX = get_str_x_pos_from_center(69, textReturn[sLanguageMode], 10.0f); @@ -2271,7 +2271,7 @@ void print_erase_menu_prompt(s16 x, s16 y) { } // Print "YES NO" strings - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, sYesNoColor[0], sYesNoColor[0], sYesNoColor[0], sTextBaseAlpha); print_generic_string(x + 56, y, GameEngine_LoadTranslation("TEXT_YES")); gDPSetEnvColor(gDisplayListHead++, sYesNoColor[1], sYesNoColor[1], sYesNoColor[1], sTextBaseAlpha); @@ -2429,7 +2429,7 @@ void print_erase_menu_strings(void) { #endif // Print menu names - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); #ifdef VERSION_EU @@ -2493,7 +2493,7 @@ void print_sound_mode_menu_strings(void) { gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end); - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); #ifdef VERSION_EU // In EU their X position get increased each string // Print sound mode names @@ -2750,9 +2750,9 @@ void print_save_file_scores(s8 fileIndex) { // Print current coin score mode if (sScoreFileCoinScoreMode == 0) { - print_menu_generic_string(MYSCORE_X, 24, GameEngine_LoadTranslation(textMyScore)); + print_menu_generic_string(MYSCORE_X, 24, textMyScore); } else { - print_menu_generic_string(HISCORE_X, 24, GameEngine_LoadTranslation(textHiScore)); + print_menu_generic_string(HISCORE_X, 24, textHiScore); } gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_end); diff --git a/src/menu/star_select.c b/src/menu/star_select.c index 99f6361c..a56821bd 100644 --- a/src/menu/star_select.c +++ b/src/menu/star_select.c @@ -337,7 +337,7 @@ void print_act_selector_strings(void) { print_hud_my_score_coins(1, gCurrSaveFileNum - 1, COURSE_NUM_TO_INDEX(gCurrCourseNum), 155, 106); gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end); - gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + gSPDisplayList(gDisplayListHead++, ROM_JP ? dl_ia_text_begin_jp : dl_ia_text_begin_us); gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, 255); // Print the "MY SCORE" text if the coin score is more than 0 if (save_file_get_course_coin_score(gCurrSaveFileNum - 1, COURSE_NUM_TO_INDEX(gCurrCourseNum)) != 0) { diff --git a/src/port/Engine.cpp b/src/port/Engine.cpp index 2d6fee5b..c73abf96 100644 --- a/src/port/Engine.cpp +++ b/src/port/Engine.cpp @@ -133,7 +133,7 @@ void GameEngine::HandleAudioThread(){ u32 num_audio_samples = samples_left < AudioPlayerGetDesiredBuffered() ? SAMPLES_HIGH : SAMPLES_LOW; s16 audio_buffer[SAMPLES_PER_FRAME]; - for (int i = 0; i < AUDIO_FRAMES_PER_UPDATE; i++) { + for (int i = 0; i < NUM_AUDIO_CHANNELS; i++) { create_next_audio_buffer(audio_buffer + i * (num_audio_samples * 2), num_audio_samples); } diff --git a/src/port/Engine.h b/src/port/Engine.h index 735a3e08..303e268b 100644 --- a/src/port/Engine.h +++ b/src/port/Engine.h @@ -9,7 +9,7 @@ #define SAMPLES_LOW 528 #define AUDIO_FRAMES_PER_UPDATE 2 #define NUM_AUDIO_CHANNELS 2 -#define SAMPLES_PER_FRAME (SAMPLES_HIGH * NUM_AUDIO_CHANNELS * 3) +#define SAMPLES_PER_FRAME (SAMPLES_HIGH * NUM_AUDIO_CHANNELS * 2) struct CtlEntry; struct AudioBankSample;