ATARI800(1)

โœจ ATARI800(1) โœจ

General Commands Manual ยท the atari800 page, bestie edition ๐ŸŽ€


๐ŸŒˆ NAME ๐ŸŒˆ

atari800 โ€” the emulator for Atari 8-bit computers and the 5200 console. like, it runs the old ones. on your new one. iconic behavior honestly ๐Ÿ’…


๐Ÿฆ‹ SYNOPSIS ๐Ÿฆ‹

atari800 [option]... [file]...

๐Ÿ’– DESCRIPTION ๐Ÿ’–

okay so. atari800 emulates the Atari 8-bit computer systems โ€” and yes that includes the 400, 800, 1200XL, 600XL, 800XL, 65XE, 130XE, 800XE, and the XE Game System โ€” and ALSO the Atari 5200 SuperSystem console. all of them. in one program. main character energy fr fr ๐Ÿ‘‘


โœจ OPTIONS โœจ

  • -help โ€” prints the complete and up-to-date list of command line switches. the receipts, the whole receipts ๐Ÿงพ
  • -v โ€” prints the emulator version. say hi to it ๐ŸŒธ
  • -verbose โ€” shows you the framerate when it exits. little numbers, little treat ๐Ÿ“
  • -config filename โ€” point it at a different configuration filename if you don't wanna use the usual one.
  • -autosave-config โ€” automatically saves the current config when the emulator exits. it remembers. so thoughtful ๐Ÿซถ
  • -no-autosave-config โ€” does not save the current config on exit. (this is the default)
  • -osa_rom filename โ€” path to the file holding the Atari Rev.A Operating System.
  • -osb_rom filename โ€” path to the file holding the Atari Rev.B Operating System.
  • -xlxe_rom filename โ€” path to the file holding the Atari XL/XE Operating System.
  • -5200_rom filename โ€” path to the file holding the Atari 5200 Games System ROM.
  • -basic_rom filename โ€” path to the file holding the Atari BASIC ROM. this one is used to override paths that were defined at compile time. sneaky but legal ๐Ÿ’…

๐Ÿ‘‘ -800-rev โ€” pick your OS for the Atari 800

-800-rev auto|a-ntsc|a-pal|b-ntsc|custom|altirra
  • auto โ€” the default. it picks the most appropriate one from whatever's available. it's got taste โœจ
  • a-ntsc โ€” OS rev. A NTSC, straight from the early NTSC 400/800 units.
  • a-pal โ€” OS rev. A PAL, from PAL 400/800 units.
  • b-ntsc โ€” OS rev. B NTSC, from the late NTSC 400/800 units.
  • custom โ€” use a custom OS. your OS, your rules.
  • altirra โ€” use AltirraOS, which is included in the emulator. freebie ๐Ÿ’–

๐ŸŒธ -xl-rev โ€” pick your OS for the Atari XL/XE

-xl-rev auto|10|11|1|2|3a|3b|5|3|4|59|59a|custom|altirra
  • auto โ€” the default. most appropriate available one, as always.
  • 10 โ€” OS AA000000 rev. 10 from early 1200XL units.
  • 11 โ€” OS AA000001 rev. 11 from late 1200XL units.
  • 1 โ€” OS BB000000 rev. 1 from the 600XL.
  • 2 โ€” OS BB000001 rev. 2 from the 800XL and early 65XE/130XE units.
  • 3a โ€” prototype OS BB000002 rev. 3 from 1400XL/1450XLD units (also known as 1540OS3.V0 and 1450R3V0.ROM).
  • 3b โ€” prototype OS BB000002 rev. 3 ver. 4 from 1400XL/1450XLD units (also known as os1450.128 and 1450R3VX.ROM).
  • 5 โ€” prototype OS CC000001 rev. 4 (also known as Rev. 5), and the sources for it are available at <http://www.atariage.com/forums/topic/78579-a800ossrc/page__view__findpost__p__961535>.
  • 3 โ€” OS BB000001 rev. 3 from late 65XE/130XE units.
  • 4 โ€” OS BB000001 rev. 4 from the XEGS.
  • 59 โ€” OS BB000001 rev. 59 from the Arabic 65XE.
  • 59a โ€” OS BB000001 rev. 59 from Kevin Savetz' Arabic 65XE: <http://www.savetz.com/vintagecomputers/arabic65xe/>.
  • custom โ€” use a custom OS.
  • altirra โ€” use AltirraOS that is included in the emulator.

๐Ÿ’œ -5200-rev โ€” pick your BIOS for the Atari 5200

-5200-rev auto|orig|a|custom|altirra
  • auto โ€” the default. most appropriate from the available ones, you know the drill.
  • orig โ€” BIOS from 4-port and early 2-port 5200 units.
  • a โ€” BIOS rev. A from late 2-port 5200 units.
  • custom โ€” use a custom BIOS.
  • altirra โ€” use Altirra BIOS that is included in the emulator.

๐ŸŽ€ -basic-rev โ€” pick your BASIC revision

-basic-rev auto|a|b|c|custom|altirra
  • auto โ€” the default. most appropriate available one ๐Ÿ’…
  • a โ€” BASIC rev. A.
  • b โ€” BASIC rev. B from early 600XL/800XL units.
  • c โ€” BASIC rev. C from late 600XL/800XL and all XE units.
  • custom โ€” use a custom BASIC.
  • altirra โ€” use Altirra BASIC that is included in the emulator.

๐Ÿ•น๏ธ -xegame-rev โ€” pick your XEGS builtin game version

-xegame-rev auto|orig|custom
  • auto โ€” the default. most appropriate available one.
  • orig โ€” the original Missile Command game. a classic, we love her ๐Ÿ’–
  • custom โ€” use a custom game ROM.

๐Ÿ–ฅ๏ธ Machine options โ€” which one are we being today

  • -atari โ€” emulate Atari 400/800
  • -1200 โ€” emulate Atari 1200XL
  • -xl โ€” emulate Atari 800XL
  • -xe โ€” emulate Atari 130XE
  • -320xe โ€” emulate Atari 320XE (Compy-Shop)
  • -rambo โ€” emulate Atari 320XE (Rambo)
  • -576xe โ€” emulate Atari 576XE
  • -1088xe โ€” emulate Atari 1088XE
  • -xegs โ€” emulate Atari XEGS
  • -5200 โ€” emulate Atari 5200

๐Ÿง  Memory options โ€” the RAM lore

  • -c โ€” enables RAM between 0xc000 and 0xcfff in the Atari 800.
  • -axlon n โ€” use the Atari 800 Axlon memory expansion: n k total RAM.
  • -axlon0f โ€” use the Axlon shadow at 0x0fc0-0x0fff.
  • -mosaic n โ€” use the 400/800 Mosaic memory expansion: n k total RAM.
  • -mapram โ€” enable the MapRAM memory expansion. โš ๏ธ this only works when you're emulating an Atari XL/XE machine, no cap.
  • -no-mapram โ€” disable the MapRAM memory expansion.

๐Ÿ“บ TV mode & BASIC toggles

  • -pal โ€” emulate PAL TV mode ๐Ÿ‡ช๐Ÿ‡บ
  • -ntsc โ€” emulate NTSC TV mode ๐Ÿ‡บ๐Ÿ‡ธ
  • -nobasic โ€” used to disable BASIC when you start the emulator in XL/XE mode. it simulates the Option key being held down during system boot. it's giving "hand on the keyboard at the right moment" ๐Ÿ’…
  • -basic โ€” turn on the Atari BASIC ROM.

