Topics

UTTORI ASM · IN DEVELOPMENT

SNES troubleshooting

Use snes troubleshooting in SNES projects, with syntax and behavior notes.

On this page

SNES behavior

“The output is empty at my org address”

The logical address probably does not map to ROM in the current mapper. Check the snestopc(address) output, confirm the mapper was selected before org, and remember that WRAM banks $7E-$7F are not cartridge ROM.

“My immediate instruction changed size between passes”

Keep SEP/REP flow deterministic and visible to the assembler. When necessary, force .b or .w. A forward-dependent status mask is legal-looking source but a lousy size oracle.

“read1 says the address is out of bounds”

Supply --base-image for a patch, verify the CPU address maps under the selected mapper, and either use a default (read1(addr,$FF)) or opt in with check title.

“My SPC bytes went nowhere”

Use an explicit spcblock for ROM transfer data, spc700-raw for a standalone payload, or the spc700-inline compatibility mode. Plain arch spc700 does not make SNES ROM and SPC RAM share an address space.

“print/warn/warnings did nothing”

Correct: they are accepted no-ops. Use assert, error, host diagnostics, or structured trace facilities for behavior that exists today.

“Freespace overwrote or ignored a hole”

The allocator appends at or beyond 512 KiB. It does not scan arbitrary $FF runs. For complex patch allocation, manage explicit org locations.

“Asar accepts this file”

If you think it should be working here, and not in the mentioned compatibility above, please open an issue.