SOLAR64 desktop release 2026.10.13-r27 (network protocol 02)

Windows: extract the ZIP and open solar64.exe, or use SOLAR64-Setup.exe.
On first run choose your own Mario Kart 64 (USA) and Cruis'n Exotica (USA) ROMs.
Their locations and settings are remembered under Local AppData/SOLAR64.

Linux: extract and run launch.sh (or ./solar64).
Requires glibc 2.39+, Vulkan-capable graphics and normal window/audio libraries.
Put your own ROMs in roms/mk64.z64 and roms/cruisn.z64 beside the program,
or supply --mk64 PATH --cruisn PATH. No ROMs are included.

Imported cars, scenery and shaders are embedded. No source/model directories needed.

Multiplayer: choose a car, click Join or press J to connect immediately.
Server is locked to solarfren.com:5000 UDP; no address entry or extra Enter needed.
Live room browser: Quick Join [Q], Create Room [N], or select/click a listed room.
Eight independent rooms by default, each with up to eight humans. First player hosts; host transfer is automatic.
Host chooses track, AI on/off and difficulty, laps, permanent Star, speed cap, racing line, drift and stunt boost.
Up/Down selects a setting; Left/Right changes it. Hold numeric arrows to repeat.
G toggles ready. Everyone ready -> host Enter starts. Results return to lobby.
AI fills empty seats only when enabled. Racing line starts enabled.
Human players have saved callsigns and colored P1-8 IDs in the lobby, race roster and above their vehicles.
YOU marks your seat. AI has no player badge.
Host F6: return everyone to lobby immediately, preserving connections/settings.
Ready states reset; mark ready again for the next race.
Speed cap: 200-20,000 MPH, default 400. Music volume is local.
Keep everyone updated to the current desktop or browser release.

Drive: Up/Down throttle/brake, Left/Right dodge or steer, Space boost,
Shift drift, Z item, Down+Z backward shell, F8 line assistance (solo), R rescue.
F1 opens solo settings in the main menu. Rooms [R] leaves the lobby for the room browser.
Escape in a multiplayer race returns to the room browser; it does not end other players' races.
The race HUD shows FPS, total miles (saved across launches) and server ping.
Modern clients automatically reconnect after server updates; room/race state is saved.

Browser/mobile play is available at https://solarfren.com/solar64/play/.
Windows is cross-compiled and checked with Wine; native Windows testing is still needed.

Troubleshooting: Windows logs are in %LOCALAPPDATA%\SOLAR64\last-launch.log.
The window/menu shows the build number. This EXE requires 64-bit Windows.

F7 toggles local Performance mode (also in F1 Settings).
It uses a 1280x720 window and disables bloom, multisampling, water reflections and the animated menu background.
Enabling it sets a 1280x720 window with 1x display scaling; you can resize it.
Hidden track/car previews are not rendered underneath the multiplayer lobby.

F2 shows diagnostics: selected GPU, driver, graphics backend, FPS and connection.
The launch log also records these details and multiplayer/loading errors.

SOLAR64-diagnostics.exe (or --diagnostics) starts in the 1280x720 Performance
preset with the F2 diagnostics panel open. Administrator rights are not required.

Windows game and diagnostic EXEs check solarfren.com for signed updates on launch.
Both EXEs are refreshed together; diagnostics keeps its lower graphics preset.
Downloads run in the background; installation waits until the menu and no active
multiplayer connection, then restarts the same EXE. Offline failures keep the
current game usable. --no-update-once skips the check for that launch.
Older releases without the updater need one manual replacement.

Windows diagnostic mode also logs installed GPUs/drivers, DX12 capability checks,
and the DirectX display report (driver model, feature levels and device errors).
The full report is saved as graphics-diagnostic.txt beside last-launch.log.
Collection runs in the background without administrator rights. Details/errors
appear in F2 and the launch log; last-update.log records update installation.

