I had some thoughts recently on a new MCU-based sound chip for homebrew games, maybe it could be interesting.
Why: to add extra sound channels, either classic or brand new, in new games, without using old parts or doing much of programmable logic mumbo-jumbo that would require combination of special knowledge in few areas.
It could be done on a simple low-cost MCU like ATTiny13. The cost of this chip is about $1 per chip in batch of 100, 8 pins, internal oscillator, 9-20 MIPS (>9 requires external clock), this is comparable with extra RAM or ROM chip. Similar chips like cheap PICs will do too, I just know a bit more about AVRs.
There is a number of AVR-based sound chip emulators, for example, few AY-3-8910 emulators (even Arduino one, written in C), or SwinSID. This means you easily can make a rather advanced sound chip on such MCU without having deep hardware knowledge, or even without programming in assembly code (for MCUs with larger program memory). An example.
Such device would be very simple - just the MCU, with PWM-based DAC (no external DAC as in SwinSID), and some glue to connect it to the NES bus. That's a problem that needs to be solved. As there is low number of pins (otherwise costs is higher and everything is more complex), it could be done similar to MMC1 serial registers (or semi-serial, few bits per write), as you only need to feed few bytes per frame in a sound chip (<20 for the APU), so this should be acceptable. I can imagine how it could be done with a register in a discrete logic mapper, but I'm not sure if it is possible to connect it without any extra parts, just by connecting MCU pins to certain lines. As I remember, its interrupts is not fast enough to react on WR or something. Anyway, once done, the same schematics could be used all the time, with different virtual sound chips programmed inside the MCU.
Why I think it is important to use an 8-pin MCU without extra parts - you can easily put it on an existing board for testing (in a dead bug fashion), or modify an existing board layout a bit for production. With parallel connection, MCU with many pins, and extra parts you would need to design a new (larger) board for sure.
What could be inside the MCU? For example, extra emulated APU square channels, with the same set of virtual registers as in real APU; or an emulator of some other existing NES sound extension (FDS, VRC6, N106); or emulator of some other chip that never was used with the NES (POKEY or SCC, for example). This way you won't need new software with support of a new chip to make content. You can even use it for a repro, it would require to adapt the part of code that writes data to the chip. Of course, some new almighty virtual sound chip could be created as well, but this would require new software to create content.
Additionally, there is EEPROM in such MCUs, so it could be also used for saves with small amount of data, 64 bytes in case of ATTiny13. Another thing is that the same virtual sound chip could be implemented on different MCUs that is comparable by features, NES software part and content creation part could remain the same.
Good and bad thing about it is that this thing would be not available in emulators right away, especially if you design a new virtual chip. For existing chips amount of work is minimal, just a new interface to existing code. So you would have something extra to offer in a cartridge release, that is simply not available under emulators, at least for some time, but you also would get some difficulties with developing your software.
Why: to add extra sound channels, either classic or brand new, in new games, without using old parts or doing much of programmable logic mumbo-jumbo that would require combination of special knowledge in few areas.
It could be done on a simple low-cost MCU like ATTiny13. The cost of this chip is about $1 per chip in batch of 100, 8 pins, internal oscillator, 9-20 MIPS (>9 requires external clock), this is comparable with extra RAM or ROM chip. Similar chips like cheap PICs will do too, I just know a bit more about AVRs.
There is a number of AVR-based sound chip emulators, for example, few AY-3-8910 emulators (even Arduino one, written in C), or SwinSID. This means you easily can make a rather advanced sound chip on such MCU without having deep hardware knowledge, or even without programming in assembly code (for MCUs with larger program memory). An example.
Such device would be very simple - just the MCU, with PWM-based DAC (no external DAC as in SwinSID), and some glue to connect it to the NES bus. That's a problem that needs to be solved. As there is low number of pins (otherwise costs is higher and everything is more complex), it could be done similar to MMC1 serial registers (or semi-serial, few bits per write), as you only need to feed few bytes per frame in a sound chip (<20 for the APU), so this should be acceptable. I can imagine how it could be done with a register in a discrete logic mapper, but I'm not sure if it is possible to connect it without any extra parts, just by connecting MCU pins to certain lines. As I remember, its interrupts is not fast enough to react on WR or something. Anyway, once done, the same schematics could be used all the time, with different virtual sound chips programmed inside the MCU.
Why I think it is important to use an 8-pin MCU without extra parts - you can easily put it on an existing board for testing (in a dead bug fashion), or modify an existing board layout a bit for production. With parallel connection, MCU with many pins, and extra parts you would need to design a new (larger) board for sure.
What could be inside the MCU? For example, extra emulated APU square channels, with the same set of virtual registers as in real APU; or an emulator of some other existing NES sound extension (FDS, VRC6, N106); or emulator of some other chip that never was used with the NES (POKEY or SCC, for example). This way you won't need new software with support of a new chip to make content. You can even use it for a repro, it would require to adapt the part of code that writes data to the chip. Of course, some new almighty virtual sound chip could be created as well, but this would require new software to create content.
Additionally, there is EEPROM in such MCUs, so it could be also used for saves with small amount of data, 64 bytes in case of ATTiny13. Another thing is that the same virtual sound chip could be implemented on different MCUs that is comparable by features, NES software part and content creation part could remain the same.
Good and bad thing about it is that this thing would be not available in emulators right away, especially if you design a new virtual chip. For existing chips amount of work is minimal, just a new interface to existing code. So you would have something extra to offer in a cartridge release, that is simply not available under emulators, at least for some time, but you also would get some difficulties with developing your software.