Load state worked fine in 2.0, but I had to start using the new versions, because 2.0 won't allow you to move the Nunchuk forward in the emulated wii remote. But, in the new versions, load state kept crashing the game. I tried going back 100 revions, then 500. No better. So:
1. When did Load State stop working? How far back would I need to go for a stable revision?
2. Can I run the new wii remote plugin in 2.0?
3. Does anyone have plans to fix this?
Thank you. And very nice work, developers.

Quote:1. When did Load State stop working? How far back would I need to go for a stable revision?
Broken somewhere between 6000 and 6224. Nobody knows the exact revision that broke it.
Quote:3. Does anyone have plans to fix this?
It won't happen until someone can track down the exact revision that caused it.
Interesting... Coincidentally, or not, r6000 says this:
Quote:Changelog for r6000
Fixed the crash that occurred while loading and saving states. This change freezes the system while a save state is being made or loaded, ensuring that the sub-systems (e.g. CPU and GPU) is in a consistent state when the save-state is created. Removed the clearing of the JIT cache as invalidated memory would sometimes be jumped to from the block descriptors, causing the crash. Removed the saving of the old JIT unlimited icache from the state as this now serves only as transient data to track what has been compiled in the JIT (and it took up a lot of space). The icache is now saved inside the PPCState.
Fixes issue 2964. (I hope)
HAPPY 6000th!!!
http://www.dolphin-emu.org/download.html?log=6000
Let's see if it works.
And, if you think it will help, I'll try to narrow it down.
It'd sure help if you could narrow the exact revision down

Yes it was fixed. Then broken. Then fixed. Then broken again. Now maybe if you narrow it down we can fix it...again.
I'll work on it. I made an autoit script to transfer settings / saves to the new revision directory. I know you can extract and overwrite the files all throughout the directory, but I didn't want old files to interfere. And this should not overwrite anything. These files / folders don't exist in a new copy of dolphin. It's really just the wii remote settings and Zelda saves, for now.
Code:
HotKeySet ("!z", "copystuff")
HotKeySet ("!q", "_exit")
Global $folders[3][2]
; sets from and to
$folders[0][0] = "Profiles"
$folders[0][1] = "User\config"
$folders[1][0] = "00010000"
$folders[1][1] = "User\Wii\title"
$folders[2][0] = "WiimoteNew.ini"
$folders[2][1] = "User\config"
$fromdir = "C:\Users\rush\Desktop\wii_saves\"
$todir = "C:\Users\rush\Desktop\dolphin\x64\"
Func copystuff()
$filescopied = 0
For $i = 0 to UBound($folders) - 1
$from = $fromdir & $folders[$i][0]
$to = $todir & $folders[$i][1]
;~ MsgBox(0,0, $from & @CRLF & $to)
If Not FileExists($from) Then
handle_error("Copy from file/folder does not exist" & @CRLF & $from )
ContinueLoop
ElseIf Not FileExists($to) Then
handle_error("Destination directory does not exist" & @CRLF & $to )
ContinueLoop
EndIf
$to &= '\' & $folders[$i][0]
If _isdir($from) Then
;~ MsgBox(0,'',"It's a folder")
DirCopy($from, $to)
Else
;~ MsgBox(0,'',"It's a file")
FileCopy($from, $to)
EndIf
$filescopied += 1
Next
MsgBox(64, "Finished.", "Files/folders Copied: " & $filescopied, 1)
EndFunc
Func _isdir($path)
Return StringInStr ( FileGetAttrib($path), "D", 1 )
EndFunc
Func handle_error($str)
MsgBox(16, "ERROR", $str, 7)
EndFunc
Func _exit()
Exit
EndFunc
While 1
Sleep(1000)
WEnd
I also made a script to pause the game when you hit spacebar, and change the frame skipping, to speed up or slow down the game, from the game window. But I don't know where to post autoit scripts here.
Every so often, I'll have a look at the save states code. A quick fix won't do here. Most of the issues stem from the use of threads in dolphin. The save state needs to capture the state of each thread at a particular moment. This is hard to accomplish with the way dolphin manages the threads currently (timing related). There are way more than two threads in use. The threads that I can list off the top of my head are: the main CPU thread, the video thread, the DSP thread, the wiimote thread, the audio backend thread and the GUI thread.
damn, that's a lotta threads :o
![[Image: threads-one.jpg]](http://www.sewingcenterofsantafe.com/img/threads-one.jpg)
Quote:Every so often, I'll have a look at the save states code. A quick fix won't do here. Most of the issues stem from the use of threads in dolphin. The save state needs to capture the state of each thread at a particular moment. This is hard to accomplish with the way dolphin manages the threads currently (timing related). There are way more than two threads in use. The threads that I can list off the top of my head are: the main CPU thread, the video thread, the DSP thread, the wiimote thread, the audio backend thread and the GUI thread.
Why would a save sate need to capture the state of the audio backend, gui, wiimote/input, or dsp threads? I would think the only two needed would be cpu and video.
i expect its not just load state thats broken, but also save state.