CTR physics accuracy and fixing architecture differences on PC - #48
Open
kkv0n wants to merge 12 commits into
Open
CTR physics accuracy and fixing architecture differences on PC#48kkv0n wants to merge 12 commits into
kkv0n wants to merge 12 commits into
Conversation
added 12 commits
July 27, 2026 00:09
…ith emulators implementation
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.
So i did noticed some gameplay behavior on native felt different than playing on PS1 so i made a comparison against PS1 assembly searching for any difference on code or architecture that can be causing this like bugs or UB, MIPS CPU is not exactly like a PC after all, well i checked against the whole COLL, Vehicle (except VehTalk because i'm lazy lol), CAM, PlayLevel, GAMEPAD and 226 render overlay with the intention of finding any small hint about what is wrong in main gameplay flow, i found interesting stuff like a bug where some sub quads weren't rendering properly on certain cam angles, this was fixed on 226 on this PR, i also did a huge benchmark script for GTE, used psyq 4.4 source (ctr was built on that), psx-spx, sony official GTE manual and mednafen emulator source code to compare all possible results and find any UB or wrong logic present on the GTE implementation, when doing this an silent bug showed up where some instances somewhat far away (still visible on vistree) were rendering on screen if you were on certain world positions, turns out there was a unimplemented psx behavior where certain polygons aren't draw, check native gpu to see the fix, another of the bugs fixed there was one where the kart landing wasn't making the kart to bounce properly, that's mostly what this PR is for
PD: i also did checked the delta Timing increment (Timer.c), and some small changes on warpball and UI code related to wrong sign (the sign / size thing being something that also required changed headers) and a wrong assumption that ghosts / warpball icons on minimap used CRASH_BLUE instead of WHITE, verified by retail assembly.