Frequently Asked Questions

They’re not actually asked that frequently, but they might be helpful to know.

What is this?

It’s a integrated development environment (IDE) for old computers and video games. You can write code for 6502 or Z80-based hardware in C, assembler, etc. We emulate the hardware in the browser via JavaScript. The programming tools also run in your browser, and are usually compiled from C to WebAssembly or asm.js via Emscripten. We also support Verilog HDL for hardware design.

What emulators do you use?

System

Emulator

Atari 2600

Javatari

NES

JSNES

Verilog

Verilator -> JavaScript translator

everything else

native TypeScript

We integrate a MAME emulator for a couple of platforms, but debugging doesn’t work. The native TypeScript platforms generally have the best debugging support.

What programming tools do you support?

System

Emulator

Atari 2600

DASM, batariBASIC*

NES

DASM, ca65, cc65, nesasm3*

6502 platforms

DASM, ca65, cc65

Z80 platforms

sdcc, zmac*

6809 platforms

xasm6809*

* not very well supported

When are you adding X system?

Hopefully, eventually! We like platforms that:

  • Can be emulated in a browser (6502, Z80 especially)

  • Have existing dev tools that can be compiled via Emscripten or otherwise run inside the browser

  • Don’t depend on copyrighted BIOS files

  • Have a community waiting to pounce, or are especially interesting/historic

We like to have a good set of example files for each supported platform, and a comprehesive C support library if applicable. This is often the hard part.

Is there an offline version?

Yes! Sort of. Go to this link and unzip the latest version into a directory. If you have a local web server on your system, put it into the /var/www/html or similar document root. Then you can open index.html and get coding.

You can also open the IDE directly from a file:// URL but this is getting tricky. For security reasons, browsers try to prevent you from doing this. However, you can sometimes trick them into letting you:

  • Firefox: Go to about:config and set privacy.file_unique_origin to false

  • Chrome: It involves an extension and it’s complicated. Make the sound of Sideshow Bob stepping on rakes in your head.

The app’s persistent data are tied to its base URL, so any changes you made on 8bitworkshop.com won’t be available on the local system and vice-versa.

How can I contribute?

Really, the best way is just by using it and publishing your projects on GitHub, and spreading the word!