I have used a lot of assemblers to program games. I have used Learn to Program BASIC, BasiEgaXorz, and EASy68K. I have also used Apple ][ Basic, C++, and others. There are many different assemblers out there, but what if there was a computer (or maybe an application) with a really sophisticated assembler that could be used for programming games, and other things? The goal is to make programming easier, faster, and more enjoyable.
First, I'd like to mention all the essential things that any good assembler needs.
- Fast interface, as well as fast assembling.
- The ability to cleanly divide a ROM into sections.
- Code/data folding.
- The ability to test code as you write it.
- Storing colors, but showing them visually, rather than as numbers.
- Storing graphics for a game as data, and making it show like it would in the program.
- Compress graphics if necessary.
- If it's for a system that uses tiles for graphics, computing the mappings for them.
- Compress data in some way.
- Test code for length.
- Being able to make short/long branches automatically according to smallest possible file size.
- Making sure VBlank code starts and ends properly.
- For any routine, sort the local labels alphabetically or numerically.
- Add a number of labels to a ROM that follow a certain character pattern.
- Add/manage data structures.
- Lets you pick labels/variables from a list.
- Calculates a ROM checksum and/or adds code.
- Pads a ROM to a number of bytes that is a power of 2.
I might add more of these. Over time, I will be adding blog posts regarding one or more of these elements. Keep in mind that any images posted in this blog are simulated. The Apple ][ is my inspiration for their look, since it was one of the first computers I grew up with.