Troubleshooting
This page covers current supported failure symptoms and checks. It intentionally does not preserve incident history; use it as an operational/debugging guide.
Build Problems
missing Franny binary
- Run
make franny. - Confirm
third_party/franny/frannyexists.
missing tool: mads
- Install MADS and make sure
madsis inPATH. - Re-run
make mms-com-hatabs.
MMS HATABS end exceeds stable BASIC limit
- Run
make mms-abi-checkand inspectbuild/mms-abi.json. - The HATABS resident end must stay under the configured BASIC-safe ceiling.
- Avoid adding resident MMS code without checking size impact.
ATR inspection fails
- Rebuild with
make mutineer-atr. - Inspect
build/mutineer-atr-manifest.jsonfor missing root,CORE,DATA,ASCII,ATASCII, orMAILfiles.
Altirra Launch Problems
Altirra starts but the expected 850/modem config is absent:
- Check
tools/altirra/4.40/Altirra.ini. - Check the generated profile under
results/altirra-850/. - Portable INI sections must be rooted under
User\Software\virtualdub.org\Altirra.
Altirra cannot find mounted files:
- Confirm
.wine-altirra/drive_zmaps to the workspace. - Confirm
MUTINEER_ATRpoints to an existing ATR when overriding. - Confirm
third_party/SDX450_maxflash8.carexists unlessMUTINEER_USE_SDX=0.
Host port is already busy:
ss -ltnp | grep 6507 || true
pkill -f Altirra || true
wineserver -k || trueThen rerun with a different port if needed:
MUTINEER_MODEM_PORT=6517 make altirra-850-runCaller Connection Problems
No HIT <RETURN> prompt:
- Confirm the ATR booted through
AUTOEXEC.BAT. - Confirm
RHND850.COMandMMS.COMloaded. - Confirm the BBS reached
WFC. - Enable debug output with
MUTINEER_ALTIRRA_DEBUG=1for tests. - Increase
MUTINEER_CONNECT_DELAYfor slow boot/test hosts.
Telnet connects but input looks wrong:
- Confirm
MUTINEER_TELNETandMUTINEER_TELNETLFmatch the client. - Try the default scripted telnet client before changing line endings.
- Use
MUTINEER_LINE_ENDING=crlfunless testing another client mode.
Connection rate is wrong or too slow:
- Set Altirra modem rate with
MUTINEER_CONNECT_RATE. - Set MMS R: baud code before
MMS_MOPENusingUSR(MBAUD,code)orPOKE MBASE+156,code. - Keep host modem rate and Atari R: code aligned for speed-sensitive tests.
BASIC Or MMS Problems
BASIC fails after MMS loads:
- Run
make mms-abi-check. - Check the HATABS
MMS_ENDvalue inbuild/mms-abi.json. - Resident footprint must leave enough low memory for BASIC.
Module switch returns to WFC:
- The module likely failed handoff validation,
MMS_MOPEN, or carrier check. - Check
MMS_LAST_ERROR,MMS_LAST_CIO, and latest emulator/test transcript. - Confirm
MMSAPPS.DATmatchessource/config/MMSAPPS.CFG.
Carrier loss does not return promptly:
- Confirm the module checks
MMS_CONN_STATEat prompt/input boundaries. - Use the disconnect-watchdog build only for diagnostics:
make mutineer-disconnect-test.
D: HATABS behavior fails:
- D: wrapping is guarded and experimental.
- Production acceptance uses the core HATABS probe set, not D: probes.
- Use
make mms-hatabs-probe-donly when working on D: wrapping.
File, Message, And Door Problems
No message bases:
- Run
INIToffline and create a message base. - Confirm
D1:>DATA>MSGBASE.CFGpoints to the intended root. - Confirm
MESG?.MET,MESG?.DAT, andMESG?.IDXexist.
No file areas:
- Run
INITorFILEMGRoffline and create a file area. - Confirm
FILE?.MET,FILE?.DAT, andFILE?.IDXexist. - Confirm upload paths are valid SDX paths.
Door unavailable:
- Confirm the
D1:>DATA>DOORS.CFGrow has the right filename/path. - Confirm the door disk/path is mounted where the row points, commonly
D3:. - Missing door files should report
DOOR UNAVAILABLE.without dropping carrier.
XMODEM hangs:
- Confirm
XFERentered raw mode and returned from raw mode on exit. - Keep XMODEM paths within the current handoff path length.
- Use
make mutineer-xmodem-testfor scripted reproduction.
Docs Problems
Run:
make docs-auditThe audit checks required docs pages, local Markdown links,
documented Make target names, and documented tools/*.py
references.