Fix EJob028 pointer corruption and Experimental First Person mode#87
Merged
Conversation
The original code builds fly command script addresses relative to the 0x7e0000 PS2 command segment. The PC port was converting 0x7e0000 to a host pointer first, then OR-ing that host pointer with 16-bit command offsets. This could produce invalid/wrong host addresses and cause fly objects to execute the wrong command stream. This fixes a crash when fighting the Family Master during Night 3.
Adds an optional First Person mode via the ImGui Debug > Camera menu
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
EJob028 Pointer Fix
The original code builds fly command script addresses relative to the
0x7e0000 PS2 command segment. The PC port was converting 0x7e0000 to a
host pointer first, then OR-ing that host pointer with 16-bit command
offsets. This could produce invalid/wrong host addresses and cause fly
objects to execute the wrong command stream and crash MikuPan.
Experimental First Person Mode
This adds an optional first-person mode that can be enabled from the ImGui settings menu. The mode is implemented as a dedicated MikuPan first-person module rather than reusing PMODE_FINDER, allowing it to keep normal movement speed while using first-person camera controls.