Repository navigation
Releases
v0.3.0
The first full release, after two early previews. Built on THPS64Host v0.3.0. It runs the USA and Europe releases of the N64
game, on macOS (universal) and Windows x64.
Changed
- Built on THPS64Host v0.3.0.
- No longer an early preview. A few parts of the game still haven't been played through by hand on this build (the park editor,
split screen in a level, replays and most competitions); Known issues lists them. - Draw distance at Full draws the areas the courses hide by zone again, and only those: each course's trigger file is read at
its start to tell the zones the game hides for distance from the ones that hold course state (The Hangar's crashed ceiling
and its floor's light overlays), which stay as the game sets them. Rooms (a zone the course hides from its own doors, one
each in School II and Skatestreet) are left to the game. - Tests: test rides claim a controller before steering, and an opt-in session records and replays a complete ride. Recorded
rides use a consistent replay step for the game's coupled timing values.
Fixed
- School II at Full draw distance: patches of the sunlit ground no longer flash flat. The renderer was splitting those frames
into many separate passes; School II, NY City, Bullring and Philadelphia draw them in one pass again, which also takes about
1 ms less per frame. - Philadelphia: trees at the edge of the view no longer smear and buildings no longer open holes as you turn, with frame
interpolation on. - Skating tests read the actual physics dispatch state, so airborne and rail observations describe the skater correctly.
Built on THPS64Host v0.3.0.
Check a download against SHA256SUMS with shasum -a 256 -c SHA256SUMS (macOS) or Get-FileHash (Windows).
v0.2.0-preview
The second early preview, built on THPS64Host v0.2.0: split screen, Picture Border, rebinding, draw distance and the
Original and Enhanced presets. It runs the USA and Europe releases of the N64 game, on macOS (universal) and Windows
x64.
Added
- Graphics > Picture Border (
border = fill,--border fill): the 3D picture reaches the edges of the window, without
the thin black frame the game leaves for a TV's overscan. It shows a little more of the scene at the same size (no
zoom). Menus and loading screens keep their own frame. In a two-player split screen, both views reach the edges too
and meet at the game's thin divider line in the middle. - Rebinding in the settings menu: the Controls tab has a row per N64 input with two controller slots and two keyboard
slots. Choose a slot and press the new button or key; a button another action uses trades places with it, and
Default puts a row back. A slot that differs from the layout shows in yellow, and Reset all to default (it asks first)
puts every binding back. Changes work at once and are saved tocontrols.cfg(MANUAL). - A Controllers list in the Controls tab: which controller is player 1 or 2, what it is pressing right now, and buttons
to swap players or give a controller either player. One controller on player 2 with the keyboard alone on player 1
makes a two-player game with one controller. The choice lasts until you quit. - Test sessions
menu-controls,menu-controls-reloadandmenu-ports(virtual pads). - Draw distance (Graphics tab,
draw_distanceingraphics.cfg,--draw-distance): Original (the game as it
was), 2x, 4x and Full (the whole course; scenery the game hides by area as you skate, secrets and items a goal
reveals stay hidden until the game shows them). It applies without a restart. A shorter distance applies at
once; a longer one reaches the far scenery after a RETRY, the next course or a camera change. Every course start sets up
bigger matrix buffers and display lists (144 KiB instead of 72), of which the game uses only its own part at Original.
It steps back on its own if a frame comes close to filling the game's buffers.dd_buffers = originalingraphics.cfg
(--dd-buffers original; not in the menu) keeps the game's own buffers and memory layout exactly; it needs a restart. - Tests: Europe's own reference pictures, for the few screens that differ from USA (
OWN_REFSin
tests/scenarios.py), are recorded bytest.sh --version thps2_eu --record. - Fog (
fogingraphics.cfg,--fog; not in the menu or a preset): Original (the default), Soft or Off. The game's
fog is thin by design, a haze over the far end of the view (in most courses the last eighth). Soft starts it at 70 %
of the draw distance, so far scenery fades in instead of popping in; Off shows a long draw distance most clearly. At
Full draw distance the game's fog is far beyond the courses, so Soft looks like Original there. Test sessions
fog-check(in the suite) andfog-shot(opt-in pictures).
Changed
- Built on THPS64Host v0.2.0.
- Frame Rate (Graphics tab,
refreshingraphics.cfg,--refresh) is now Original (30) or 60, default 60. "Match display"
and 120 are gone: at 120 Hz (what "Match display" gave on a ProMotion Mac) the picture stuttered. Agraphics.cfgwith
refresh=displayor another rate moves to 60 once, with a log line. - Graphics > Preset (
--preset original|enhanced): Original sets 4:3, the HUD in the 4:3 area, the 4:3 split screen,
the black frame, 30 fps and the game's draw distance, as on the N64. Enhanced sets 16:9, the HUD at the screen edges,
the wide split screen, Picture Border Fill, 60 fps and Full draw distance. Choosing one replaces your choices in those
six rows; Custom shows when they match neither. A new install starts with Enhanced. An existinggraphics.cfgkeeps
its values, and a setting it lacks takes the new default (so an older file gets Picture Border Fill and Full draw
distance). Fog is in neither preset. - Removed the known issue "at 21:9, a far wall can drop out at the right edge". It was reported in THPS1, where it
doesn't happen in v0.1.0, and the widescreen code involved is shared by all three games. - Two-player split screen fills the picture in widescreen (16:9, 21:9, following the window): each player's view is widened
to its half, and each player's HUD sits at its own view's edge (also with HUD Placementoriginal). 4:3 is unchanged.
It's on by default; Graphics > Two-Player Split Screen (split,--split original) keeps both views in the 4:3 area,
each with its HUD inside it, and black bands at the sides. - Level starts freeze the picture for about 0.16 s instead of 0.2 s: the shared host unpacks the game's data twice as
fast and runs the game'smemsetandmemcpynatively. - BUILDING.md: on Windows use
pythoninstead ofpython3and aC:/...path inTHPS2_ROM, with a link to the Windows
test checklist; howtools/check.shshares the build's runtime;--first-runneedsbuild_host.py --splitfirst; where
the test output goes; how to test Europe.
Fixed
- With a
controls.cfgthat matches no preset (edited by hand), Xbox B flipped and grabbed at once while skating. The
east button's split between flip and back now follows the bindings, not the preset name.
Built on THPS64Host v0.2.0.
Check a download against SHA256SUMS with shasum -a 256 -c SHA256SUMS (macOS) or Get-FileHash (Windows).
v0.1.0-preview
An early preview, released next to THPS1 64: Recompiled v0.1.0 and built on THPS64Host v0.1.0. It runs
the USA and Europe releases of the N64 game, on macOS (universal) and Windows x64. It has had much
less hand play than THPS1; see the README.
Added
- A first start that builds the game from your own dump, on your machine: the main program and its 16 front-end screens.
On macOS it offers Apple's installer if the Command Line Tools are missing; the Windows zip brings its own compiler. - Native rendering through RT64 (Metal, Direct3D 12), scaled to the window, with MSAA 4x.
- Widescreen: 16:9 by default, 21:9, or following the window. The in-level HUD moves to the screen edges
(hud = expand);originalkeeps it in the centred 4:3 area. - Frame interpolation to the display's rate (60 Hz, 120 Hz on ProMotion) over the game's 30 fps.
- The in-game settings menu (Esc, or Back on a controller): general, controls, graphics, sound and cheats.
- An Xbox-style controller layout (tricks on the face buttons; B is grab while skating and back in menus) and the N64
layout; keyboard and SDL controllers, two players, hot-plugging; every binding incontrols.cfg. - Controller Pak saves as a standard 32 KiB
.mpkfile. - Cheats for testing: Unlock All Levels, Perfect Balance, Slow Motion, Skip to Restart and Always Special. They're off by
default and named in the log andcrash.logwhile on. The cheats aren't stored in the save; progress made with one on is
saved as usual. - Europe runs at 60 Hz, and neither release shows the wrong-region screen (a hook on
Tv_IsHomeRegion). - Portable mode: a
portable.txtbeside the app keeps settings and saves next to it.
Fixed
- Jutter at the start ramp of the Hangar, and far scenery popping in and out in School II. The host now redoes RT64's
split of the camera matrix when the camera faces along the world's z axis. - At 60 Hz, one in-between frame per run could lose the skater and half the level.
- Short pops in the sound when the audio output ran dry for a moment (found in THPS1; the fix is in the shared host). The
output now fades out and back in instead of cutting. - A crash in RT64's display-list parser: the runtime told the game the graphics task was done before RT64 had read it
(an N64ModernRuntime patch). - With one controller, the 2 PLAYER screens that wait for player 2 (choose skater, continue, handicap) locked up.
- B didn't go back in menus that draw a 3D scene (Create-a-Skater, the pause menu, the screens over a level).
- Windows: the settings migration was never saved, and the frame-interpolation time budget never applied.
Built on THPS64Host v0.1.0.
Check a download against SHA256SUMS with shasum -a 256 -c SHA256SUMS (macOS) or Get-FileHash (Windows).