NeoToxin development

Sunday, January 09, 2005

Development source code released

I've released the source code I've been working on the past month. It includes a small demo to illustrate some of the capabilities. The source code can be downloaded here. A precompiled ROM can be downloaded here. All that's needed now is great graphics, level design, enemies and quests, then Neotoxin is ready to hit the shelves!

Saturday, January 08, 2005

Assembler mania

I've written an assembler for my NES virtual machine. It's very crude (had to be since I can't afford to spend weeks on it), but it's sufficient for the time being. Ideally, I should write a compiler above it, but that's a bit of an undertaking, so it's not too high on the priority list right now. It's also a good exercise to code in assembler first so I can better see the requirements and implementation strategies of the compiler.

I've also released yet a new version of my assembler/linker suite. Bugs are still steadily trickling to the surface as I work on the Neotoxin code (it makes for good test input now -- 70 units, 11,000 lines of code), and every time I release a new version I swear "no more... there can't be any more now, can there?". THIS time, of course, it's true.

Next week I begin working on my master thesis, so NES development is likely to be somewhat subdued. Rest assured that Neotoxin will still be worked on steadily, though.

Friday, January 07, 2005


During the last two days I've implemented dynamic memory management on the NES and built a virtual machine on top it. The virtual machine supports non-preemptive multithreading and is quite cool. The plan is to use it to implement scripting of game events (cutscenes and quest logic). I need to write a compiler for it though, since typing in the bytecodes by hand isn't very fun.

The 2D engine is pretty much finished now. It's all very tight; the entropy mentioned in an earlier post has been driven into the ground.

Monday, January 03, 2005

Status report this, status report that

I've come up with new novel implementations of object-to-object collision detection and dynamic object loading/unloading. I've also released a new version of the assembler/linker, which adds support for anonymous unions.

Saturday, January 01, 2005

Status report: The sequel

Another year, another pathetic attempt at finishing Neotoxin.

For those who don't know, I'm rewriting and restructuring large parts of the code since the entropy of it all got out of hand, due to the combined effects of bad memory management, cheap hacks and long compilation times. The premise of this conversion is the advent of my amazing 6502 assembler/linker suite. Since the last report, I've made important progress:

- Animation engine completed
- Object physics engine, per-tile collision detection implemented

The focus now is on:

- Dynamic object loading/discarding (as the player moves through the level)
- Per-pixel collision detection (for slopes)

Once this is done, the 2D engine is pretty much ready. Then I can move on to some other mundane stuff.