summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2023-03-11 03:12:02 +0100
committerAdmiral H. Curtiss <pikachu025@gmail.com>2023-03-11 12:48:02 +0100
commit2102e642999fccc53fd2bfac0cf1bc0e8290b067 (patch)
treea833608f3500cdd4db4402d5f5257b541525ac2a /Source
parent62ff2f1030ae95ac0e5bf9ae02e9cc78664ab83e (diff)
HW/VideoInterface: Savestate members individually.
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/HW/VideoInterface.cpp36
-rw-r--r--Source/Core/Core/State.cpp2
2 files changed, 36 insertions, 2 deletions
diff --git a/Source/Core/Core/HW/VideoInterface.cpp b/Source/Core/Core/HW/VideoInterface.cpp
index 006dfabd2e..4e839187d9 100644
--- a/Source/Core/Core/HW/VideoInterface.cpp
+++ b/Source/Core/Core/HW/VideoInterface.cpp
@@ -94,7 +94,41 @@ static constexpr u32 NUM_HALF_LINES_FOR_SI_POLL = (7 * 2) + 1; // this is how l
void DoState(PointerWrap& p)
{
- p.Do(Core::System::GetInstance().GetVideoInterfaceState().GetData());
+ auto& state = Core::System::GetInstance().GetVideoInterfaceState().GetData();
+
+ p.Do(state.vertical_timing_register);
+ p.Do(state.display_control_register);
+ p.Do(state.h_timing_0);
+ p.Do(state.h_timing_1);
+ p.Do(state.vblank_timing_odd);
+ p.Do(state.vblank_timing_even);
+ p.Do(state.burst_blanking_odd);
+ p.Do(state.burst_blanking_even);
+ p.Do(state.xfb_info_top);
+ p.Do(state.xfb_info_bottom);
+ p.Do(state.xfb_3d_info_top);
+ p.Do(state.xfb_3d_info_bottom);
+ p.DoArray(state.interrupt_register);
+ p.DoArray(state.latch_register);
+ p.Do(state.picture_configuration);
+ p.Do(state.horizontal_scaling);
+ p.DoArray(state.filter_coef_tables.Tables02);
+ p.DoArray(state.filter_coef_tables.Tables36);
+ p.Do(state.unknown_aa_register);
+ p.Do(state.clock);
+ p.Do(state.dtv_status);
+ p.Do(state.fb_width);
+ p.Do(state.border_hblank);
+ p.Do(state.target_refresh_rate);
+ p.Do(state.target_refresh_rate_numerator);
+ p.Do(state.target_refresh_rate_denominator);
+ p.Do(state.ticks_last_line_start);
+ p.Do(state.half_line_count);
+ p.Do(state.half_line_of_next_si_poll);
+ p.Do(state.even_field_first_hl);
+ p.Do(state.odd_field_first_hl);
+ p.Do(state.even_field_last_hl);
+ p.Do(state.odd_field_last_hl);
}
// Executed after Init, before game boot
diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp
index be39736790..8eb59fe938 100644
--- a/Source/Core/Core/State.cpp
+++ b/Source/Core/Core/State.cpp
@@ -96,7 +96,7 @@ static size_t s_state_writes_in_queue;
static std::condition_variable s_state_write_queue_is_empty;
// Don't forget to increase this after doing changes on the savestate system
-constexpr u32 STATE_VERSION = 158; // Last changed in PR 11522
+constexpr u32 STATE_VERSION = 159; // Last changed in PR 11640
// Maps savestate versions to Dolphin versions.
// Versions after 42 don't need to be added to this list,