GT4Recomp 1.3.0-rc12 (test build)
A test release candidate of 1.3.0: precise triggers and sticks, a choice of controller, no more desktop flash or "Not
responding" window in fullscreen, and on CoreGS 2.0 a race keeps its full speed when the PC cannot hold 60 FPS. The game itself
is unchanged.
Highlights
- Triggers and sticks: throttle and brake reach 100% only at the end of the trigger's travel, and steering follows the stick
from a small dead zone to full lock, in Gran Turismo 4 and Spec II alike. - Choose the controller: with several controllers connected, the Controls page picks the one the game reads.
- Fullscreen without flashes: the window behind the game no longer shows for a frame every few seconds, and Alt+Tab no
longer brings the game back as a white "Not responding" window. - 60 FPS that keeps the speed (CoreGS 2.0, experimental): in a race, a PC that cannot keep up now drops frames instead of
slowing the game down.
Fixes
- Triggers reached 100% at a third of their travel (issues #183, #134). Gran Turismo 4 scales the pressure it reads: the
throttle reaches its maximum at a pressure of 45 of 255 and the brake at 84, values made for the DualShock 2's pressure
buttons, so a light press of an analog trigger already counted as full throttle (both games, read in the translated code). Now
R2 spans 0 to 45 and L2 0 to 84 over the whole trigger travel past its dead zone, so the game's 100% comes at the end of the
travel. The controls file optionrangechanges it per binding. The finer steps of a game-side change (as in community PCSX2
patches) are not part of this build. - The first half of the stick did nothing, then it steered too fast (issue #178). Gran Turismo 4 has its own stick dead zone
of about 29% each way (the same table in both games), stacked on the launcher's XInput dead zones (24% left, 26.5% right): up
to about 46% of the travel nothing happened, and the rest steered almost twice as steeply. Now both sticks have a 10% dead zone,
and past it each reading skips the game's own dead zone, so the steering follows the stick from the first step, within one of
the game's own steps. The controls file optiongame_deadzone=keeprestores the old behaviour. - A one-frame flash of the window behind the game, with a stutter every few seconds (issue #99; mainly NVIDIA RTX, CoreGS 2.0
and GSdx alike). Windows took the fullscreen game for "not responding" because its message queue stayed empty with a gamepad
(reading an empty queue does not count), put another window or a white copy in front for a frame, and could end the game as
hung (exit code 0xCFFFFFFF). The game window now answers a one-second timer, so Windows always sees it responding. On the
owner's laptop (RTX 3060, 3440x1440 at 144 Hz) a whole lap ran without a flash (before: one every 6 seconds) and a 22-second
Alt+Tab came back normally. - The game could close by itself on NVIDIA cards in the 30 FPS mode or when frames are dropped (CoreGS 2.0). The presentation
thread shared a command pool and the swapchain with the graphics thread without a lock (an access violation in the NVIDIA driver
at the end of a race). Each now has its own pool, and every acquire, present and present wait holds the swapchain's lock. The
Vulkan validation layer's thread checks find 10 overlaps on a replay before, 0 after. - The 30 FPS mode (CoreGS 2.0) now also covers the intro before a race start, from the first race camera; before, it started
only when the camera took the car. - The launcher no longer writes a frame time file beside each game session.
New
- Controller choice (Controls page). The page lists the connected controllers by name; the game reads the one selected. At
every start the launcher selects one of the connected controllers: the one chosen last time when it is connected, else the
first one connected. The game reads the same unit (by its SDL GUID and, when the controller reports one, its serial number),
else one of the same model, else controller 1, and looks for the chosen one again every two seconds while another stands in.
Joysticks SDL3 cannot map are listed greyed out; a mapping for them ingamecontrollerdb.txtin the launcher's config folder
makes them usable. - 60 FPS that keeps the game speed (CoreGS 2.0, experimental). In a running race in 480p, from the intro before the start,
when the PC cannot keep up the game leaves frames out instead of slowing down; the simulation stays at 60 Hz and every frame
is drawn when there is time. Menus never leave frames out. On an RX 9060 XT at 12x a race ran at 100.00% game speed with about
40 frames drawn per second. 30 FPS stays available.
The same game
Against rc11, on this build (both games built again with a fresh profile):
- Physics: the race clock at every VBlank and the whole simulation state, byte for byte, on three recorded laps (George V Paris,
El Capitan, Tokyo R246) and on the v2.00 night race with 5 AI cars. - Frames: every compared frame identical: 35 of 35 on two Spec II laps at 1x, 12 of 12 on a lap at 6x, 10 of 10 on the v2.00
night race at 3x and 14 of 14 on the v2.00 Arcade path. - Checks while running, against the exact interpreter: 236,448 VU1 samples on Spec II and 355,388 on v2.00, and the MTVU check
over 8,032 frames, all with 0 differences. - The controller, window and frame-skip changes are on the host side: recorded drives replay the same pad bytes, so the game
itself is unchanged.
Thanks
Thanks to the players who reported these problems on GitHub: HakimTanaje (#183) and shadowcla02-cloud (#134) for the
triggers, loxzalupapizda (#178) for the stick dead zone, Rafeku and alizikrullah (#99) for the flashing window, and the
player who asked for a choice of controller.
Install or update
- From rc8 to rc11 or another 1.3.0 test build: the launcher offers rc12 on the Beta channel (Settings > General).
- Installer: run
GT4Recomp-Setup-1.3.0-rc12.exe. It keeps existing settings, saves and replays. - Portable: unpack
GT4Recomp-1.3.0-rc12-portable.zipanywhere. Settings, saves and data stay inside the folder. - After the update, Play may compile CoreGS 2.0's shaders once, as after every update.
- Controls: the stick dead zones are now 10% by default. A dead zone you changed yourself before is kept; set it back to 10% in
Controls if the sticks feel dead in the middle. - Disc images: you need your own: Gran Turismo 4 (USA, v2.00), and your own Spec II 1.10 image for the mod. GT4Recomp ships no
copyrighted game files.
Known issues and limitations in this test build
- 60 FPS with dropped frames (experimental): motion is less even while frames are left out (the game's states are 16.7 ms
apart; smoothing them is for a later renderer), audio can crackle in long stalls, and right before a race starts the game can
still slow down briefly. - CoreGS 2.0, planned for rc13: some fence textures along the Nordschleife do not look right; frame times are uneven in the
used-car showroom; in photo mode (Gran Turismo 4) the picture alternates with black frames and runs slowly (seen on an NVIDIA
card). - Two identical controllers without a serial number (for example two Xbox controllers) cannot be told apart: choosing either
reads the first one. - Everything else is unchanged from rc11, including its known issues.
Requirements
Windows 10 or 11, 64-bit, a processor with SSE4.1. CoreGS 2.0 needs a graphics card with Vulkan 1.2.
Credits and legal
Our code is MIT. GSdx is the PCSX2 GS (GPL-3.0-or-later), downloaded by the launcher and run in its own process; the game
executable contains no GPL code. FSR1 sharpening is written from AMD's published MIT design.