project64 icon indicating copy to clipboard operation
project64 copied to clipboard

Known issue regarding Recompiler optimizations and some games with current nightly builds.

Open Squall-Leonhart opened this issue 2 years ago • 2 comments

At the present time with ongoing refactoring and migration to ASM Jit, the Recompiler has issues with some games which can result in visual or behavioural glitches as well as freezing when Register Caching and Advanced Block Linking are used together.

Known so far

Army Men: Air Combat - Memoryexceptionfilter.cpp 646 and 32 error when picking up munitions crates while register caching is enabled. Castlevania 64 - Memoryexceptionfilter.cpp 151 error after intro with register caching+protect memory enabled. Castlevania: Legacy of Darkness - error 292 after expansion pak screen. with register caching+protect memory enabled. Doubutsu no Mori - Memoryexceptionfilter.cpp 151 error at start screen with register caching+protect memory enabled. Mickey's Speedway USA - Memoryexceptionfilter.cpp 297 when Demo race loads with Register caching+protect memory enabled. #2335 Mystical Ninja Starring Goemon - Memoryexceptionfilter.cpp 151 when either skipping intro cutscene or playing it completely.

32bit Engine optmization causes black screens in Aerogauge Banjo Kazooie Banjo Tooie Destruction Derby EU, but not US Ocarina of Time EU/US

Crash handler in Aidyn Chronicles

RDREG exception in Xena Warrior Princess

And possibly many more titles

Resolved so far

~~Airboarder64 E - Black screen after press start screen.~~ ~~Banjo Kazooie - After shooting the ape on the tree 3 times, the game will freeze instead of playing the jiggie cutscene.#2302~~ ~~Donkey Kong 64 - TLB Miss exception prior to the DK Rap when Register Caching enabled. #2308~~ ~~Gex 3, Deep Cover Gekko - Room transitions do not complete leaving the player on a black screen. #2252~~ ~~Goldeneye - Blank screen, or shifted downwards depending on RSP/Graphics plugin. #2301~~ ~~Extreme-G - Memoryexceptionfilter.cpp 151 error on boot~~ ~~Legend of Zelda: Ocarina of Time - MemoryExceptionFilter.cpp 24 error on boot with register caching+protect memory enabled.~~ ~~Snowboard Kids - The snowboard selection screen currently selects the first snowboard no matter which you select. #2284~~ ~~Wave Race 64 U 1.1 - Wave animations missing compared to other regions and versions. #2298~~

Workaround

The user can turn on the advanced options and disable one or the other of the 2 stated options under the per game recompiler options by right clicking it in the rom browser and selecting "Edit game settings". I recommend leaving register caching on personally unless you experience cases of high vi/rate black screens - when indicate a need for Protect Memory.

Disabling advanced block linking is recommended as the current state of the Recompiler has significant block linking latency as of the move to asmjit that translates to significant stuttering.

Also attach a reply to this issue for any other games you identify that do not work properly with both settings enabled.

Squall-Leonhart avatar Nov 08 '22 10:11 Squall-Leonhart

Many games are currently broken when 32bit Engine is enabled, behavior varies with some black screen hangs with a VI rate into infinite, others throw an error message.

Squall-Leonhart avatar Dec 11 '23 23:12 Squall-Leonhart

Aidyn Chronicles has the above issue, but won't boot if you disable ABL (which at the present time is the only way to solve the recompilers block linking stutters) so there is effectively no way to mitigate that for this game.

Squall-Leonhart avatar Feb 29 '24 23:02 Squall-Leonhart