From 8200d1d4daab300a8d8bab1ef9e48ff09135fb14 Mon Sep 17 00:00:00 2001 From: Tang-Tang Zhou <5919707+tangtang95@users.noreply.github.com> Date: Sun, 1 Oct 2023 13:02:26 +0200 Subject: [PATCH] FF7: Fix Widescreen Pandora Box white background position (#614) --- Changelog.md | 1 + src/ff7.h | 1 + src/ff7/widescreen.cpp | 1 + src/ff7_data.h | 5 +++++ 4 files changed, 8 insertions(+) diff --git a/Changelog.md b/Changelog.md index 7409558e..ea0b76ac 100644 --- a/Changelog.md +++ b/Changelog.md @@ -21,6 +21,7 @@ - Voice: Enable tutorial voice acting - Widescreen: Added experimental support for 16:10 aspect ratio - Widescreen: Fix Pollensalta attack (only when also using 30/60FPS mode since it is a temporary fix) and Bahamut Zero summon background +- Widescreen: Fix Pandora Box white background position ## FF8 diff --git a/src/ff7.h b/src/ff7.h index 956e3d4a..fb9b10df 100644 --- a/src/ff7.h +++ b/src/ff7.h @@ -3248,6 +3248,7 @@ struct ff7_externals std::span> pollensalta_cold_breath_white_dots_pos; short* pollensalta_cold_breath_white_dot_rgb_scalar; uint32_t pollensalta_cold_breath_bg_texture_ctx; + uint32_t pandora_box_skill_draw_bg_flash_effect_568371; // battle menu uint32_t display_battle_menu_6D797C; diff --git a/src/ff7/widescreen.cpp b/src/ff7/widescreen.cpp index 577aff09..acbb71fe 100644 --- a/src/ff7/widescreen.cpp +++ b/src/ff7/widescreen.cpp @@ -198,6 +198,7 @@ void ff7_widescreen_hook_init() { patch_code_int(ff7_externals.pollensalta_cold_breath_atk_enter_sub_5474F0 + 0x8D, wide_viewport_height); patch_code_short(ff7_externals.pollensalta_cold_breath_atk_main_loop_5476B0 + 0x191, wide_viewport_x - 200); patch_code_dword(ff7_externals.pollensalta_cold_breath_atk_main_loop_5476B0 + 0x39, (uint32_t)&pollensalta_cold_breath_atk_white_dot_effect); + patch_code_int(ff7_externals.pandora_box_skill_draw_bg_flash_effect_568371 + 0x3D, wide_viewport_x - 170); // Battle summon fix replace_call_function(ff7_externals.ifrit_sub_595A05 + 0x930, ifrit_first_wave_effect_widescreen_fix_sub_66A47E); diff --git a/src/ff7_data.h b/src/ff7_data.h index 0b805f76..306ee912 100644 --- a/src/ff7_data.h +++ b/src/ff7_data.h @@ -1112,6 +1112,11 @@ void ff7_find_externals(struct ff7_game_obj* game_object) ff7_externals.pollensalta_cold_breath_white_dots_pos = std::span((vector4*) get_absolute_value(ff7_externals.pollensalta_cold_breath_atk_white_dot_effect_547D56, 0x79), 400); ff7_externals.pollensalta_cold_breath_white_dot_rgb_scalar = (short*) get_absolute_value(ff7_externals.pollensalta_cold_breath_atk_white_dot_effect_547D56, 0x1B); ff7_externals.pollensalta_cold_breath_bg_texture_ctx = get_absolute_value(ff7_externals.pollensalta_cold_breath_atk_draw_bg_effect_547B94, 0x2A); + uint32_t pandora_box_skill_enter_5667E1 = ff7_externals.enemy_skill_effects_fn_table[23]; + uint32_t pandora_box_skill_main_566806 = get_relative_call(pandora_box_skill_enter_5667E1, 0x1A); + uint32_t pandora_box_skill_sub_566871 = get_absolute_value(pandora_box_skill_main_566806, 0x30); + uint32_t pandora_box_skill_main_loop_566E61 = get_absolute_value(pandora_box_skill_sub_566871, 0x1F); + ff7_externals.pandora_box_skill_draw_bg_flash_effect_568371 = get_absolute_value(pandora_box_skill_main_loop_566E61, 0x162); // Texture/Material animation uint32_t battle_leviathan_sub_5B2F18 = get_absolute_value(ff7_externals.battle_summon_leviathan_loop, 0x50E);