Skip to content

Releases: Huseynteymurzade28/tuiba

v0.16.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 08:57

A debugger in the terminal.

Added

  • A debugger panel on F7: registers, flags, the PPU's position and
    the code around the PC of the paused game, beside the game screen,
    with stepping by instruction, scanline or frame. (#82)
  • The debugger's memory view (Tab): eight bytes a row with their
    text, the bytes the last step changed marked; g jumps the code or
    memory view to an address or a register's value. (#82)
  • Breakpoints in the debugger (b): a game that reaches one stops
    before the instruction there and opens the debugger; scanline and
    frame steps stop at them too. (#82)

v0.15.2

Choose a tag to compare

@github-actions github-actions released this 20 Oct 08:19

Fixed

  • On Windows a held key stays held until it is let go. Windows consoles
    report every key release, but tuiba treated them like terminals that
    report none and let a held key drop after half a second, before the
    first auto-repeat — a brief stutter when holding a direction. (#24)

Changed

  • CI now runs the real terminal interface on Linux, macOS and Windows
    (ConPTY), driving the library, a game, the keypad and the way out. (#24)

tuiba 0.15.1

Choose a tag to compare

@github-actions github-actions released this 19 Oct 08:24

Fixed

  • A headless run whose output is cut short (| head) now stops quietly
    instead of reporting a broken pipe as an error and writing it to the
    crash log.

tuiba 0.15.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 07:52

Tools for looking inside a running game.

Added

  • --disasm [arm:|thumb:]START..END (or START+LENGTH) disassembles
    memory after a headless run. tuiba-core has the disassembler as
    cpu::disasm::{arm, thumb}; it decodes through the CPU's own decoder,
    so it shows what the emulator runs. (#22)
  • --profile N counts where the CPU spends its cycles over the last N
    frames of a headless run: how much of the time it ran at all, and the
    busiest addresses with their instruction and most common return
    address. (#22)
  • --trace-io LIST logs every write to the chosen I/O registers during
    a headless run, with frame, scanline, cycle and the instruction or DMA
    channel that made it. LIST takes register names, groups (lcd,
    sound, dma, timers, serial, irq, all) and hex offsets.
    tuiba-core: Gba::trace_io and Gba::take_io_writes. (#22)

v0.14.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 10:03

A faster picture, and an empty link port.

Added

  • The link port answers as an empty one instead of plain memory: an
    internally clocked transfer finishes with all ones and the serial
    interrupt, multiplayer mode reports a lone child, and RCNT powers
    up in general-purpose mode. Games that probe for a link cable on
    boot see none. (#25)

Changed

  • Faster scanline rendering: text backgrounds are drawn a tile row at a
    time and windows are resolved once per line. Headless speed on the
    homebrew test set is up 12–28 %, with identical frames. (#7)

v0.13.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 12:57

Your own BIOS, if you have one.

Added

  • Real BIOS images: --bios FILE, or gba_bios.bin in the config
    directory for every game. Games boot through the logo and chime and
    every system call runs on the real thing; --skip-intro goes straight
    to the game and --no-bios back to the built-in replacement. The
    console's and the Nintendo DS's dumps are recognised; other images
    run with a note in the status bar. (#14)
  • CI runs the test ROMs on Cult-of-GBA's replacement BIOS too, with and
    without its intro, and expects the same frames as without a BIOS.

Changed

  • Save states never contain the BIOS image. Existing states still load.
    A state taken while a real BIOS was running needs one to be loaded
    back, and says so instead of crashing.
  • tuiba-core: Gba::with_bios(cartridge, image, Boot) replaces
    Gba::load_bios, and Gba::restore returns a Result
    (GbaError::StateNeedsBios).

v0.12.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 10:05

Cheats, and a pad button for rewind.

Added

  • Cheats: <rom>.cht next to the ROM, in libretro's format (so
    RetroArch and libretro-database cheat files work after a rename), and
    F6 to turn them on and off in a game. Raw, GameShark v1/v2, Action
    Replay v3 and CodeBreaker codes, encrypted or not, are told apart by
    their shape. ROM-patch and device-button codes are skipped with a
    note; re-keyed (DEADFACE) and encrypted CodeBreaker codes are not
    supported yet. (#43)

Changed

  • Pad defaults: LT/L2 held rewinds, mirroring RT/R2 fast-forward,
    and the save-state panel moved from L2 to the west face button (X
    on Xbox), which then saves inside the panel. A second press of it
    within 300 ms of opening is ignored, so a double tap cannot
    overwrite a slot. (#45)

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 10:47

Two quality-of-life additions: play zipped ROMs as they are, and see
games in the colours their artists saw.

Added

  • ROMs inside .zip archives: the library lists them and plays them
    without unpacking, and tuiba game.zip works like tuiba game.gba.
    A lone ROM in an archive is named after the archive, so its save,
    patch and save states sit next to it as game.sav, game.bps, …
    (#41)
  • LCD colour correction: C in a game, or --color-correction, shows
    colours as the GBA's screen did — darker and less saturated — in
    every renderer. Screenshots keep the raw colours. (#42)

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 11:31

Accuracy work: nothing new to press, but games that do raster tricks
look more like they do on hardware.

Added

  • Open bus and BIOS read protection. Reads from unmapped addresses
    return what the bus last carried, and the BIOS reads back as the
    hardware leaves it once a game is running; jsmolka's bios.gba now
    passes in CI. (#13, #48)
  • Affine backgrounds keep their own reference points, reloaded at
    VBlank and when a game writes them, and stepped line by line, so
    perspective effects that stream new values per line or bend the
    walk mid-frame draw correctly. (#12, #49)
  • DMA runs alongside the rest of the machine instead of all at once:
    an HBlank or sound DMA during a long copy now happens on every line,
    at its own moment. (#11, #50)
  • Writes to the screen's registers, palette, VRAM or OAM while a line
    is being drawn change only the pixels after them. (#11, #51)
  • The per-line limit on sprite drawing: sprites past the hardware's
    cycle budget are cut off, as on the console. (#11, #52)

Changed

  • Save states carry the new state in trailing sections; files from
    earlier versions still load.
  • Headless runs are a few percent faster.

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 20:59

Added

  • Windows builds. Each release now carries a zip with tuiba.exe for
    64-bit Windows, with the C runtime built in, so nothing else needs
    installing. Run it in Windows Terminal. (#47)
  • Performance figures. --stats or F3 shows in the status bar the
    emulated and the shown frame rate, how long drawing a frame takes
    (average and worst over the last second), how much sound is queued
    and how often it ran dry: what to include in a report when a game
    stutters or crackles. (#47)
  • A speed limit for fast-forward. --fast-speed 2 to 16, or max
    (the default), and F4 in a game cycles ×2, ×4 and uncapped. (#44)

Changed

  • The README says what building on Windows really needs (the MSVC
    toolchain and the Visual Studio Build Tools), and points to the
    prebuilt binaries.