NeoToxin development

Tuesday, December 28, 2004

Status report.

I'm working frantically to get the new code base up and running.

- The background scroller engine is completed.
- The music sequencer is completed.
- The sound mixer is almost completed.
- The object engine, including animation and collision detection, is nowhere near completed.

Since the last update, I've released two new versions of my assembler+linker; the latest version was uploaded just a few minutes ago. With the new features and bug fixes, I'm ready to tackle the remaining parts of the game code.

Saturday, December 18, 2004


The cyclic pattern "write NES code - find assembler/linker limitation(s) - work on assembler/linker - write NES code - ..." reared its ugly head again. While the immediate outward effect is the halt of Neotoxin progress, in a longer perspective, it's certainly for the best. I've released a new version of my assembler/linker suite every three days since December 6. Each version has had significant new features and improvements, and looking back at version 1.0.2 three weeks ago, it's amazing how far it has progressed.

The new version, 1.4.0, is a real milestone, because it introduces constructs that enable the assembly code to communicate data mapping constraints to the linker. The lack of such functionality in earlier versions has been been a source of uneasy thoughts in the back of my head for the longest time, and I knew these limitations would strike me down sooner or later. Well, the time came, and thankfully, it could be dealt with.

With those challenges conquered, I'm ready to go back to NES coding full force. Unless something really, REALLY unforeseen happens (yeah right.. what're the odds of that?), the development won't suffer any long (as in several days) breaks from now on.

Well, I best get on with it.

Monday, December 13, 2004

The porting continues.

In the last week, I've released a new version of the assembler, and have started porting my NES code to a more structured, less error-prone form. I'm constantly finding new features that would enhance the assembler, which means the porting and assembler development processes interleave eachother.

Even though it's a time-consuming process, I'm glad to see that the time I've put into the assembler is finally showing its worth. In fact, instead of directly porting my old code, I've started using the assembler's powerful constructs to write new and improved code. Besides, much of the Neotoxin code is old and could use some rethinking. For example, today I wrote a game object allocator/deallocator that runs in O(1) time, which will be a welcome replacement for the old O(N) implementation.

Stay tuned for the exciting sequel to this update, tentatively titled "The porting continues, part II: SnowBro goes mad".

Sunday, December 05, 2004

Things picking up

School's out... for Christmas. With exams out of the way, I finally have more time to work on my personal projects.

I've finished and publicly released a new version of my 6502 assembler/linker suite. It's available at for those interested. This is the tool I'll be using to code the future versions of Neotoxin. I've also released the source code to another NES homebrew game I made a couple of years ago, "BombSweeper".

Now it's time to tame the wild beast that is the Neotoxin code.

Thursday, December 02, 2004

Some progress.

I'm currently extending my 6502 assembler to support some useful stuff, mainly C-like structures, unions and enumerations. I'm sure you're all pleased to hear that this mundane work is almost done now, and a new version will be released shortly. More importantly, this will allow me to proceed to another mundane task: Porting the Neotoxin code base to my assembler, and structuring all the code. This step is quite crucial to ensure Neotoxin's future development, since the code has slowly gotten out of hand over the years. Entropy reduction is duly in order.

Once this is done, I will release the full Neotoxin source code. Then, work will commence on a brand new level editor. In parallel, the Neotoxin game engine will be tweaked and extended to support all major design elements.

My final exam this semester is on Saturday. Once that day has come and gone, development and updates should pick up quite a bit.