๐ŸŽฎ Cartridge options

  • -cart filename โ€” insert a cartridge (CART or raw format).
  • -cart-type 0 .. 160 โ€” select the type of the cartridge that was inserted with the -cart option. โš ๏ธ when you insert a raw ROM image, its type cannot be detected automatically, so you must provide it with this option. setting it to 0 means the cartridge is disabled, and any other number points to a specific cartridge type:
    • 1 โ€” Standard 8 KB cartridge
    • 2 โ€” Standard 16 KB cartridge
    • 3 โ€” OSS two chip 16 KB cartridge (034M)
    • 4 โ€” Standard 32 KB 5200 cartridge
    • 5 โ€” DB 32 KB cartridge
    • 6 โ€” Two chip 16 KB 5200 cartridge
    • 7 โ€” Bounty Bob Strikes Back 40 KB 5200 cartridge
    • 8 โ€” 64 KB Williams cartridge
    • 9 โ€” Express 64 KB cartridge
    • 10 โ€” Diamond 64 KB cartridge
    • 11 โ€” SpartaDOS X 64 KB cartridge
    • 12 โ€” XEGS 32 KB cartridge
    • 13 โ€” XEGS 64 KB cartridge (banks 0-7)
    • 14 โ€” XEGS 128 KB cartridge
    • 15 โ€” OSS one chip 16 KB cartridge
    • 16 โ€” One chip 16 KB 5200 cartridge
    • 17 โ€” Decoded Atrax 128 KB cartridge
    • 18 โ€” Bounty Bob Strikes Back 40 KB cartridge
    • 19 โ€” Standard 8 KB 5200 cartridge
    • 20 โ€” Standard 4 KB 5200 cartridge
    • 21 โ€” Right slot 8 KB cartridge
    • 22 โ€” 32 KB Williams cartridge
    • 23 โ€” XEGS 256 KB cartridge
    • 24 โ€” XEGS 512 KB cartridge
    • 25 โ€” XEGS 1 MB cartridge
    • 26 โ€” MegaCart 16 KB cartridge
    • 27 โ€” MegaCart 32 KB cartridge
    • 28 โ€” MegaCart 64 KB cartridge
    • 29 โ€” MegaCart 128 KB cartridge
    • 30 โ€” MegaCart 256 KB cartridge
    • 31 โ€” MegaCart 512 KB cartridge
    • 32 โ€” MegaCart 1 MB cartridge
    • 33 โ€” Switchable XEGS 32 KB cartridge
    • 34 โ€” Switchable XEGS 64 KB cartridge
    • 35 โ€” Switchable XEGS 128 KB cartridge
    • 36 โ€” Switchable XEGS 256 KB cartridge
    • 37 โ€” Switchable XEGS 512 KB cartridge
    • 38 โ€” Switchable XEGS 1 MB cartridge
    • 39 โ€” Phoenix 8 KB cartridge
    • 40 โ€” Blizzard 16 KB cartridge
    • 41 โ€” Atarimax 128 KB Flash cartridge
    • 42 โ€” Atarimax 1 MB Flash cartridge (old)
    • 43 โ€” SpartaDOS X 128 KB cartridge
    • 44 โ€” OSS 8 KB cartridge
    • 45 โ€” OSS two chip 16 KB cartridge (043M)
    • 46 โ€” Blizzard 4 KB cartridge
    • 47 โ€” AST 32 KB cartridge
    • 48 โ€” Atrax SDX 64 KB cartridge
    • 49 โ€” Atrax SDX 128 KB cartridge
    • 50 โ€” Turbosoft 64 KB cartridge
    • 51 โ€” Turbosoft 128 KB cartridge
    • 52 โ€” Ultracart 32 KB cartridge
    • 53 โ€” Low bank 8 KB cartridge
    • 54 โ€” SIC! 128 KB cartridge
    • 55 โ€” SIC! 256 KB cartridge
    • 56 โ€” SIC! 512 KB cartridge
    • 57 โ€” Standard 2 KB cartridge
    • 58 โ€” Standard 4 KB cartridge
    • 59 โ€” Right slot 4 KB cartridge
    • 60 โ€” Blizzard 32 KB cartridge
    • 61 โ€” MegaMax 2 MB cartridge
    • 62 โ€” The!Cart 128 MB cartridge
    • 63 โ€” Flash MegaCart 4 MB cartridge
    • 64 โ€” MegaCart 2 MB cartridge
    • 65 โ€” The!Cart 32 MB cartridge
    • 66 โ€” The!Cart 64 MB cartridge
    • 67 โ€” XEGS 64 KB cartridge (banks 8-15)
    • 68 โ€” Atrax 128 KB cartridge
    • 69 โ€” aDawliah 32 KB cartridge
    • 70 โ€” aDawliah 64 KB cartridge
    • 71 โ€” Super Cart 64 KB 5200 cartridge (32K banks)
    • 72 โ€” Super Cart 128 KB 5200 cartridge (32K banks)
    • 73 โ€” Super Cart 256 KB 5200 cartridge (32K banks)
    • 74 โ€” Super Cart 512 KB 5200 cartridge (32K banks)
    • 75 โ€” Atarimax 1 MB Flash cartridge (new)
    • 76-93 โ€” Reserved ๐Ÿ™ˆ
    • 94 โ€” Ram-Cart 64 KB cartridge
    • 95 โ€” Ram-Cart 128 KB cartridge
    • 96 โ€” Double Ram-Cart 2x128/256 KB cartridge
    • 97 โ€” Ram-Cart 1 MB cartridge
    • 98 โ€” Ram-Cart 2 MB cartridge
    • 99 โ€” Ram-Cart 4 MB cartridge
    • 100 โ€” Ram-Cart 8 MB cartridge
    • 101 โ€” Ram-Cart 16 MB cartridge
    • 102 โ€” Ram-Cart 32 MB cartridge
    • 103 โ€” SiDiCar 32 KB cartridge
    • 104-160 โ€” Reserved ๐Ÿ™ˆ
if you don't give this option, the emulator will ask the user to choose the cartridge type when it starts. so it's interactive. cute ๐ŸŽ€
  • -cart2 filename โ€” insert a piggyback cartridge (CART or raw format). โš ๏ธ this only works if the first cartridge is a pass-through one โ€” and currently that's only the SpartaDOS X 64KB and 128KB types. that's it. those two. no others. periodt ๐Ÿ’…
  • -cart2-type 0 .. 160 โ€” select the type of the cartridge inserted with the -cart2 option. โš ๏ธ when inserting a raw ROM image, its type cannot be detected automatically and must be provided with this option. the available values are the same as for the -cart-type option above ๐Ÿ‘†
  • -cart-autoreboot โ€” automatically reboot after inserting/removing a cartridge. (this is the default setting). but heads up: this does not apply to the piggyback cartridge โ€” inserting or removing that one never causes an automatic reboot. it just doesn't. ๐Ÿ’€
  • -no-cart-autoreboot โ€” disable the automatic reboot after inserting/removing a cartridge.

