Files
gen1recomp/docs/anbernic-rg34xxsp.md
T
Claude c8e035d332 Add graphics performance tier for low-end devices
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
2026-07-31 01:44:17 +00:00

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

  1. Unzip the release on your computer. You get Gen1recomp.sh and a gen1recomp/ folder.

  2. 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 the gen1recomp/ folder as siblings — do not nest the .sh inside the folder.

  3. Put your legal US Red and/or Blue .gb files inside the game folder:

    Roms/PORTS/gen1recomp/lovegame/
    

    Example: Roms/PORTS/gen1recomp/lovegame/Pokemon - Red Version.gb

  4. Eject the card, boot the handheld, open Ports → Gen1recomp.

  5. 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 .gb you 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.