← Still Coding

The emulator in the page

Download: atari800-98cc2dc.tar.gz (Atari800 source, GPL-2.0-or-later) · web.c · BUILD.txt

# The emulator in the page

`atari800.js` / `atari800.wasm` are Atari800 (https://github.com/atari800/atari800,
GPL-2.0-or-later, commit 98cc2dc) built as `libatari800` with Emscripten
6.0.13, plus `web.c` from this folder. The built-in AltirraOS is used, so no
Atari ROM is needed.

Files here: `atari800-98cc2dc.tar.gz` (the exact Atari800 source, unchanged),
`web.c` (the glue between the library and the page) and these notes.

    tar xzf atari800-98cc2dc.tar.gz && mv atari800-98cc2dc src && cd src
    # or: git clone https://github.com/atari800/atari800 src && cd src && git checkout 98cc2dc
    ./autogen.sh
    emconfigure ./configure --target=libatari800 --disable-monitorasm --without-readline \
      --disable-netsio --disable-videorecording --disable-pngcodec --disable-zmbvcodec \
      --disable-ide --disable-pbi_mio --disable-pbi_bb --disable-pbi_xld --disable-riodevice
    emmake make CFLAGS="-O2 -Wno-macro-redefined"
    emcc -O2 web.c src/libatari800.a -Isrc/libatari800 -o atari800.js -sMODULARIZE=1 \
      -sEXPORT_NAME=Atari800 -sALLOW_MEMORY_GROWTH=1 -sFORCE_FILESYSTEM=1 \
      -sEXPORTED_RUNTIME_METHODS='["FS","HEAPU8","HEAPU32","ccall","cwrap"]' -sENVIRONMENT=web,node