๐Ÿƒ Running stuff

  • -run filename โ€” run an Atari program (EXE, COM, XEX, BAS, LST)
  • -state filename โ€” load a saved-state file. it's giving "we left off right here" โญ
  • -tape filename โ€” attach a cassette image ๐Ÿ“ผ (CAS format or a raw file, either works)
  • -boottape filename โ€” attach that cassette image and boot it immediately, no extra steps
  • -tape-readonly โ€” locks the attached cassette image into read-only mode ๐Ÿ”’
  • -1400 โ€” emulate the Atari 1400XL
  • -xld โ€” emulate the Atari 1450XLD
  • -bb โ€” emulate the CSS Black Box
  • -mio โ€” emulate the ICD MIO board
  • -nopatch โ€” okay so normally the OS gets patched and you get very fast I/O. This option says "no thank you" to that patch, so the OS talks to the serial port hardware directly. Real talk: you will probably never need this, because programs that touch the serial hardware should still work even with the OS patched. ๐Ÿ’…
  • -nopatchall โ€” don't patch the OS at all. But bestieโ€ฆ be warned: H:, P: and R: devices won't work ๐Ÿ˜ญ
  • -H1 path โ€” set the path for the H1: device
  • -H2 path โ€” set the path for the H2: device
  • -H3 path โ€” set the path for the H3: device
  • -H4 path โ€” set the path for the H4: device
  • -Hpath path โ€” set the path for Atari executables living on the H: device
  • -hreadonly โ€” switch on read-only mode for the H: device
  • -hreadwrite โ€” switch read-only mode back off for the H: device
  • -devbug โ€” dump debugging messages for the H: and P: devices into the log file ๐Ÿ›
  • -rtime โ€” enable R-Time 8 emulation
  • -nortime โ€” disable R-Time 8 emulation
  • -rdevice [dev] โ€” enable the R: device. If dev is specified, it's used as the host serial device name (e.g. /dev/ttyS0 on linux). If there's no dev specified, then R: gets directed to the network. ๐ŸŒ
  • -mouse off โ€” do not use a mouse, periodt
  • -mouse pad โ€” emulate paddles
  • -mouse touch โ€” emulate the Atari Touch Tablet
  • -mouse koala โ€” emulate the Koala Pad
  • -mouse pen โ€” emulate a Light Pen
  • -mouse gun โ€” emulate a Light Gun
  • -mouse amiga โ€” emulate an Amiga mouse
  • -mouse st โ€” emulate an Atari ST mouse
  • -mouse trak โ€” emulate an Atari Trak-Ball
  • -mouse joy โ€” emulate a joystick using the mouse
  • -mouseport num โ€” set the mouse port, 1-4 (default 1)
  • -mousespeed num โ€” set the mouse speed, 1-9 (default 3)
  • -multijoy โ€” emulate the MultiJoy4 interface
  • -directmouse โ€” use the mouse's absolute position
  • -cx85 num โ€” emulate a CX85 numeric keypad on port num
  • -grabmouse โ€” SDL only! Stops the mouse pointer from escaping the window ๐Ÿ–ฑ๏ธ
  • -record filename โ€” record all input events to filename. This is the move for gaming contests (highest score etc).
  • -playback filename โ€” playback input events from filename. Watch an expert play the game ๐Ÿ‘‘
  • -playbacknoexit โ€” don't exit the emulator once playback finishes
  • -refresh โ€” controls the screen refresh rate. A numerical value follows this option, and it specifies how many emulated screen updates are required before the actual screen gets updated. This value affects the speed of the emulation: a higher value gives you faster CPU emulation but a screen that updates less frequently. Trade-offs, bestie. โš–๏ธ
  • -ntsc-artif mode, -pal-artif mode โ€” set the emulation mode of video artifacts in NTSC or PAL, respectively. The available values for mode are:
    • none โ€” disable video artifacts.
    • ntsc-old โ€” simple emulation of NTSC composite video artifacts. Fast but inaccurate.
    • ntsc-new โ€” improved emulation of NTSC artifacts. May look better than ntsc-old.
    • ntsc-full โ€” full emulation of NTSC artifacts. Rather slow, and available only in 16- and 32-bit video modes.
    • pal-simple โ€” simple emulation of PAL chroma blending, without composite artifacts. Fast but inaccurate.
    • pal-blend โ€” accurate emulation of PAL chroma blending, without composite artifacts. Available only in 16- and 32-bit video modes.
  • -artif mode โ€” set the artifacting mode 0-4 (0 = disable). Only for the tv effects ntsc-old and ntsc-new.
  • -colors-preset standard|deep-black|vibrant โ€” use one of the predefined colour adjustments โœจ
  • -saturation n โ€” set the screen colour saturation (like the TV Colour control)
  • -ntsc-saturation n, -pal-saturation n โ€” set saturation only for NTSC or PAL, respectively
  • -contrast n โ€” set the screen contrast (also called white level)
  • -ntsc-contrast n, -pal-contrast -fIn โ€” set contrast only for NTSC or PAL, respectively
  • -brightness n โ€” set the screen brightness (also called black level)
  • -ntsc-brightness n, -pal-brightness n โ€” set brightness only for NTSC or PAL, respectively
  • -gamma n โ€” set the screen gamma correction
  • -ntsc-gamma n, -pal-gamma n โ€” set the gamma adjustment only for NTSC or PAL, respectively
  • -tint n โ€” set the tint, -1..1.
  • -ntsc-tint n, -pal-tint n โ€” set tint only for NTSC or PAL, respectively
  • -ntsc-colordelay n โ€” set the GTIA colour delay for the NTSC system. This emulates adjusting the potentiometer that lives at the bottom of Atari computers, the one that adjusts the hues of the colours your computer produces. ๐ŸŽจ
  • -pal-colordelay n โ€” set the GTIA colour delay for the PAL system.
  • -paletten filename, -palettep filename โ€” read Atari NTSC/PAL colours from an ACT file
  • -paletten-adjust, -palettep-adjust โ€” apply colour adjustments (brightness, contrast etc.) to the loaded NTSC/PAL palette (by default, the loaded palette is displayed unmodified).
  • -screenshots pattern โ€” set the filename pattern for screenshots. Use it to override the default pattern of atari###.png, which produces atari000.png, atari001.png etc. filenames. Hashes get replaced with raising numbers. Existing files are overwritten only if all the files defined by the pattern exist. ๐Ÿ“ธ
  • -showspeed โ€” show the percentage of actual speed
  • -sound โ€” enable sound ๐Ÿ”Š
  • -nosound โ€” disable sound
  • -dsprate freq โ€” set the sound output frequency in Hz. The default is 44100 Hz.
  • -stereo โ€” enable stereo sound
  • -nostereo โ€” disable stereo sound
  • -audio16 โ€” set the sound output format to 16-bit
  • -audio8 โ€” set the sound output format to 8-bit
  • -aname pattern โ€” set the filename pattern for audio recordings. Use it to override the default pattern of atari###.wav, which produces atari000.wav, atari001.wav etc. filenames. Hashes get replaced with raising numbers.

Heads up: WAV format files can support all audio codecs, including MP3, but many programs assume WAV files contain only PCM audio. ๐Ÿ™ˆ

