Hello guys,
I just finished a new release of my VRC7 mapper implementation for the Everdrive N8.
After some long hiatus, I finally managed to get the VRC7 /FM sound core running reasonably well!

I have uploaded the release to the following location:
http://s000.tinyupload.com/?file_id=143 ... 2133932052Enjoy, and happy hacking (since the core can of course be used with homebrew roms aswell)!
PS.: (in case you wonder) For this release, I'm using my name handle from the Everdrive support forum (Necronomfive).
Nice to hear this. Do you want to ask krikzz for add it to official mappers package?
Video from an AV Famicom :
https://www.youtube.com/watch?v=X3tUocZ ... e=youtu.beDo you know if the real cart is as quiet when it comes to the expansion audio vs the internal audio? On an original Famicom, the mapper's expansion audio from the EverDrive is very quiet in relation to the internal audio.
This is cool!
Great Hierophant wrote:
Do you know if the real cart is as quiet when it comes to the expansion audio vs the internal audio? On an original Famicom, the mapper's expansion audio from the EverDrive is very quiet in relation to the internal audio.
The VRC7 board attenuates the 2A03 audio quite a bit. In that video it's balanced way too loud relatively, though probably you're going to have trouble getting loud enough output from the Everdrive to do it right. There's some reference recordings here:
http://forums.nesdev.com/viewtopic.php?t=8639
Hi,
rainwarrior wrote:
The VRC7 board attenuates the 2A03 audio quite a bit. In that video it's balanced way too loud relatively, though probably you're going to have trouble getting loud enough output from the Everdrive to do it right. There's some reference recordings here:
http://forums.nesdev.com/viewtopic.php?t=8639yeah, I know.
The problem is that I can only adjust the volume in the digital domain, and in this regard, I'm already utilizing the full 13-bit range of my Delta-Sigma converter.
Meaning, if it needs to be louder, I have to scale the volume beyond the range of my converter, which means clipping the output when too many channels are played. I'm honestly not so fond of this idea.
Maybe I can find some trick by playing with the I/O drive strength and using a combination of push-pulling and tristating the audio pin.
Yeah, part of the problem is the VRC7 itself has a HUGE dynamic range from its logarithmic volume function.
6502freak wrote:
I have to scale the volume beyond the range of my converter, which means clipping the output when too many channels are played. I'm honestly not so fond of this idea.
I have not yet done testing on this (VRC7 is the last big reverse-engineering challenge in my plans for NSFPlay, still pending) but I've had reports that if you play it too loud it does end up distorting.
Even just clamping the max channel volume at ~11 might claim back a bit of headroom that Lagrange Point isn't using much.
This isn't the first complaint I have heard of the EverDrive N8's quiet audio. Perhaps an amplifier mod, similar to the one used for earlier versions of the SD2SNES, would alleviate quiet expansion audio issues.
Very Well.
BTW, Is it possible to simulate VRC7 FC Sound with a altera or xilinx cpld?
byemu wrote:
Very Well.
BTW, Is it possible to simulate VRC7 FC Sound with a altera or xilinx cpld?
The EverDrive N8 uses an Altera Cyclone II FPGA, but FPGAs are much more capable devices than CPLDs.
Can you even fit something as simple as a sn76489 in one of the affordable CPLDs?
Old-school Xilinx CPLDs are sized in macrocells. Each macrocell corresponds roughly to one bit of state or one multiplexed output pin. Resources in a Lattice CPLD aren't quite so simple to estimate from the size of state, but here goes nothing.
A pulse channel starts at about 25 bits:
Period reload value (10 bits)
Period down counter (10 bits)
50% duty generator (1 bit)
Volume (4 bits)
A noise channel starts at 28 bits:
Noise period prescale (3 bits)
Noise period reload value (2 bits)
Noise period down counter (3 bits)
Noise LFSR generator (15 bits)
Noise waveform select (1 bit)
Volume (4 bits)
And some shared bookkeeping overhead:
Shared prescaler (8 bits)
Pulse density modulation adder (4 bits) - one channel is added every cycle, and this adder's carry is the output
An Altera Max II EMP240 has 240 Logic Elements and will run you $7.50 on Mouser for the lowest-end chip in the family. Using Tepples' example, which has 115 bits, you should be able to fit everything onto the cheapest chip. This is using Altera's estimate of 240LEs = 128-240 MCs, avg. 192MCs. Could you fit the slightly more advanced capabilities of an AY-3-891x sound core?
Great Hierophant wrote:
An Altera Max II EMP240 has 240 Logic Elements and will run you $7.50 on Mouser for the lowest-end chip in the family
Why that particular part? It seems comparatively expensive and yet is still only 3V...
Hello,
I stumbled on this while setting up an Everdrive N8.
Just wondering what would happen if you threw a guitar compression pedal into the audio chain.
Thanks for the development.
Great Hierophant wrote:
byemu wrote:
Very Well.
BTW, Is it possible to simulate VRC7 FC Sound with a altera or xilinx cpld?
The EverDrive N8 uses an Altera Cyclone II FPGA, but FPGAs are much more capable devices than CPLDs.
My core is currently using 2910 LEs, which is beyond the capacity of any known "real" CPLD. Especially if you target the "desirable" 5V tolerant ones.
Btw, (in case you wonder) the reason why I am not posting at the Everdrive forum aswell is the failure to get my account reactivated (sent numerous password reset requests, but no response). If somebody would kick the admin, I might actually be able to answer to any kind of bug reports...
In addition of course to nesdev here.
Thanks so far for the positive responses!
Hi,
I have uploaded a new test version:
http://s000.tinyupload.com/?file_id=000 ... 0558035973Changes so far:
- Increased Volume
- Added a missing FM feature which nobody seems to have noticed so far...

