Project

General

Profile

Actions

Emulator Issues #9573

closed

Savestates created while recording a Wii game don't save whole filesystem state

Added by magumagu9 over 8 years ago. Updated over 1 year ago.

Status:
Fixed
Priority:
Normal
Assignee:
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:
5.0-17850

Description

Basically, savestates save and restore "/tmp"... but never touch anything else, even when you're recording. Therefore, it's easy to cause a desync with a recording that loads a in-game save: if you try to continue from a savestate, the save data will be missing. Generally affects every Wii game which supports saves. Probably easy to fix.

Example of how to reproduce this, for completeness:

  1. Start recording Twilight Princess Wii
  2. Press A+B to start, click yes to the "create a new memory file" prompt, start a new file
  3. Make a savestate
  4. Press home, reset, then go through to the save screen; "create a new memory file" doesn't appear
  5. Stop recording, save the recording.
  6. Load the recording, and load the savestate.
  7. Let recording play through to the save screen
  8. Observe desync: the "create a new memory file" prompt appears

Related issues 1 (0 open1 closed)

Has duplicate Emulator - Emulator Issues #7425: Wii TASing desyncs with savesDuplicate

Actions
Actions #1

Updated by Helios over 8 years ago

  • Status changed from New to Fix pending

Whoops

Actions #2

Updated by phire over 8 years ago

I think this is by design as dolphin also doesn't save the memory cards in the savestate for gamecube games.

The same reproduction steps can be used there.

Though, I'm unsure of the wisdom of this design decision

Actions #3

Updated by phire over 8 years ago

  • Status changed from Fix pending to New

No it isn't. Read the bug report better

Actions #4

Updated by magumagu9 over 8 years ago

The savestate code for GC memory cards special-cases movies; see https://github.com/dolphin-emu/dolphin/blob/5e50c37c138e28821079c165b0cd72702ff9154f/Source/Core/Core/HW/EXI_DeviceMemoryCard.cpp#L510 and https://github.com/dolphin-emu/dolphin/blob/5e50c37c138e28821079c165b0cd72702ff9154f/Source/Core/Core/HW/EXI_DeviceMemoryCard.cpp#L239 . It's a little tricky to set up because "Start Recording Input" puts you into the wrong mode by default. but it appears to work otherwise.

Actions #5

Updated by JMC4789 over 8 years ago

Wii Games really don't work well at all with savestates. I've crashed Dolphin outright by having HID devices connected during a load-state.

I have a feeling savestates need to be completely rethought on Wii; simply loading a savestate for a game as you boot the game will usually crash the game, crash audio or crash Dolphin.

Actions #6

Updated by JMC4789 about 7 years ago

  • Status changed from New to Duplicate
Actions #7

Updated by JMC4789 about 7 years ago

Actions #8

Updated by JMC4789 about 7 years ago

I made a bigger issue for this.

Actions #9

Updated by JosJuice about 7 years ago

Actions #10

Updated by JosJuice about 7 years ago

  • Status changed from Duplicate to New
Actions #11

Updated by leoetlino about 7 years ago

  • Status changed from New to Accepted

In my opinion, savestates should save the whole state, including the NAND filesystem, but this would make states a bit larger... On the other hand, not including the NAND will cause various issues and inconsistencies.

Actions #12

Updated by leoetlino over 6 years ago

  • Status changed from Accepted to Work started
  • Assignee set to leoetlino

I have a WIP branch that saves the entire filesystem. I'll open a PR when it's ready

Actions #13

Updated by JMC4789 about 2 years ago

Actions #14

Updated by JosJuice over 1 year ago

  • Status changed from Work started to Fixed
  • Fixed in set to 5.0-17850
Actions

Also available in: Atom PDF