If MP3 support was enabled when compiling the emulator, and MP3 audio is selected using the -acodec mp3 option below, the default pattern will be atari###.mp3 to save in MP3 format files.

  • -acodec auto|pcm|mp3|mulaw|pcm_mulaw|adpcm|adpcm_ima_wav|adpcm_yahama|adpcm_ms โ€” select the audio codec used when saving to AVI or WAV files. Some codecs are lossy, meaning they reduce storage space while attempting to sound as close as possible to the original audio.
    • auto โ€” the default. Use the codec that provides the best audio quality, which is PCM.
    • pcm โ€” use uncompressed pulse-code modulated (PCM) samples. Lossless. Produces very large audio files.
    • mp3 โ€” use MP3 encoding. Lossy; only available with 16-bit audio, and provides the best possible quality of all the lossy codecs while also using the least storage space. This codec is only available if MP3 support is enabled when compiling the emulator.
    • mulaw โ€” use mu-law encoding. Lossy; only available with 16-bit audio, and provides 2x reduction in size from PCM samples. Comparable acoustic quality to a 192kbps MP3 file.
    • pcm_mulaw โ€” same as mulaw, included to match the ffmpeg codec name.
    • adpcm โ€” use the best adaptive dynamic pulse-code modulated (ADPCM) codec. Lossy; all ADPCM codecs provide 4x reduction in size over PCM samples. Comparable acoustic quality to a 64kbps MP3 file.
    • adpcm_ima_wav โ€” use the DVI IMA ADPCM algorithm. This seems to perform better on POKEY waveforms than other ADPCM algorithms, and it will be used when adpcm is selected.
    • adpcm_yamaha โ€” use the Yamaha ADPCM algorithm.
    • adpcm_ms โ€” use the Microsoft ADPCM algorithm.
  • -ab kbps โ€” set the bitrate in kbps of the MP3 codec. The default is 128, and it can range between 8 and 320. Higher numbers mean better quality at the cost of a bigger file. ๐Ÿ’พ
  • -ar freq โ€” set the output sample rate in Hz of the MP3 codec. The default is the same sample rate as set by the -dsprate option. Only a limited set of choices are available: 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100 and 48000. As with bitrate, higher numbers mean better quality and larger files.
  • -aq num โ€” set the MP3 audio compression algorithm quality 0-9 (default 4). 0 means reduced quality but fast, 9 uses the slowest algorithms to try to increase quality. Does not affect storage space.
  • -snd-buflen ms โ€” set the length of the hardware sound buffer in milliseconds. Setting it to 0 (the default) causes the length to be set automatically. Higher values increase sound latency. Automatic setting should be OK in most cases.
  • -snddelay ms โ€” set the sound latency in milliseconds. Bump it up if you experience gaps of silence during sound playback. ๐Ÿ˜ญ
  • -vname pattern โ€” set the filename pattern for video recordings. Use it to override the default pattern of atari###.avi, which produces atari000.avi, atari001.avi etc. filenames. Hashes get replaced with raising numbers.
  • -vcodec auto|rle|msrle|png|zmbv|uzmbv โ€” select the video codec used to store image frames in AVI video recordings. All video codecs use lossless compression. ๐ŸŽฌ

The codec choices are:

  • auto โ€” the default, bestie. Uses the codec that provides the best average compression ratio: zmbv if it's available, otherwise rle. ๐Ÿ’…
  • rle โ€” run-length encoding (RLE) for very good compression of video frames. This codec is always available. No cap. โœจ
  • msrle โ€” Sames as rle, included to match ffmpeg codec name. Lowkey a twin. ๐Ÿซถ
  • png โ€” PNG image compression for moderate compression of video frames. Only available if PNG support was compiled into the emulator. ๐Ÿ‘‘
  • zmbv โ€” Zip Motion Blocks Video (ZMBV) for the best compression of video frames. Only available if support for the zlib compression library was compiled into the emulator. ๐Ÿ”ฅ
  • uzmbv โ€” Uncompressed Zip Motion Blocks Video. Only available when compiled without the zlib compression library. ๐Ÿ™ˆ

  • -showstats โ€” Show elapsed recording time and file size on screen during recording of video or audio. Main character stats. ๐Ÿ’–
  • -no-showstats โ€” Don't show multimedia statistics during recording of video or audio. Anti-stats era. ๐Ÿšซ
  • -keyint num โ€” Set the keyframe interval to one keyframe every num frames. Default is 50 for PAL, 60 for NTSC. The RLE and ZMBV codecs use keyframes and inter-frames, which encode full frames and differences between frames, respectively. Inter-frames are typically much smaller than full frames, but most video players can only seek to keyframes. So yeah, important. ๐ŸŽฌ
  • -compression-level num โ€” Set compression level 0-9 (default 6) for PNG or zlib compression used in the emulator. Zero means no compression and larger numbers correspond to higher compression and smaller image sizes, at the cost of increased time to generate the compressed image. This affects both screenshots and the video codec. Slay but slow. โšก

๐Ÿ•น๏ธ Curses Options ๐Ÿ•น๏ธ

  • -left โ€” Use columns 0 to 39. Left side bestie. โฌ…๏ธ
  • -central โ€” Use columns 20 to 59. Middle child energy. ๐ŸŽฏ
  • -right โ€” Use columns 40 to 79. Right side represent. โžก๏ธ
  • -wide1 โ€” Use columns 0 to 79. In this mode only the even character positions are used. The odd locations are filled with spaces. Wide queen. ๐Ÿ‘‘
  • -wide2 โ€” Use columns 0 to 79. This mode is similar to -wide1 except that the spaces are in reverse video if the previous character was also in reverse video. Fancy. ๐Ÿ’…

๐Ÿฆ… Falcon Options ๐Ÿฆ…

  • -interlace x โ€” Generate Falcon screen only every x frame. Frame skip realness. ๐Ÿ–ผ๏ธ
  • -videl โ€” Direct VIDEL programming (Falcon/VGA only). Hardware whisperer. ๐Ÿ”ง
  • -double โ€” Double the screen size on NOVA. Bigger is better. โœจ
  • -delta โ€” Delta screen output (differences only). Minimalist. ๐ŸŒธ
  • -joyswap โ€” Swap joysticks. Left is right and right is left. ๐Ÿ˜ญ

โ˜• Java NestedVM Options โ˜•

  • -scale n โ€” Scale width and height by n. Math but make it cute. ๐Ÿงฎ
  • -fullscreen โ€” Start in fullscreen mode. The default resolution is 336x240 and can be later changed. Full immersion. ๐Ÿ–ฅ๏ธ
  • -windowed โ€” Start in a window (the default). Cozy window vibes. ๐ŸชŸ
  • -rotate90 โ€” Rotate display (useful for devices with 240x320 screen). Turn it up. ๐Ÿ”„
  • -no-rotate90 โ€” Don't rotate display (the default). Stay straight. ๐Ÿง
  • -fs-width number-of-pixels โ€” Host horizontal resolution for fullscreen. Pixels go brrr horizontally. ๐Ÿ“
  • -fs-height number-of-pixels โ€” Host vertical resolution for fullscreen. Pixels go brrr vertically. ๐Ÿ“
  • -win-width number-of-pixels โ€” Set horizontal size of the window. The window can be later resized manually. Window sizing bestie. ๐ŸชŸ
  • -win-height number-of-pixels โ€” Set vertical size of the window. The window can be later resized nanually. (Yes, the manpage says โ€œnanuallyโ€ โ€” we keep the typo, periodt.) ๐Ÿ˜ญ
  • -bpp number-of-bits โ€” Sets image color depth when OpenGL acceleration is disabled. Accepted values are: 0 (use desktop depth; this is the default), 8, 16 and 32. Depending on the type of graphics hardware, the fullscreen setting and current desktop bit depth, either of the values might give the best performance. Note that with bit depth set to 16 emulation of colors is slightly less accurate. ๐ŸŽจ
  • -vsync โ€” Synchronize the display with the monitor's vertical retrace, to remove image tearing artifacts. This improves display quality, but may be not available depending on the current wideo mode (fullscreen/windowed), the chosen SDL_VIDEODRIVER and type of graphics hardware. Synchronization is available for some SDL videodrivers (directx, dga) but not for others. In OpenGL this option has no effect โ€” vertical synchronization must be instead enabled in the video hardware driver's settings, if available. Tear-free glow-up. โœจ
  • -no-vsync โ€” Disable synchronization with monitor's vertical retrace (the default). No sync, no problem? ๐Ÿ˜Œ
  • -horiz-area narrow|tv|full|number โ€” Set amount of visible screen horizontally:
    • narrow โ€” Shows 320 pixels. Skinny legend. ๐Ÿงš
    • tv โ€” The default. Shows area visible on a standard TV (336 pixels). TV realness. ๐Ÿ“บ
    • full โ€” Shows full overscan area (384 pixels). All the pixels. ๐ŸŒˆ
    • number โ€” An exact horizontal size can be set by providing a number between 160 and 384. Custom queen. ๐Ÿ”ข
  • -vertical-area short|tv|full|number โ€” Set amount of visible screen vertically:
    • short โ€” Shows 200 pixels. Short king. ๐Ÿ‘‘
    • tv โ€” The default. Shows area visible on a typical TV (224 or 240 pixels, depending on current TV system). ๐Ÿ“บ
    • full โ€” Shows full overscan area, which can be up to 300 pixels in case of the XEP80. Full send. ๐Ÿš€
    • number โ€” An exact number of visible scanlines can be set by providing a number between 100 and 300. Custom scanlines. ๐Ÿ”ข