In case anyone is still interested, here is an update:
http://s000.tinyupload.com/?file_id=316 ... 5103436729- Envelope trigger bug fixed
- Reduced core size by 13%
- Audio volume of FM now matches APU level (at the expense of losing dynamic range for FM)
VRC7 should be now feature complete.
Awesome job working on this.

A lot of people from the FamiTracker community are following this.
Moving forward, would you mind attaching your updates onto the forum?
6502freak wrote:
Great Hierophant wrote:
byemu wrote:
Very Well.
BTW, Is it possible to simulate VRC7 FC Sound with a altera or xilinx cpld?
The EverDrive N8 uses an Altera Cyclone II FPGA, but FPGAs are much more capable devices than CPLDs.
My core is currently using 2910 LEs, which is beyond the capacity of any known "real" CPLD. Especially if you target the "desirable" 5V tolerant ones.
Btw, (in case you wonder) the reason why I am not posting at the Everdrive forum aswell is the failure to get my account reactivated (sent numerous password reset requests, but no response). If somebody would kick the admin, I might actually be able to answer to any kind of bug reports...
In addition of course to nesdev here.
Thanks so far for the positive responses!
I Think cpld is not enough to simulator vrc7 sound!
YM2413 + CPLD will better than only cpld.
byemu wrote:
I Think cpld is not enough to simulator vrc7 sound!
YM2413 + CPLD will better than only cpld.
But not good enough, because the VRC7 has different preset instruments inside its chip compared to the YM2413. You would probably do better with a YM3812, which allows for full register reprogrammability.
Hello together,
since this forum here is for HW hacks and retro developers, this big update might interest you!
...there is now a fix in inaccuracy in the modulator envelope generator!!!
...
Hmm... No, that's not it...
Well, how about the fact that the mapper now implements a full Yamaha YM2413 core!
That's right, you now get the complete package!
-> 9 channels of FM sound!
-> 5 rhythm channels!
And even more:
-> Core can be switched between VRC7 and YM2413 instrument ROMs! (set / erase bit 6 of $E000)
Get it, stop posting strange questions about CPLDs, and actually START DOING SOMETHING WITH IT!!!!
BR,
Necronomfive
Nice, very impressive! Not much else I can say..!
I just tried it out with the fan-translated Lagrange Point ROM, and I'm getting no FM audio.
Hmm, I forgot to add the necessary MAPROUT.BIN file in the archive.
Please retry with the new attachment.
...and always perform a defragmentation operation on your SD card after update.
EDIT: Of course, maybe I should mention that this mapper only produces audio on Famicom or modified NES consoles. Unmodified NES consoles do not support expansion audio.
Awesome addition with the OPLL.

Looks like devices like the TNSx with
NSD.lib support using OPLL as well already. However it seems with your current implementation that NSD.lib output music with OPLL would not work on both PowerPak and TNSx. TNSx assumes that you will either hardware set your TNSx to VRC7 or OPLL. Bit 6 simply addresses the expansion audio to turn off the VRC7 or OPLL audio on/off.
By chance could you change the PowerPak VRC7/OPLL switch to $E000 bit 4 or 5? 0 could be VRC7 and 1 could be OPLL mode. This way compatibility is addressed.

Additional question: If the software switches between VRC7 and OPLL mode, does this mean that the instrument patches are changed too?
Hi Guys, I'm a complete newbie on this, I wanted to use this on my N8, replaced the MAPROUT.BIN file and added the other file into MAP folder, however is not working(FM Audio is not coming out) Is there any steps/requirements I'm missing?
Can any one reup the 085.RBF please!. I'm looking for it.