Skip to content

A Gigatron emulator written in Zig

License

Unlicense, MIT licenses found

Licenses found

Unlicense
LICENSE
MIT
zigwin32-LICENSE
Notifications You must be signed in to change notification settings

tgschultz/Zig-GigatronEmulator

Repository files navigation

Zig-GigatronEmulator

A Gigatron emulator written in Zig

This is a casual project I work on for my own amusement. I'd never written an emulator before, and CHIP-8 seemed too trivial, so I choose the Gigatron instead.

Unfortunately the project is completely unbuildable on current Zig master due to the removal of stage1, which is required to handle the async function

Status

  • Emulation of the Gigatron itself is more-or-less cycle accurate, with the exception of how undefined behavior behaves relative to real-world.
  • VGA is emulated well enough to show the Gigatron ROM's intended image, although it could be improved in relation to real VGA hardware.
  • Blinkenlights blink.
  • Audio is emulated, although I am skeptical that the implementation of the bandpass filtering is correct.
  • Gamepad emulated (though no platforms yet support an actual gamepad).
  • Pluggy McPlugface key inputs work, including gamepad emulation. tinyBasic save/load works (F3 loads, not ctrl-F3).

Platforms

  • Currently only Windows Vista or higher is supported on x64.

Building

  • Clone the Git repository
  • Run zig build

Dependencies

  • This project depends on zigwin32 for the Windows build (included)

Running

  • Place resulting binary in a directory with a Gigatron rom file named "gigatron.rom". ROMv5a can be obtained here.

Images

ROMv5a Menu Snake Racer Tetronis

About

A Gigatron emulator written in Zig

Resources

License

Unlicense, MIT licenses found

Licenses found

Unlicense
LICENSE
MIT
zigwin32-LICENSE

Stars

Watchers

Forks

Packages

No packages published

Languages