• v1.0.0 c809fe408c

    CyfrowyNomada released this 2026-10-09 16:57:20 +02:00 | 0 commits to master since this release

    Nomad Core v1.0.0

    First release that renders exported P1XEL projects correctly end to end.

    Fixed

    • Background tiles did not render. The BG map byte conversion
      ((CHR + 128) & $FF) was the inverse of what signed $8800 LCDC
      addressing does; every exported cell pointed at the empty CHR range. Now
      byte = CHR & $FF in the exporter (P1XEL >= 4.2), the engine font path
      and P1XEL-CONTRACT.md. Re-export existing projects with the updated
      P1XEL.
    • Input dead on BGB/hardware. Boot RAM is random there; game state was
      never cleared, so the popup router swallowed all input. EngineInit now
      zeroes all of WRAM0.

    Engine

    • abi.rgbinc: single engine/game ABI header; catalogc no longer mirrors
      constants by hand.
    • Popup window on the hardware Window layer: camera-independent, dirty-flag
      VRAM writes, no save/restore strip.
    • LevelLoad: bank-correct addressing for up to 255 levels, field clamping,
      camera reset, EngineFatal red screen on bad data.
    • Shared CameraClamp, VideoBGMapBase; entity slot masking.
    • Macros: OnTileGoto, Despawn, PADF_* masks, edge-triggered menus,
      dpad repeat.
    • Reserved blank tile (CHR 383 / BG slot 255), zero-filled by the exporter.

    Showcase game

    Title (text, flipped frame tiles, palettes, static OAM, menu) -> 32x32
    scrolling maze (solid tiles, P1XEL spawn markers, hunting enemy, camera,
    pause popup, exit meta-tile) -> Win; About; Dead/RETRY. Regenerate the
    project with python tools/sample/make_sample.py.

    Tests

    tools/test/selftest.py boots with scribbled RAM and asserts VRAM map
    bytes, CHR contents, window text, SCX/SCY and OAM (46 checks).

    Assets

    • the-game-boy-engine.gbc - CGB ROM (MBC5 + RAM + battery)
    • project.p1x - the showcase project for P1XEL
    • the-game-boy-engine.sym - symbols for BGB / debugging
    Downloads