For the 2021 competition I am hoping to enter my current project, Witch n' Wiz
, into Category 1 (Game).
I've been working on it on and off since August 2019, but was pretty busy with my other project, From Below
. But now that I have shipped that game, I am able to focus 100% on this!
Witch n' Wiz is actually somewhat of a port. I originally wrote it for Pico-8
, and can be played for free here: https://mhughson.itch.io/witch-n-wiz
For the NES version my plan is to expand on what was in the original with more variety in graphics and new game mechanics.
Currently I have finished porting all the levels from the original Pico-8 version, and started expanding on the gameplay.
Here is a short sample of what's in the game today:
It uses the MMC1 mapper 01, configured with 256KB of memory (8 x 16k PRG-ROM banks, and 16 x 8k CHR-ROM banks). This is obviously not compatible with the 64k PRG-ROM configuration required by the competition. However, at the moment, I am only using a fraction of the 256kb allocated, so I might be able to make it work.
First I plan to put together a complete 30+ level version of the game, likely very similar to what was in the Pico-8 version. I am actually pretty close. Here is what is left:
- Title screen
- Level select
- Level complete screen
- Restart level option
- Music and Sound (placeholders in using FamiTone5)
Assuming I can do that without ballooning memory requirements too much, I will move on to the next step.
Second, I will branch the project and start hacking and slashing my way down to 64k PRG-ROM + CHR-RAM. I've never used CHR-RAM, so I'm not sure how hard this is going to be.
Here's the current memory usage today:
Roughly speaking, if I can move all code/data to PRG 0, 1, and 2 (48kb) with about 8kb free in PRG-ROM 2. That leaves PRG-ROM 4 (16kb) for CHR data, music and sound. It's probably more complicated than that, but it's a least in the realm of possibility at the moment (but again, the game isn't done yet).
CHR-ROM 01 is actually just for animating the background via bankswapping, so it can actually be cut to save space pretty easy (and may need to be; I don't know how perf-intensive updating CHR-RAM, and if I can afford to do it every few frames like I do with bank swapping). That will give me space for a nice title screen too.