Tuesday, September 15, 2015

Solving quirks of the Everdrive expansion sound

As it turned out the expansion audio of the Everdrive has even issues if no expansion audio is available. Take these games for example: Metroid and Akumajou densetsu. Metroid doesn't utilize expansion audio but the latter one uses a VRC6. Both games have in common that the sound is silenced if the game is paused. On metroid you can clearly hear a low pitch static noise. On the VRC6 game you don't. As far as i can assume this might be caused by an undriven output of the FPGA. As the port is not driven the signal is influenced by digital noise from the cart itself.

There is no way to solve that except changing every mapper that is out there.... or is there one?
I did it the following way and it also has another advantage.

I don't like to drill in my NES so I made a small board for this purpose.
Here we have a poti with 50kΩ. The middle pin is connected to the mixing circuit. The other ends to ground and to the expansion audio from the everdrive.
Also there is a switch to disable the expansion entirely having a noise free experience again.

The poti makes it possible to use my 100% volume version of my VRC6 mod and at the same time having an analog way while listening to the music to setup the volume.

Fixing the VRC6 of the Everdrive N8 at last

By talking to others about the issues i decided to create a bunch of versions of my mapper. One issue of the Everdrive menu is the volume setting that currently only allows to be set to HI or LO.
As the mixing circuit is pretty analog and there seems to be differences between the various versions of the Famicom / NES a higher range of volume settings is required.

Please load the zip file here.
You get multiple files that are named with the following scheme:
The numbers represent the total output volume in percent. 100% is the maximum the FPGA can drive and offers the best signal to noise ratio.
This way you can alternate the volume by swapping the mapper or maybe check two different ones without swapping. The mapper is now configurable and has support for HI and LO.
Replace the original 024.RBF with the one you'd like.

Here is a diagramm of possible combinations.

If you need additional volume configurations just contact me.

The mapper is based on a mod of the original mapper and was tested for hours of gameplay on a modified US NES. As I can not be aware of everything you use this software on your own risk. If you damage your NES or you Everdrive using it don't make me responsible for it.

Monday, September 7, 2015

Issues with the VRC6 Implementation of the Everdrive N8

I'm a huge fan of the Everdrive series. After having bought the sd2snes to get to play some of the extremly rare SNES games (Rendering Ranger, Manfred Trenz for the win^^) I decided to also let the Everdrive N8 join the fun.

The shop said it even features expansion audio so the japanese release of Castlevania III namely akumajou densetsu can be played with the sound of the VRC6 which the american NES was not designed for.
First of all I'm from germany, I bought the card and put the ROM on the card and played it with my PAL NES. Well it didn't run quite well as the game couldn't handle 50 Hz. So i had the decision. Buy the Famicom or a US NES with an expansion audio mod.
I didn't liked the idea of having my controllers directly soldered to the console so i went for an american NES.
The game ran well but the audio was still quite strange as the mod was not yet performed.

So i opened the NES and connected pin 3 and pin 9 of the expansion port.
I don't know if this also goes for Famicom to NES converters but this is what the Everdrive needs.

I started the game and something was wrong. The sound was not quite right. Missing notes?
With an NSF player on my PC i listened to the 'reference' I was used to listen to. I heard a strong baselines on 'Beginning' and 'Aquarius'.
On the Everdrive however the baseline which is played by the Sawtooth channel of the VRC6 was incredibly quite.

I registered on the forum of krikzz the developer of the Everdrive and complained about this. Sadly no one was able to help me as this is a known issue.

I then contacted krikzz directly and wow I love you man. He has supplied me with the source code for the FPGA. I investigated and compared the design with the infos I've found on nesdev and found an issue with the internal mixing circuit that was putting the two pulse waves and the sawtooth together. Also the pulse waves did have exactly twice the volume they normaly should have.

I synthesized the design with my changes and there it was. The baseline of Beginning coming out of the Everdrive. I've added a poti to allow changing volumes while playing until I'm satisfied.

You can download my modified version here.
Replace 024.RBF inside EDFC/MAPS on your SD card with this version. But make yourself a backup first. Please keep in mind that this mod is not yet finished as further testing is needed for perfect accuracy. Also the LO/HI volume setting is ignored. I can archive quite good results at the moment with 77kOhm between pin 3 and pin 9.

I've tested it for a few minutes but be sure you are doing this at your own risk. If this mod damages your Everdrive N8 or your NES I can't help you.

Happy whipping some vampires!