Skip to content

Releases: Zorkats/G-Diffuser

Release v1.0.1 - The "I messed up by not building on any other machine than mine" Edition.

Choose a tag to compare

@Zorkats Zorkats released this 11 Aug 04:21

A fix release. If v1.0.0 refused to start on your Linux machine, this is the one to get.

Your extracted game data and saves carry over — the asset recipes are unchanged, so there is no
need to re-extract. Replace the files and launch.


Linux: I am sorry.

v1.0.0 was built on my own machine, a ROG Ally Xbox X with CachyOS running on it, and it inherited three things from it that were
invisible to me and fatal to almost everyone else:

  • It demanded a CPU feature level it never used. The binary asked the loader for
    x86-64-v4 (AVX-512) while executing nothing beyond baseline instructions. Anything older than
    Zen 4 or 11th-gen Intel was turned away at the door for capabilities the game does not need.
  • It required glibc 2.43, newer than almost any installed system. Three maths symbols were
    responsible.
  • It expected five shared libraries it never shipped — SDL2, libzip, tinyxml2, spdlog and fmt,
    at versions so recent that in practice only rolling-release users could have launched it at all.
    On Steam Deck this showed up as nothing happening when you double-clicked, because the error
    only appears if you start it from a terminal.

All three had the same cause: the release was produced on a rolling-release distribution and
picked up its libraries, its CPU tuning and its glibc. Releases are now built through Github Actions, in a pinned
container with pinned dependencies, and a check refuses to package a build that would fail to
start on a supported system.

What that means for you:

v1.0.0 v1.0.1
glibc needed 2.43 2.34
CPU required x86-64-v4 (AVX-512) any 64-bit x86
Libraries to install first five none

glibc 2.34 covers Debian 11+, Ubuntu 22.04+, Fedora 36+, RHEL 9, SteamOS and every rolling
distribution. SDL2 and zlib now travel inside the archive in lib/, so nothing needs installing.

Fixes #2, #3, #4, #5 and #6.

Touchscreens

Tapping the enhancement menu on a handheld either did nothing or needed several tries. Two pointers
were writing to the interface at once, the touch translation and the system's own touch-to-pointer
emulation, pressing in one place and releasing in another, and a menu item only activates when both
land on it.

Touch input now works out which of the two is driving each individual gesture, because the answer
turns out to differ from machine to machine and even from session to session. Taps register first
time, and dragging a slider with your finger still works.

Steam Deck and ROG Ally owners get the most out of this one.

Windows

No behaviour changes beyond the touchscreen fix, which also applies to Windows tablets and
touch-capable laptops. The build is now produced and verified automatically rather than packaged by
hand, so it can no longer accidentally ship needing DLLs that are not in the archive.

Known issues

  • The menu crashes on some Windows systems when opened (#7). Being investigated; if this hits
    you, gdiffuser-crash.txt next to the executable is exactly what I need.
  • Import and export of custom tracks and machines (#1) is not in this release. It is the
    headline feature of the next one.

Thanks

This release exists because people took the trouble to report clearly.

adonato87 went furthest: reading the binary's own headers and posting the analysis, which
confirmed the CPU-level diagnosis independently and left nothing to guess at. B-Nerd,
perojas3, Nutjob and Daisuke-Akiyama reported the failures and stayed to answer
questions, and SilverSurferNHS and B-Nerd worked out the AVX-512 angle in the thread before
I got there.

Thank you all! And I am very happy for the port's positive reception, truly, I did not expect it! It warms my heart.

Release v1.0.0

Choose a tag to compare

@Zorkats Zorkats released this 08 Aug 19:38

G-Diffuser v1.0.0 — F-Zero X, native on PC

This is the first release of G-Diffuser, a native PC port of F-Zero X built on the
inspectredc/fzerox decompilation and
libultraship. The game runs as real PC
code, and the full Expansion Kit is part of it: Course Edit, the DD cups, and the disk save
system, playable start to finish, staff credits included.

What you get

  • True widescreen, plus opt-in ultrawide (21:9+) support and black border removal,
    the game no longer hides inside the CRT overscan frame.
  • A true 60 Hz simulation with frame interpolation up to your monitor's refresh rate. 144 Hz
    F-Zero X feels the way you always imagined it.
  • An in-game enhancement menu (F1): graphics, audio, gameplay, practice tools, photo mode,
    lap deltas, and a full ghost library with import/export.
  • Texture-pack modding with hot reload, and an asset dumper to build packs from. See the
    modding guide in docs/.
  • Discord Rich Presence, off by default, with per-field privacy toggles.
  • Course Edit saves journaled to a sidecar file. your original disk image is never modified.

What you need

Your own legally obtained dumps: an F-Zero X US rev0 ROM (.z64, big-endian), the
fan-translated Expansion Kit disk image, and a 64DD IPL ROM. Put them next to the executable,
launch, and the first-boot wizard handles the rest. G-Diffuser ships no Nintendo content of any
kind and never will.

Platforms

  • Windows (Direct3D 11) — single self-contained exe, nothing to install.
  • Linux (OpenGL) — built and tested on a ROG Ally X running CachyOS.

Honest notes for a first release

  • Frame interpolation is very good but not perfect, rare slowdowns can appear around screen
    transitions. Optimizing it further is a priority.
  • Players 2–4 on gamepads, full controller navigation of the menu, and Japanese version support
    are on the roadmap, see the README's planned features.
  • If something breaks, please open an issue with the log (GDX_LOG=1), the README's bu
    section walks you through it.

Thanks

This port exists because of the people who did the hard part first: inspectredc and
fzerox decompilation contributors, whose matching decomp is the foundation of everything here;
Zoinkity and LuigiBlood for the Expansion Kit translation and 64DD preservation work;
Kenix3 and the libultraship project; the HarbourMasters community, whose ports lit the
way; and Kiziio for the logo and icon. Thank you so much from the bottom of my heart, without all of you, this would not
have been possible.

F-Zero and Nintendo are trademarks of Nintendo. This is an unofficial project, not affiliated
with or endorsed by Nintendo.