Note that when displaying output of an XEP80 or Austin Franklin 80 column card, the tv setting will crop the top and bottom parts of text area, just like a real TV does โ€” in such case setting the option to full would be more appriopriate. ๐Ÿ“บ

  • -horiz-shift number โ€” When the visible horizontal area is not set to full, this option specifies the screen's area that will be visible. Values higher than 0 will cause showing more of the right side of the screen, while values lower than 0 will cause showing more of the left side. The default is 0 (no shift). Shift it. โ†”๏ธ
  • -vert-shift number โ€” Analogically to -horiz-shift: when the visible vertical area is not set to full, this option specifies the screen's area that will be visible. Values higher than 0 will cause showing more of the bottom part of the screen, while values lower than 0 will cause showing more of the top part. The default is 0 (no shift). โ†•๏ธ
  • -stretch none|integral|full|number โ€” Choose method of stretching the image to fit the screen/window area:
    • none โ€” The image won't be stretched at all. Stay small. ๐Ÿœ
    • integral โ€” The default. The image will fit the screen/window but will be stretched only by an integral multiplier. This setting allows for nice output when using scanlines in low screen resolutions. Clean pixels. โœจ
    • full โ€” The screen will fit the entire screen/window area. This setting looks best in high screen resolutions. Fill it up. ๐Ÿ–ฅ๏ธ
    • number โ€” A custom multiplier (floating point number) can be also provided to precisely set the amount of stretching. Precision bestie. ๐Ÿ”ข
  • -fit-screen width|height โ€” When -stretch is set to integral or full, this parameter controls how the stretching is performed with relation to window/screen size:
    • width โ€” Fits the image's width while allowing it to be cropped vertically. Wide but crop. โœ‚๏ธ
    • height โ€” Fits the image's height while allowing it to be cropped horizontally. Tall but crop. โœ‚๏ธ
    • both โ€” The default. Fit both the image's width and height, avoiding cropping. Balanced. โš–๏ธ
  • -image-aspect none|square-pixels|real โ€” Choose how the image's aspect ratio should be maintained when stretching:
    • none โ€” Causes the image to be stretched without restriction to fit the screen/window area fully. Stretch it like it's hot. ๐Ÿ”ฅ
    • square-pixels โ€” The default. Causes the image to be stretched by the same amount horizontally and vertically, maintaining square pixels. In low screen resolutions this setting may produce the nicest result. Square up. โฌœ
    • real โ€” Recreates the aspect ratio of a real TV display (pixels are not square), but only if the -host-aspect-ratio option is set correctly. TV fantasy. ๐Ÿ“บ
  • -host-aspect-ratio auto|x:y โ€” Set the aspect ratio of the host monitor on which the emulator's display is placed. Allowed values are auto for autodetection, or ratios like 4:3, 16:9, 1.25:1 ... This value is used to properly maintain image's aspect ratio when having -image-aspect set to real. The default value is auto. Note that host aspect ratio detection works as expected only if the desktop resolution matches aspect ratio of the display device (in other words, display pixels are square). If, for example, desktop resolution is 800x600 on a 16:9 monitor, autodetection will fail and host aspect ratio will have to be set manually, by measuring physical width and height of the monitor and setting the parameter to width:height. Math girlie. ๐Ÿ“
  • -80column โ€” Shows output of an 80 column hardware, when it is available (the default). This parameter has effect only if an 80 column hardware is activated, using one of the parameters -af80, -proto80 or -af80. ๐Ÿ’–
  • -no-80column โ€” Deactivates showing output of an 80 column hardware. Bye 80 columns. ๐Ÿ‘‹
  • -nojoystick โ€” Do not initialize SDL joysticks. No joystick era. ๐Ÿšซ๐Ÿ•น๏ธ
  • -joy0hat โ€” Use hat of joystick 0 rather than the axis for joystick movement. Hat girl. ๐ŸŽฉ
  • -joy1hat โ€” Use hat of joystick 1 rather than the axis for joystick movement. ๐ŸŽฉ
  • -joy2hat โ€” Use hat of joystick 2 rather than the axis for joystick movement. ๐ŸŽฉ
  • -joy3hat โ€” Use hat of joystick 3 rather than the axis for joystick movement. ๐ŸŽฉ
  • -joy0 path-to-device โ€” Define path to device used in LPTjoy 0. Available on linux-ia32 only. Niche. ๐Ÿง
  • -joy1 path-to-device โ€” Define path to device used in LPTjoy 1. Available on linux-ia32 only. ๐Ÿง
  • -ntsc-filter-preset composite|svideo|rgb|monochrome โ€” Use one of predefined NTSC filter adjustments. Filter preset realness. ๐ŸŽ›๏ธ
  • -ntsc-sharpness n โ€” Set sharpness of the NTSC filter. Sharp. ๐Ÿ”ช
  • -ntsc-resolution n โ€” Set resolution of the NTSC filter. Resolution. ๐Ÿ“บ
  • -ntsc-artifacts n โ€” Set artifacts of the NTSC filter. Artifacts but make it fashion. ๐ŸŽจ
  • -ntsc-fringing n โ€” Set fringing of the NTSC filter. Fringe. ๐ŸŒˆ
  • -ntsc-bleed n โ€” Set bleed of the NTSC filter. Bleed. ๐Ÿฉธ
  • -ntsc-burstphase n โ€” Set burst phase of the NTSC filter. This changes colors of artifacts. The best values are 0, 0.5, 1, 1.5. Color phase slay. ๐ŸŒˆ
  • -scanlines n โ€” sets how visible the scanlines are, 0..100. ngl bestie, they only show up when the screen or window is tall enough โ€” specifically at least 480 vertically, or more precisely at least twice the number of scanlines you gave in -vert-area. Math is math ๐Ÿ’…
  • -scanlinesint โ€” turn scanlines interpolation ON. it looks nicer, that's the whole pitch โœจ
  • -no-scanlinesint โ€” turn scanlines interpolation OFF. in software modes this may give better performance, so if ur fighting for frames, here u go ๐Ÿซถ
  • -video-accel โ€” use OpenGL hardware acceleration for displaying and stretching the emulator's display. Using OpenGL improves performance. slay, frames go brrr
  • -no-video-accel โ€” don't use OpenGL hardware acceleration. this is the default, fyi.
  • -pixel-format bgr16|rgb16|bgra32|argb32 โ€” picks the format of texture data when OpenGL acceleration is on. depending on what graphics hardware u have, either value might give the best performance. heads up tho: with pixel format set to bgr16 or rgb16, emulation of colors is slightly less accurate. choices were made ๐Ÿ’€
  • -pbo โ€” use Pixel Buffer Objects when OpenGL acceleration is enabled. this is the default. PBOs are available on newer graphics hardware and when used, they substantially improve the emulator's performance. but plot twist: in rare cases (some Intel on-board chips) using PBOs may actually decrease performance. not me being betrayed by my own GPU ๐Ÿ˜ญ
  • -no-pbo โ€” don't use Pixel Buffer Objects when OpenGL acceleration is used.
  • -bilinear-filter โ€” enable bilinear filtering of the screen in OpenGL modes. smooth. soft. iconic
  • -no-bilinear-filter โ€” disable bilinear filtering in OpenGL modes. this one's the default.
  • -opengl-lib path โ€” hand over a custom OpenGL shared library. if u don't give one, Atari800 will use a default system-specific library (typically opengl32.dll or libGL.so). bring ur own or let the system pick, either way ๐Ÿ’–
  • -proto80 โ€” emulate a prototype 80 column board for the 1090. retro within retro, we love to see it โœจ
  • -xep80 โ€” emulate the XEP80. yes bestie, eighty whole columns ๐ŸŒˆ
  • -xep80port n โ€” use XEP80 on joystick port n.
  • -af80 โ€” emulate the Austin Franklin 80 column daughterboard for Atari 800. daughterboard era ๐Ÿ‘‘
  • -volume 0..100 โ€” sets the global volume of Atari 800. turn it up fr fr ๐Ÿ”ฅ

