Thursday, May 12, 2016
The RetroUSB AVS - A Potentially Worthy FPGA NES HDMI-Output Clone
This year, bunnyboy (Brian Parker) of retroUSB.com is going to release his long-awaited (if you are a NintendoAge forum member) AVS. The AVS is a clone of the NES done within the programmable logic of an FPGA. It comes in a NES-front loader influenced case, has a front loading 72-pin connector (no push down tray) and a top loading 60-pin connector for NES and Famicom games, respectively. It only outputs HDMI at a 720p resolution.
The FPGA is a hardware recreation of the internals of the NES, namely the 2A03 CPU and the 2C02 PPU, the RAM and the glue logic required for a functioning NES. An FPGA is a large, programmable surface mounted chip which allows the programmer to define the logic elements on the chip. In this case, the programmer is attempting to model the CPU and PPU chips to perform an identical function to the logic contained in the discrete, through-hole chips Nintendo used. Fortunately, these chips have been decapsulated and their dies have been imaged at very high resolution. How they work on the hardware level is reasonably well-known, although there are some minor variations between the various revisions of each chip.
Although recreating hardware in an FPGA may still be a form of emulation, it offers several advantages over software based emulation like the Linux-based RetroN 5 and Retro Freak. The more accurately you try to emulate a game console in hardware, the more powerful system you will need to use. The user of the Higan (formerly BSNES) emulator, for example, is lucky to emulate the SNES in full speed on the "accuracy" setting even with the fastest PC hardware currently available. Emulating early discrete logic arcade (Pong, Tank, Breakout) machines has been very challenging because it takes a lot of processing power to keep track of the states and timing of logic chips. The FPGA bypasses this problem by giving the programmer control of the logic directly. The downside is that it requires a proper understanding of the hardware to make it work. Additionally, the number of logic elements on an FPGA is finite and every feature and function comes with a price.
The Hi Def NES mod is also available, but unless you have good modding tools, (a Hakko-quality desoldering gun) the price to install a kit inside a Nintendo system will almost certainly be greater than the cost of the AVS. The Hi Def NES does offer certain advantages over the AVS, including 1080p output and emulation of Famicom external audio hardware.
Unlike the RetroN 5 and Retro Freak, the AVS does not emulate any cartridge hardware. This allows it to use any NES or Famicom cartridge that could be used with Nintendo's systems, including homebrew using new mappers and pirate carts using unknown mappers. You also should not have to worry about your emulator not emulating mapper hardware correctly. It also means that, unlike the Hi Def NES mod, it will not emulate any expansion audio from Famicom carts or the Famicom Disk System. It will take expansion audio generated by a Famicom cartridge or Famicom Disk System and run it through an analog-to-digital converter and mix it with the digital audio from the AVS. The cartridge loading area is designed to fit the Famicom Disk System's RAM adapter, so you can play disk system games without an issue. There is a volume mixer to adjust the relative volume levels of the internal and expansion audio sources.
Also, the AVS is unlike the cheap Nintendo-on-a-Chip based clones like the RetroN 1-3 and all the other "8-bit" systems. Those clones concern themselves with only one thing, to be the cheapest clone imaginable. They often have incorrect audio (reversed square wave duty cycles), poor video quality with jailbars and off colors and incompatibility with games like Castlevania 3. Since they are hardware clones of the NES, they will only support composite video and mono audio. The AVS has none of these issues and if a bug is discovered, it can be fixed through a firmware update. Unlike every official Nintendo 8-bit console, the AVS will support both NTSC and PAL games at the proper refresh rates.
It works with the NES PowerPak (also a retroUSB product); whether it works with the EverDrive N8 (a competitor to the PowerPak) remains to be seen.
As for connectors, it has four NES controller ports on the front for four-player NES Four Score/NES Satellite games. There is an option in the menu to allow these NES controller ports to be used for four player Famicom games. It also has the 15-pin Famicom expansion port on the back of the system. It will not work with an NES Zapper or R.O.B. because they rely on the 15KHz horizontal line frequency signal from a CRT. LCDs do not strobe a light source in this manner. It will work with the Power Pad, Arkanoid VAUS controller and other NES controller peripherals. A neat feature is a menu option to allow you to use a US VAUS controller to work with the games requiring a Famicom VAUS controller, Arkanoid II being the best game. The RetroN 5, even though it has NES controller ports, will not work with a Power Pad or a VAUS. The AVS can also add adjustable turbo features to the A and B buttons independently through its menu.
The Power and Reset button will initially be sourced from spare front loader shells. However, to the extent there are any used parts in the system, that is it. The Analogue Nt and Hi Def NES mods rely on using old chips or old systems. The board and all the chips inside the AVS are newly manufactured. Warranty period is undetermined, but likely to be a standard one year.
The FPGA in the AVS is only capable of 720p output, bunnyboy has stated that the FPGA does not have a sufficient number of logic elements remaining to support 1080p. The native NES resolution is 256x240, which scales by a factor of three to fit within the 1,280x720 pixels of the 720p format. There is a horizontal stretching option including a 3:3 scaling option (768x720), a 4:3 scaling option (1,024x720) and a 5:3 scaling option (1,280x720). The ideal NES pixel aspect ratio is 1.14:1, the 1.33:1 pixel aspect ratio is a bit wider than the ideal, but it is the best you can get with 720p and pixels of all the same size. Having identically sized pixels is very important on LCD screens, it avoid ugly crawling artifacts when the screen scrolls. The AVS also allows you to apply a scanline filter, essentially dimming or not displaying every third line. Finally, it allows you to apply a border to mask off the top and bottom pixels which were not intended to be seen on a TV set and often contain unsightly graphical garbage (Bionic Commando is the classic example here).
The AVS offers a few extra features over the NES. The first is the extra sprites per line option. The NES only supports 8 sprites (8x8 or 8x16 pixels each) per line, which often leads to flickering. The AVS can reduce flickering if you turn on the extra sprites option. This allows it to support 15 sprites per line. It will not eliminate flickering entirely for some games.
The AVS boots instantly to a menu with five choices : Start Cart, Game Genie, Input Options, Video Options and Scoreboard. The options are saved when the system is turned off. The Game Genie menu option gives you a cheat menu where you can input up to five codes, and they can be Game Genie, Pro Action Replay and other codes. The AVS has a USB port for power and also for communication. Connect the AVS to the USB port and you can send your high scores in NES games to be reported on NintendoAge. The AVS will dump the game, check for Game Genie cheats and the determine the version/revision and then will send your score to NintendoAge (Internet connection required). It can also dump and restore battery backed save memory in cartridges.
The announced price is $185, about $35 more expensive than a RetroN 5. However, would you rather spend money on one console that does everything you need perfectly or one console with compatibility minefields, controller latency, appropriates emulators without acknowledgment and has reported build quality issues even though it can handle more systems? The AVS should be on sale in summer of 2016.
The 720p resolution comes with its difficulties. First, many "720p TVs" really have a 1366x768 native resolution, so the 1280x720 resolution would normally be scaled. 1080p panels must upscale the 720p resolution and it cannot do so in an integer fashion. Upscaling adds lag and blurriness. Second, 720p panels tend to be budget-minded panels and usually do not have the features or quality of the higher end panels. Higher end panels these days should come with a minimal-processing gaming mode that reduces latency at the cost of visual improvements. A 2160p/4K panel can upscale 720p resolutions by an integer of 3, but whether they will do so without adding lag and blurriness is an open question.
After the AVS is released, retroUSB will be offering a wireless RF NES controller and adapter. Wireless controllers on older systems usually used Infrared signals, which did not add measurable lag but required a line of sight to the console. The signal was usually only reliable to about 15 feet away from the receiver and was only reliable when the transmitter and receiver were on the same level and not at an angle to each other. Modern RF signals are much stronger and their ranges put Infrared to shame. You can move your controller freely instead of having to feel glued to point. However, with RF wireless controllers there is always the potential for lag. The consensus is that quality modern controllers (Wavebird to Wii U Gamepad) have not been shown to add noticeably greater lag compared to wired controllers. Bunnyboy has boasted a 4ms-8ms latency period (1/4-1/2 a frame), perhaps even lower, so the end product will likely please just about anybody.
Finally, bunnyboy is planning a portable version of his AVS called the AVP. He is planning a kickstarter to fund the development costs for this product and hopes to release it next year. The screen will be 800x480, which is necessary because of the lack of affordable 4:3 screens. Nonetheless, it should be a good product and well worth keeping an eye on.