Skip to content

mrk-its/bevy-atari

Repository files navigation

bevy-atari - Good Enough Atari XL/XE Emulator

It is written from scratch in Rust on the top of great multiplatform Bevy Game Engine It is still far from perfect (and won't compete with Alirra for emulation quality), but already good enough to run a lot of Atari software directly in the browser window.

Features

  • Cross-platform - primary target is wasm32 running in the browser, but native executables for Linux / Windows / MacOSX can also be build.
  • No pre-configuration required, images configured via URL parameters (it uses CORS proxy to be able to download images from external services)
  • ANTIC / GTIA is emulated on GPU (using this fragment shader), reducing CPU usage of single browser thread. Requires WebGL2 in the browser.
  • Cycle-accurate 6502 emulation using emulator_6502, with invalid opcodes and proper DMA cycle stealing.
  • Very good POKEY emulation (including stereo) with Web-Pokey
  • 256 kB extended memory by default.
  • ATR disk image support
  • CAR cartrige image support (currently Standard 8k / AtariMax 128k / AtariMax 1M, more will be added if required)
  • GamePad support with Gamepad API

Known Limitations

  • Simplified ANTIC / GTIA emulation - mid-screen registry changes are not visible on the screen instantly
  • POKEY interrupts are not supported yet.
  • no SIO emulation yet (for now IO is done by SIO patch)
  • no casette image emulation.

There are also tons of other bugs, causing screen glitches or simply crashing emulated programs. If you find any, or if you simply have a feature request, please fill an issue

Few live games:

And, as a bonus, multi emulation example:

Build instructions

Prerequisites

Install Rust: https://www.rust-lang.org/learn/get-started, then:

cargo install cargo-make
cargo make serve

and point your browser here.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published