โœจ X11 Options โœจ

  • -small โ€” run the emulator in a small window where each Atari 800 pixel is represented by one X Window pixel. tiny. precious. ๐ŸŽ€
  • -large โ€” run the emulator in a large window where each Atari 800 pixel is represented by a 2x2 X Window rectangle. this mode is selected by default, so it's the main character here ๐Ÿ’…
  • -huge โ€” run the emulator in a huge window where each Atari 800 pixel is represented by a 3x3 X Window rectangle. HUGE. go big or go home.
  • -clip_x number-of-pixels โ€” set left offset for clipping.
  • -clip_width number-of-pixels โ€” set the width of the clipping-area.
  • -clip_y number-of-pixels โ€” set top offset for clipping.
  • -clip_height number-of-pixels โ€” set the height of the clipping-area.
  • -private_cmap โ€” use private colormap.
  • -sio โ€” show SIO monitor. watch the serial bus do its thing, no thoughts just bytes
  • -x11bug โ€” enable debug code in atari_x11.c. devs only vibe ๐Ÿงš
  • -keypad โ€” keypad mode.

๐ŸŽฎ KEYBOARD, JOYSTICK AND OTHER CONTROLLERS ๐ŸŽฎ

okay so here's the whole cheat sheet, bestie. screenshot it, tattoo it, whatever ๐Ÿ’–

  • F1 โ€” Built in user interface
  • F2 โ€” Option key
  • F3 โ€” Select key
  • F4 โ€” Start key
  • F5 โ€” Reset key ("warm reset")
  • Shift+F5 โ€” Reboot ("cold reset")
  • F6 โ€” Help key (XL/XE only)
  • F7 โ€” Break key
  • F8 โ€” Enter monitor
  • F9 โ€” Exit emulator
  • F10 โ€” Save screenshot
  • Shift+F10 โ€” Save interlaced screenshot
  • Alt+R โ€” Run Atari program
  • Alt+D โ€” Disk management
  • Alt+C โ€” Cartridge management
  • Alt+Y โ€” Select system
  • Alt+O โ€” Sound settings
  • Alt+W โ€” Sound recording start/stop
  • Alt+V โ€” Video recording start/stop
  • Alt+S โ€” Save state file
  • Alt+L โ€” Load state file
  • Alt+A โ€” About the emulator
  • Shift + Insert โ€” Insert line (Atari Shift+'>')
  • Insert โ€” Insert character (Atari Ctrl+'>')
  • Shift+Ctrl+Insert โ€” Shift+Ctrl+'>'
  • Shift + Delete โ€” Delete line (Atari Shift+Backspace)
  • Shift+Backspace โ€” Delete line (Atari Shift+Backspace)
  • Delete โ€” Delete character (Atari Ctrl+Backspace)
  • Ctrl+Backspace โ€” Delete character (Atari Ctrl+Backspace)
  • Shift+Ctrl+Delete โ€” Shift+Ctrl+Backspace
  • Shift+Ctrl+Backspace โ€” Shift+Ctrl+Backspace
  • Home โ€” Clear (Atari Shift+'<')
  • Ctrl+Home โ€” Ctrl+'<' (also clears screen)
  • Shift+Ctrl+Home โ€” Shift+Ctrl+'<'
  • ~ โ€” Inverse video
  • Up โ€” Up (Atari Ctrl+'-')
  • Down โ€” Down (Atari Ctrl+'=')
  • Left โ€” Left (Atari ctrl'+')
  • Right โ€” Right (Atari ctrl+'*')
  • Ctrl+Up โ€” -
  • Ctrl+Down โ€” =
  • Ctrl+Left โ€” +
  • Ctrl+Right โ€” *
  • Shift+Up โ€” _ (Atari Shift+'-')
  • Shift+Down โ€” | (Atari Shift+'=')
  • Shift+Left โ€” (Atari Shift+'+')
  • Shift+Right โ€” ^ (Atari Shift+'*')
  • Shift+Ctrl+Up โ€” Shift+Ctrl+-
  • Shift+Ctrl+Down โ€” Shift+Ctrl+=
  • Ctrl+\ โ€” Ctrl+Esc (Workaround for Windows)
  • Shift+Ctrl+\ โ€” Shift+Ctrl+Esc (Workaround for Windows)

๐ŸŽน CX85 Keypad (if enabled):

host keypad 0123456789-. 0123456789-.
host keypad              NO
host keypad Ctrl+/       ESCAPE
host keypad *            DELETE
host keypad +            YES
host keypad Enter        +ENTER

Paddles, Atari touch tablet, Koala pad, light pen, light gun, ST/Amiga mouse, Atari trak-ball, joystick and Atari 5200 analog controller are emulated using mouse on ports that support it. See the options above for how to enable mouse. yes u can point and click ur way through Atari history, iconic behavior ๐Ÿ–ฑ๏ธ


๐ŸŒธ Basic

No function keys or Alt+letter shortcuts. Use Ctrl+C to enter the monitor. Controllers not supported in this version. short and sweet, no extras, we keep it minimal

๐Ÿฆ‹ Curses

F10 (Save screenshot) does not work in the default CURSES_BASIC build. Shift+F5 and Shift+F10 don't work at all. Avoid Ctrl + C, H, J, M, Q, S and Z. The remaining control characters can be typed. Control characters are displayed on the screen with the associated upper case character in bold.

Controllers not supported in this version.

lowkey important: those keys are off-limits here, don't come for me when nothing happens ๐Ÿ’€

๐Ÿฆ… Falcon

  • Help โ€” Help key (XL/XE)

Joystick 0 is operated by the numeric keypad (make sure that the numeric keypad has been enabled).

        7 8 9
         \|/
        4 5 6
         /|\
        1 2 3

And 0 is the fire key. ๐Ÿ”ฅ

Mouse not supported in this version.

