Collection of Atari VCS (2600) dissembly. Some in complete state, some in early stages.
This repo contains submodules. After cloning, you need to update the submodules. If you already know how to do this, skip this section.
git submodule init
git submodule update
If "git submodule update" returns [email protected]: Permission denied (publickey)
, then you need to add a SSH key to your GitHub account. Run ssh-keygen
and choose all defaults.
Copy the output of the generated file, e.g. .ssh\id_ed25519.pub
to the clipboard, then go to the GitHub SSH page, give a title, paste the public key from the clipboard and click "Add SSH key". Redo the "git submodule update" command and you should be good.
To assemble binary from source, use dasm.
./dasm '.\game.asm' -f3 -o'game.a26'
Important: The -f3
is critical. It indicates "RAW" format containing data only.
Or, to:
- specify an output name
- generate a list file
- generate a symbol file
./dasm '.\game.asm' -f3 -I'machines\atari2600' -o'game.a26' -l'game.lst' -s'game.sym'
If you receive an "error: Value in 'byte byte 63971' must be <$100" error, it's because the source code was created in an older version of dasm. You likely need to make the following change:
For example, change:
.byte Zero,One,Two,<hree,Four,Five,Six,Seven,Eight,Nine
to:
.byte <Zero,<One,<Two,<Three,<Four,<Five,<Six,<Seven,<Eight,<Nine
I use the Stella emulator.
To start disassembly of a VCS cartridge, use distella.
To compiler distella on Windows, open a Visual Studio Developer command prompt and run: cl -DAPP_VERSION='\"3.02-SNAPSHOT\"' -DAPP_COMPILE='\"2024-12-10\"' .\distella.c /link /out:DiStella.EXE
A distella configuration file will give distella hints as how to interpret the binary.