←back to thread

439 points david927 | 2 comments | | HN request time: 0.4s | source

What are you working on? Any new ideas which you're thinking about?
Show context
zeta0134 ◴[] No.44417827[source]
I'm working on a rhythm game for original NES: https://zeta0134.itch.io/tactus

This is written entirely in 6502 assembly, and uses a fun new mapper that helps a little bit with the music, so I can have extra channels you can actually hear on an unmodded system. It's been really fun to push the hardware in unusual ways.

Currently the first Zone of the game is rather polished, and I'm doing a big giant pixel art drawing push to produce new enemies, items, and level artwork to fill out the remainder of the game. It's coming along slowly, but steadily. I'm trying to have it in "trailer ready" / "demo" state by the end of this calendar year. Just this weekend I added new chest types and the classic Mimic enemy to spice things up.

replies(1): >>44417900 #
1. namuol ◴[] No.44417900[source]
Nice! What’s the new mapper you’re using? Is it available as an IC or does it use FPGA or something?
replies(1): >>44418142 #
2. zeta0134 ◴[] No.44418142[source]
It's an FPGA mapper made by Broke Studio, detailed here if you're curious:

https://github.com/BrokeStudio/rainbow-net/blob/master/NES/m...

In terms of capabilities, graphically it's something like MMC5 (8x8 attributes and a bunch of tile memory) while sound wise it's almost exactly VRC6. The real nifty feature though is ipcm: it can make the audio available for reading at $4011

It turns out the APU inside the NES listens to writes to $4011 to set the DPCM level, which many games use to play samples. By having the cartridge drive it for reading, I can very efficiently stream one sample of audio with the following code:

    inc $4011
So I just make sure to run that regularly and hey presto, working expansion audio on the model that doesn't normally support it. It aliases a little bit, but if I'm clever about how I compose the music I can easily work around that.