tuiba: a Game Boy Advance emulator that runs in your terminal

Wait 5 sec.

I've been writing a GBA emulator from scratch in Rust, and the whole thing runs inside the terminal: the ROM library, the game, sound, and controls. How it draws the game The GBA screen is 240×160. tuiba picks the best way your terminal can show it: Kitty graphics protocol (Kitty, Ghostty, WezTerm, Konsole), Sixel (foot, Windows Terminal, mintty, mlterm) or iTerm2 inline images: real pixels, scaled up by the largest whole number that fits Everywhere else: Unicode half-blocks (▀) with 24-bit colour. A 240×80-cell terminal shows the full screen at 1:1, and smaller terminals get a scaled-down picture If it picks the wrong one, you can choose it yourself with --renderer kitty|sixel|iterm2|blocks. What else is there A ROM library with folders, filter (/), sort and last-played memory Save states, rewind, fast-forward, pause and frame step Sound at 32 kHz through your default audio device Gamepad support (hot-plug), and keys you can change in a config file On terminals with the Kitty keyboard protocol, it sees the exact moment you release a key Cheats (GameShark / Action Replay / CodeBreaker) and IPS/UPS/BPS patches A headless mode for scripting and debugging, e.g. tuiba game.gba --frames 600 --screenshot out.png The emulator itself Everything is written in the project, with no existing emulator core: the full ARM7TDMI CPU, graphics modes 0–5, sound, DMA, timers, and the save chips (SRAM, flash, EEPROM). No BIOS file is needed, because the BIOS calls are emulated in software. It's not cycle-exact, but the homebrew I've tested plays well. Install cargo install tuiba # any platform yay -S tuiba # Arch (AUR) Prebuilt binaries for Linux, macOS, and Windows are on the releases page. No ROMs or BIOS are included. The GIF shows freely licensed homebrew. Repo: https://github.com/Huseynteymurzade28/tuiba Feedback is very welcome, especially from people using terminals I haven't tested with.   submitted by   /u/Minute_Ambassador751 [link]   [comments]