Introduce an OPTIONS -> PERFORMANCE setting that scales the port's optional presentation extras down for weaker hardware, so older/lower-end devices can run the game smoothly. The tier governs the three heaviest non-faithful extras -- the 3D TILT, the GBC FX post-process shader, and survey ZOOM (which renders connected neighbor maps) -- plus a hard FPS ceiling. It never touches game logic, which is fixed-step off dt, so every tier plays identically. - src/core/Performance.lua: tiers (auto/high/balanced/low), a conservative device auto-detect (ARM handhelds -> low, phones -> balanced, normal desktops -> high), per-tier caps, and the option-row cycle. Zero requires, like GameVersion. - Game:applyOptions clamps the *live* presentation state against the tier without rewriting stored options, so a lower tier hides the player's TILT/GBC FX/ZOOM/FPS choices and a higher tier restores them exactly. - Zoom.offsetRange floors the range at FIT when survey is disallowed, so the option row, hotkey, and mouse wheel all stop at close-up on LOW. - New save.options.performance default "auto"; OPTIONS row heads the display group and re-applies live. - Tests: tests/engine/performance_tiers.lua (ROM-free); mod_ui_tests row golden updated for the spliced row. AUTO resolves to HIGH on a normal desktop and on every options.lua that predates the option, so the common case is unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q6bFAiQyZ5jDmewsbB4LG9
3.9 KiB
Anbernic RG34XXSP (Stock OS 64-bit MOD)
Download gen1recomp-*-rg34xxsp-stockos64-mod.zip from
Releases. This build
targets Stock OS 64-bit MOD on the RG34XXSP with PortMaster installed
(TF1).
Install
-
Unzip the release on your computer. You get
Gen1recomp.shand agen1recomp/folder. -
Copy both onto the SD card under
Roms/PORTS/so the layout is:Roms/PORTS/Gen1recomp.sh Roms/PORTS/gen1recomp/On the device that path is
/mnt/mmc/Roms/PORTS/. Keep the launcher and thegen1recomp/folder as siblings — do not nest the.shinside the folder. -
Put your legal US Red and/or Blue
.gbfiles inside the game folder:Roms/PORTS/gen1recomp/lovegame/Example:
Roms/PORTS/gen1recomp/lovegame/Pokemon - Red Version.gb -
Eject the card, boot the handheld, open Ports → Gen1recomp.
-
On the launcher, move the cursor with the D-pad or left stick, press A to click. Choose the Red or Blue tab, then Choose ROM — with no file picker on stock OS, that scans
lovegame/for the.gbyou dropped in.
The port ships with portable.txt already in place, so after import the
saves and ROM-derived cache stay next to the game on the SD card. See
Portable Mode for what that means.
Only the canonical 1 MiB US carts import:
- Red:
ea9bcae617fdf159b045185467ae58b2e4a48b9a - Blue:
d7037c83e1ae5b39bde3c30787637ba1d4c48ce2
Launcher controls
| Input | Action |
|---|---|
| D-pad / left stick | Move cursor |
| A | Click |
| L1 / R1 | Switch tabs |
| Right stick | Scroll lists |
| Start / Select | Play or Choose ROM |
In-game controls use the normal PortMaster / SDL pad map, rebindable under OPTIONS → CONTROLS.
Notes
GBC FX is off on this device. The launcher exports POKEPORT_GBCFX=0,
which hides the GBC FX row from OPTIONS, pins the level to OFF, and clears a
level carried over in an options.lua from another machine. The H700's Mali
GPU is in the same class as the phone GPUs that compile that present pass and
then show a black frame (issue #136), and love.system.getOS() reports
"Linux" here, so the Android gate would not have caught it. Every other
display option — COLORS, TILT, ZOOM, VOID FILL, MAX FPS — works normally. If
your device turns out to handle the pass, launch with POKEPORT_GBCFX=1 to
put the row back.
PERFORMANCE defaults to LOW here. The OPTIONS → PERFORMANCE tier defaults to AUTO, which reads this device as an ARM Linux handheld and resolves to LOW: the 3D tilt and survey zoom stay off and the frame rate is capped, so the overworld runs smoothly on the H700 out of the box. Bump it to BALANCED or HIGH from OPTIONS if you want the extras and your device keeps up; see Performance tier.
The pack bundles the LÖVE 11.5 aarch64 runtime from
PortMaster, so the device does not need a
separate love_11.5 runtime download on first launch. The launcher resolves
paths relative to its own directory rather than PortMaster's $directory,
because stock Anbernic firmware runs ports out of roms/PORTS/ with its own
casing and mount points.
If a launch fails, Roms/PORTS/gen1recomp/log.txt holds the output of the
last run.
Building the port
Release runs build this automatically (see .github/workflows/release.yml).
To build it by hand:
./build-rg34xxsp.sh --version 0.1.0 # -> dist/rg34xxsp/gen1recomp-rg34xxsp-stockos64-mod.zip
install-rg34xxsp.sh copies that pack straight onto a mounted SD card for
local testing.
Stock OS 64-bit MOD comes from cbepx-me.