Vibeleaderboard
Index / game
Visit github.com
Category
Entertainment
Rank
No. 1413Tools index

Previous survey · No. 1408 ·

Pricing
Open Source
Type
GAME
Builder
dimillian
GitHub
363 stars
Date

About

Dimillian's Pokémon Red/Blue engine reimplementation in Swift and SwiftUI — playable for learning and nostalgia.

What it does

PokeSwift converts authoritative game data, scripts, maps, graphics, and audio into deterministic runtime artifacts, then loads them into a native macOS application. Separate engine, rendering, interface, audio, content, and telemetry layers handle the resulting game state.

Why it's ranked here

The architecture is unusually instructive, especially its clean boundary between source extraction and runtime execution. However, the stated playable flow currently stops at the title menu, so the engineering scope is much stronger than the delivered game coverage.

What's good

The runtime never parses assembly directly. A dedicated extractor normalizes source material into typed manifests and copied assets, which makes loading deterministic and validation practical. Headless state, rendering, SwiftUI presentation, audio, content handling, and telemetry have distinct responsibilities. Multiple unit-test targets reinforce those boundaries.

Tradeoffs

The native application requires macOS 26.0 or later, sharply limiting who can run it. Current status only confirms progress through splash, title attract, and title menu. The repository also carries the original disassembly, assets, extraction machinery, Swift workspace, and ROM build system, creating substantial conceptual and tooling surface.

How to use it well

Use it as a reference for source-driven game preservation, deterministic asset extraction, native Swift architecture, or telemetry-assisted parity work. It best suits engineers comfortable with build tooling and original game data. It does not yet cover complete gameplay or cross-platform native app delivery.

Technical notes+

Project.swift defines Swift 6.0 static-framework targets for PokeDataModel, PokeAudio, PokeContent, PokeTelemetry, PokeCore, PokeRender, and PokeUI, plus the PokeMac application, PokeExtractCLI command-line tool, and eight unit-test targets. Sources/PokeExtractCLI/main.swift exposes extract and verify commands with game, repository-root, and output-root arguments. Content/Red/ holds committed runtime artifacts, while Sources/PokeContent/ loads and validates them. docs/audio-engine.md documents manifest-driven PCM rendering through AVAudioEngine, and docs/FIELD_RENDERING_PIPELINE.md plus docs/BATTLE_ANIMATION_PIPELINE.md describe extracted-data pipelines into native rendering. Makefile and docs/INSTALL.md retain the RGBDS-based original ROM build surface.

Observed

Primary language
The native application and supporting targets use Swift 6.0; the repository also retains the original Game Boy assembly disassembly.
Packaging
Tuist manages a workspace containing a macOS app, static frameworks, a command-line tool, and unit-test targets.
Interfaces
The project provides a native macOS graphical application and a command-line extractor with extract and verify operations.
Platform support
The Swift application targets macOS 26.0 and later.
Runtime content
The application consumes deterministic extracted artifacts and does not parse assembly source at runtime.
Test structure
Project.swift declares eight unit-test targets across extraction, core, content, data model, telemetry, UI, app, and rendering concerns.

Read from README.md, Makefile, docs/INSTALL.md, docs/audio-engine.md, docs/FIELD_RENDERING_PIPELINE.md, docs/BATTLE_ANIMATION_PIPELINE.md, Tuist.swift, Project.swift, Workspace.swift, Sources/PokeExtractCLI/main.swift, ram.asm, main.asm, home.asm, maps.asm, text.asm.

What it can do

  • Play Pokémon Red/Blue games

    User gameplay commands and interactionsInteractive Pokémon game experience

  • Run original Pokémon Red/Blue game logic

    Game state and player actionsAuthentic Pokémon gameplay mechanics

  • Display game graphics and interface

    Game data and assetsVisual game interface in SwiftUI

  • Process turn-based battles

    Battle commands and Pokémon dataBattle results and animations

  • Manage Pokémon inventory and stats

    Player interactions with PokémonUpdated Pokémon data and inventory state

  • Save and load game progress

    Game state dataPersistent game saves

Tags

pokemonswiftswiftuigamedimillian

Tech Stack

AssemblyCMakefileMetalPythonShellSwift

Media

PokeSwift

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.