Latest news from Kevtris:
I have finished the FPGA side pretty much of this project now. In the last few days I have added:
* scanline generators (two kinds- NES locked and free run)
* menu! menu now lets you set up all of the video parameters from the controller.
* MMC5 audio (totally new core)
* VRC6 audio (heavily rewrote)
* FDS audio (totally new core)
* N106 audio (some rewriting)
* sunsoft5B audio (some rewriting)
* VRC7 (some rewriting)
* Audio FIR filter (2 stage)
The audio stuff is ported from the FPGA NES project and have been gone over again to fix bugs, update old code and all that. Some of it was early verilog I had written and it was ugly so it got rewritten.
The FPGA resources are now totally used up:
* logic elements: 98%
* pins: 100%
* PLLs: 100%
* multipliers: 2 left
* blockrams: 100%
This means that the scanline generators are going to have to stay as they are but I think it should be fairly usable. I tried a bunch of "NES locked" scanline generator ideas people mentioned in here and on the IRC channel but they all looked pretty bad and noticeable, unfortunately.
Setting the 1080p mode to 3x scanlines (a "scanline" every 3 HDMI lines) which is higher resolution than the NES and then using one of the scalers looks fairly passable. If you want "real" scanlines, then 720p or 480p modes will need to be used. PAL systems will have to use the free run mode most likely since the scaling on them is non-integer due to hardware restrictions between the PPU frame and the HDMI frame.
All expansion audio is implemented and works now. The VRC7 needs some slight tweaking but seems to be pretty close. At the time I implemented this I didn't know about the ADSR control bit so I will add that.
I have each source separate, and relative volumes of all channels are adjustable against each other. I still need to write a boatload of menu code to allow you to adjust all the parameters though (relative volumes) but the hardware side is all done at least.
Each chip and in some cases sub channels are all individually pannable. This includes the original NES channels (all are pannable individually), VRC6 (individually pannable), MMC5 (same), and the others are pannable as a unit. VRC7 has 2 outputs that can be panned individually left/right, each being a set of 3 channels.
There's a FIR filter to cut out most of the aliasing from the audio and works quite decent. Looped noise sounds pretty decent. There's still a tiny bit of aliasing on very very very high frequency squares but this is unavoidable. The only time I could hear it was when I used a program that let me manually poke the sound registers.
I will release another update video soon outlining some of the new features I added in the last week.