16 october 2019
Hey! I'm recording my feels tonight!
I Think I'll talk about something interesting my next few feels. Maybe I can debug my program this way.
I'm working on a videogame for the Atari 7800. I'm not sure if I have talked about it before or not. The game is 100% coded in 6502 assembly and uses neat cartridge hardware that has a custom mapper and softsynth software that runs separate from the 6502. Also included is 32KB of RAM and 512KB of banked ROM.
The game is a vertical shooter called Bullet Festival. Or at least it will be if I can get past a few hurdles. My current issue is my text engine is outputting incorrect graphics. It was working a few days ago, but I needed to change how I was storing and retrieving to be able to use a feature of the cartridge hardware. However, it seems I was too change-happy and managed to make too many changes to easily revert. I have a backup on my file server though, so it should be fine.
The program was stripped down to the bare minimum: hardware setup, RAM clearing, and (attempting) to give my text processing routine the proper data to display text. I'm simply trying to display 4 lines of test text.
Symptom:
Text is displaying incorrect texture. It seems to be pulling some textures of bullets and turret enemies.
Theory(ies):
- The text processing routine is being given the incorrect values.
- The mapper hardware is not configured correctly to accept data into RAM.
- The text processing routine is bugged.
- Data is formatted incorrectly.
- Combination of all of the above.
I'll need to stop for tonight though, it's getting too late and I need to get up early. I'll probably start by ensuring that the text processing routine is working properly, double-check that the data being put into RAM is correct, re-read the documentation for the hardware and make sure it is set-up properly. Failing these checks, I'll possibly need to redesign the text processing routine or revert changes and not utilize a feature that is not mandatory for operation. Sure would make life easier and my program more flexible down the road!
Remember: cycles! Keep the program fast and try to use the fastest addressing methods.
Good night! :^)