wraggster
January 29th, 2011, 01:44
PCSP the PSP Emulator for Windows had a release a few days ago but the team behind it have posted an update about issues with the release
It appears there is a bug with pcsp and single core cpus. It is very likely that pcsp will freeze from parallel threads that it tries to syncronize. There is already a fix for that for all you ppl that still using old machines with single core (who does anyway).
A bug fix version will be release shortly among with a very interesting feature.
Stay tuned :)
--------------------
Hlide here again,
Ok I think I understand what it happens. The emulator has a state : normally it is RUNNING when interpreting a PSP game. Some events like Audio, Vsync, Clock may occur and try to set this state to an event state so the emulator thread is leaving the interpreter to handle the event. In a multi-core processor, each event has its time-critical thread running on one core whereas the emulator thread is running on another core. So a core tries to set a state to make the other core to suspend interpretation and handle event in the emulator thread. I made some changes in code prior the correction I did for 0.5.1 because I feared an event state might be set when the emulator was already set to another event set (a vsync event occuring when the emulator state is set to an audio event state) and might fix the freeze issue. It didn't but I left this code after fixing the real issue. However I never realized that code might not work properly for a mono-core as those threads will be executed in a sequential order and might create some hell slowness or worst responsiveness (because of an active polling added).
:: Homepage (http://www.pcsp-emu.com/news.php?readmore=49#comments)
It appears there is a bug with pcsp and single core cpus. It is very likely that pcsp will freeze from parallel threads that it tries to syncronize. There is already a fix for that for all you ppl that still using old machines with single core (who does anyway).
A bug fix version will be release shortly among with a very interesting feature.
Stay tuned :)
--------------------
Hlide here again,
Ok I think I understand what it happens. The emulator has a state : normally it is RUNNING when interpreting a PSP game. Some events like Audio, Vsync, Clock may occur and try to set this state to an event state so the emulator thread is leaving the interpreter to handle the event. In a multi-core processor, each event has its time-critical thread running on one core whereas the emulator thread is running on another core. So a core tries to set a state to make the other core to suspend interpretation and handle event in the emulator thread. I made some changes in code prior the correction I did for 0.5.1 because I feared an event state might be set when the emulator was already set to another event set (a vsync event occuring when the emulator state is set to an audio event state) and might fix the freeze issue. It didn't but I left this code after fixing the real issue. However I never realized that code might not work properly for a mono-core as those threads will be executed in a sequential order and might create some hell slowness or worst responsiveness (because of an active polling added).
:: Homepage (http://www.pcsp-emu.com/news.php?readmore=49#comments)