I went through a bit of hell getting a ROM to compile.
It was the -f that I was missing (that and my .asm wasn’t setup right). The -f3 makes it output a raw binary without a loading memory address header. The commodore computers use that head to tell them where to start loading a program into memory. Cartridge based systems usually always start at the same place so the header would be misinterpreted as code and bork ass.
Jeez. Not only is the system limited to 128 bytes of RAM on the top half of the zero page $80, but you can’t read from the TIA chip either. It’s write only. Keep track of that stuff yourself, k?