Skip to content

Releases: x0cero/gba

v1.2.1: FireRed scenery and battle fixes

Choose a tag to compare

@x0cero x0cero released this 21 Sep 04:38

FireRed 3D scenery and battle rendering fixes. This includes the fixes made since v1.2.0, using the original game artwork.

  • Fix false tree rows across the Viridian City / Route 1 entrance by reading the adjoining map beyond the live terrain strip.
  • Stop grass effects from making the player bounce. Restore tree crowns and trunks, fix canopy transparency, and remove duplicated forest artwork from the ground.
  • Correct Viridian's green-roof houses, Pokémon Center back wall, and Mart counters, shelves and register.
  • Keep active battles in 2D so stale overworld geometry cannot cover combat. Render cave rock as terrain instead of house roofs.
  • Expand gameplay regressions, connected-map tests, scene replay tools and the ROM layout audit.

Validation: 38 Rust tests, 6 Python tests, formatting and clippy; 36/36 scripted gameplay checks, including both directions across the Viridian / Route 1 boundary. The 336-layout audit passed 5,040 scenery cases, and the rival-battle replay matched 5,316 original 2D frames before returning to the overworld. The new entrance regression fails on the previous binary and passes on this version.

The 3D mode remains an alpha. Early-game areas have been checked; later areas have not been played through. Wild-battle entry effects can still briefly distort the 3D camera, and unloaded NPCs can pop in. The browser version remains 2D.

Download the archive for your platform, extract it, then run the executable with your own ROM path followed by --3d. No ROMs or saves are included.

v1.2.0: FireRed 3D rendering fixes

Choose a tag to compare

@x0cero x0cero released this 19 Sep 21:11

FireRed's desktop 3D view now renders complete active characters beyond the original GBA viewport, improves indoor furniture and building textures, and keeps the player opaque unless scenery actually hides it.

Changes

  • Complete active overworld sprites and more stable character placement.
  • Improved roof/facade sampling, perspective textures and map borders.
  • Upright bookcases and improved Oak's lab walls, equipment, table and desk items.
  • Hidden-player markers now affect only pixels covered by scenery.
  • Loading a state resets camera history and queued audio.
  • Original artwork remains the default. Polygon trees and pitched roofs are an opt-in experiment with GBA_3D_STYLE=modeled.

Run

Unpack the archive for your platform and pass your own ROM path. For example, on Apple Silicon:

./gba-macos-arm64 /path/to/firered.gba --3d

Omit --3d for the original 2D display. The browser demo remains 2D. No ROMs or saves are included.

Validation and limits

35 unit tests, 19 scripted gameplay checks, and the local-ROM audit passed. The audit covers 336 layouts and 3,360 scene configurations, plus 270 separate silhouette edge/depth cases. It checks masking against reconstructed scenery, not full gameplay on every map.

3D geometry is still experimental. Some furniture and buildings use heuristic shapes; completely unloaded distant NPCs can still pop in.

v1.1.0: 3D diorama mode

Choose a tag to compare

@0arch-io 0arch-io released this 18 Sep 21:14

3D diorama mode

gba firered.gba --3d renders the Pokémon FireRed overworld as a tilted miniature. The geometry is rebuilt every frame from the game's own map grid in RAM and the metatile artwork in the ROM, so nothing is hand-profiled per map: buildings and fences rise, water sinks, trees stand as whole art units, characters are billboards pinned to their feet with contact shadows, and the player is cut out over roofs that would hide him. Battles, menus, the title screen and warp fades drop back to plain 2D automatically and the diorama returns with the overworld. Interiors work too.

Pallet Town in 3D

Tuning knobs (environment variables): GBA_3D_WALL, GBA_3D_PERSP, GBA_TILT, GBA_TREE_TALL, GBA_MARGIN. Native binaries only; the browser demo and the iOS app stay 2D. Tuned for FireRed/LeafGreen; other games show 2D under --3d.

Web demo

The browser demo now plays on phones: multi-touch d-pad, a portrait layout with a landscape overlay, and home-screen install with offline support.

Fixes since 1.0.0

  • Sprites crossing a screen edge no longer smear.
  • Save-state format changed; states from 1.0.0 will not load.

Prebuilt binaries for macOS (Apple Silicon), Linux (x86_64) and Windows (x86_64) are attached below. No ROMs are included.

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 22:42
Add release workflow and download instructions