shiiion/dolphin

Prime Trilogy: Prime 3 Cutscenes have Wrong Zoom/FOV until Prime 1 or 2 is ran

Closed this issue · 2 comments

This is a weird one...
But I have consistent steps for reproducing it.

This occurs even with fresh saves, and a fresh Dolphin/PrimeHack user folder.

VERSIONS:
PrimeHack/Dolphin: Official Release 1.0.5
ROM: Prime Trilogy US
OS: Windows 10 64 bit

THE ISSUE:
Prime 3, if launched first from the Trilogy main menu, has incorrect zoom levels in all cutscenes. Specifically, if a cutscene has a camera zoom in or out (changing FOV), nothing happens.

This does not seem to be affected by PrimeHack FOV settings, 4:3/16:9 toggle, widescreen hack, GFX plugin settings etc. as I can get it to happen in all states, and it happens with totally fresh configs.

This is most noticeable in the intro cutscene; when Samus wakes up, her mouth is visible, whereas you normally only see her eyes in the frame.

There are other cutscenes where the issue is more noticeable because characters animate improperly as they are supposed to be out of frame, such as the cutscene of first meeting the Admiral.

If you are impatient you can tell the difference immediately by watching the "loading from a save" short cutscene of Samus standing on a save pad.

HOWEVER, this can be fixed by launching Prime 1 or 2 from the Trilogy main menu, and then either exiting back to the Trilogy main menu, or ending emulation (but not closing Dolphin). If Prime 3 is launched after either case, the cutscenes have correct zoom levels. However, if Dolphin is closed entirely and then launched again, Prime 3 cutscene zoom levels are broken again until Prime 1 or 2 is started.

Since the 'fixed' state persists between ending emulation and launching the game again, I believe the issue may be within PrimeHack's FOV altering routines (even though the FOV slider does not affect the broken cutscenes); perhaps some flag or game detection logic is not properly set until Prime 1 or 2 code is encountered.

Incorrect cutscene, before running Prime 1 or 2 this Dolphin instance:
before_with_zoom_broken

Correct cutscene, after running Prime 1 or 2 :
after_prime1_correct_zoom

Thank you for the detailed yet concise report! The issue related to the broken cinematic camera FoV should already be resolve with this commit: aa4d347

I was not aware that these additional steps could alter the behaviour (although Shio, who fixed this, may know why). Perhaps the memory is in a different state if you did not launch directly into the game, causing the cameras to be allocated in a different order, which leads us to cache the wrong camera address? Not sure.

If you are able, you can build the latest version of this repository and see if the problem still exists. However I'm fairly confident shio's solution would resolve this as it dynamically handles the camera changing and tests the camera to ensure it is not the cinematic camera, so the wrong values should never be written to.

I did a build from git a while ago, it is indeed working fine after that commit after all

Thanks!