Test track: a compact circuit with a vertical loop and corkscrew. It always
uses magnetic track guidance, even with racing-line assistance disabled.
Arwing: double-tap Down to backflip, Left or Right to roll in that direction.
Release between taps; complete the pair within 0.3 seconds. Tricks keep the
flight route and hover height. Multiplayer uses the host's stunt boost setting.
All players must update before choosing Test in multiplayer.

Aircraft steering has a wider safe lane range, directional wing banking on Test,
and short wingtip air trails. The Test loop exits into a separate side lane.

Selectable Arwing II liveries: original, Red / Black, and Blue / Red.
AI aircraft use spaced preferred lanes and avoid aircraft at their flight height.
Colored-aircraft multiplayer rooms require the latest build on every client.

F1 solo Settings: laps (Track default, 1–99, Infinite) and AI difficulty.
Exotica: select one of the twelve original main courses after Test. Extra laps
repeat the point-to-point route; challenge/circuit/drag variants are not listed.
Thunderbolt flashes and electrical shock ribbons are included.

Exotica scenery now includes every material section, restoring missing ground
and building faces. Boosted car takeoffs automatically trigger a Super Roll or
Super Flip, preserving the ramp jump height and using the stunt boost setting.

Hold Down / Brake while airborne for a quick dive. Under racing-line lock, cars
auto-dive out of high stunts or below overhead obstructions when supported road
is available. Boost, forward velocity and stunt animation continue. Aircraft
dive to a safe lower corridor and return to hover height when released.
Multiplayer names persist locally; browser players can set their name before
launch. The lobby, overhead tags and live right-side race roster share names.
The dedicated server supports up to eight simultaneous rooms, with up to
eight humans per room. Quick Join finds or creates a compatible room.

Triple green/red shells: first Z deploys all remaining shells into an orbit.
Release Z, then press again to fire one per press. Down+Z fires backward.
Orbiting shells follow jumps/flight and can intercept incoming shells; a
collision consumes one. Sonic's ball form passes harmlessly through bananas
and fake item boxes and deflects green/red/blue shells without losing boost.
Double-tap brake again to uncurl; normal item vulnerability returns.
Optional Shadow racer: import your own European Dreamcast Sonic Adventure 2
data using tools/shadow/import_shadow.py. Put shadow.bin.z beside the EXE at
assets/shadow/shadow.bin.z. SHADOW uses original stand/skating poses and a
black/red jump-ball; double-tap brake to toggle ball form. Character data stays
private and is not included in public downloads.

Star music follows your racer's active star state, including permanent stars
in multiplayer. Expiry restores course music; finishing stops star music
so the normal finish jingle and results music can play.

Shadow’s refreshed private import includes original effects/English reactions
and three result voices. Regenerate/reselect older model-only imports for audio.
Sonic boost: blue vertical light ribbon. Shadow boost: black ribbon with thin
red glow edges. The ribbon follows turns, jumps and loops and fades on release.

Optional Devil Jin: python3 tools/import-racer.py deviljin reads the owner's
Tekken 5 (USA), SLUS-21059 raw ISO. Put the generated deviljin.bin.z beside
this app at assets/deviljin/deviljin.bin.z, or choose it under Optional Devil
Jin racer in the browser. Original model, wings, horns, textures and idle/run
poses remain private. Normal item rules apply; no Tekken audio is imported.
Everyone in a Devil Jin multiplayer room needs an updated client.

Race loading: a small panel shows the loading stage, spinner and elapsed
seconds. First-load graphics preparation can take a minute, especially in
the DX12 tier-1 build under Proton. The animation can pause while shaders
compile; the loading message remains visible. The race countdown starts
after track building and graphics preparation finish. Esc returns to menu.

Optional Flash: python3 tools/import-racer.py flash reads your FlashJL GTA V
mod folder. Put flash.bin.z at assets/flash/flash.bin.z beside this app, or
choose it under Optional Flash racer in the browser. The original textured
model uses an authored idle/run cycle; this mod has no animation/audio clips.
Flash uses normal racing items and a fallback voice. No mod data is bundled.
Everyone in a Flash multiplayer room needs an updated client.