๐ŸŽ€ SDL (SDL2 feature set)

  • ` โ€” Atari/Inverse key
  • LSUPER โ€” Atari/Inverse key (unusable under Windows)
  • RSUPER โ€” CapsToggle (+Shift = CapsLock)
  • LAlt+F โ€” Switch fullscreen/windowed display.
  • LAlt+G โ€” Switch visible horizontal area. See -horiz-area.
  • LAlt+J โ€” Open Controller Configuration (joysticks, mice, paddles).
  • LAlt+M โ€” Grab mouse (prevents mouse pointer from leaving the window)
  • LAlt+LShift+1 โ€” Decrease tint (also called hue)
  • LAlt+1 โ€” Increase hue
  • LAlt+LShift+2 โ€” Decrease saturation (like TV Colour control)
  • LAlt+2 โ€” Increase saturation
  • LAlt+LShift+3 โ€” Decrease contrast (also called white level)
  • LAlt+3 โ€” Increase contrast
  • LAlt+LShift+4 โ€” Decrease brightness (also called black level)
  • LAlt+4 โ€” Increase brightness
  • LAlt+LShift+5 โ€” Decrease gamma adjustment
  • LAlt+5 โ€” Increase gamma adjustment
  • LAlt+LShift+6 โ€” Decrease color delay (Atari color adjustment potentiometer)
  • LAlt+6 โ€” Increase color delay

The following keys work only when the NTSC filter is enabled (-ntsc-artif set to ntsc-full):

LAlt+LShift+7  Decrease sharpness
LAlt+7         Increase sharpness
LAlt+LShift+8  Decrease resolution
LAlt+8         Increase resolution
LAlt+LShift+9  Decrease artifacts
LAlt+9         Increase artifacts
LAlt+LShift+0  Decrease fringing
LAlt+0         Increase fringing
LAlt+LShift+-  Decrease bleed
LAlt+-         Increase bleed
LAlt+LShift+=  Decrease NTSC burst phase (use this to change
               artifacting colours)
LAlt+=         Increase NTSC burst phase
  • LAlt+LShift+[ โ€” Decrease scanlines visibility
  • LAlt+[ โ€” Increase scanlines visibility
  • LAlt+] โ€” Toggle NTSC composite/S-Video/RGB/monochrome settings
  • LAlt+Shift+X โ€” Enable/disable output of a 80 column hardware (use with -xep80, -proto80 or -af80).

Each of the four Atari joystick ports can be independently configured in the Controller Configuration UI to use None, Keyboard 1, Keyboard 2, a host joystick (SDL), a parallel port joystick, or Paddle mode. The keys used for keyboard joystick directions and the trigger can be defined via Controller Config -> Define layout.

Note: Paddle mode, per-button remapping, analog axis configuration, diagonal zone tuning, and joystick hotplug require SDL2. SDL1 builds only support basic hat/axis joystick input.

four ports, fully customizable, we're literally spoiled ๐Ÿ’…

๐ŸŒˆ X11

  • Alt โ€” Atari key (either Alt key will work)

Joystick 0 is operated by the mouse position relative to the center of the screen. The mouse button acts as the trigger. On Linux, standard joysticks are also supported. mouse as a joystick is such a serve tbh ๐Ÿญ

๐ŸŽง AUDIO RECORDING ๐ŸŽง

okay bestie so you wanna record audio?? iconic. you've got options ๐Ÿ’– you can record to WAV format sound files, or as the audio track of AVI format multimedia files (and yeah, we get to the AVI stuff in the next section, hold on). either way you get a whole menu of audio codecs to pick from, and some of them use lossy compression so your files are smaller than straight-up uncompressed audio.

โš ๏ธ heads up: all the lossy codecs need 16 bit sample sizes, which means you HAVE to use the -audio16 option. no exceptions, periodt.

so what does "lossy" even mean?? it means the sound you record is not bit-for-bit identical to whatever the emulator actually put out. every codec has its own little method for shrinking the file, and that can (maybe) tank the audio quality. but fr fr, in practice, when you're running sample rates of 44.1kHz or 48kHz, the audio from these codecs isn't perceptibly worse than lossless encoding. the only thing to watch: if you recompress lossy audio later (say, uploading it to YouTube ๐Ÿ˜ญ) that could reduce quality even more. keep that in mind.


๐Ÿ’… the codecs, ranked (by me)

  • PCM (pulse-code modulation) โ€” the only lossless codec in the lineup, bestie. it just stores the raw data that the POKEY emulation spits out, no games. yeah it takes up the MOST space of any codec, but it gives you the best possible audio quality. โœจ your sample size comes from the -audio16 or -audio8 options. this is the one i'd recommend unless you're recording for, like, an extremely long time. (there's tables in the VIDEO RECORDING section below if you wanna peek ๐Ÿ‘€)
  • MP3 โ€” the best of the lossy codecs, no cap. you can tune its parameters to get high quality audio for whatever situation you're in. an audio bitrate of 128kbps (that's the -ab 128 option) gives you high quality audio at roughly an 8x reduction in storage space compared to PCM. huge. ๐Ÿ’€ note that MP3 is a compile-time option โ€” it gets included automatically if the libmp3lame library is found while compiling.
  • the rest of the lossy codecs โ€” honestly?? don't even consider these unless MP3 isn't available. they mostly sound reasonable, no big audible artifacts for a casual listener. BUT the algorithms were originally built for compressing speech over telephone lines, so they can produce some audio distortion in certain situations. yikes.

๐ŸŽ€ mu-law

the mu-law codec uses a logarithmic scale to squeeze 16 bit samples down into 8 bits of data, which gives you half the size of 16 bit PCM audio. it does not work with 8 bit audio, so don't try it. waveform analysis says the acoustic quality is similar to a 192kbps MP3 file โ€” except the MP3 is half the size ๐Ÿ™ˆ. and surprisingly?? in a lot of cases mu-law's acoustic quality can actually be better than 8 bit PCM samples, even though they take up the exact same storage space. slay.

๐Ÿฆ‹ ADPCM

adaptive differential pulse-code modulation (ADPCM) takes the differences between successive 16 bit audio samples and encodes them into 4 bits, so the output ends up at one quarter the size of the PCM codec. acoustic quality is similar to a 64kbps MP3 file, although the MP3 is 3x smaller. ngl, audio distortion may be audible under certain conditions โ€” like high volume square waves. ๐Ÿ’€

๐Ÿ”ฅ VIDEO RECORDING ๐Ÿ”ฅ

okay bestie, this is the fun one. atari800 can record the emulated video and audio straight into AVI multimedia files. โœจ You get a choice of lossless video codecs, and the audio gets stored with any of the lossless or lossy codecs as described above (yes, the ones from the audio recording section, go reread it if you skipped ๐Ÿ‘€). Wanna record with no sound at all? Just specify the -nosound option. simple as that.


๐ŸŽ€ the video codecs, ranked and explained ๐ŸŽ€

  • Zip Motion Block Video (ZMBV) โ€” the most efficient one, periodt. This codec uses keyframes and inter-frames, and it gets its high compression because inter-frames use motion estimation when calculating differences to the previous frame. It's a compile-time option when building the emulator, and it's the default if available. There's also an uncompressed variant that's available when compiled without zlib โ€” see the note below. ๐Ÿ‘‘
  • Run-Length Encoding (RLE) โ€” also uses keyframes and inter-frames. Its inter-frame compression is not as efficient as ZMBV, but it still produces high compression in cases where only small parts of the screen change between frames. This codec is always available, and it's the default if compressed ZMBV is not available. ๐Ÿ’ช
  • PNG โ€” has moderate compression because it uses only keyframes. It's useful in certain cases if the ZMBV codec isn't available. It's a compile-time option when building the emulator. ๐Ÿ–ผ๏ธ
  • Uncompressed ZMBV โ€” typically inferior to RLE and PNG and not recommended in general. That said, there are a few limited instances (like detailed scrolling backgrounds) where uncompressed ZMBV will outperform RLE or PNG, and for that exact reason it's made available as the uzmbv codec when compiled without zlib. For testing purposes, when compiled with zlib, uncompressed ZMBV video can be generated with the -compression-level 0 command line argument. ๐Ÿงช

๐Ÿ’… VIDEO SUPPORT ๐Ÿ’…

here's the vibe check on who can actually open your files, bestie:

  • YouTube โ€” Website โ€” Browser โ€” RLE: Yes, PNG: Yes, ZMBV: Yes โœ…
  • Twitter โ€” Website โ€” Browser โ€” RLE: No[1], PNG: No[1], ZMBV: No[1] ๐Ÿ˜ญ
  • FFmpeg โ€” Transcoder โ€” Win/Mac/Lin โ€” RLE: Yes, PNG: Yes, ZMBV: Yes โœ…
  • Handbrake โ€” Transcoder โ€” Win/Mac/Lin โ€” RLE: Yes, PNG: Yes, ZMBV: Yes โœ…
  • VLC โ€” Player โ€” Win/Mac/Lin โ€” RLE: Yes, PNG: No[2], ZMBV: Yes โš ๏ธ
  • Windows Media Player โ€” Player โ€” Windows โ€” RLE: Yes, PNG: No, ZMBV: No
  • Win 10 Movies & TV โ€” Player โ€” Windows โ€” RLE: No, PNG: No, ZMBV: No ๐Ÿ’€
  • IINA โ€” Player โ€” Mac โ€” RLE: Yes, PNG: Yes, ZMBV: Yes โœ…
  • QuickTime โ€” Player โ€” Mac โ€” RLE: No, PNG: No, ZMBV: No
  • Totem (Gnome Videos) โ€” Player โ€” Linux โ€” RLE: No, PNG: Yes, ZMBV: Yes
  • MPV (Celluloid) โ€” Player โ€” Linux โ€” RLE: Yes, PNG: Yes, ZMBV: Yes โœ…
  • MPlayer โ€” Player โ€” Linux โ€” RLE: Yes, PNG: Yes, ZMBV: Yes โœ…
[1] Twitter only accepts mp4 files using the h264 video codec and the aac audio codec. The avi files produced by atari800 must be transcoded with an application like FFmpeg or Handbrake. Videos are limited to 2 minutes and 20 seconds.
[2] VLC recognizes and plays PNG-encoded video, but decodes the video incorrectly resulting in garbled images.

๐ŸŒธ how long can you actually record tho ๐ŸŒธ

Currently there is a limit of 4GB for video size. The maximum recording time for this size limit depends on many factors. Some examples can be seen below:

โญ ZMBV codec (default compression level)

  • Jumpman โ€” average video frame size 0.08k
    • mp3 128 kbps: 49 hr
    • mp3 320 kbps: 23 hr
    • ADPCM audio: 38 hr
    • 8-bit audio: 21 hr
    • 16-bit audio: 11 hr
  • Miner 2049er โ€” average video frame size 0.13k
    • mp3 128 kbps: 43 hr
    • mp3 320 kbps: 22 hr
    • ADPCM audio: 35 hr
    • 8-bit audio: 20 hr
    • 16-bit audio: 11 hr
  • Alley Cat โ€” average video frame size 0.37k
    • mp3 128 kbps: 28 hr
    • mp3 320 kbps: 17 hr
    • ADPCM audio: 24 hr
    • 8-bit audio: 16 hr
    • 16-bit audio: 9h 40m
  • Dropzone โ€” average video frame size 0.82k
    • mp3 128 kbps: 17 hr
    • mp3 320 kbps: 12 hr
    • ADPCM audio: 15 hr
    • 8-bit audio: 11 hr
    • 16-bit audio: 7h 55m
  • AtariBlast! โ€” average video frame size 1.2k
    • mp3 128 kbps: 12 hr
    • mp3 320 kbps: 9h 55m
    • ADPCM audio: 11 hr
    • 8-bit audio: 9h 30m
    • 16-bit audio: 6h 50m
  • Boulder Dash โ€” average video frame size 0.17k
    • mp3 128 kbps: 40 hr
    • mp3 320 kbps: 21 hr
    • ADPCM audio: 33 hr
    • 8-bit audio: 19 hr
    • 16-bit audio: 10 hr

โญ RLE codec

  • Jumpman โ€” average video frame size 0.36k
    • mp3 128 kbps: 28 hr
    • mp3 320 kbps: 17 hr
    • ADPCM audio: 24 hr
    • 8-bit audio: 16 hr
    • 16-bit audio: 9h 45m
  • Miner 2049er โ€” average video frame size 0.39k
    • mp3 128 kbps: 27 hr
    • mp3 320 kbps: 17 hr
    • ADPCM audio: 24 hr
    • 8-bit audio: 15 hr
    • 16-bit audio: 9h 35m
  • Alley Cat โ€” average video frame size 1.0k
    • mp3 128 kbps: 14 hr
    • mp3 320 kbps: 11 hr
    • ADPCM audio: 13 hr
    • 8-bit audio: 10 hr
    • 16-bit audio: 7h 20m
  • Dropzone โ€” average video frame size 2.3k
    • mp3 128 kbps: 7h 25m
    • mp3 320 kbps: 6h 20m
    • ADPCM audio: 7h 05m
    • 8-bit audio: 6h 10m
    • 16-bit audio: 4h 55m
  • AtariBlast! โ€” average video frame size 6.9k
    • mp3 128 kbps: 2h 40m
    • mp3 320 kbps: 2h 30m
    • ADPCM audio: 2h 35m
    • 8-bit audio: 2h 30m
    • 16-bit audio: 2h 15m
  • Boulder Dash โ€” average video frame size 9.1k
    • mp3 128 kbps: 2h 00m
    • mp3 320 kbps: 1h 55m
    • ADPCM audio: 2h 00m
    • 8-bit audio: 1h 55m
    • 16-bit audio: 1h 45m

โญ PNG codec (default compression level)

  • Jumpman โ€” average video frame size 2.4k
    • mp3 128 kbps: 7h 05m
    • mp3 320 kbps: 6h 10m
    • ADPCM audio: 6h 50m
    • 8-bit audio: 5h 55m
    • 16-bit audio: 4h 45m
  • Miner 2049er โ€” average video frame size 2.2k
    • mp3 128 kbps: 7h 40m
    • mp3 320 kbps: 6h 35m
    • ADPCM audio: 7h 20m
    • 8-bit audio: 6h 20m
    • 16-bit audio: 5h 00m
  • Alley Cat โ€” average video frame size 4.1k
    • mp3 128 kbps: 4h 20m
    • mp3 320 kbps: 4h 00m
    • ADPCM audio: 4h 15m
    • 8-bit audio: 3h 55m
    • 16-bit audio: 3h 20m
  • Dropzone โ€” average video frame size 2.8k
    • mp3 128 kbps: 6h 10m
    • mp3 320 kbps: 5h 25m
    • ADPCM audio: 6h 00m
    • 8-bit audio: 5h 20m
    • 16-bit audio: 4h 20m
  • AtariBlast! โ€” average video frame size 4.4k
    • mp3 128 kbps: 4h 05m
    • mp3 320 kbps: 3h 45m
    • ADPCM audio: 4h 00m
    • 8-bit audio: 3h 40m
    • 16-bit audio: 3h 10m
  • Boulder Dash โ€” average video frame size 4.5k
    • mp3 128 kbps: 4h 00m
    • mp3 320 kbps: 3h 40m
    • ADPCM audio: 3h 55m
    • 8-bit audio: 3h 35m
    • 16-bit audio: 3h 10m

๐Ÿ“ FILES ๐Ÿ“

the whole ROM squad, here's where they live:

  • /usr/share/atari800/ATARIOSA.ROM โ€” Atari O/S A ๐Ÿซถ
  • /usr/share/atari800/ATARIOSB.ROM โ€” Atari O/S B ๐Ÿซถ
  • /usr/share/atari800/ATARIXL.ROM โ€” Atari 800XL O/S ๐Ÿซถ
  • /usr/share/atari800/ATARI5200.ROM โ€” Atari 5200 O/S ๐Ÿซถ
  • /usr/share/atari800/ATARIBAS.ROM โ€” Atari Basic ๐Ÿซถ

๐Ÿ› BUGS ๐Ÿ›

not me having to admit it's not perfect ๐Ÿ˜ญ โ€” See the BUGS file.


and that's the whole page, bestie, you made it to the end ๐Ÿ’–โœจ this was Atari800 7.1.2, dated 2026-07-26, and yes that's the ATARI800(1) manual you just read cover to cover like a true main character. go record something iconic. ๐Ÿ‘‘๐ŸŽ€๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from