So this is a project I've been working on for most of this year. Its also a direct result of my discovery of VGM files and their uses. I figured it was time to start sharing it more broadly, so here goes...
The Nestronic is a hardware VGM player for the NES APU, with a real-time clock. The front-end is driven by an ESP32 microcontroller, which reads VGM files off a microSD card and uses data from them to control the NES APU over I2C.
For more information about the project, at least through revision A of the hardware, please see these blog posts:
http://hecgeek.blogspot.com/2018/02/nestronic-1.html
http://hecgeek.blogspot.com/2018/03/nestronic-2.html
http://hecgeek.blogspot.com/2018/05/nestronic-3.html
http://hecgeek.blogspot.com/2018/07/nestronic-4.html
I just finished a video covering the complete assembly process for the revision B hardware:
https://youtu.be/UlO0NQTAaJU
All of the project designs and source code is here:
https://github.com/dkonigsberg/nestronic
Nestronic Video Game Music Synthesizer (Alarm Clock)
Technical discussion which is not directly related to VGM files. Talk about Hardware and Software.
Moderator: Staff
Nice. I like how there is some 6502 code involved, and the inclusion of all "old-world" and "new-world" parts onto a single PCB feels very slick.
IMO, DPCM support should be a priority for future firmware revisions. Earlier games largely ignored it, but later games (including this relatively famous one) tend to use it extensively for percussion samples.
IMO, DPCM support should be a priority for future firmware revisions. Earlier games largely ignored it, but later games (including this relatively famous one) tend to use it extensively for percussion samples.
Yeah. Not mapping any RAM onto the DPCM sample address range was a big goof from revision A (that I didn't realize until after I'd built it). One of the major changes I made in revision B was mirroring the 2A03's RAM onto both $0000 and $C000. Since I'm using an 8k SRAM chip, but really don't need very much for the actual code I'm running on it, that leaves plenty for samples.Shywolf wrote:IMO, DPCM support should be a priority for future firmware revisions. Earlier games largely ignored it, but later games (including this relatively famous one) tend to use it extensively for percussion samples.
The next major task for the 2A03's firmware is to add support to its I2C protocol for pushing bytes into that range, and trying to get DPCM working.