diff --git a/src/game/bondview.c b/src/game/bondview.c index f01166d89..bb434dcd2 100644 --- a/src/game/bondview.c +++ b/src/game/bondview.c @@ -24,7 +24,7 @@ char var800a41c0[990]; s32 var8007f840 = 0x00000000; u8 var8007f844 = 0; u8 var8007f848 = 0; -u32 g_IrBinocularRadius = 90; +u32 g_IrBinocularRadius = PAL ? 102 : 90; u32 var8007f850 = 0x00000003; u32 var8007f854 = 0x00000000; u32 var8007f858 = 0xb8000000; diff --git a/src/game/cheats.c b/src/game/cheats.c index 67c259042..d9b341963 100644 --- a/src/game/cheats.c +++ b/src/game/cheats.c @@ -960,6 +960,11 @@ struct menudialog g_CheatsWarningMenuDialog = { NULL, }; +#if VERSION >= VERSION_PAL_FINAL +u32 var80074020pf = 0; +u32 var80074024pf = 0; +#endif + struct menuitem g_CheatsFunMenuItems[] = { { MENUITEMTYPE_CHECKBOX, CHEAT_DKMODE, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox }, { MENUITEMTYPE_CHECKBOX, CHEAT_SMALLJO, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox }, diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index a847536b2..7acf4272e 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -57,10 +57,18 @@ u8 g_FileState = 0; u8 var80062944 = 0; u8 var80062948 = 0; u8 var8006294c = 0; -u32 var80062950 = 0x00000064; +u32 var80062950 = 100; bool g_WeatherTickEnabled = true; u32 var80062958 = 0x00000000; u32 var8006295c = 0x00000000; + +#if VERSION >= VERSION_PAL_FINAL +u32 var80062640pf = 99; +u32 var80062644pf = 0; +u32 var80062648pf = 0; +u32 var8006264cpf = 0; +#endif + void *var80062960 = NULL; u32 var80062964 = 0x00000000; f32 var80062968 = 0; diff --git a/src/game/chr/chraction.c b/src/game/chr/chraction.c index 5f9c1db35..ca75feb97 100644 --- a/src/game/chr/chraction.c +++ b/src/game/chr/chraction.c @@ -4325,7 +4325,12 @@ void chrAttackAmount(struct chrdata *chr, u32 entitytype, u32 entityid, u32 arg3 chr->act_attackamount.unk037 = 0; } +#if PAL +s32 g_DrCarollDyingTimer = 8; +#else s32 g_DrCarollDyingTimer = 10; +#endif + u8 var80068080 = 50; u32 var80068084 = 0x005b0000; u32 var80068088 = 0x00000000; diff --git a/src/game/core.c b/src/game/core.c index 0e0267c5f..9d2007ec7 100644 --- a/src/game/core.c +++ b/src/game/core.c @@ -873,6 +873,9 @@ void coreFindThreats(void) } #if VERSION >= VERSION_PAL_FINAL +struct coord coreRender_spd4 = {0, 0, 0}; +s8 coreRender_spd0[] = {30, 0, 0, 0}; + GLOBAL_ASM( glabel coreRender .late_rodata @@ -3478,7 +3481,7 @@ Gfx *coreRender(Gfx *gdl) #endif u32 g_CutsceneTime240_60 = 0; -u32 var800840a8 = 0x00000000; +u32 var800840a8 = PAL ? 100 : 0; u32 var800840ac = 0x00000000; u32 var800840b0 = 0x00000000; u32 var800840b4 = 0x00000000; diff --git a/src/game/credits.c b/src/game/credits.c index 1e622144f..598d337ae 100644 --- a/src/game/credits.c +++ b/src/game/credits.c @@ -494,6 +494,39 @@ struct credit g_Credits[] = { { 1, 0, 0, 0, CREDITSTYLE_R_MED, L_TITLE_131, L_TITLE_132 }, // "armond williams junior", "henry sterchi" { 0, 0, 0, 0, CREDITSTYLE_R_MED, L_TITLE_133, L_TITLE_000 }, // "ed ridgeway", "" +#if PAL + { 1, 0, 1, 0, CREDITSTYLE_L_BIG, L_TITLE_151, L_TITLE_000 }, // "testing (noe)" + { 1, 0, 0, 0, CREDITSTYLE_11, L_TITLE_152, L_TITLE_153 }, // "supervisor", "kai 'jellybean' neumann" + { 0, 0, 0, 0, CREDITSTYLE_11, L_TITLE_154, L_TITLE_155 }, // "deputy supervisor", "maurice 'pathfinder' tisdale" + + { 1, 1, 0, 0, CREDITSTYLE_L_BIG, L_TITLE_151, L_TITLE_000 }, // "testing (noe)" + { 1, 0, 0, 0, CREDITSTYLE_11, L_TITLE_156, L_TITLE_157 }, // "coordinators", "patrick 'capricorn' thieret" + { 0, 0, 0, 0, CREDITSTYLE_R_MED, L_TITLE_158, L_TITLE_001 }, // "andreas 'brennero' dietz", "\n" + + { 1, 0, 0, 0, CREDITSTYLE_L_BIG, L_TITLE_162, L_TITLE_000 }, // "localization (french)" + { 1, 0, 0, 0, CREDITSTYLE_12, L_TITLE_159, L_TITLE_163 }, // "editor", "julien 'sexy boy' bardakoff" + { 1, 0, 0, 0, CREDITSTYLE_04, L_TITLE_161, L_TITLE_164 }, // "assistant editors", "jean-baptiste 'ours noir' fleury" + { 0, 0, 0, 0, CREDITSTYLE_04, L_TITLE_165, L_TITLE_166 }, // "nicolas 'darth lapinou' gourio", "nicolas 'el betal' robert" + + { 1, 0, 0, 0, CREDITSTYLE_L_BIG, L_TITLE_167, L_TITLE_000 }, // "localization (german)" + { 1, 0, 0, 0, CREDITSTYLE_12, L_TITLE_159, L_TITLE_168 }, // "editor", "micky 'scorpio's movement' auer" + { 0, 0, 0, 0, CREDITSTYLE_04, L_TITLE_160, L_TITLE_169 }, // "assistant editor", "jan 'ian' peitzmeier" + + { 1, 0, 0, 0, CREDITSTYLE_L_BIG, L_TITLE_170, L_TITLE_000 }, // "localization (italian)" + { 1, 0, 0, 0, CREDITSTYLE_12, L_TITLE_159, L_TITLE_171 }, // "editor", "elenor isbitish" + { 0, 0, 0, 0, CREDITSTYLE_04, L_TITLE_160, L_TITLE_172 }, // "assistant editor", "calimero tiiiun" + + { 1, 0, 0, 0, CREDITSTYLE_L_BIG, L_TITLE_173, L_TITLE_000 }, // "localization (spanish)" + { 1, 0, 0, 0, CREDITSTYLE_12, L_TITLE_159, L_TITLE_174 }, // "editor", "antonio 'toro' greppi" + { 1, 0, 0, 0, CREDITSTYLE_04, L_TITLE_161, L_TITLE_175 }, // "assistant editors", "carlos 'yoshio' montilla" + { 0, 0, 0, 0, CREDITSTYLE_04, L_TITLE_176, L_TITLE_000 }, // "susa & natalia" + + { 1, 0, 0, 0, CREDITSTYLE_L_BIG, L_TITLE_177, L_TITLE_000 }, // "localization" + { 1, 0, 0, 0, CREDITSTYLE_12, L_TITLE_178, L_TITLE_179 }, // "product coordinator", "andy 'fiedl' fey" + { 1, 0, 0, 0, CREDITSTYLE_12, L_TITLE_180, L_TITLE_181 }, // "product supervisor", "tanja 'personalized sarcasm' baar" + { 1, 0, 0, 0, CREDITSTYLE_04, L_TITLE_182, L_TITLE_183 }, // "product localization manager", "kai '0 to 100' zeh" +#endif + { 1, 0, 0, 0, CREDITSTYLE_L_BIG, L_TITLE_134, L_TITLE_000 }, // "perfect spelling", "" { 0, 0, 0, 0, CREDITSTYLE_R_MED, L_TITLE_135, L_TITLE_000 }, // "teresa lillygren", "" diff --git a/src/game/data/data_000000.c b/src/game/data/data_000000.c index fd41b79ee..d6ed28dd6 100644 --- a/src/game/data/data_000000.c +++ b/src/game/data/data_000000.c @@ -80,14 +80,21 @@ u32 var8005cf54 = 0x00000000; u32 var8005cf58 = 0x00000000; u32 var8005cf5c = 0x00000000; OSTime osClockRate = 62500000; + +#if !PAL s32 osViClock = VI_NTSC_CLOCK; -u32 var8005cf6c = 0x00000000; -u32 __osGlobalIntMask = 0x003fff01; +#endif + +u32 _osShutdown = 0; +u32 __osGlobalIntMask = OS_IM_ALL; + +#if VERSION < VERSION_PAL_FINAL u32 var8005cf74 = 0x00000000; u32 var8005cf78 = 0x00000000; u32 var8005cf7c = 0x00000000; u32 var8005cf80 = 0x00000000; +#endif + u32 var8005cf84 = 0x00000000; u32 var8005cf88 = 0x00000000; u32 var8005cf8c = 0x00000000; - diff --git a/src/game/data/data_003dc0.c b/src/game/data/data_003dc0.c index 810b0b025..5987654d1 100644 --- a/src/game/data/data_003dc0.c +++ b/src/game/data/data_003dc0.c @@ -31,6 +31,22 @@ u32 var8005ef4c = 0x00000000; u32 var8005ef50 = 0x00001400; u32 var8005ef54 = 0x0018001c; u32 var8005ef58 = 0x00000000; + +#if VERSION >= VERSION_PAL_FINAL +u32 var8005ef5c = 0x70019304; +u32 var8005ef60 = 0x70018e4c; +u32 var8005ef64 = 0x700187b8; +u32 var8005ef68 = 0x70018da0; +u32 var8005ef6c = 0x700192dc; +u32 var8005ef70 = 0x700192e4; +u32 var8005ef74 = 0x70019270; +u32 var8005ef78 = 0x70019234; +u32 var8005ef7c = 0x00000000; +u32 var8005ef80 = 0x700199f4; +u32 var8005ef84 = 0x70019a00; +u32 var8005ef88 = 0x70019a18; +u32 var8005ef8c = 0x70019a3c; +#else u32 var8005ef5c = 0x70019574; u32 var8005ef60 = 0x700190bc; u32 var8005ef64 = 0x70018a28; @@ -44,6 +60,8 @@ u32 var8005ef80 = 0x70019c64; u32 var8005ef84 = 0x70019c70; u32 var8005ef88 = 0x70019c88; u32 var8005ef8c = 0x70019cac; +#endif + u32 var8005ef90 = 0xff08ffff; u32 var8005ef94 = 0xffffffff; u32 var8005ef98 = 0x0c22ff44; @@ -53,6 +71,11 @@ u32 var8005efa4 = 0xffffff00; u32 var8005efa8 = 0x14000000; u32 var8005efac = 0x00000000; u32 var8005efb0 = 0x00000000; + +#if VERSION >= VERSION_PAL_FINAL +u32 var8005efb0_2 = 0; +#endif + u32 var8005efb4 = 0x00000000; u32 var8005efb8 = 0x3f800000; bool var8005efbc = false; @@ -63,6 +86,11 @@ u32 var8005efcc = 0x00000000; u32 var8005efd0 = 0x00000000; u32 var8005efd4 = 0x00000000; u32 var8005efd8 = 0x00000000; + +#if VERSION >= VERSION_PAL_FINAL +u32 var8005efd8_2 = 0; +#endif + u32 var8005efdc = 0x00000001; u32 var8005efe0 = 0x00000000; u32 var8005efe4 = 0x00000000; @@ -78,6 +106,12 @@ s16 g_NumAnimations = 0x00000000; struct animheader *g_Anims = NULL; u32 var8005f010 = 0x00000000; u32 var8005f014 = 0x00000000; + +#if VERSION >= VERSION_PAL_FINAL +u32 var8005f014_2 = 0; +u32 var8005f014_3 = 0; +#endif + u32 var8005f018 = 0x000000b0; u32 var8005f01c = 0x00000260; u32 var8005f020 = 0x00000000; @@ -2966,6 +3000,17 @@ OSViMode osViModeNtscLan1 = { VINTR(2), // vIntr }}}; +#if VERSION >= VERSION_PAL_FINAL +u32 var80060fe0pf = 0; +u32 var80060fe4pf = 62500000; +s32 osViClock = VI_NTSC_CLOCK; +u32 var80060fecpf = 0; +u32 var80060ff0pf = OS_IM_ALL; +u32 var80060ff4pf = 0; +u32 var80060ff8pf = 0; +u32 var80060ffcpf = 0; +#endif + char ldigs[] = "0123456789abcdef"; char udigs[] = "0123456789ABCDEF"; diff --git a/src/game/explosions/explosions.c b/src/game/explosions/explosions.c index 88068cd9a..4db9b3bfe 100644 --- a/src/game/explosions/explosions.c +++ b/src/game/explosions/explosions.c @@ -4485,7 +4485,7 @@ Gfx *explosionRender(struct prop *prop, Gfx *gdl, bool withalpha) #if PAL tmp = (g_ExplosionTypes[exp->type].flarespeed * 0.83333331346512f) * 15.0f; #else - tmp = g_ExplosionTypes[exp->type].flarespeed *15.0f; + tmp = g_ExplosionTypes[exp->type].flarespeed * 15.0f; #endif for (j = 0; j < ARRAYCOUNT(exp->parts); j++) { diff --git a/src/game/game_000000.c b/src/game/game_000000.c index a8262ab12..aa7f91a32 100644 --- a/src/game/game_000000.c +++ b/src/game/game_000000.c @@ -9,7 +9,7 @@ void func0f000000(void) { s32 i; - if (g_LanguageId != LANGUAGE_ENGLISH) { + if (g_LanguageId != LANGUAGE_NTSC_EN) { var800aabb4 = malloc(0x2e80, MEMPOOL_PERMANENT); var800aabb8 = malloc(0x100, MEMPOOL_PERMANENT); diff --git a/src/game/game_00c490.c b/src/game/game_00c490.c index 649fc3f06..cafa5beda 100644 --- a/src/game/game_00c490.c +++ b/src/game/game_00c490.c @@ -2825,7 +2825,7 @@ void setupParseObjects(s32 stagenum) break; case OBJTYPE_SHIELD: if (withobjs) { - if ((obj->flags2 & diffflag) == 0 || g_LanguageId != LANGUAGE_ENGLISH) { + if ((obj->flags2 & diffflag) == 0 || g_LanguageId != LANGUAGE_NTSC_EN) { struct shieldobj *shield = (struct shieldobj *)obj; shield->initialamount = *(s32 *)&shield->initialamount / 65536.0f; shield->amount = shield->initialamount; diff --git a/src/game/game_010b20.c b/src/game/game_010b20.c index 4f5fcf0ef..53114973d 100644 --- a/src/game/game_010b20.c +++ b/src/game/game_010b20.c @@ -81,9 +81,9 @@ void func0f010bb0(void) 0, 0, 0, - -19.999996185303f, // unk0728 + (PAL ? -16.750415802002f : -19.999996185303f), // unk0728 0, - 19.999996185303f, // unk0730 + (PAL ? 16.750415802002f : 19.999996185303f), // unk0730 0, 0, 0, diff --git a/src/game/game_01d860.c b/src/game/game_01d860.c index 9d3fddbc2..23cf9a37e 100644 --- a/src/game/game_01d860.c +++ b/src/game/game_01d860.c @@ -64,7 +64,7 @@ void func0f01d860(void) { s32 i; - if (g_LanguageId != LANGUAGE_ENGLISH) { + if (g_LanguageId != LANGUAGE_NTSC_EN) { for (i = 0; i != 124; i++) { if (var800aabb8[i].unk00_00) { var800aabb8[i].unk00_00--; diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index 353815b28..b818cccf6 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -25876,7 +25876,11 @@ struct ammotype g_AmmoTypes[] = { { 50, 0, 0 }, { 10, 0, 0 }, { 200, 0, 0 }, +#if PAL + { 15000, 0, 0 }, +#else { 18000, 0, 0 }, +#endif { 4, 0, 0 }, { 200, 0, 0 }, { 2, 0, 0 }, diff --git a/src/game/game_0b69d0.c b/src/game/game_0b69d0.c index 100227ad0..23731b67a 100644 --- a/src/game/game_0b69d0.c +++ b/src/game/game_0b69d0.c @@ -117,12 +117,17 @@ struct vimode g_ViModes[] = { // | | | | | | | | | cinemaheight // | | | | | | | | | | cinematop // | | | | | | | | | | | +#if PAL + { 320, 266, 320, 1, 1, 266, 0, 212, 20, 168, 42 }, // default + { 448, 266, 448, 0.71428567171097, 1, 266, 0, 212, 20, 168, 42 }, // hi-res +#else { 320, 220, 320, 1, 1, 220, 0, 180, 20, 136, 42 }, // default { 640, 220, 640, 0.5, 1, 220, 0, 180, 20, 136, 42 }, // hi-res { 320, 480, 320, 2, 2, 440, 20, 360, 60, 272, 104 }, // unused { 440, 330, 440, 1, 1, 330, 0, 330, 0, 330, 0 }, // unused { 440, 240, 440, 0.72727274894714, 1, 220, 0, 180, 0, 136, 0 }, // unused { 400, 300, 400, 1, 2, 300, 0, 300, 0, 300, 0 }, // unused +#endif }; s32 g_ViMode = VIMODE_DEFAULT; diff --git a/src/game/game_0f09f0.c b/src/game/game_0f09f0.c index 365b90e5e..971782660 100644 --- a/src/game/game_0f09f0.c +++ b/src/game/game_0f09f0.c @@ -19661,9 +19661,9 @@ struct menudialog g_PakRemovedMenuDialog = { }; struct menuitem g_PakRepairSuccessMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, 0x000054b5, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS_181, 0x00000000, NULL }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, 0x00005449, 0x00000000, menuhandler000fcc34 }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_MPWEAPONS_073, 0x00000000, menuhandler000fcc34 }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, }; diff --git a/src/game/game_102240.c b/src/game/game_102240.c index 9c7d1884d..1eddcec74 100644 --- a/src/game/game_102240.c +++ b/src/game/game_102240.c @@ -151,8 +151,8 @@ s32 menuhandlerAimControl(s32 operation, struct menuitem *item, union handlerdat #if PAL u16 options[2][2] = { - L_OPTIONS_201, // "Hold" - L_OPTIONS_202, // "Toggle" + { L_OPTIONS_201, L_OPTIONS_202 }, // "Hold", "Toggle" + { L_MPWEAPONS_276, L_MPWEAPONS_277 }, // "Hold", "Toggle" }; s32 index = 0; @@ -264,6 +264,8 @@ s32 menuhandlerScreenRatio(s32 operation, struct menuitem *item, union handlerda } #if VERSION >= VERSION_PAL_FINAL +u16 var80071ce0pf[] = { 0x5507, 0x5508, 0x5509, 0x550a, 0x550b }; + GLOBAL_ASM( glabel func0f1030e4pf /* f1030e4: 27bdffd8 */ addiu $sp,$sp,-40 @@ -2865,7 +2867,7 @@ struct menudialog g_2PMissionControlStyleMenuDialog = { }; struct menuitem g_SoloMissionControlStyleMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, 0x00000096, menuhandler001024dc }, + { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, PAL ? 0x9c : 0x96, menuhandler001024dc }, { MENUITEMTYPE_CONTROLLER, 0, 0x00000001, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, }; @@ -2880,7 +2882,7 @@ struct menudialog g_SoloMissionControlStyleMenuDialog = { }; struct menuitem g_CiControlStyleMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, 0x00000096, menuhandler001024dc }, + { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, PAL ? 0x9c : 0x96, menuhandler001024dc }, { MENUITEMTYPE_CONTROLLER, 0, 0x00000001, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, }; @@ -2895,7 +2897,7 @@ struct menudialog g_CiControlStyleMenuDialog = { }; struct menuitem g_CiControlStylePlayer2MenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, 0x00000096, menuhandler001024fc }, + { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, PAL ? 0x9c : 0x96, menuhandler001024fc }, { MENUITEMTYPE_CONTROLLER, 0, 0x00000001, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, }; @@ -2914,7 +2916,7 @@ struct menuitem g_AudioOptionsMenuItems[] = { { MENUITEMTYPE_SLIDER, 0, 0x00002800, L_OPTIONS_229, L_MPMENU_000, menuhandlerMusicVolume }, // "Music" { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_230, 0x00000000, menuhandlerSoundMode }, // "Sound Mode" { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_218, 0x00000000, menuhandlerLangFilter }, // "Language Filter" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, PAL ? 0xc8 : 0, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_231, 0x00000000, NULL }, // "" { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, }; @@ -2951,6 +2953,9 @@ struct menuitem g_VideoOptionsMenuItems[] = { { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_215, 0x00000000, menuhandlerScreenSize }, // "Screen Size" { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_216, 0x00000000, menuhandlerScreenRatio }, // "Ratio" { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_217, 0x00000000, menuhandlerHiRes }, // "Hi-Res" +#if PAL + { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS_269, 0x00000000, func0f1030e4pf }, // "Language" +#endif { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_218, 0x00000000, menuhandlerScreenSplit }, // "2-Player Screen Split" { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_170, 0x00000000, menuhandlerAlternativeTitle }, // "Alternative Title Screen" { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x000000c8, 0x00000000, NULL }, @@ -2961,6 +2966,9 @@ struct menuitem g_VideoOptionsMenuItems[] = { struct menuitem g_2PMissionVideoOptionsMenuItems[] = { { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_216, 0x00000000, menuhandlerScreenRatio }, // "Ratio" { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_217, 0x00000000, menuhandlerHiRes }, // "Hi-Res" +#if PAL + { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS_269, 0x00000000, func0f1030e4pf }, // "Language" +#endif { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS_154, 0x00000000, menuhandlerScreenSplit }, // "Split" { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_219, 0x00000000, NULL }, // "Back" @@ -3016,8 +3024,13 @@ struct menuitem g_2PMissionDisplayOptionsVMenuItems[] = { { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_148, 0x00000004, menuhandlerAmmoOnScreen }, // "Show Ammo" { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_149, 0x00000004, menuhandlerShowGunFunction }, // "Gun Function" { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_150, 0x00000004, menuhandlerPaintball }, // "Paintball" +#if VERSION >= VERSION_PAL_FINAL + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_279, 0x00000004, menuhandlerInGameSubtitles }, // "In-Game Subtitles" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_278, 0x00000004, menuhandlerCutsceneSubtitles }, // "Cutscene Subtitles" +#else { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_169, 0x00000004, menuhandlerInGameSubtitles }, // "In-Game Subtitles" { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_168, 0x00000004, menuhandlerCutsceneSubtitles }, // "Cutscene Subtitles" +#endif { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_152, 0x00000004, menuhandlerShowMissionTime }, // "Mission Time" { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_213, 0x00000000, NULL }, // "Back" @@ -3060,17 +3073,17 @@ struct menudialog g_CiDisplayMenuDialog = { }; struct menuitem g_CiDisplayPlayer2MenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056cd, 0x00000005, menuhandlerSightOnScreen }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056ce, 0x00000005, menuhandlerAlwaysShowTarget }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056cf, 0x00000005, menuhandlerShowZoomRange }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056d0, 0x00000005, menuhandlerAmmoOnScreen }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056d1, 0x00000005, menuhandlerShowGunFunction }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056d2, 0x00000005, menuhandlerPaintball }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000054a9, 0x00000005, menuhandlerInGameSubtitles }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000054a8, 0x00000005, menuhandlerCutsceneSubtitles }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056d4, 0x00000005, menuhandlerShowMissionTime }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_205, 0x00000005, menuhandlerSightOnScreen }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_206, 0x00000005, menuhandlerAlwaysShowTarget }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_207, 0x00000005, menuhandlerShowZoomRange }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_208, 0x00000005, menuhandlerAmmoOnScreen }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_209, 0x00000005, menuhandlerShowGunFunction }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_210, 0x00000005, menuhandlerPaintball }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_169, 0x00000005, menuhandlerInGameSubtitles }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_168, 0x00000005, menuhandlerCutsceneSubtitles }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_212, 0x00000005, menuhandlerShowMissionTime }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, 0x000056d5, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_213, 0x00000000, NULL }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, }; @@ -3104,6 +3117,29 @@ struct menudialog g_MissionControlOptionsMenuDialog = { NULL, }; +#if PAL +struct menuitem g_CiControlOptionsMenuItems2[] = { + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS_270, (u32)&func0f105664, menuhandlerControlStyle }, // "Control Style" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_271, 0x00000004, menuhandlerReversePitch }, // "Reverse Pitch" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_272, 0x00000004, menuhandlerLookAhead }, // "Look Ahead" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_273, 0x00000004, menuhandlerHeadRoll }, // "Head Roll" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_274, 0x00000004, menuhandlerAutoAim }, // "Auto-Aim" + { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS_275, 0x00000004, menuhandlerAimControl }, // "Aim Control" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_200, 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +struct menudialog g_CiControlOptionsMenuDialog2 = { + MENUDIALOGTYPE_DEFAULT, + L_OPTIONS_192, // "Control Options" + g_CiControlOptionsMenuItems2, + NULL, + 0x00000000, + NULL, +}; +#endif + struct menuitem g_CiControlOptionsMenuItems[] = { { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_194, (u32)&func0f105664, (void *)&g_CiControlStyleMenuDialog }, // "Control Style" { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_195, 0x00000004, menuhandlerReversePitch }, // "Reverse Pitch" @@ -3126,14 +3162,14 @@ struct menudialog g_CiControlOptionsMenuDialog = { }; struct menuitem g_CiControlPlayer2MenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, 0x000056c2, (u32)&func0f1056a0, (void *)&g_CiControlStylePlayer2MenuDialog }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056c3, 0x00000005, menuhandlerReversePitch }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056c4, 0x00000005, menuhandlerLookAhead }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056c5, 0x00000005, menuhandlerHeadRoll }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056c6, 0x00000005, menuhandlerAutoAim }, - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, 0x000056c7, 0x00000005, menuhandlerAimControl }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_194, (u32)&func0f1056a0, (void *)&g_CiControlStylePlayer2MenuDialog }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_195, 0x00000005, menuhandlerReversePitch }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_196, 0x00000005, menuhandlerLookAhead }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_197, 0x00000005, menuhandlerHeadRoll }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_198, 0x00000005, menuhandlerAutoAim }, + { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_199, 0x00000005, menuhandlerAimControl }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, 0x000056c8, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_200, 0x00000000, NULL }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, }; @@ -3183,7 +3219,11 @@ struct menuitem g_2PMissionOptionsHMenuItems[] = { struct menuitem g_2PMissionOptionsVMenuItems[] = { { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_181, 0x00000000, (void *)&g_2PMissionAudioOptionsVMenuDialog }, // "Audio" { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_182, 0x00000000, (void *)&g_2PMissionVideoOptionsMenuDialog }, // "Video" +#if PAL + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_183, 0x00000000, (void *)&g_CiControlOptionsMenuDialog2 }, // "Control" +#else { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_183, 0x00000000, (void *)&g_MissionControlOptionsMenuDialog }, // "Control" +#endif { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_184, 0x00000000, (void *)&g_2PMissionDisplayOptionsVMenuDialog }, // "Display" { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000064, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, (u32)&menutextPauseOrUnpause, 0x00000000, menuhandlerMpPause }, diff --git a/src/game/game_107fb0.c b/src/game/game_107fb0.c index 38e88ba0d..ec140b1b6 100644 --- a/src/game/game_107fb0.c +++ b/src/game/game_107fb0.c @@ -46,6 +46,8 @@ struct menudialog g_PakNotOriginalMenuDialog; struct pakdata *g_EditingPak; #if VERSION >= VERSION_PAL_FINAL +s32 func0f1088d0pf(s32 operation, struct menuitem *item, union handlerdata *data); + GLOBAL_ASM( glabel func0f1088d0pf /* f1088d0: 27bdffe8 */ addiu $sp,$sp,-24 @@ -68,6 +70,26 @@ glabel func0f1088d0pf /* f108910: 03e00008 */ jr $ra /* f108914: 00000000 */ nop ); + +struct menuitem g_ChooseLanguageMenuItems[] = { + { MENUITEMTYPE_LABEL, 0, 0x00004010, L_MPWEAPONS_261, 0x00000000, 0x00000000 }, // "Choose your language:" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, + { MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_EN, 0x00000020, L_MPWEAPONS_262, 0x00000000, func0f1088d0pf }, // "English" + { MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_FR, 0x00000020, L_MPWEAPONS_263, 0x00000000, func0f1088d0pf }, // "French" + { MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_DE, 0x00000020, L_MPWEAPONS_264, 0x00000000, func0f1088d0pf }, // "German" + { MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_IT, 0x00000020, L_MPWEAPONS_265, 0x00000000, func0f1088d0pf }, // "Italian" + { MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_ES, 0x00000020, L_MPWEAPONS_266, 0x00000000, func0f1088d0pf }, // "Spanish" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, +}; + +struct menudialog g_ChooseLanguageMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_OPTIONS_095, + g_ChooseLanguageMenuItems, + NULL, + 0x00000020, + NULL, +}; #endif char *filemgrGetDeviceName(s32 index) diff --git a/src/game/game_10c9c0.c b/src/game/game_10c9c0.c index 3f1695924..babfd5dac 100644 --- a/src/game/game_10c9c0.c +++ b/src/game/game_10c9c0.c @@ -227,6 +227,9 @@ struct menuitem g_AudioVideo4MbMenuItems[] = { { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_310, 0x00000000, menuhandlerSoundMode }, // "Sound Mode" { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_311, 0x00000000, menuhandlerScreenRatio }, // "Ratio" +#if PAL + { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS_269, 0x00000000, func0f1030e4pf }, // "Language" +#endif { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_312, 0x00000000, NULL }, // "Back" { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, @@ -281,7 +284,7 @@ struct menudialog g_MpQuickGo4MbMenuDialog = { }; struct menuitem g_MpConfirmChallenge4MbMenuItems[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, 0x00000037, NULL }, + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, PAL ? 65 : 55, NULL }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_057, 0x00000000, menuhandler0010cabc }, // "Accept" { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_058, 0x00000000, NULL }, // "Cancel" diff --git a/src/game/game_127910.c b/src/game/game_127910.c index e672b5508..ee5d1f3ce 100644 --- a/src/game/game_127910.c +++ b/src/game/game_127910.c @@ -153,9 +153,9 @@ void playerAllocate(s32 index) 0, 0, 0, - -19.999996185303f, // unk0728 + PAL ? -16.750415802002f : -19.999996185303f, // unk0728 0, - 19.999996185303f, // unk0730 + PAL ? 16.750415802002f : 19.999996185303f, // unk0730 0, 0, 0, diff --git a/src/game/game_1531a0.c b/src/game/game_1531a0.c index 04f4160a0..01a6e1674 100644 --- a/src/game/game_1531a0.c +++ b/src/game/game_1531a0.c @@ -100,6 +100,11 @@ u32 var8007fbbc = 0x0000003c; u32 var8007fbc0 = 0x44444400; u32 var8007fbc4 = 0xffffff00; u32 var8007fbc8 = 0xffffff00; + +#if VERSION >= VERSION_PAL_FINAL +u32 var80080130pf[4] = {0}; +u32 var8007fbd8 = 0x00000000; +#else u32 var8007fbcc = 0x00000c0b; u32 var8007fbd0 = 0x00000000; u32 var8007fbd4 = 0x00000000; @@ -113,6 +118,7 @@ u32 var8007fbf0 = 0x00000000; u32 var8007fbf4 = 0x00000000; u32 var8007fbf8 = 0x00000000; u32 var8007fbfc = 0x00000000; +#endif void func0f1531a0(void) { @@ -6710,7 +6716,7 @@ glabel textMeasure // // // 344 // // Force minimum height for non-English languages -// if (g_LanguageId != LANGUAGE_ENGLISH && lineheight < 14) { +// if (g_LanguageId != LANGUAGE_NTSC_EN && lineheight < 14) { // lineheight = 14; // } // diff --git a/src/game/game_190260.c b/src/game/game_190260.c index e606ef057..c3a00edaa 100644 --- a/src/game/game_190260.c +++ b/src/game/game_190260.c @@ -37,6 +37,15 @@ struct chrdata *g_MpSimulantChrs[MAX_SIMULANTS]; u8 g_NumMpSimulantChrs = 0; struct simdifficulty g_SimDifficulties[] = { +#if PAL + { 75, 0.26175770163536, 0.52351540327072, 500, 10, 0.69802051782608, 0.34901025891304, 833 }, + { 50, 0.12215359508991, 0.24430719017982, 300, 10, 0.49733963608742, 0.13960410654545, 833 }, + { 25, 0.069802053272724, 0.13960410654545, 150, 4, 0.34901025891304, 0.08725256472826, 1250 }, + { 12, 0.026175770908594, 0.069802053272724, 75, 2, 0.24430719017982, 0.034901026636362, 2083 }, + { 0, 0, 0.034901026636362, 37, 1, 0.17450512945652, 0, 3333 }, + { 0, 0, 0, 0, 0, 0.13960410654545, 0, 3333 }, + { 0, 0, 0, 0, 0, 0, 0, 0 }, +#else { 90, 0.26175770163536, 0.52351540327072, 600, 10, 0.69802051782608, 0.34901025891304, 1000 }, { 60, 0.12215359508991, 0.24430719017982, 360, 10, 0.49733963608742, 0.13960410654545, 1000 }, { 30, 0.069802053272724, 0.13960410654545, 180, 4, 0.34901025891304, 0.08725256472826, 1500 }, @@ -44,6 +53,7 @@ struct simdifficulty g_SimDifficulties[] = { { 0, 0, 0.034901026636362, 45, 1, 0.17450512945652, 0, 4000 }, { 0, 0, 0, 0, 0, 0.13960410654545, 0, 4000 }, { 0, 0, 0, 0, 0, 0, 0, 0 }, +#endif }; u32 g_MpBotCommands[NUM_MPBOTCOMMANDS] = { diff --git a/src/game/game_197600.c b/src/game/game_197600.c index 71b166f62..349454455 100644 --- a/src/game/game_197600.c +++ b/src/game/game_197600.c @@ -78,7 +78,11 @@ struct aibotweaponpreference g_AibotWeaponPreferences[] = { /*0x2e*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 1, 0 }, // WEAPON_EYESPY /*0x2f*/ { 4, 4, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 1, 0 }, // WEAPON_XRAYSCANNER /*0x30*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 1, 0 }, // WEAPON_IRSCANNER +#if PAL + /*0x31*/ { 218, 218, 0, 0, 0, 0, 2, 2, 1000, 0, 0, 0, 1, 0 }, // WEAPON_CLOAKINGDEVICE +#else /*0x31*/ { 218, 218, 0, 0, 0, 0, 2, 2, 1200, 0, 0, 0, 1, 0 }, // WEAPON_CLOAKINGDEVICE +#endif /*0x32*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 1, 0 }, // WEAPON_HORIZONSCANNER /*0x33*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 1, 0 }, // WEAPON_TESTER /*0x34*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 1, 0 }, // WEAPON_ROCKETLAUNCHER_34 diff --git a/src/game/inventory/items.c b/src/game/inventory/items.c index e50970abd..fdd0af739 100644 --- a/src/game/inventory/items.c +++ b/src/game/inventory/items.c @@ -2349,7 +2349,7 @@ struct weapon invitem_laptopgun = { 1, // unk38 invf_00012fc8, // fptr invpartvisibility_laptopgun, // part visibility - L_GUN_024, // short name + PAL ? 0x4cfb : L_GUN_024, // short name L_GUN_024, // name L_GUN_150, // manufacturer L_GUN_172, // description @@ -2462,7 +2462,7 @@ struct weapon invitem_shotgun = { 1, // unk38 invf_000131dc, // fptr invpartvisibility_shotgun, // part visibility - L_GUN_025, // short name + PAL ? 0x4cfd : L_GUN_025, // short name L_GUN_025, // name L_GUN_149, // manufacturer L_GUN_173, // description @@ -3029,7 +3029,7 @@ struct weapon invitem_timedmine = { 1, // unk38 NULL, // fptr NULL, // part visibility - L_GUN_038, // short name + PAL ? 0x4cff : L_GUN_038, // short name L_GUN_038, // name L_GUN_000, // manufacturer L_GUN_185, // description @@ -3119,7 +3119,7 @@ struct weapon invitem_remotemine = { 1, // unk38 invf_00013b40, // fptr invpartvisibility_remotemine, // part visibility - L_GUN_040, // short name + PAL ? 0x4cfc : L_GUN_040, // short name L_GUN_040, // name L_GUN_000, // manufacturer L_GUN_187, // description @@ -3776,7 +3776,7 @@ struct weapon invitem_tranquilizer = { 1, // unk38 invf_00014314, // fptr invpartvisibility_tranquilizer, // part visibility - L_GUN_034, // short name + PAL ? 0x4cf7 : L_GUN_034, // short name L_GUN_034, // name L_GUN_000, // manufacturer L_GUN_181, // description @@ -3939,7 +3939,7 @@ struct weapon invitem_sniperrifle = { 1, // unk38 invf_00014590, // fptr invpartvisibility_sniperrifle, // part visibility - L_GUN_032, // short name + PAL ? 0x4cfe : L_GUN_032, // short name L_GUN_032, // name L_GUN_000, // manufacturer L_GUN_179, // description @@ -4940,7 +4940,7 @@ struct weapon invitem_nightvision = { 1, // unk38 NULL, // fptr NULL, // part visibility - L_GUN_059, // short name + PAL ? 0x4cf4 : L_GUN_059, // short name L_GUN_059, // name L_GUN_000, // manufacturer L_GUN_191, // description @@ -5125,7 +5125,7 @@ struct weapon invitem_suicidepill = { 1, // unk38 NULL, // fptr NULL, // part visibility - L_GUN_072, // short name + PAL ? 0x4cf6 : L_GUN_072, // short name L_GUN_072, // name L_GUN_000, // manufacturer L_GUN_000, // description @@ -5196,7 +5196,7 @@ struct weapon invitem_disguise40 = { 1, // unk38 NULL, // fptr NULL, // part visibility - L_GUN_043, // short name + PAL ? 0x4cfa : L_GUN_043, // short name L_GUN_043, // name L_GUN_000, // manufacturer L_GUN_211, // description @@ -5221,7 +5221,7 @@ struct weapon invitem_disguise41 = { 1, // unk38 NULL, // fptr NULL, // part visibility - L_GUN_043, // short name + PAL ? 0x4cfa : L_GUN_043, // short name L_GUN_043, // name L_GUN_000, // manufacturer L_GUN_211, // description @@ -5382,7 +5382,7 @@ struct weapon invitem_datauplink = { 1, // unk38 NULL, // fptr NULL, // part visibility - L_GUN_075, // short name + PAL ? 0x4cf3 : L_GUN_075, // short name L_GUN_075, // name L_GUN_000, // manufacturer L_GUN_197, // description @@ -5408,7 +5408,7 @@ struct weapon invitem_doordecoder = { 1, // unk38 NULL, // fptr NULL, // part visibility - L_GUN_063, // short name + PAL ? 0x4cf5 : L_GUN_063, // short name L_GUN_063, // name L_GUN_000, // manufacturer L_GUN_200, // description @@ -5637,7 +5637,7 @@ struct weapon invitem_autosurgeon = { 1, // unk38 NULL, // fptr NULL, // part visibility - L_GUN_220, // short name + PAL ? 0x4cf8 : L_GUN_220, // short name L_GUN_220, // name L_GUN_000, // manufacturer L_GUN_201, // description @@ -5715,7 +5715,7 @@ struct weapon invitem_backupdisk = { 1, // unk38 NULL, // fptr NULL, // part visibility - L_GUN_227, // short name + PAL ? 0x4cf9 : L_GUN_227, // short name L_GUN_227, // name L_GUN_000, // manufacturer L_GUN_209, // description diff --git a/src/game/lang.c b/src/game/lang.c index dde863530..c624e0a06 100644 --- a/src/game/lang.c +++ b/src/game/lang.c @@ -372,10 +372,10 @@ s32 langGetLanguageId(void) s32 ret = g_LanguageId; return ret + 2; #else - s32 ret = LANGUAGE_ENGLISH; + s32 ret = LANGUAGE_NTSC_EN; - if (g_LanguageId != LANGUAGE_ENGLISH) { - ret = LANGUAGE_JAPANESE; + if (g_LanguageId != LANGUAGE_NTSC_EN) { + ret = LANGUAGE_NTSC_JP; } return ret; diff --git a/src/game/menu/items.c b/src/game/menu/items.c index 924ecc98b..210a65233 100644 --- a/src/game/menu/items.c +++ b/src/game/menu/items.c @@ -6281,16 +6281,12 @@ Gfx *menuRenderItemScrollable(Gfx *gdl, struct menurendercontext *context) return func0f153780(gdl); } -#if PAL -u32 g_SomePalVar = 0; // temporary placeholder variable -#endif - bool menuTickItemScrollable(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemdata *data) { u32 stack; #if PAL - if ((s16)frame->height != data->scrollable.unk06 || data->scrollable.unk08 != g_SomePalVar) { + if ((s16)frame->height != data->scrollable.unk06 || data->scrollable.unk08 != g_LanguageId) { #else if ((s16)frame->height != data->scrollable.unk06) { #endif @@ -6304,7 +6300,7 @@ bool menuTickItemScrollable(struct menuitem *item, struct menuframe *frame, stru s16 hvalue; #if PAL - data->scrollable.unk08 = g_SomePalVar; + data->scrollable.unk08 = g_LanguageId; #endif func0f0f2354(frame, item, &index1, &index2); @@ -6869,15 +6865,15 @@ u32 var800711ec = 0x20000000; u32 var800711f0 = 0x00000002; u32 var800711f4 = 0x0000000c; -u32 var800711f8 = 0x0000000a; +u32 var800711f8 = PAL ? -1 : 10; u32 var800711fc = 0xffffffff; -u32 var80071200 = 0x00000003; +u32 var80071200 = PAL ? 10 : 3; u32 var80071204 = 0x00000033; -u32 var80071208 = 0x0000000a; +u32 var80071208 = PAL ? -1 : 10; u32 var8007120c = 0xffffffff; -u32 var80071210 = 0x00000003; +u32 var80071210 = PAL ? 10 : 3; u32 var80071214 = 0x0000000c; -u32 var80071218 = 0x00000003; +u32 var80071218 = PAL ? -1 : 3; u32 var8007121c = 0x0000004b; u32 var80071220 = 0xffffffff; u32 var80071224 = 0x00000037; @@ -6887,9 +6883,9 @@ u32 var80071230 = 0xffffffff; u32 var80071234 = 0x0000003f; u32 var80071238 = 0x00000013; u32 var8007123c = 0xffffffff; -u32 var80071240 = 0x0000000a; +u32 var80071240 = PAL ? 7 : 10; u32 var80071244 = 0x0000003f; -u32 var80071248 = 0x0000000a; +u32 var80071248 = PAL ? 7 : 10; u32 var8007124c = 0x0000004b; u32 var80071250 = 0xffffffff; u32 var80071254 = 0x00000033; @@ -6903,9 +6899,9 @@ u32 var80071270 = 0xffffffff; u32 var80071274 = 0x00000043; u32 var80071278 = 0x00000017; u32 var8007127c = 0xffffffff; -u32 var80071280 = 0x00000011; +u32 var80071280 = PAL ? 15 : 17; u32 var80071284 = 0x00000043; -u32 var80071288 = 0x00000011; +u32 var80071288 = PAL ? 15 : 17; u32 var8007128c = 0x0000004b; u32 var80071290 = 0xffffffff; u32 var80071294 = 0x00000037; @@ -6915,9 +6911,9 @@ u32 var800712a0 = 0xffffffff; u32 var800712a4 = 0x00000047; u32 var800712a8 = 0x0000001b; u32 var800712ac = 0xffffffff; -u32 var800712b0 = 0x00000018; +u32 var800712b0 = PAL ? 23 : 24; u32 var800712b4 = 0x00000047; -u32 var800712b8 = 0x00000018; +u32 var800712b8 = PAL ? 23 : 24; u32 var800712bc = 0x0000004b; u32 var800712c0 = 0xffffffff; u32 var800712c4 = 0x00000031; @@ -6927,9 +6923,9 @@ u32 var800712d0 = 0xffffffff; u32 var800712d4 = 0x0000002b; u32 var800712d8 = 0x0000001c; u32 var800712dc = 0xffffffff; -u32 var800712e0 = 0x00000026; +u32 var800712e0 = PAL ? 39 : 38; u32 var800712e4 = 0x0000002b; -u32 var800712e8 = 0x00000026; +u32 var800712e8 = PAL ? 39 : 38; u32 var800712ec = 0x0000004b; u32 var800712f0 = 0xffffffff; u32 var800712f4 = 0x0000001e; @@ -6939,21 +6935,21 @@ u32 var80071300 = 0xffffffff; u32 var80071304 = 0x00000025; u32 var80071308 = 0x00000023; u32 var8007130c = 0xffffffff; -u32 var80071310 = 0x0000002d; +u32 var80071310 = PAL ? 47 : 45; u32 var80071314 = 0x00000025; -u32 var80071318 = 0x0000002d; +u32 var80071318 = PAL ? 47 : 45; u32 var8007131c = 0x0000004b; u32 var80071320 = 0xffffffff; u32 var80071324 = 0x00000022; -u32 var80071328 = 0x00000034; +u32 var80071328 = PAL ? 55 : 52; u32 var8007132c = 0x0000004b; u32 var80071330 = 0xffffffff; u32 var80071334 = 0x0000000c; u32 var80071338 = 0x0000001e; u32 var8007133c = 0xffffffff; -u32 var80071340 = 0x0000003b; +u32 var80071340 = PAL ? 63 : 59; u32 var80071344 = 0x0000000c; -u32 var80071348 = 0x0000003b; +u32 var80071348 = PAL ? 63 : 59; u32 var8007134c = 0x0000004b; u32 var80071350 = 0xffffffff; @@ -7855,14 +7851,14 @@ u16 var80071354[][9] = { /*1*/ { L_MPWEAPONS_194, L_MPWEAPONS_200, L_MPWEAPONS_202, L_MPWEAPONS_201, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_207, L_MPWEAPONS_205, L_MPWEAPONS_210 }, /*2*/ { L_MPWEAPONS_203, L_MPWEAPONS_196, L_MPWEAPONS_202, L_MPWEAPONS_197, L_MPWEAPONS_205, L_MPWEAPONS_204, L_MPWEAPONS_206, L_MPWEAPONS_194, L_MPWEAPONS_210 }, /*3*/ { L_MPWEAPONS_203, L_MPWEAPONS_200, L_MPWEAPONS_202, L_MPWEAPONS_201, L_MPWEAPONS_205, L_MPWEAPONS_204, L_MPWEAPONS_207, L_MPWEAPONS_194, L_MPWEAPONS_210 }, - /*4*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_211, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_206, L_MPWEAPONS_205, L_OPTIONS_003 }, - /*5*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_211, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_207, L_MPWEAPONS_205, L_OPTIONS_003 }, - /*6*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_211, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_206, L_MPWEAPONS_194, L_OPTIONS_003 }, - /*7*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_211, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_207, L_MPWEAPONS_194, L_OPTIONS_003 }, - /*8*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_212, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_209, L_MPWEAPONS_194, L_OPTIONS_003 }, - /*9*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_212, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_208, L_MPWEAPONS_194, L_OPTIONS_003 }, - /*10*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_212, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_209, L_MPWEAPONS_205, L_OPTIONS_003 }, - /*11*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_212, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_208, L_MPWEAPONS_205, L_OPTIONS_003 }, + /*4*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_211, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_206, L_MPWEAPONS_205, L_OPTIONS_003 }, + /*5*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_211, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_207, L_MPWEAPONS_205, L_OPTIONS_003 }, + /*6*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_211, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_206, L_MPWEAPONS_194, L_OPTIONS_003 }, + /*7*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_211, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_207, L_MPWEAPONS_194, L_OPTIONS_003 }, + /*8*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_212, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_209, L_MPWEAPONS_194, L_OPTIONS_003 }, + /*9*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_212, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_208, L_MPWEAPONS_194, L_OPTIONS_003 }, + /*10*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_212, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_209, L_MPWEAPONS_205, L_OPTIONS_003 }, + /*11*/ { L_OPTIONS_003, L_OPTIONS_003, L_MPWEAPONS_212, L_OPTIONS_003, L_MPWEAPONS_203, L_MPWEAPONS_204, L_MPWEAPONS_208, L_MPWEAPONS_205, L_OPTIONS_003 }, }; u16 menuControllerGetButtonAction(s32 mode, s32 buttonnum) diff --git a/src/game/mplayer/setup.c b/src/game/mplayer/setup.c index de1152538..f0aedb742 100644 --- a/src/game/mplayer/setup.c +++ b/src/game/mplayer/setup.c @@ -463,8 +463,13 @@ s32 menuhandlerMpControlCheckbox(s32 operation, struct menuitem *item, union han s32 menuhandlerMpAimControl(s32 operation, struct menuitem *item, union handlerdata *data) { u16 labels[] = { +#if PAL + L_MPWEAPONS_276, // "Hold" + L_MPWEAPONS_277, // "Toggle" +#else L_MPMENU_213, // "Hold" L_MPMENU_214, // "Toggle" +#endif }; switch (operation) { @@ -3860,20 +3865,20 @@ struct menudialog g_MpAutoTeamMenuDialog = { struct menuitem g_MpTeamsMenuItems[] = { { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_071, 0x00000002, menuhandlerMpTeamsEnabled }, // "Teams Enabled" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, PAL ? 0x85 : 0, 0x00000000, NULL }, { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU_072, 0x00000000, menuhandlerMpTeamsLabel }, // "Teams:" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 1, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 2, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 3, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 4, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 5, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 6, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 7, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 8, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 9, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 10, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 11, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 0, PAL ? 0x00021000 : 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 1, PAL ? 0x00021000 : 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 2, PAL ? 0x00021000 : 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 3, PAL ? 0x00021000 : 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 4, PAL ? 0x00021000 : 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 5, PAL ? 0x00021000 : 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 6, PAL ? 0x00021000 : 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 7, PAL ? 0x00021000 : 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 8, PAL ? 0x00021000 : 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 9, PAL ? 0x00021000 : 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 10, PAL ? 0x00021000 : 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 11, PAL ? 0x00021000 : 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_073, 0x00000000, (void *)&g_MpAutoTeamMenuDialog }, // "Auto Team..." { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_074, 0x00000000, NULL }, // "Back" @@ -4801,7 +4806,7 @@ struct menudialog g_MpTeamNamesMenuDialog = { }; struct menuitem g_MpConfirmChallengeViaListOrDetailsMenuItems[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, 0x00000037, NULL }, + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, PAL ? 0x41 : 0x37, NULL }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU_057, 0x00000000, menuhandler0017e38c }, // "Accept" { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_058, 0x00000000, NULL }, // "Cancel" @@ -4819,7 +4824,7 @@ struct menudialog g_MpConfirmChallengeViaListOrDetailsMenuDialog = { struct menuitem g_MpChallengesListOrDetailsMenuItems[] = { { MENUITEMTYPE_LIST, 0, 0x00200000, 0x00000078, 0x0000004d, menuhandler0017e4d4 }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCHALLENGE, 0x00000000, 0x0000007c, 0x00000037, menuhandler0017e9d8 }, + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCHALLENGE, 0x00000000, 0x0000007c, PAL ? 0x41 : 0x37, menuhandler0017e9d8 }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, menuhandler0017e9d8 }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS_171, 0x00000000, menuhandlerMpStartChallenge }, // "Start Challenge" { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_051, 0x00000000, menuhandlerMpAbortChallenge }, // "Abort Challenge" @@ -4847,7 +4852,7 @@ struct menudialog g_MpChallengeListOrDetailsViaAdvChallengeMenuDialog = { }; struct menuitem g_MpConfirmChallengeMenuItems[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, 0x00000037, NULL }, + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, PAL ? 0x41 : 0x37, NULL }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_057, 0x00000000, menuhandler0017ec64 }, // "Accept" { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_058, 0x00000000, NULL }, // "Cancel" diff --git a/src/game/music.c b/src/game/music.c index 4d6c64578..2e5284f97 100644 --- a/src/game/music.c +++ b/src/game/music.c @@ -32,7 +32,7 @@ s32 var800840e8 = 0; u16 var800840ec = 0x5000; u32 var800840f0 = 0x00000000; u32 var800840f4 = 0x00000000; -u32 var800840f8 = 0x00000078; +u32 var800840f8 = PAL ? 100 : 120; u32 var800840fc = 0x00000000; char *var80084100[] = { @@ -45,6 +45,11 @@ char *var80084100[] = { "paused", }; +#if PAL +u32 var8008465cpf = 0; +u32 var80084660pf = 0; +#endif + const char var7f1b7918[] = "MUSIC : activedeath=%d\n"; u16 musicGetVolume(void) diff --git a/src/game/propobj.c b/src/game/propobj.c index d9049fc16..67766481f 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -154,7 +154,11 @@ s32 var80069964 = -1; struct autogunobj *g_ThrownLaptops = NULL; struct var8006996c *var8006996c = NULL; s32 g_MaxThrownLaptops = 0; + +#if VERSION < VERSION_PAL_FINAL u32 var80069974 = 0x00000000; +#endif + u32 var80069978 = 0x00000000; u32 var8006997c = 0x00000000; u32 var80069980 = 0x0100000f; @@ -211,6 +215,71 @@ struct prop *g_Lifts[MAX_LIFTS] = {NULL}; u32 var80069a70 = 0x42b40000; u32 var80069a74 = 0x3f800000; u32 var80069a78 = 0x40000000; + +#if VERSION >= VERSION_PAL_FINAL +u32 var80069a7c = 0x3a9d4952; +u32 var80069a80 = 0x3f99999a; +u32 var80069a84 = 0x3bcddaca; +u32 var80069a88 = 0x3bcddaca; +u32 var80069a8c = 0x3752cb90; +u32 var80069a90 = 0x39c59ed7; +u32 var80069a94 = 0x3bcddaca; +u32 var80069a98 = 0x3bcddaca; +u32 var80069a9c = 0x3752cb90; +u32 var80069aa0 = 0x39c59ed7; +u32 var80069aa4 = 0x42a00000; +u32 var80069aa8 = 0x3f800000; +u32 var80069aac = 0x40400000; +u32 var80069ab0 = 0x3b449ba6; +u32 var80069ab4 = 0x3df5c290; +u32 var80069ab8 = 0x3c4ddaca; +u32 var80069abc = 0x3c9a6417; +u32 var80069ac0 = 0x37d2cb90; +u32 var80069ac4 = 0x3a459ed7; +u32 var80069ac8 = 0x3c4ddaca; +u32 var80069acc = 0x3c9a6417; +u32 var80069ad0 = 0x37d2cb90; +u32 var80069ad4 = 0x3a459ed7; +u32 var80069ad8 = 0x428c0000; +u32 var80069adc = 0x40000000; +u32 var80069ae0 = 0x40800000; +u32 var80069ae4 = 0x3a9d4952; +u32 var80069ae8 = 0x3f99999a; +u32 var80069aec = 0x3bcddaca; +u32 var80069af0 = 0x3c4ddaca; +u32 var80069af4 = 0x3752cb90; +u32 var80069af8 = 0x39c59ed7; +u32 var80069afc = 0x3bcddaca; +u32 var80069b00 = 0x3c4ddaca; +u32 var80069b04 = 0x3752cb90; +u32 var80069b08 = 0x39c59ed7; +u32 var80069b0c = 0x432a0000; +u32 var80069b10 = 0x40000000; +u32 var80069b14 = 0x40000000; +u32 var80069b18 = 0x3a9d4952; +u32 var80069b1c = 0x3f99999a; +u32 var80069b20 = 0x3b4ddaca; +u32 var80069b24 = 0x3b4ddaca; +u32 var80069b28 = 0x36d2cb90; +u32 var80069b2c = 0x396d2501; +u32 var80069b30 = 0x3b4ddaca; +u32 var80069b34 = 0x3b4ddaca; +u32 var80069b38 = 0x36d2cb90; +u32 var80069b3c = 0x396d2501; +u32 var80069b40 = 0x432a0000; +u32 var80069b44 = 0x40000000; +u32 var80069b48 = 0x40000000; +u32 var80069b4c = 0x3a9d4952; +u32 var80069b50 = 0x3f99999a; +u32 var80069b54 = 0x3b4ddaca; +u32 var80069b58 = 0x3b4ddaca; +u32 var80069b5c = 0x36d2cb90; +u32 var80069b60 = 0x396d2501; +u32 var80069b64 = 0x3b4ddaca; +u32 var80069b68 = 0x3b4ddaca; +u32 var80069b6c = 0x36d2cb90; +u32 var80069b70 = 0x396d2501; +#else u32 var80069a7c = 0x3a83126f; u32 var80069a80 = 0x3f800000; u32 var80069a84 = 0x3bcddaca; @@ -273,6 +342,8 @@ u32 var80069b64 = 0x3b4ddaca; u32 var80069b68 = 0x3b4ddaca; u32 var80069b6c = 0x36afa9a2; u32 var80069b70 = 0x39459ed6; +#endif + u32 var80069b74 = 0x00000000; u32 var80069b78 = 0x00000000; u32 var80069b7c = 0x00000000; @@ -297,7 +368,10 @@ u32 var80069bc4 = 0x00000000; u32 var80069bc8 = 0x00000003; u32 var80069bcc = 0x00000014; u32 var80069bd0 = 0x00000078; + +#if VERSION < VERSION_PAL_FINAL u32 g_DebugDoor = 0; +#endif struct escastepkeyframe g_EscaStepKeyframesX[] = { { 0, { -1535.98, -511, -5258.18 } }, @@ -49892,7 +49966,116 @@ void ammotypeGetPickedUpText(char *dst) #endif #if VERSION >= VERSION_PAL_FINAL -u32 var8006a944pf = 0; +u32 var8006a944pf[] = { + 0x000003e7, 0x52095246, 0x01010600, 0x07000000, + 0x00000009, 0x52145215, 0x01010101, 0x01000000, + 0x00000003, 0x522a5241, 0x01010102, 0x01000000, + 0x00000005, 0x520a5247, 0x01010201, 0x02000000, + 0x00000006, 0x522b5242, 0x02010201, 0x01000000, + 0x00000007, 0x520d524a, 0x01010202, 0x02000000, + 0x00000008, 0x520f524c, 0x01010201, 0x01000000, + 0x0000000a, 0x520b5248, 0x01010202, 0x02000000, + 0x0000000b, 0x520e524b, 0x01010201, 0x02000000, + 0x0000000c, 0x5211524e, 0x01010202, 0x02000000, + 0x0000000d, 0x5212524f, 0x01010202, 0x02000000, + 0x0000000e, 0x52135250, 0x01010202, 0x02000000, + 0x0000000f, 0x522c5243, 0x01010600, 0x07000000, + 0x00000010, 0x5210524d, 0x01010201, 0x01000000, + 0x00000011, 0x52165251, 0x01010201, 0x02000000, + 0x00000012, 0x52175252, 0x02010202, 0x02000000, + 0x00000013, 0x52185253, 0x05050105, 0x05000000, + 0x00000016, 0x52185253, 0x05050105, 0x05000000, + 0x00000014, 0x522d5244, 0x81018181, 0x81000000, + 0x00000015, 0x522e5245, 0x01010201, 0x02000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000002, 0x4c070000, 0x01010102, 0x02000000, + 0x00000003, 0x4c080000, 0x01010102, 0x02000000, + 0x00000004, 0x4c090000, 0x01010102, 0x02000000, + 0x00000005, 0x4c0a0000, 0x01010102, 0x02000000, + 0x00000006, 0x4c0b0000, 0x01010102, 0x02000000, + 0x00000007, 0x4c0e0000, 0x01010102, 0x02000000, + 0x00000008, 0x4c0c0000, 0x01010102, 0x02000000, + 0x00000009, 0x4c0d0000, 0x01010102, 0x02000000, + 0x0000000a, 0x4c0f0000, 0x01010101, 0x02000000, + 0x0000000b, 0x4c140000, 0x01010102, 0x02000000, + 0x0000000c, 0x4c170000, 0x01010102, 0x02000000, + 0x0000000d, 0x4c160000, 0x02010102, 0x02000000, + 0x0000000e, 0x4c180000, 0x01010101, 0x02000000, + 0x0000000f, 0x4c110000, 0x01010102, 0x02000000, + 0x00000010, 0x4c130000, 0x01010101, 0x02000000, + 0x00000011, 0x4c100000, 0x02010102, 0x03000000, + 0x00000012, 0x4c120000, 0x01010102, 0x02000000, + 0x00000013, 0x4c190000, 0x01010102, 0x02000000, + 0x00000014, 0x4c1a0000, 0x03010102, 0x01000000, + 0x00000015, 0x4c200000, 0x01010101, 0x01000000, + 0x00000016, 0x4c1f0000, 0x01010101, 0x02000000, + 0x00000017, 0x4c1c0000, 0x01010101, 0x01000000, + 0x00000018, 0x4c1b0000, 0x01010101, 0x01000000, + 0x00000019, 0x4c1d0000, 0x01010101, 0x01000000, + 0x0000001a, 0x4c230000, 0x01010101, 0x01000000, + 0x0000001b, 0x4c210000, 0x01010202, 0x02000000, + 0x0000001c, 0x4c220000, 0x01010101, 0x01000000, + 0x0000001d, 0x4c2f0000, 0x01010101, 0x01000000, + 0x0000001e, 0x4c240000, 0x01010202, 0x02000000, + 0x0000001f, 0x4c250000, 0x02010202, 0x02000000, + 0x00000020, 0x4c260000, 0x01010202, 0x02000000, + 0x00000021, 0x4c270000, 0x01010202, 0x02000000, + 0x00000022, 0x4c280000, 0x01010202, 0x02000000, + 0x00000023, 0x4c4a4cf2, 0x05050505, 0x05000000, + 0x00000024, 0x4c320000, 0x01010102, 0x02000000, + 0x00000025, 0x4c330000, 0x01010102, 0x02000000, + 0x00000026, 0x4c340000, 0x01010102, 0x02000000, + 0x00000027, 0x4c350000, 0x01010102, 0x02000000, + 0x00000028, 0x4c360000, 0x01010102, 0x02000000, + 0x00000029, 0x4c370000, 0x01010101, 0x02000000, + 0x0000002a, 0x4c380000, 0x02010102, 0x03000000, + 0x0000002b, 0x4c390000, 0x02010102, 0x02000000, + 0x0000002c, 0x4c310000, 0x01010102, 0x02000000, + 0x0000002d, 0x4c3b0000, 0x01010200, 0x00000000, + 0x0000002e, 0x4c3c0000, 0x09010909, 0x09000000, + 0x000003e6, 0x4c3d0000, 0x09010909, 0x09000000, + 0x000003e5, 0x4c3e0000, 0x09010909, 0x09000000, + 0x0000002f, 0x4c410000, 0x02010101, 0x04000000, + 0x00000030, 0x4c450000, 0x01010101, 0x04000000, + 0x00000031, 0x4c490000, 0x01010101, 0x01000000, + 0x00000032, 0x4c4c0000, 0x02010101, 0x01000000, + 0x00000035, 0x4c290000, 0x02010202, 0x02000000, + 0x00000036, 0x4c4b0000, 0x01010101, 0x01000000, + 0x00000037, 0x4c460000, 0x01010101, 0x01000000, + 0x00000038, 0x4cdb0000, 0x01010100, 0x00000000, + 0x00000039, 0x4c3f0000, 0x01010101, 0x01000000, + 0x0000003a, 0x4cdc0000, 0x01010100, 0x01000000, + 0x0000003b, 0x4c400000, 0x05050503, 0x00000000, + 0x0000003c, 0x4cdd0000, 0x01010100, 0x00000000, + 0x0000003d, 0x4cde0000, 0x01010100, 0x00000000, + 0x0000003e, 0x4cdf0000, 0x01010100, 0x00000000, + 0x0000003f, 0x4ce00000, 0x01010100, 0x00000000, + 0x00000040, 0x4c2b0000, 0x01010101, 0x01000000, + 0x00000041, 0x4c2b0000, 0x01010101, 0x01000000, + 0x00000042, 0x4ce10000, 0x01010100, 0x00000000, + 0x00000043, 0x4ce20000, 0x01010100, 0x00000000, + 0x00000044, 0x4ce30000, 0x01010100, 0x00000000, + 0x00000045, 0x4ce40000, 0x01010100, 0x00000000, + 0x00000046, 0x4ce40000, 0x01010100, 0x00000000, + 0x00000047, 0x4ce40000, 0x01010100, 0x00000000, + 0x00000048, 0x4ce40000, 0x01010100, 0x00000000, + 0x00000049, 0x4ce40000, 0x01010100, 0x00000000, + 0x0000004a, 0x4ce40000, 0x01010100, 0x00000000, + 0x0000004b, 0x4ce40000, 0x01010100, 0x00000000, + 0x0000004c, 0x4ce40000, 0x01010100, 0x00000000, + 0x0000004d, 0x4c430000, 0x01010202, 0x02000000, + 0x0000004e, 0x4ce50000, 0x01010201, 0x02000000, + 0x0000004f, 0x4cf00000, 0x01010500, 0x00000000, + 0x00000050, 0x4ce60000, 0x01010100, 0x00000000, + 0x0000005d, 0x4c480000, 0x01010202, 0x02000000, + 0x00000053, 0x4c2c0000, 0x01010201, 0x01000000, + 0x00000054, 0x4c2d0000, 0x01010201, 0x01000000, + 0x00000055, 0x4c2e0000, 0x01010201, 0x02000000, + 0x00000056, 0x4c300000, 0x01010102, 0x01000000, + 0x00000057, 0x4c470000, 0x03010201, 0x02000000, + 0x00000058, 0x4c2c0000, 0x01010201, 0x02000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, +}; const char varf71ab2f8pf[] = "%s%s"; const char varf71ab300pf[] = "%s"; @@ -50670,17 +50853,17 @@ void ammotypeGetPickupMessage(char *dst, s32 ammotype, s32 qty) *dst = '\0'; #if VERSION >= VERSION_PAL_FINAL - if (g_LanguageId != LANGUAGE_ENGLISH) { + if (g_LanguageId != LANGUAGE_NTSC_EN) { strcat(dst, "\n"); } else { if (ammotype == AMMOTYPE_PISTOL || ammotype == AMMOTYPE_SMG || ammotype == AMMOTYPE_RIFLE) { ammotype = 999; } - func0f0878c8pf(dst, ammotype, qty > 1, !full, 0, &var8006a944pf); + func0f0878c8pf(dst, ammotype, qty > 1, !full, 0, var8006a944pf); } #else - if (g_LanguageId != LANGUAGE_ENGLISH) { + if (g_LanguageId != LANGUAGE_NTSC_EN) { ammotypeGetPickupName(dst, ammotype, qty); if (full) { @@ -51026,7 +51209,7 @@ void weaponGetPickupText(char *buffer, s32 weaponnum, bool dual) if (dual) { strcat(buffer, langGet(L_PROPOBJ_001)); // "Double" } else { - if (g_LanguageId == LANGUAGE_ENGLISH) { + if (g_LanguageId == LANGUAGE_NTSC_EN) { if (full) { strcat(buffer, langGet(L_PROPOBJ_000)); // "Picked up" @@ -51082,7 +51265,7 @@ void weaponGetPickupText(char *buffer, s32 weaponnum, bool dual) } // For JPN, their translation of "picked up" comes after the weapon name - if (g_LanguageId != LANGUAGE_ENGLISH && full) { + if (g_LanguageId != LANGUAGE_NTSC_EN && full) { if (buffer[strlen(buffer) - 1] == '\n') { buffer[strlen(buffer) - 1] = '\0'; } @@ -61902,5 +62085,3 @@ u32 var8006adf8 = 0x00000000; u32 var8006adfc = 0x00000000; u32 var8006ae00 = 0x00000000; u32 var8006ae04 = 0x00000000; -u32 var8006ae08 = 0x00000000; -u32 var8006ae0c = 0x00000000; diff --git a/src/game/smoke/smoke.c b/src/game/smoke/smoke.c index 71995071a..aa4261816 100644 --- a/src/game/smoke/smoke.c +++ b/src/game/smoke/smoke.c @@ -38,33 +38,59 @@ struct smoketype g_SmokeTypes[NUM_SMOKETYPES] = { // | | spreadspeed // | | | size // | | | | bgrotatespeed - // | | | | | colour - // | | | | | | fgrotatespeed - // | | | | | | | numclouds - // | | | | | | | | - /*00*/ { 1, 60, 99, 0, 0, 0x80808000, 0.3, 120, 0.15, 0.3, 1 }, // SMOKETYPE_NONE - /*01*/ { 220, 60, 45, 60, 0.02, 0x50506000, 0.3, 120, 0.15, 0.3, 1 }, // SMOKETYPE_ELECTRICAL - /*02*/ { 220, 60, 50, 20, 0.01, 0x80808000, 0.3, 120, 0.15, 0.3, 1 }, // SMOKETYPE_MINI - /*03*/ { 280, 60, 120, 100, 0.01, 0xc0c0c000, 0.3, 120, 0.15, 0.3, 1 }, - /*04*/ { 280, 60, 60, 80, 0.02, 0x40404000, 0.3, 120, 0.15, 0.3, 1 }, // SMOKETYPE_SMALL - /*05*/ { 340, 60, 50, 190, 0.015, 0x40404000, 0.3, 120, 0.15, 0.3, 1 }, // SMOKETYPE_MEDIUM - /*06*/ { 380, 60, 70, 300, 0.01, 0x40404000, 0.3, 120, 0.15, 0.3, 1 }, // SMOKETYPE_LARGE - /*07*/ { 60, 60, 8, 15, 0.03, 0xffffff00, 0.3, 120, 0.15, 0.3, 1 }, - /*08*/ { 20, 1, 6, 30, 0.03, 0xffffff00, 2, 30, 0.15, 0.3, 1 }, // SMOKETYPE_ROCKETTAIL - /*09*/ { 25, 1, 7, 16, 0.03, 0xe0e0e000, 3, 30, 0.15, 0.3, 1 }, // SMOKETYPE_GRENADETAIL - /*10*/ { 900, 60, 70, 900, 0.01, 0x40404000, 0.3, 180, 0.15, 0.3, 1 }, - /*11*/ { 20, 1, 6, 30, 0.03, 0x18204000, 2, 30, 0.15, 0.3, 1 }, // SMOKETYPE_HOMINGTAIL - /*12*/ { 50, 25, 7, 2, 0.03, 0xffffbf00, 0.3, 150, 0.15, 0.3, 1 }, - /*13*/ { 12, 15, 7, 5, 0.03, 0x66404000, 1, 18, 0.15, 0.3, 1 }, // SMOKETYPE_SKCORPSE - /*14*/ { 12, 15, 7, 5, 0.03, 0x66660000, 1, 18, 0.15, 0.3, 1 }, - /*15*/ { 50, 5, 5, 3, 0.03, 0xffffff00, 0.3, 150, 0, 0.45, 0 }, // SMOKETYPE_MUZZLE_PISTOL - /*16*/ { 50, 5, 6, 3, 0.03, 0xafffaf00, 0.3, 150, 0.09, 0.3, 0 }, // SMOKETYPE_MUZZLE_SHOTGUN - /*17*/ { 50, 5, 3, 3, 0.03, 0xffffff00, 0.3, 150, 0, 0.35, 0 }, // SMOKETYPE_MUZZLE_AUTOMATIC - /*18*/ { 50, 5, 3, 3, 0.03, 0xaf8f6f00, 0.3, 150, 0.1, 0.3, 0 }, // SMOKETYPE_MUZZLE_REAPER - /*19*/ { 50, 1, 2, 16, 0.03, 0xffff8000, 3, 30, 0.15, 0.3, 1 }, // SMOKETYPE_PINBALL - /*20*/ { 180, 10, 8, 18, 0.06, 0xffffff00, 0.3, 0, 0.19, 0.07, 1 }, // SMOKETYPE_WATER - /*21*/ { 220, 40, 45, 60, 0.02, 0x20202000, 0.3, 30, 1.5, 1.8, 6 }, // SMOKETYPE_DEBRIS - /*22*/ { 220, 5, 8, 60, 0.03, 0xaf8f6f00, 0.3, 30, 1.5, 0.3, 1 }, // SMOKETYPE_UFO + // | | | | | colour + // | | | | | | fgrotatespeed + // | | | | | | | numclouds + // | | | | | | | | +#if PAL + /*00*/ { 1, 50, 82, 0, 0, 0x80808000, 0.36, 144, 0.18, 0.36, 1 }, // SMOKETYPE_NONE + /*01*/ { 183, 50, 37, 60, 0.024, 0x50506000, 0.36, 144, 0.18, 0.36, 1 }, // SMOKETYPE_ELECTRICAL + /*02*/ { 183, 50, 41, 20, 0.012, 0x80808000, 0.36, 144, 0.18, 0.36, 1 }, // SMOKETYPE_MINI + /*03*/ { 233, 50, 100, 100, 0.012, 0xc0c0c000, 0.36, 144, 0.18, 0.36, 1 }, + /*04*/ { 233, 50, 50, 80, 0.024, 0x40404000, 0.36, 144, 0.18, 0.36, 1 }, // SMOKETYPE_SMALL + /*05*/ { 283, 50, 41, 190, 0.018000001087785, 0x40404000, 0.36, 144, 0.18, 0.36, 1 }, // SMOKETYPE_MEDIUM + /*06*/ { 316, 50, 58, 300, 0.012, 0x40404000, 0.36, 144, 0.18, 0.36, 1 }, // SMOKETYPE_LARGE + /*07*/ { 50, 50, 6, 15, 0.03600000217557, 0xffffff00, 0.36, 144, 0.18, 0.36, 1 }, + /*08*/ { 16, 1, 5, 30, 0.03600000217557, 0xffffff00, 2.4, 36, 0.18, 0.36, 1 }, // SMOKETYPE_ROCKETTAIL + /*09*/ { 20, 1, 5, 16, 0.03600000217557, 0xe0e0e000, 3.6000001430511, 36, 0.18, 0.36, 1 }, // SMOKETYPE_GRENADETAIL + /*10*/ { 750, 50, 58, 900, 0.012, 0x40404000, 0.36, 216, 0.18, 0.36, 1 }, + /*11*/ { 16, 1, 5, 30, 0.03600000217557, 0x18204000, 2.4, 36, 0.18, 0.36, 1 }, // SMOKETYPE_HOMINGTAIL + /*12*/ { 41, 20, 5, 2, 0.03600000217557, 0xffffbf00, 0.36, 180, 0.18, 0.36, 1 }, + /*13*/ { 10, 12, 5, 5, 0.03600000217557, 0x66404000, 1.2, 21, 0.18, 0.36, 1 }, // SMOKETYPE_SKCORPSE + /*14*/ { 10, 12, 5, 5, 0.03600000217557, 0x66660000, 1.2, 21, 0.18, 0.36, 1 }, + /*15*/ { 41, 4, 4, 3, 0.03600000217557, 0xffffff00, 0.36, 180, 0, 0.54, 0 }, // SMOKETYPE_MUZZLE_PISTOL + /*16*/ { 41, 4, 5, 3, 0.03600000217557, 0xafffaf00, 0.36, 180, 0.108000010252, 0.36, 0 }, // SMOKETYPE_MUZZLE_SHOTGUN + /*17*/ { 41, 4, 3, 3, 0.03600000217557, 0xffffff00, 0.36, 180, 0, 0.4200000166893, 0 }, // SMOKETYPE_MUZZLE_AUTOMATIC + /*18*/ { 41, 4, 3, 3, 0.03600000217557, 0xaf8f6f00, 0.36, 180, 0.12000000476837, 0.36, 0 }, // SMOKETYPE_MUZZLE_REAPER + /*19*/ { 41, 1, 2, 16, 0.03600000217557, 0xffff8000, 3.6000001430511, 36, 0.18, 0.36, 1 }, // SMOKETYPE_PINBALL + /*20*/ { 150, 8, 6, 18, 0.072000004351139, 0xffffff00, 0.36, 0, 0.228, 0.084000006318092, 1 }, // SMOKETYPE_WATER + /*21*/ { 183, 33, 37, 60, 0.024, 0x20202000, 0.36, 36, 1.8000000715256, 2.16, 6 }, // SMOKETYPE_DEBRIS + /*22*/ { 183, 4, 6, 60, 0.03600000217557, 0xaf8f6f00, 0.36, 36, 1.8000000715256, 0.36, 1 }, // SMOKETYPE_UFO +#else + /*00*/ { 1, 60, 99, 0, 0, 0x80808000, 0.3, 120, 0.15, 0.3, 1 }, // SMOKETYPE_NONE + /*01*/ { 220, 60, 45, 60, 0.02, 0x50506000, 0.3, 120, 0.15, 0.3, 1 }, // SMOKETYPE_ELECTRICAL + /*02*/ { 220, 60, 50, 20, 0.01, 0x80808000, 0.3, 120, 0.15, 0.3, 1 }, // SMOKETYPE_MINI + /*03*/ { 280, 60, 120, 100, 0.01, 0xc0c0c000, 0.3, 120, 0.15, 0.3, 1 }, + /*04*/ { 280, 60, 60, 80, 0.02, 0x40404000, 0.3, 120, 0.15, 0.3, 1 }, // SMOKETYPE_SMALL + /*05*/ { 340, 60, 50, 190, 0.015, 0x40404000, 0.3, 120, 0.15, 0.3, 1 }, // SMOKETYPE_MEDIUM + /*06*/ { 380, 60, 70, 300, 0.01, 0x40404000, 0.3, 120, 0.15, 0.3, 1 }, // SMOKETYPE_LARGE + /*07*/ { 60, 60, 8, 15, 0.03, 0xffffff00, 0.3, 120, 0.15, 0.3, 1 }, + /*08*/ { 20, 1, 6, 30, 0.03, 0xffffff00, 2, 30, 0.15, 0.3, 1 }, // SMOKETYPE_ROCKETTAIL + /*09*/ { 25, 1, 7, 16, 0.03, 0xe0e0e000, 3, 30, 0.15, 0.3, 1 }, // SMOKETYPE_GRENADETAIL + /*10*/ { 900, 60, 70, 900, 0.01, 0x40404000, 0.3, 180, 0.15, 0.3, 1 }, + /*11*/ { 20, 1, 6, 30, 0.03, 0x18204000, 2, 30, 0.15, 0.3, 1 }, // SMOKETYPE_HOMINGTAIL + /*12*/ { 50, 25, 7, 2, 0.03, 0xffffbf00, 0.3, 150, 0.15, 0.3, 1 }, + /*13*/ { 12, 15, 7, 5, 0.03, 0x66404000, 1, 18, 0.15, 0.3, 1 }, // SMOKETYPE_SKCORPSE + /*14*/ { 12, 15, 7, 5, 0.03, 0x66660000, 1, 18, 0.15, 0.3, 1 }, + /*15*/ { 50, 5, 5, 3, 0.03, 0xffffff00, 0.3, 150, 0, 0.45, 0 }, // SMOKETYPE_MUZZLE_PISTOL + /*16*/ { 50, 5, 6, 3, 0.03, 0xafffaf00, 0.3, 150, 0.09, 0.3, 0 }, // SMOKETYPE_MUZZLE_SHOTGUN + /*17*/ { 50, 5, 3, 3, 0.03, 0xffffff00, 0.3, 150, 0, 0.35, 0 }, // SMOKETYPE_MUZZLE_AUTOMATIC + /*18*/ { 50, 5, 3, 3, 0.03, 0xaf8f6f00, 0.3, 150, 0.1, 0.3, 0 }, // SMOKETYPE_MUZZLE_REAPER + /*19*/ { 50, 1, 2, 16, 0.03, 0xffff8000, 3, 30, 0.15, 0.3, 1 }, // SMOKETYPE_PINBALL + /*20*/ { 180, 10, 8, 18, 0.06, 0xffffff00, 0.3, 0, 0.19, 0.07, 1 }, // SMOKETYPE_WATER + /*21*/ { 220, 40, 45, 60, 0.02, 0x20202000, 0.3, 30, 1.5, 1.8, 6 }, // SMOKETYPE_DEBRIS + /*22*/ { 220, 5, 8, 60, 0.03, 0xaf8f6f00, 0.3, 30, 1.5, 0.3, 1 }, // SMOKETYPE_UFO +#endif }; GLOBAL_ASM( diff --git a/src/game/sparks/sparks.c b/src/game/sparks/sparks.c index a81f1ba21..cb156527a 100644 --- a/src/game/sparks/sparks.c +++ b/src/game/sparks/sparks.c @@ -41,33 +41,63 @@ struct sparktype g_SparkTypes[] = { // | max age // | | decel // | | | - /*0x00*/ { 100, 28, 100, 1, 0, 0, 2, 60, 60, 15, 1, 0xffff80ff, 0xffffffff, 0.02 }, - /*0x01*/ { 100, 28, 100, 1, 0, 0, 2, 60, 60, 15, 1, 0x80ffffff, 0xffffffff, 0.02 }, - /*0x02*/ { 40, -1, 30, 30, 0, 0, 2, 35, 35, 5, 1, 0x301010ff, 0x401010ff, 0.02 }, - /*0x03*/ { 40, -1, 300, 200, 0, 0, 0.15, 5, 5, 4, 1, 0xffffff40, 0x560011a0, 0.02 }, - /*0x04*/ { 10, 1, 1200, 400, 0, 0, 0.15, 5, 5, 5, 1, 0xa0a0e000, 0xffffffff, 0.02 }, - /*0x05*/ { 40, 10, 10, 10, 0, 0, 3, 180, 90, 5, 1, 0x00ff6aff, 0xffffffff, 0.02 }, - /*0x06*/ { 15, 10, 20, 20, 0, 0, 0.65, 180, 90, 5, 1, 0xa0a0e0ff, 0xffffffff, 0.02 }, - /*0x07*/ { 1, 1, 120, 2, 0, 0, 0, 60, 60, 5, 1, 0xffff80ff, 0xffffffff, 0.02 }, - /*0x08*/ { 1, 1, 300, 50, 0, 0, 0, 5, 5, 5, 1, 0xffff8000, 0xffffffff, 0.02 }, - /*0x09*/ { 1, 1, 400, 100, 0, 0, 0, 10, 10, 5, 1, 0xffff8000, 0xffffffff, 0.02 }, - /*0x0a*/ { 75, 100, 100, 1, 0, 0, 2, 60, 60, 15, 1, 0xffff80ff, 0xffffffff, 0.02 }, - /*0x0b*/ { 75, 100, 20, 5, 0, 0, 1.5, 60, 60, 20, 1, 0xa0a0e0ff, 0xffffffff, 0.02 }, - /*0x0c*/ { 20, 10, 100, 1, 0, 0, 2, 60, 60, 15, 1, 0xffff80ff, 0xffffffff, 0.02 }, - /*0x0d*/ { 20, 10, 20, 5, 0, 0, 1.5, 60, 60, 20, 1, 0xa0a0e0ff, 0xffffffff, 0.02 }, - /*0x0e*/ { 1, 0, 80, 1, 30, 5, 0, 120, 90, 15, 0, 0x0808f000, 0xffffffff, 0.02 }, - /*0x0f*/ { 70, 0, 150, 15, 0, 0, 6, 40, 10, 3, 0, 0x11112880, 0xaaaaaa40, 0.02 }, - /*0x10*/ { 50, 28, 100, 1, 0, 0, 1, 60, 30, 10, 1, 0xffff80ff, 0xffffffff, 0.02 }, - /*0x11*/ { 300, 100, 100, 2, 0, 0, 0.3, 30, 1, 40, 2, 0xffff80ff, 0xffffffff, 0.1 }, - /*0x12*/ { 170, 80, 60, 5, 0, 0, 0.4, 30, 5, 10, 3, 0xa0a0e0ff, 0xffffffff, 0.1 }, - /*0x13*/ { 120, 40, 30, 7, 0, 0, 0.2, 60, 5, 15, 3, 0xffff80ff, 0xffffffff, 0.1 }, - /*0x14*/ { 80, 10, 10, 9, 0, 0, 0.1, 30, 5, 20, 3, 0xa0a0e0ff, 0xffffffff, 0.1 }, - /*0x15*/ { 100, 1, 100, 50, 0, 0, 2, 30, 20, 15, 1, 0xffff80ff, 0xffffffff, 0.02 }, - /*0x16*/ { 100, 28, 100, 1, 0, 0, 2, 120, 120, 30, 1, 0xff8080ff, 0xffff80ff, 0.02 }, - /*0x17*/ { 100, 28, 100, 1, 0, 0, 2, 60, 60, 15, 1, 0x4fff4fff, 0xffffffff, 0.02 }, - /*0x18*/ { 100, 28, 100, 1, 0, 0, 2, 60, 60, 15, 1, 0xffff7f7f, 0xffffffff, 0.02 }, - /*0x19*/ { 40, -1, 30, 10, 0, 0, 2, 50, 35, 10, 1, 0x301010ff, 0x401010ff, 0.02 }, - /*0x1a*/ { 70, 0, 150, 15, 0, 0, 6, 40, 10, 3, 0, 0x1111a880, 0xaaaaff40, 0.02 }, +#if VERSION >= VERSION_PAL_FINAL + /*0x00*/ { 100, 28, 100, 1, 0, 0, 2.4, 50, 50, 15, 1, 0xffff80ff, 0xffffffff, 0.024 }, + /*0x00*/ { 100, 28, 100, 1, 0, 0, 2.4, 50, 50, 15, 1, 0x80ffffff, 0xffffffff, 0.024 }, + /*0x00*/ { 40, -1, 30, 30, 0, 0, 2.4, 29, 29, 5, 1, 0x301010ff, 0x401010ff, 0.024 }, + /*0x00*/ { 40, -1, 300, 200, 0, 0, 0.18, 5, 5, 4, 1, 0xffffff40, 0x560011a0, 0.024 }, + /*0x00*/ { 10, 1, 1200, 400, 0, 0, 0.18, 5, 5, 5, 1, 0xa0a0e000, 0xffffffff, 0.024 }, + /*0x00*/ { 40, 10, 10, 10, 0, 0, 3.6000001430511, 150, 75, 5, 1, 0x00ff6aff, 0xffffffff, 0.024 }, + /*0x00*/ { 15, 10, 20, 20, 0, 0, 0.78000003099442, 150, 75, 5, 1, 0xa0a0e0ff, 0xffffffff, 0.024 }, + /*0x00*/ { 1, 1, 120, 2, 0, 0, 0, 50, 50, 5, 1, 0xffff80ff, 0xffffffff, 0.024 }, + /*0x00*/ { 1, 1, 300, 50, 0, 0, 0, 5, 5, 5, 1, 0xffff8000, 0xffffffff, 0.024 }, + /*0x00*/ { 1, 1, 400, 100, 0, 0, 0, 8, 8, 5, 1, 0xffff8000, 0xffffffff, 0.024 }, + /*0x00*/ { 75, 100, 100, 1, 0, 0, 2.4, 50, 50, 15, 1, 0xffff80ff, 0xffffffff, 0.024 }, + /*0x00*/ { 75, 100, 20, 5, 0, 0, 1.8000000715256, 50, 50, 20, 1, 0xa0a0e0ff, 0xffffffff, 0.024 }, + /*0x00*/ { 20, 10, 100, 1, 0, 0, 2.4, 50, 50, 15, 1, 0xffff80ff, 0xffffffff, 0.024 }, + /*0x00*/ { 20, 10, 20, 5, 0, 0, 1.8000000715256, 50, 50, 20, 1, 0xa0a0e0ff, 0xffffffff, 0.024 }, + /*0x00*/ { 1, 0, 80, 1, 36, 6, 0, 100, 75, 15, 0, 0x0808f000, 0xffffffff, 0.024 }, + /*0x00*/ { 70, 0, 150, 15, 0, 0, 7.2000002861023, 33, 8, 3, 0, 0x11112880, 0xaaaaaa40, 0.024 }, + /*0x00*/ { 50, 28, 100, 1, 0, 0, 1.2, 50, 25, 10, 1, 0xffff80ff, 0xffffffff, 0.024 }, + /*0x00*/ { 300, 100, 100, 2, 0, 0, 0.36, 25, 1, 40, 2, 0xffff80ff, 0xffffffff, 0.119 }, + /*0x00*/ { 170, 80, 60, 5, 0, 0, 0.48000001907349, 25, 5, 10, 3, 0xa0a0e0ff, 0xffffffff, 0.119 }, + /*0x00*/ { 120, 40, 30, 7, 0, 0, 0.24000000953674, 50, 5, 15, 3, 0xffff80ff, 0xffffffff, 0.119 }, + /*0x00*/ { 80, 10, 10, 9, 0, 0, 0.12000000476837, 25, 5, 20, 3, 0xa0a0e0ff, 0xffffffff, 0.119 }, + /*0x00*/ { 100, 1, 100, 50, 0, 0, 2.4, 25, 16, 15, 1, 0xffff80ff, 0xffffffff, 0.024 }, + /*0x00*/ { 100, 28, 100, 1, 0, 0, 2.4, 100, 100, 30, 1, 0xff8080ff, 0xffff80ff, 0.024 }, + /*0x00*/ { 100, 28, 100, 1, 0, 0, 2.4, 50, 50, 15, 1, 0x4fff4fff, 0xffffffff, 0.024 }, + /*0x00*/ { 100, 28, 100, 1, 0, 0, 2.4, 50, 50, 15, 1, 0xffff7f7f, 0xffffffff, 0.024 }, + /*0x00*/ { 40, -1, 30, 10, 0, 0, 2.4, 41, 29, 10, 1, 0x301010ff, 0x401010ff, 0.024 }, + /*0x00*/ { 70, 0, 150, 15, 0, 0, 7.2000002861023, 33, 8, 3, 0, 0x1111a880, 0xaaaaff40, 0.024 }, +#else + /*0x00*/ { 100, 28, 100, 1, 0, 0, 2, 60, 60, 15, 1, 0xffff80ff, 0xffffffff, 0.02 }, + /*0x01*/ { 100, 28, 100, 1, 0, 0, 2, 60, 60, 15, 1, 0x80ffffff, 0xffffffff, 0.02 }, + /*0x02*/ { 40, -1, 30, 30, 0, 0, 2, 35, 35, 5, 1, 0x301010ff, 0x401010ff, 0.02 }, + /*0x03*/ { 40, -1, 300, 200, 0, 0, 0.15, 5, 5, 4, 1, 0xffffff40, 0x560011a0, 0.02 }, + /*0x04*/ { 10, 1, 1200, 400, 0, 0, 0.15, 5, 5, 5, 1, 0xa0a0e000, 0xffffffff, 0.02 }, + /*0x05*/ { 40, 10, 10, 10, 0, 0, 3, 180, 90, 5, 1, 0x00ff6aff, 0xffffffff, 0.02 }, + /*0x06*/ { 15, 10, 20, 20, 0, 0, 0.65, 180, 90, 5, 1, 0xa0a0e0ff, 0xffffffff, 0.02 }, + /*0x07*/ { 1, 1, 120, 2, 0, 0, 0, 60, 60, 5, 1, 0xffff80ff, 0xffffffff, 0.02 }, + /*0x08*/ { 1, 1, 300, 50, 0, 0, 0, 5, 5, 5, 1, 0xffff8000, 0xffffffff, 0.02 }, + /*0x09*/ { 1, 1, 400, 100, 0, 0, 0, 10, 10, 5, 1, 0xffff8000, 0xffffffff, 0.02 }, + /*0x0a*/ { 75, 100, 100, 1, 0, 0, 2, 60, 60, 15, 1, 0xffff80ff, 0xffffffff, 0.02 }, + /*0x0b*/ { 75, 100, 20, 5, 0, 0, 1.5, 60, 60, 20, 1, 0xa0a0e0ff, 0xffffffff, 0.02 }, + /*0x0c*/ { 20, 10, 100, 1, 0, 0, 2, 60, 60, 15, 1, 0xffff80ff, 0xffffffff, 0.02 }, + /*0x0d*/ { 20, 10, 20, 5, 0, 0, 1.5, 60, 60, 20, 1, 0xa0a0e0ff, 0xffffffff, 0.02 }, + /*0x0e*/ { 1, 0, 80, 1, 30, 5, 0, 120, 90, 15, 0, 0x0808f000, 0xffffffff, 0.02 }, + /*0x0f*/ { 70, 0, 150, 15, 0, 0, 6, 40, 10, 3, 0, 0x11112880, 0xaaaaaa40, 0.02 }, + /*0x10*/ { 50, 28, 100, 1, 0, 0, 1, 60, 30, 10, 1, 0xffff80ff, 0xffffffff, 0.02 }, + /*0x11*/ { 300, 100, 100, 2, 0, 0, 0.3, 30, 1, 40, 2, 0xffff80ff, 0xffffffff, 0.1 }, + /*0x12*/ { 170, 80, 60, 5, 0, 0, 0.4, 30, 5, 10, 3, 0xa0a0e0ff, 0xffffffff, 0.1 }, + /*0x13*/ { 120, 40, 30, 7, 0, 0, 0.2, 60, 5, 15, 3, 0xffff80ff, 0xffffffff, 0.1 }, + /*0x14*/ { 80, 10, 10, 9, 0, 0, 0.1, 30, 5, 20, 3, 0xa0a0e0ff, 0xffffffff, 0.1 }, + /*0x15*/ { 100, 1, 100, 50, 0, 0, 2, 30, 20, 15, 1, 0xffff80ff, 0xffffffff, 0.02 }, + /*0x16*/ { 100, 28, 100, 1, 0, 0, 2, 120, 120, 30, 1, 0xff8080ff, 0xffff80ff, 0.02 }, + /*0x17*/ { 100, 28, 100, 1, 0, 0, 2, 60, 60, 15, 1, 0x4fff4fff, 0xffffffff, 0.02 }, + /*0x18*/ { 100, 28, 100, 1, 0, 0, 2, 60, 60, 15, 1, 0xffff7f7f, 0xffffffff, 0.02 }, + /*0x19*/ { 40, -1, 30, 10, 0, 0, 2, 50, 35, 10, 1, 0x301010ff, 0x401010ff, 0.02 }, + /*0x1a*/ { 70, 0, 150, 15, 0, 0, 6, 40, 10, 3, 0, 0x1111a880, 0xaaaaff40, 0.02 }, +#endif }; s32 g_SparksAreActive = false; diff --git a/src/game/title.c b/src/game/title.c index 97858a1a1..5a81b0b13 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -155,10 +155,22 @@ u32 var80062670 = 0x00030000; u32 var80062674 = 0x0045012b; u32 var80062678 = 0x00000001; u32 var8006267c = 0x0005564c; + +#if VERSION >= VERSION_PAL_FINAL +u32 var80062680 = 0xffff0128; +#else u32 var80062680 = 0x010a0128; +#endif + u32 var80062684 = 0x00000001; u32 var80062688 = 0x0006564b; + +#if VERSION >= VERSION_PAL_FINAL +u32 var8006268c = 0xffff012b; +#else u32 var8006268c = 0x011e012b; +#endif + u32 var80062690 = 0x00000001; u32 var80062694 = 0x0005564a; u32 var80062698 = 0x00450140; @@ -6521,7 +6533,7 @@ glabel titleRenderNoController // x = 288 - (textwidth >> 1); // y = ((var800624a0 / 2) - (textheight >> 1)) - 12; // -// if (g_LanguageId != LANGUAGE_ENGLISH) { +// if (g_LanguageId != LANGUAGE_NTSC_EN) { // gdl = textRender(gdl, &x, &y, text, g_FontHandelGothicLg1, g_FontHandelGothicLg2, // -1, 0x008000ff, viGetWidth(), viGetHeight(), 0, 0); // } else { @@ -6536,7 +6548,7 @@ glabel titleRenderNoController // x = 288 - (textwidth >> 1); // y = ((var800624a0 / 2) - (textheight >> 1)) + 12; // -// if (g_LanguageId != LANGUAGE_ENGLISH) { +// if (g_LanguageId != LANGUAGE_NTSC_EN) { // gdl = textRender(gdl, &x, &y, text, g_FontHandelGothicLg1, g_FontHandelGothicLg2, // -1, 0x008000ff, viGetWidth(), viGetHeight(), 0, 0); // } else { diff --git a/src/game/training/menus.c b/src/game/training/menus.c index 5061e6c97..bdefdf052 100644 --- a/src/game/training/menus.c +++ b/src/game/training/menus.c @@ -2487,7 +2487,7 @@ struct menuitem g_FrTrainingInfoInGameMenuItems[] = { { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextTimeLimitLabel, (u32)&frMenuTextTimeLimitValue, NULL }, { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextAmmoLimitLabel, (u32)&frMenuTextAmmoLimitValue, NULL }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_FRWEAPON, 0x00004000, 0x0000010e, 0x0000005f, NULL }, + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_FRWEAPON, 0x00004000, 0x0000010e, PAL ? 0x69 : 0x5f, NULL }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_OPTIONS_003, L_MPMENU_428, frDetailsOkMenuHandler }, // "", "Resume" { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_OPTIONS_003, L_MPMENU_430, frAbortMenuHandler }, // "", "Abort" @@ -2510,7 +2510,7 @@ struct menuitem g_FrTrainingInfoPreGameMenuItems[] = { { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextTimeLimitLabel, (u32)&frMenuTextTimeLimitValue, NULL }, { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextAmmoLimitLabel, (u32)&frMenuTextAmmoLimitValue, NULL }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_FRWEAPON, 0x00004000, 0x0000010e, 0x0000005f, NULL }, + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_FRWEAPON, 0x00004000, 0x0000010e, PAL ? 0x69 : 0x5f, NULL }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_OPTIONS_003, L_MPMENU_427, frDetailsOkMenuHandler }, // "", "Ok" { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_OPTIONS_003, L_MPMENU_429, frAbortMenuHandler }, // "", "Cancel" @@ -2657,10 +2657,6 @@ struct menudialog g_NowSafeMenuDialog = { NULL, }; -#if VERSION >= VERSION_PAL_FINAL -s32 g_SomePalValue = 0; -#endif - s32 ciCharacterProfileMenuDialog(s32 operation, struct menudialog *dialog, union handlerdata *data) { u32 bodynum = ciGetChrBioBodynumBySlot(g_ChrBioSlot); @@ -2684,7 +2680,7 @@ s32 ciCharacterProfileMenuDialog(s32 operation, struct menudialog *dialog, union g_Menus[g_MpPlayerNum].unkdc0 = 0; #if VERSION >= VERSION_PAL_FINAL - if (g_SomePalValue != 1) { + if (g_ViMode != VIMODE_HIRES) { x = -117; if (optionsGetScreenRatio() == SCREENRATIO_16_9) { @@ -2944,7 +2940,7 @@ s32 dtTrainingDetailsMenuDialog(s32 operation, struct menudialog *dialog, union func0f105948(weaponnum); #if VERSION >= VERSION_PAL_FINAL - if (g_SomePalValue == 1) { + if (g_ViMode == VIMODE_HIRES) { if (optionsGetScreenRatio() == SCREENRATIO_16_9) { g_Menus[g_MpPlayerNum].unkd78 = 84; g_Menus[g_MpPlayerNum].unkd50 = 84; @@ -3195,8 +3191,8 @@ char *ciMenuTextHangarBioSubheading(struct menuitem *item) } struct menuitem g_DtDetailsMenuItems[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_DEVICETRAINING, 0x00000000, 0x000000aa, 0x000000be, NULL }, - { MENUITEMTYPE_MODEL, 0, 0x00000003, 0x0000008c, 0x0000009c, NULL }, + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_DEVICETRAINING, 0x00000000, 0x000000aa, PAL ? 0xd6 : 0xbe, NULL }, + { MENUITEMTYPE_MODEL, 0, 0x00000003, 0x0000008c, PAL ? 0xb4 : 0x9c, NULL }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, (u32)&dtMenuTextOkOrResume, 0x00000000, menuhandlerDtOkOrResume }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, (u32)&dtMenuTextCancelOrAbort, 0x00000000, menuhandler001a6514 }, @@ -3217,7 +3213,7 @@ struct menuitem g_DtFailedMenuItems[] = { { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_424, (u32)&dtMenuTextTimeTakenValue, NULL }, // "Time Taken:" { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_DEVICETIP1, 0x00000000, 0x00000082, 0x00000064, NULL }, + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_DEVICETIP1, 0x00000000, 0x00000082, PAL ? 110 : 100, NULL }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, }; @@ -3235,7 +3231,7 @@ struct menuitem g_DtCompletedMenuItems[] = { { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_424, (u32)&dtMenuTextTimeTakenValue, NULL }, // "Time Taken:" { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_DEVICETIP2, 0x00000000, 0x00000082, 0x00000064, NULL }, + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_DEVICETIP2, 0x00000000, 0x00000082, PAL ? 110 : 100, NULL }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, }; @@ -3285,7 +3281,7 @@ struct menuitem g_HtFailedMenuItems[] = { { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_424, (u32)&htMenuTextTimeTakenValue, NULL }, // "Time Taken:" { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_HOLOTIP1, 0x00000000, 0x00000082, 0x00000064, NULL }, + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_HOLOTIP1, 0x00000000, 0x00000082, PAL ? 110 : 100, NULL }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, }; @@ -3303,7 +3299,7 @@ struct menuitem g_HtCompletedMenuItems[] = { { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_424, (u32)&htMenuTextTimeTakenValue, NULL }, // "Time Taken:" { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_HOLOTIP2, 0x00000000, 0x00000082, 0x00000064, NULL }, + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_HOLOTIP2, 0x00000000, 0x00000082, PAL ? 110 : 100, NULL }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, }; diff --git a/src/game/training/training.c b/src/game/training/training.c index 2bdc84d01..c11839600 100644 --- a/src/game/training/training.c +++ b/src/game/training/training.c @@ -2093,6 +2093,41 @@ char *frGetWeaponDescription(void) u32 weapon = frGetWeaponBySlot(g_FrData.slot); switch (weapon) { +#if PAL + case WEAPON_FALCON2: return langGet(L_DISH_285); + case WEAPON_FALCON2_SCOPE: return langGet(L_DISH_286); + case WEAPON_FALCON2_SILENCER: return langGet(L_DISH_287); + case WEAPON_MAGSEC4: return langGet(L_DISH_288); + case WEAPON_MAULER: return langGet(L_DISH_289); + case WEAPON_PHOENIX: return langGet(L_DISH_290); + case WEAPON_DY357MAGNUM: return langGet(L_DISH_291); + case WEAPON_DY357LX: return langGet(L_DISH_292); + case WEAPON_CMP150: return langGet(L_DISH_293); + case WEAPON_CYCLONE: return langGet(L_DISH_294); + case WEAPON_CALLISTONTG: return langGet(L_DISH_295); + case WEAPON_RCP120: return langGet(L_DISH_296); + case WEAPON_LAPTOPGUN: return langGet(L_DISH_297); + case WEAPON_DRAGON: return langGet(L_DISH_298); + case WEAPON_K7AVENGER: return langGet(L_DISH_299); + case WEAPON_AR34: return langGet(L_DISH_300); + case WEAPON_SUPERDRAGON: return langGet(L_DISH_301); + case WEAPON_SHOTGUN: return langGet(L_DISH_302); + case WEAPON_SNIPERRIFLE: return langGet(L_DISH_303); + case WEAPON_FARSIGHTXR20: return langGet(L_DISH_304); + case WEAPON_CROSSBOW: return langGet(L_DISH_305); + case WEAPON_TRANQUILIZER: return langGet(L_DISH_306); + case WEAPON_REAPER: return langGet(L_DISH_307); + case WEAPON_DEVASTATOR: return langGet(L_DISH_308); + case WEAPON_ROCKETLAUNCHER: return langGet(L_DISH_309); + case WEAPON_SLAYER: return langGet(L_DISH_310); + case WEAPON_COMBATKNIFE: return langGet(L_DISH_311); + case WEAPON_LASER: return langGet(L_DISH_312); + case WEAPON_GRENADE: return langGet(L_DISH_313); + case WEAPON_NBOMB: return langGet(L_DISH_314); + case WEAPON_TIMEDMINE: return langGet(L_DISH_315); + case WEAPON_PROXIMITYMINE: return langGet(L_DISH_316); + case WEAPON_REMOTEMINE: return langGet(L_DISH_317); +#else case WEAPON_FALCON2: return langGet(L_MISC_377); case WEAPON_FALCON2_SCOPE: return langGet(L_MISC_378); case WEAPON_FALCON2_SILENCER: return langGet(L_MISC_379); @@ -2126,6 +2161,7 @@ char *frGetWeaponDescription(void) case WEAPON_TIMEDMINE: return langGet(L_MISC_407); case WEAPON_PROXIMITYMINE: return langGet(L_MISC_408); case WEAPON_REMOTEMINE: return langGet(L_MISC_409); +#endif } return NULL; @@ -5566,6 +5602,18 @@ struct chrbio *ciGetChrBioByBodynum(u32 bodynum) { struct chrbio bios[] = { // name, race, age, profile +#if VERSION >= VERSION_PAL_FINAL + /*0*/ { L_DISH_125, L_DISH_126, L_DISH_127, L_DISH_128 }, // Joanna Dark + /*1*/ { L_DISH_129, L_DISH_130, L_DISH_131, L_DISH_132 }, // Jonathan + /*2*/ { L_DISH_133, L_DISH_134, L_DISH_135, L_DISH_136 }, // Daniel Carrington + /*3*/ { L_DISH_137, L_DISH_138, L_DISH_139, L_DISH_140 }, // Cassandra De Vries + /*4*/ { L_DISH_141, L_DISH_142, L_DISH_143, L_DISH_144 }, // Trent Easton + /*5*/ { L_DISH_145, L_DISH_146, L_DISH_147, L_DISH_148 }, // Dr. Caroll + /*6*/ { L_DISH_149, L_DISH_150, L_DISH_151, L_DISH_152 }, // Elvis + /*7*/ { L_DISH_153, L_DISH_154, L_DISH_155, L_DISH_156 }, // Mr. Blonde + /*8*/ { L_DISH_157, L_DISH_158, L_DISH_159, L_DISH_160 }, // Mr. Blonde (repeat) + /*9*/ { L_DISH_161, L_DISH_162, L_DISH_163, L_DISH_164 }, // The U.S. President +#else /*0*/ { L_MISC_219, L_MISC_220, L_MISC_221, L_MISC_222 }, // Joanna Dark /*1*/ { L_MISC_223, L_MISC_224, L_MISC_225, L_MISC_226 }, // Jonathan /*2*/ { L_MISC_227, L_MISC_228, L_MISC_229, L_MISC_230 }, // Daniel Carrington @@ -5576,6 +5624,7 @@ struct chrbio *ciGetChrBioByBodynum(u32 bodynum) /*7*/ { L_MISC_247, L_MISC_248, L_MISC_249, L_MISC_250 }, // Mr. Blonde /*8*/ { L_MISC_251, L_MISC_252, L_MISC_253, L_MISC_254 }, // Mr. Blonde (repeat) /*9*/ { L_MISC_255, L_MISC_256, L_MISC_257, L_MISC_258 }, // The U.S. President +#endif }; switch (bodynum) { @@ -5647,10 +5696,17 @@ struct miscbio *ciGetMiscBio(s32 index) { struct miscbio bios[] = { // name, description +#if VERSION >= VERSION_PAL_FINAL + { L_DISH_165, L_DISH_166 }, + { L_DISH_167, L_DISH_168 }, + { L_DISH_169, L_DISH_170 }, + { L_DISH_171, L_DISH_172 }, +#else { L_MISC_259, L_MISC_260 }, { L_MISC_261, L_MISC_262 }, { L_MISC_263, L_MISC_264 }, { L_MISC_265, L_MISC_266 }, +#endif }; switch (index) { @@ -5729,6 +5785,31 @@ struct hangarbio *ciGetHangarBio(s32 index) { struct hangarbio bios[] = { // name, description +#if VERSION >= VERSION_PAL_FINAL + { L_DISH_196, L_DISH_219 }, // Carrington Institute + { L_DISH_197, L_DISH_220 }, // Lucerne Tower + { L_DISH_198, L_DISH_221 }, // Laboratory Basement + { L_DISH_199, L_DISH_222 }, // Carrington Villa + { L_DISH_200, L_DISH_223 }, // Chicago + { L_DISH_201, L_DISH_224 }, // G5 Building + { L_DISH_202, L_DISH_225 }, // Area 51 + { L_DISH_203, L_DISH_226 }, // Alaskan Air Base + { L_DISH_204, L_DISH_227 }, // Air Force One + { L_DISH_205, L_DISH_228 }, // Crash Site + { L_DISH_206, L_DISH_229 }, // Pelagic II + { L_DISH_207, L_DISH_230 }, // Cetan Ship + { L_DISH_208, L_DISH_231 }, // Skedar Assault Ship + { L_DISH_209, L_DISH_232 }, // Skedar Homeworld + { L_DISH_210, L_DISH_233 }, // Jumpship + { L_DISH_211, L_DISH_234 }, // HoverCrate + { L_DISH_212, L_DISH_235 }, // HoverBike + { L_DISH_213, L_DISH_236 }, // Cleaning Hovbot + { L_DISH_214, L_DISH_237 }, // Hovercopter + { L_DISH_215, L_DISH_238 }, // G5 Robot + { L_DISH_216, L_DISH_239 }, // A51 Interceptor + { L_DISH_217, L_DISH_240 }, // Maian Vessel + { L_DISH_218, L_DISH_241 }, // Skedar Shuttle +#else { L_MISC_290, L_MISC_313 }, // Carrington Institute { L_MISC_291, L_MISC_314 }, // Lucerne Tower { L_MISC_292, L_MISC_315 }, // Laboratory Basement @@ -5752,6 +5833,7 @@ struct hangarbio *ciGetHangarBio(s32 index) { L_MISC_310, L_MISC_333 }, // A51 Interceptor { L_MISC_311, L_MISC_334 }, // Maian Vessel { L_MISC_312, L_MISC_335 }, // Skedar Shuttle +#endif }; switch (index) { @@ -6129,6 +6211,18 @@ u32 ciGetStageFlagByDeviceIndex(u32 deviceindex) char *dtGetDescription(void) { u32 texts[] = { +#if VERSION >= VERSION_PAL_FINAL + /*0*/ L_DISH_186, // Data uplink + /*1*/ L_DISH_185, // ECM mine + /*2*/ L_DISH_177, // CamSpy + /*3*/ L_DISH_178, // Night vision + /*4*/ L_DISH_179, // Door decoder + /*5*/ L_DISH_183, // R-tracker + /*6*/ L_DISH_182, // IR scanner + /*7*/ L_DISH_180, // X-ray scanner + /*8*/ L_DISH_181, // Disguise + /*9*/ L_DISH_184, // Cloak +#else /*0*/ L_MISC_280, // Data uplink /*1*/ L_MISC_279, // ECM mine /*2*/ L_MISC_271, // CamSpy @@ -6139,6 +6233,7 @@ char *dtGetDescription(void) /*7*/ L_MISC_274, // X-ray scanner /*8*/ L_MISC_275, // Disguise /*9*/ L_MISC_278, // Cloak +#endif }; return langGet(texts[dtGetIndexBySlot(g_DtSlot)]); @@ -6147,6 +6242,18 @@ char *dtGetDescription(void) char *dtGetTip1(void) { u32 texts[] = { +#if VERSION >= VERSION_PAL_FINAL + /*0*/ L_DISH_263, + /*1*/ L_DISH_264, + /*2*/ L_DISH_265, + /*3*/ L_DISH_266, + /*4*/ L_DISH_267, + /*5*/ L_DISH_268, + /*6*/ L_DISH_269, + /*7*/ L_DISH_270, + /*8*/ L_DISH_271, + /*9*/ L_DISH_272, +#else /*0*/ L_MISC_357, /*1*/ L_MISC_358, /*2*/ L_MISC_359, @@ -6157,6 +6264,7 @@ char *dtGetTip1(void) /*7*/ L_MISC_364, /*8*/ L_MISC_365, /*9*/ L_MISC_366, +#endif }; return langGet(texts[dtGetIndexBySlot(g_DtSlot)]); @@ -6165,6 +6273,18 @@ char *dtGetTip1(void) char *dtGetTip2(void) { u32 texts[] = { +#if VERSION >= VERSION_PAL_FINAL + /*0*/ L_DISH_273, + /*1*/ L_DISH_274, + /*2*/ L_DISH_275, + /*3*/ L_DISH_276, + /*4*/ L_DISH_277, + /*5*/ L_DISH_278, + /*6*/ L_DISH_279, + /*7*/ L_DISH_280, + /*8*/ L_DISH_281, + /*9*/ L_DISH_282, +#else /*0*/ L_MISC_367, /*1*/ L_MISC_368, /*2*/ L_MISC_369, @@ -6175,6 +6295,7 @@ char *dtGetTip2(void) /*7*/ L_MISC_374, /*8*/ L_MISC_375, /*9*/ L_MISC_376, +#endif }; return langGet(texts[dtGetIndexBySlot(g_DtSlot)]); @@ -6360,6 +6481,15 @@ s32 htGetIndexBySlot(s32 slot) char *htGetName(s32 index) { u32 texts[] = { +#if VERSION >= VERSION_PAL_FINAL + L_DISH_316, // "Holo 1 - Looking Around" + L_DISH_317, // "Holo 2 - Movement 1" + L_DISH_318, // "Holo 3 - Movement 2" + L_DISH_319, // "Holo 4 - Unarmed Combat 1" + L_DISH_320, // "Holo 5 - Unarmed Combat 2" + L_DISH_321, // "Holo 6 - Live Combat 1" + L_DISH_322, // "Holo 7 - Live Combat 2" +#else L_MISC_410, // "Holo 1 - Looking Around" L_MISC_411, // "Holo 2 - Movement 1" L_MISC_412, // "Holo 3 - Movement 2" @@ -6367,6 +6497,7 @@ char *htGetName(s32 index) L_MISC_414, // "Holo 5 - Unarmed Combat 2" L_MISC_415, // "Holo 6 - Live Combat 1" L_MISC_416, // "Holo 7 - Live Combat 2" +#endif }; return langGet(texts[index]); @@ -6391,6 +6522,15 @@ u32 func0f1a25c0(s32 index) char *htGetDescription(void) { u32 texts[] = { +#if VERSION >= VERSION_PAL_FINAL + L_DISH_242, + L_DISH_243, + L_DISH_244, + L_DISH_245, + L_DISH_246, + L_DISH_247, + L_DISH_248, +#else L_MISC_336, L_MISC_337, L_MISC_338, @@ -6398,6 +6538,7 @@ char *htGetDescription(void) L_MISC_340, L_MISC_341, L_MISC_342, +#endif }; return langGet(texts[htGetIndexBySlot(var80088bb4)]); @@ -6406,6 +6547,15 @@ char *htGetDescription(void) char *htGetTip1(void) { u32 texts[] = { +#if VERSION >= VERSION_PAL_FINAL + L_DISH_249, // "For greater precision..." + L_DISH_250, // "Think about where you want to go..." + L_DISH_251, // "Ducking enables you to..." + L_DISH_252, // "Attacking opponents from behind..." + L_DISH_253, // "Only stay close long enough..." + L_DISH_254, // "Don't hang around and wait..." + L_DISH_255, // "Go for the armed opponents..." +#else L_MISC_343, // "For greater precision..." L_MISC_344, // "Think about where you want to go..." L_MISC_345, // "Ducking enables you to..." @@ -6413,6 +6563,7 @@ char *htGetTip1(void) L_MISC_347, // "Only stay close long enough..." L_MISC_348, // "Don't hang around and wait..." L_MISC_349, // "Go for the armed opponents..." +#endif }; return langGet(texts[htGetIndexBySlot(var80088bb4)]); @@ -6421,6 +6572,15 @@ char *htGetTip1(void) char *htGetTip2(void) { u32 texts[] = { +#if VERSION >= VERSION_PAL_FINAL + L_DISH_256, // "For greater precision..." + L_DISH_257, // "Sidestepping and strafing..." + L_DISH_258, // "Ducking enables you to..." + L_DISH_259, // "Attacking opponents from behind..." + L_DISH_260, // "Only stay close long enough..." + L_DISH_261, // "Don't hang around and wait..." + L_DISH_262, // "Go for the armed opponents..." +#else L_MISC_350, // "For greater precision..." L_MISC_351, // "Sidestepping and strafing..." L_MISC_352, // "Ducking enables you to..." @@ -6428,6 +6588,7 @@ char *htGetTip2(void) L_MISC_354, // "Only stay close long enough..." L_MISC_355, // "Don't hang around and wait..." L_MISC_356, // "Go for the armed opponents..." +#endif }; return langGet(texts[htGetIndexBySlot(var80088bb4)]); diff --git a/src/include/constants.h b/src/include/constants.h index 1f9992c1b..1a5da88d7 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -600,9 +600,12 @@ #define CREDITSTYLE_R_BIG_R_MED 1 #define CREDITSTYLE_C_BIG 2 #define CREDITSTYLE_C_MED 3 +#define CREDITSTYLE_04 4 #define CREDITSTYLE_C_SML 5 #define CREDITSTYLE_L_BIG 7 #define CREDITSTYLE_R_MED 9 +#define CREDITSTYLE_11 11 +#define CREDITSTYLE_12 12 #define CREDITSTYLE_C_BIG_C_BIG 10 #define CREDITSTYLE_TERMINATOR 20 @@ -1020,8 +1023,14 @@ #define LA_1 1 // either waiting for lift or in lift #define LA_3 3 // either waiting for lift or in lift -#define LANGUAGE_ENGLISH 0 -#define LANGUAGE_JAPANESE 1 +#define LANGUAGE_NTSC_EN 0 +#define LANGUAGE_NTSC_JP 1 + +#define LANGUAGE_PAL_EN 0 +#define LANGUAGE_PAL_FR 1 +#define LANGUAGE_PAL_DE 2 +#define LANGUAGE_PAL_IT 3 +#define LANGUAGE_PAL_ES 4 #define LIGHTOP_1 1 #define LIGHTOP_2 2 diff --git a/src/include/data.h b/src/include/data.h index 4a919af93..e54f7a43a 100644 --- a/src/include/data.h +++ b/src/include/data.h @@ -30,7 +30,7 @@ extern u32 __osCurrentHandle; extern u32 var8005cf30; extern OSTime osClockRate; extern s32 osViClock; -extern u32 var8005cf6c; +extern u32 _osShutdown; extern u32 __osGlobalIntMask; extern u32 var8005cf84; extern u8 g_LoadType; diff --git a/src/include/game/game_102240.h b/src/include/game/game_102240.h index 6fbbc09f4..9875a4d8b 100644 --- a/src/include/game/game_102240.h +++ b/src/include/game/game_102240.h @@ -68,6 +68,9 @@ s32 menuhandlerPdMode(s32 operation, struct menuitem *item, union handlerdata *d s32 menuhandlerPdModeSetting(s32 operation, struct menuitem *item, union handlerdata *data); s32 menuhandlerReversePitch(s32 operation, struct menuitem *item, union handlerdata *data); s32 menuhandlerScreenRatio(s32 operation, struct menuitem *item, union handlerdata *data); +#if PAL +s32 func0f1030e4pf(s32 operation, struct menuitem *item, union handlerdata *data); +#endif s32 menuhandlerScreenSize(s32 operation, struct menuitem *item, union handlerdata *data); s32 menuhandlerScreenSplit(s32 operation, struct menuitem *item, union handlerdata *data); s32 menuhandlerSfxVolume(s32 operation, struct menuitem *item, union handlerdata *data); diff --git a/src/include/lang/dish.h b/src/include/lang/dish.h index d0c71558f..7556f4cd7 100644 --- a/src/include/lang/dish.h +++ b/src/include/lang/dish.h @@ -129,4 +129,204 @@ enum l_dish { L_DISH_125, L_DISH_126, L_DISH_127 +#if VERSION >= VERSION_PAL_FINAL + , + L_DISH_128, + L_DISH_129, + L_DISH_130, + L_DISH_131, + L_DISH_132, + L_DISH_133, + L_DISH_134, + L_DISH_135, + L_DISH_136, + L_DISH_137, + L_DISH_138, + L_DISH_139, + L_DISH_140, + L_DISH_141, + L_DISH_142, + L_DISH_143, + L_DISH_144, + L_DISH_145, + L_DISH_146, + L_DISH_147, + L_DISH_148, + L_DISH_149, + L_DISH_150, + L_DISH_151, + L_DISH_152, + L_DISH_153, + L_DISH_154, + L_DISH_155, + L_DISH_156, + L_DISH_157, + L_DISH_158, + L_DISH_159, + L_DISH_160, + L_DISH_161, + L_DISH_162, + L_DISH_163, + L_DISH_164, + L_DISH_165, + L_DISH_166, + L_DISH_167, + L_DISH_168, + L_DISH_169, + L_DISH_170, + L_DISH_171, + L_DISH_172, + L_DISH_173, + L_DISH_174, + L_DISH_175, + L_DISH_176, + L_DISH_177, + L_DISH_178, + L_DISH_179, + L_DISH_180, + L_DISH_181, + L_DISH_182, + L_DISH_183, + L_DISH_184, + L_DISH_185, + L_DISH_186, + L_DISH_187, + L_DISH_188, + L_DISH_189, + L_DISH_190, + L_DISH_191, + L_DISH_192, + L_DISH_193, + L_DISH_194, + L_DISH_195, + L_DISH_196, + L_DISH_197, + L_DISH_198, + L_DISH_199, + L_DISH_200, + L_DISH_201, + L_DISH_202, + L_DISH_203, + L_DISH_204, + L_DISH_205, + L_DISH_206, + L_DISH_207, + L_DISH_208, + L_DISH_209, + L_DISH_210, + L_DISH_211, + L_DISH_212, + L_DISH_213, + L_DISH_214, + L_DISH_215, + L_DISH_216, + L_DISH_217, + L_DISH_218, + L_DISH_219, + L_DISH_220, + L_DISH_221, + L_DISH_222, + L_DISH_223, + L_DISH_224, + L_DISH_225, + L_DISH_226, + L_DISH_227, + L_DISH_228, + L_DISH_229, + L_DISH_230, + L_DISH_231, + L_DISH_232, + L_DISH_233, + L_DISH_234, + L_DISH_235, + L_DISH_236, + L_DISH_237, + L_DISH_238, + L_DISH_239, + L_DISH_240, + L_DISH_241, + L_DISH_242, + L_DISH_243, + L_DISH_244, + L_DISH_245, + L_DISH_246, + L_DISH_247, + L_DISH_248, + L_DISH_249, + L_DISH_250, + L_DISH_251, + L_DISH_252, + L_DISH_253, + L_DISH_254, + L_DISH_255, + L_DISH_256, + L_DISH_257, + L_DISH_258, + L_DISH_259, + L_DISH_260, + L_DISH_261, + L_DISH_262, + L_DISH_263, + L_DISH_264, + L_DISH_265, + L_DISH_266, + L_DISH_267, + L_DISH_268, + L_DISH_269, + L_DISH_270, + L_DISH_271, + L_DISH_272, + L_DISH_273, + L_DISH_274, + L_DISH_275, + L_DISH_276, + L_DISH_277, + L_DISH_278, + L_DISH_279, + L_DISH_280, + L_DISH_281, + L_DISH_282, + L_DISH_283, + L_DISH_284, + L_DISH_285, + L_DISH_286, + L_DISH_287, + L_DISH_288, + L_DISH_289, + L_DISH_290, + L_DISH_291, + L_DISH_292, + L_DISH_293, + L_DISH_294, + L_DISH_295, + L_DISH_296, + L_DISH_297, + L_DISH_298, + L_DISH_299, + L_DISH_300, + L_DISH_301, + L_DISH_302, + L_DISH_303, + L_DISH_304, + L_DISH_305, + L_DISH_306, + L_DISH_307, + L_DISH_308, + L_DISH_309, + L_DISH_310, + L_DISH_311, + L_DISH_312, + L_DISH_313, + L_DISH_314, + L_DISH_315, + L_DISH_316, + L_DISH_317, + L_DISH_318, + L_DISH_319, + L_DISH_320, + L_DISH_321, + L_DISH_322, + L_DISH_323, + L_DISH_324 +#endif }; diff --git a/src/include/lang/misc.h b/src/include/lang/misc.h index 789e1f826..06d9ce86b 100644 --- a/src/include/lang/misc.h +++ b/src/include/lang/misc.h @@ -1,6 +1,10 @@ #include "lang.h" enum l_misc { +#if VERSION >= VERSION_PAL_BETA + // PAL beta removes the GE cheat names + L_MISC_041 = LANG_FIRST(LANGBANK_MISC), +#else L_MISC_000 = LANG_FIRST(LANGBANK_MISC), L_MISC_001, L_MISC_002, @@ -43,12 +47,16 @@ enum l_misc { L_MISC_039, L_MISC_040, L_MISC_041, +#endif L_MISC_042, L_MISC_043, L_MISC_044, L_MISC_045, L_MISC_046, L_MISC_047, + +#if VERSION < VERSION_PAL_BETA + // More GE cheats L_MISC_048, L_MISC_049, L_MISC_050, @@ -69,6 +77,8 @@ enum l_misc { L_MISC_065, L_MISC_066, L_MISC_067, +#endif + L_MISC_068, L_MISC_069, L_MISC_070, @@ -220,6 +230,9 @@ enum l_misc { L_MISC_216, L_MISC_217, L_MISC_218, + +#if VERSION < VERSION_PAL_BETA + // PAL beta moves bio stuff to another file L_MISC_219, L_MISC_220, L_MISC_221, @@ -418,6 +431,8 @@ enum l_misc { L_MISC_414, L_MISC_415, L_MISC_416, +#endif + L_MISC_417, L_MISC_418, L_MISC_419, diff --git a/src/include/lang/mpweapons.h b/src/include/lang/mpweapons.h index 5c3e09f98..c40efe7ea 100644 --- a/src/include/lang/mpweapons.h +++ b/src/include/lang/mpweapons.h @@ -2,6 +2,9 @@ enum l_mpweapons { L_MPWEAPONS_000 = LANG_FIRST(LANGBANK_MPWEAPONS), +#if VERSION >= VERSION_PAL_FINAL + L_MPWEAPONS_001_PF, +#endif L_MPWEAPONS_001, L_MPWEAPONS_002, L_MPWEAPONS_003, @@ -265,4 +268,27 @@ enum l_mpweapons { L_MPWEAPONS_261, L_MPWEAPONS_262, L_MPWEAPONS_263 +#if VERSION >= VERSION_PAL_FINAL + , + L_MPWEAPONS_264, + L_MPWEAPONS_265, + L_MPWEAPONS_266, + L_MPWEAPONS_267, + L_MPWEAPONS_268, + L_MPWEAPONS_269, + L_MPWEAPONS_270, + L_MPWEAPONS_271, + L_MPWEAPONS_272, + L_MPWEAPONS_273, + L_MPWEAPONS_274, + L_MPWEAPONS_275, + L_MPWEAPONS_276, + L_MPWEAPONS_277, + L_MPWEAPONS_278, + L_MPWEAPONS_279, + L_MPWEAPONS_280, + L_MPWEAPONS_281, + L_MPWEAPONS_282, + L_MPWEAPONS_283 +#endif }; diff --git a/src/include/lang/title.h b/src/include/lang/title.h index 323b2c917..1f3e9d99e 100644 --- a/src/include/lang/title.h +++ b/src/include/lang/title.h @@ -153,4 +153,39 @@ enum l_title { L_TITLE_149, L_TITLE_150, L_TITLE_151 +#if PAL + , + L_TITLE_152, + L_TITLE_153, + L_TITLE_154, + L_TITLE_155, + L_TITLE_156, + L_TITLE_157, + L_TITLE_158, + L_TITLE_159, + L_TITLE_160, + L_TITLE_161, + L_TITLE_162, + L_TITLE_163, + L_TITLE_164, + L_TITLE_165, + L_TITLE_166, + L_TITLE_167, + L_TITLE_168, + L_TITLE_169, + L_TITLE_170, + L_TITLE_171, + L_TITLE_172, + L_TITLE_173, + L_TITLE_174, + L_TITLE_175, + L_TITLE_176, + L_TITLE_177, + L_TITLE_178, + L_TITLE_179, + L_TITLE_180, + L_TITLE_181, + L_TITLE_182, + L_TITLE_183 +#endif }; diff --git a/src/lib/args.c b/src/lib/args.c index 0d6e5d531..108ecae65 100644 --- a/src/lib/args.c +++ b/src/lib/args.c @@ -89,7 +89,7 @@ bool argsParseDebugArgs(void) } if (argFindByPrefix(1, "-j")) { - g_LanguageId = LANGUAGE_JAPANESE; + g_LanguageId = LANGUAGE_NTSC_JP; } return ret; diff --git a/src/lib/ultra/os/exceptasm.c b/src/lib/ultra/os/exceptasm.c index 3452a809d..6113fe238 100644 --- a/src/lib/ultra/os/exceptasm.c +++ b/src/lib/ultra/os/exceptasm.c @@ -323,10 +323,10 @@ glabel __osException /* 3948: 02018024 */ and $s0,$s0,$at /* 394c: 8f5b0118 */ lw $k1,0x118($k0) /* 3950: 2401efff */ addiu $at,$zero,-4097 -/* 3954: 3c098006 */ lui $t1,%hi(var8005cf6c) +/* 3954: 3c098006 */ lui $t1,%hi(_osShutdown) /* 3958: 0361d824 */ and $k1,$k1,$at /* 395c: af5b0118 */ sw $k1,0x118($k0) -/* 3960: 2529cf6c */ addiu $t1,$t1,%lo(var8005cf6c) +/* 3960: 2529cf6c */ addiu $t1,$t1,%lo(_osShutdown) /* 3964: 8d2a0000 */ lw $t2,0x0($t1) /* 3968: 11400003 */ beqz $t2,.L00003978 /* 396c: 2401efff */ addiu $at,$zero,-4097 diff --git a/src/lib/ultra/os/seteventmesg.c b/src/lib/ultra/os/seteventmesg.c index f60313da7..bd302b9bd 100644 --- a/src/lib/ultra/os/seteventmesg.c +++ b/src/lib/ultra/os/seteventmesg.c @@ -12,7 +12,7 @@ void osSetEventMesg(OSEvent event, OSMesgQueue *mq, OSMesg msg) es->message = msg; if (event == OS_EVENT_PRENMI) { - if (var8005cf6c != 0 && var80060890 == 0) { + if (_osShutdown != 0 && var80060890 == 0) { osSendMesg(mq, msg, OS_MESG_NOBLOCK); }