Friday, May 7, 2021

RetroUSB AVS : The Affordable NES FPGA Console

RetroUSB AVS, courtesy of RetroUSB.com

The NES is undoubtedly the most cloned video game system ever, and in the 2010s FPGA technology had decreased in price to the point where it was affordable to implement retro video game systems on an FPGA.  The RetroUSB AVS was the first NES FPGA console made available to the public, and while I have discussed it before on this blog, I have not done a full review of the AVS because I never had one in my possession before.  That changed recently thanks to a friend of mine who let me borrow his for testing and review.  As this console is almost five years old at this point and is the only NES FPGA console you can currently pre-order, I think it is time to see where it has progressed and how well it has held up over the years compared to more recent competition.

History of FPGA Consoles and the AVS

First released in September, 2016, the AVS was the first FPGA console to be sold for a long time.  The AVS simulates the essentials of the NES and most of the Famicom.  The only immediate FPGA predecessor of which I am aware was the 1chipMSX, sold over a decade before and pretty much only in Japan.  The Analogue Nt Mini would be released soon after in January, 2017 but was not sold after September of that year and cost $449.  The AVS cost $185 at launch and the price dipped for a while to $170-175 but the pre-order for the new batch is for $189.  If you are dying to own one now, there are some "Limited Launch Edition" units still available for $650.40.

Before I continue further, I must define what an "FPGA console" is.  An FPGA console to me is one that comes pre-assembled, in an enclosure and runs that system's original media and peripherals directly without doing a wholesale copy of ROM to RAM.  The 1chipMSX, the AVS, the Nt Mini and Nt Mini Noir, the CollectorVision Phoenix, the Super Nt and Mega Sg are all FPGA consoles.  FPGA simulators like MiSTer also will factor into the discussion as well but are not FPGA consoles. 

Things were a tad rough for the AVS at first.  Many early adopters found that the mini-USB port would break off due to insufficient structural support.  Then the NES cartridge slot was found to be unable to read some licensed NES cartridges with the "green stripe" due to the recessed pins.  Fortunately the NES cartridge slot is fixed on a riser board and a fixed connector was made available at no cost beyond shipping to early customers who asked for a replacement.  Audio was found to be crackly or broken on some TVs as it was output at 44.1KHz, a firmware update giving 48KHz output fixed that.  

The AVS originally had one unique feature, the Scoreboard.  The Scoreboard would let you submit your high scores in recognized games to NintendoAge's server, but when NintendoAge was sold off to GoCollect in May of 2019, the functionality was broken.  It has not since been restored.

Basic Features of the AVS

The AVS is powered by a Xilnix Spartan 6 XC6SLX9 FPGA.  The console provides an NES cartridge slot, a Famicom cartridge slot, four NES controller ports and on the back, a Famicom Expansion port, an HDMI connector and a mini-USB connector for power and data transfer.  It comes with an HDMI cable, a USB Type-A to mini-USB cable, a generic 5v/1A USB power adapter (U.S. plug) and a short manual.  The console does come in a box with artwork on it for a more professional presentation.  

The AVS requires an original NES or Famicom controller, not included.  You can currently get a $5 discount on RetroUSB's Wireless Controller by ordering one or more with an AVS.  

The AVS outputs a 720p signal in either 60Hz or, for PAL games, 50Hz over HDMI and uses 48KHz for audio.  The native NES resolution of 256x240 is scaled to 768x720, with the horizontal scale adjustable.  The AVS supports Expansion Audio from both the NES (from flash carts) and Famicom slots.

Compatibility

The AVS after firmware updates is pretty well compatible with almost any NES game.  The NES NTSC PPU simulation is very solid, difficult games like Micro Machines work flawlessly.  The PAL PPU simulation is not quite as near-perfect, Micro Machines has glitches in the menus but is playable.  (No FPGA device displays PAL Micro Machines properly, neither do most emulators.)  The APU simulation is pretty good, certainly good enough to pass casual inspection.  Flash carts are supported by the AVS. 

The Controller input ports accept anything you might expect them to accept and should work fine with all standard peripherals with the notable exception of the NES Zapper.  Controller ports 1 & 2 are spaced so that you could attach an NES Four Score or NES Satellite Receiver if you wished to do that for some reason.  The Famicom Expansion port also accepts most peripherals and should work fine with most peripherals which plug into that port with the exception of light guns such as the Famicom Gun and Bandai Hypershot.  Light guns only work on CRTs.  My Family BASIC Keyboard works fine.  The original Famicom Expansion port also was able to output sound but the AVS's cannot due to the lack of any DAC inside the system.  

The reason that the AVS is not compatible with light guns is due to its HDMI-only 720p video output.  NES-style light guns require a 15KHz/240p CRT in order to work.  They will not work with LCDs, so unless you have a way of converting 720p to 240p with minimal latency, light guns will not work.  Nor will R.O.B. or the Famicom Robot for the same reason.  There are some LCD hacks for some light gun games, but these are game-specific and will not work with the official light guns which implement a band-pass 15KHz filter.  (CRTs draw lines 15,750 times per second, and LCD draws frames 60 times per second).  

Despite having an Analog to Digital Converter (ADC. for Famicom Expansion Audio), there is no ability of the AVS to accept input from a microphone such as those attached to Famicom Controller 2.  

The Famicom Disk System's RAM Adapter will fit into the cavity in the enclosure provided for cartridges and work as it should.  Other Famicom expansions which use the cartridge connector, such as the Karaoke Studio, the Datach Joint ROM System and the Famicom Modem, are unlikely to fit.  I managed to get a Venus Turbo Game Doctor 6+ working with the AVS by removing the top half of the enclosure, but I do not recommend that.

Menu Features

Main Menu

When you bootup the AVS, you will see a ring-like menu with four or five options : Start Cart, Cheat Codes, Input Options, Video Options & Scoreboard (removed in firmware 1.50b1).  Controllers 1 and 2 can control the Main Menu as can a controller plugged into the Famicom Expansion port.  Start Cart is obvious, and if there is no cartridge in either slot then the icon will just be the outline of a cartridge instead of a graphic. The Game Genie icon will be gray if there is no cartridge inserted.  Do not hot-swap NES cartridges with any FPGA console, power them down and then remove the cartridge. Scoreboard will only give you an error message that it could not connect to (the now defunct) NintendoAge server.  

Cheat Codes

The cheat codes menu allows you to enter up to five Game Genie, Pro Action Replay, Pro Action Rocky and raw codes.  If the codes are six or eight digits and appear valid, the screen will show a :) next to the code.  If there are 7, 5 or fewer digits or the code is invalid, the screen will show a :( next to each code.  When entering six digit codes, the last two spaces are left blank. If you use an original cartridge and the system recognizes the cartridge, it will identify the game and present up to five codes that game can use, describing what each code does.  The AVS's code database is large but not infinite.

You can also use this with games run off an EverDrive N8 Pro if you enable reset to game in the EverDrive's menu, load a game and then return to the AVS menu.  Since the EverDrive is functioning like the original cartridge until a long reset, the AVS can read the game and if it matches an entry in its menu, load the correct code selections.  While most popular NES games are recognized, the AVS also recognizes popular Japanese titles like Akumajou Densetsu.

Cheat Codes Menu (no recognized game detected)

Video Options Menu

There are nine menu options in the video options menu as of firmware 1.40b4 :

Video Options Menu

1.  Video Mode : NTSC or PAL, default is NTSC - This is pretty obvious, the AVS will simulate a PAL NES if the video mode is set to PAL mode, but the menus will still show in 60Hz.

2. Pixel Aspect : 9 settings, default is 5.  This would be easier to explain if this used numbers instead of a bar.  The scaled resolution of the AVS at setting 1 is 768x720, at setting 5 it is 1024x720 and at setting 9 it is 1280x720. It appears to scale in 64-pixel increments.

Border turns red for Pixel Aspect and Vert Border setting

3. Vert Border : 15 settings, default is 3.  This crops the top and bottom of the visible screen area to eliminate junk graphics which some games show but which would ordinarily be hidden by a TV's overscan.  The settings start at 2 scanlines and increase by one for every notch on the bar.

Pixel Aspect and Vert Border will turn the inactive or border portions of the screen red to assist you with the active area of the screen.  Regardless of these setting, the scaler of the AVS crops two visible scanlines from the top and bottom of the screen and one column of pixels from the right border.

4. Scanlines : Off or 7 settings, default is Off - Dims every third line ever more darkly by each notch of the slider.

5. Left Side : Hide or Show, default is Hide - The NES sometimes shows a column of colored tiles down the left-hand side of the screen.  This option, when set to Hide, turns that column black.  If a colored tile stripe is not shown, the option does nothing.  

Left Side : Hide

6. Extra Sprites : Off or On, default is Off - The NES can display eight sprites per line, this allows about double that number of sprites per line to be displayed, which can reduce or eliminate flicker in many games.  Some games account for the flicker and adjust their drawing routines to reduce it, so this option is not guaranteed to work and can show glitches.

Left Side : Show

7. Exp Volume : Off or 16 settings, default is 3 - Sets the volume of Cartridge Expansion audio relative to the internally generated NES/AVS audio. 

8. Palette : Original, Unsat v6, YUV v3, FCEUX (v1.40b4) or Original, Smooth, FCEUX, Custom (v1.50b1), default is Original - This allows you to change the NES palette colors.  Firmware v1.50b1 added the ability to include a custom palette via the Scoreboard application, but it is a little buggy and breaks the Cheat Code menu.

9. Interpolation : Off or On, default is Off - Blends horizontal pixels to eliminate scaling artifacts and shimmering during horizontal scrolling.  Pixel Aspect setting 3 is the closest setting to the NES's original aspect ratio, and with interpolation On the result will be the as close to ideal to the original aspect ratio as the AVS can manage.

Input Options Menu

There are seven menu options in the input options menu as of firmware 1.40b4 :

Input Options Menu

1. Menu Buttons : Default is Select + A + B on Controller 1, This lets you set a button combo to return you to the AVS's menu.  Be warned, doing so resets the game.  You do not have to use Controller 1 for the combo.

2.  Cheat Toggle : Default is Start + A + B on Controller 1, This activates and deactivates the Game Genie codes.  When codes are deactivated, the screen will flash red.  When the codes are activated, the screen will flash green.  When you Start Cart, the codes are active.

3.  Expansion Emu: Off or On, default is Off.  This allows Controller Ports 3 and 4 to function as Famicom Controllers 3 & 4, which ordinarily must be connected by the Famicom Expansion port.  Turning this On disables the Four Score/Satellite functionality.  According to the AVS product page, this feature will also allow you to use a USA Vaus controller with the Japanese games which supported a paddle controller such as Arkanoid 2.

4. Turbo A : Off or 3 settings, default is Off.  Allows turbo fire for button A for all controllers.

5. Turbo B : Off or 3 settings, default is Off.  Allows turbo fire for button B for all controllers.

6. Auto Play : Off or On, default is Off.  This option makes the AVS boot straight to a cartridge instead of the AVS menu.  If you forget the menu button combo and turn this option on, you can start the AVS without a cartridge inserted to get back to the AVS's menu.

7.  Four Score Pro : 4 Controllers or 2 Controllers shown, default is 4 Controllers.  Disables the NES Four Score/Satellite support if only 2 Controllers are shown.  Some games can behave strangely or differently if one of these four-player adapters are connected.  

Firmware Upgrades and the Scoreboard Application

Unlike an Analogue console, which requires an SD card to transport firmware to the console, upgrading the firmware requires a Windows or Mac application called Scoreboard.  The Scoreboard application communicates with the AVS by connecting the AVS's USB power port to the computer.  The application will allow you to upgrade or downgrade your firmware.  There were seventeen firmware versions currently available on the RetroUSB downloads page but that is now disabled.  The firmware (only six available) is now located on the AVS product page. The Scoreboard application will not detect your AVS unless the AVS is turned on.

In the past, the application was necessary to upload the high scores from the Scoreboard to NintendoAge, but that functionality is long gone.  As of the most recent Windows version of the Scoreboard application and with firmware v1.50b1, you can upload one custom palette to the AVS. This RetroRGB page describes the process in more detail.  The versions on the product page are v1.14 for Windows and v1.13 for Mac and still implement the Scoreboard reporting to NintendoAge, even though that option does nothing.

One interesting feature that the Scoreboard application provides is the ability to both dump saves from cartridge and restore saves to cartridge.  The procedure requires the cartridge to be inserted into the AVS when it is connected to PC and the Scoreboard application is running.  I do not know how comprehensive this functionality is, there are two dozen different memory mapping schemes which implement battery backed save ram.  It will work for MMC1 and MMC3 games but I am not confident it will work with non-Nintendo made Japanese games, Koei NES games or the StarTropics games.

Aesthetics and Using the AVS

Aesthetics are inherently subjective, what I may like another may despise and vice versa.  I think that bunnyboy, the designer of the AVS did an overall good job adapting the essence of an original front loading NES to the AVS.  Like the front loader, the AVS is two-tone gray with a black stripe on the top and a cartridge slot which accepts cartridges inserted horizontally.  Both are angular consoles with straight lines and no curves.  The large rectangular NES controller port, if positioned and spaced as they are on the front loading NES, top loading NES or AV Famicom, are difficult to design around without making the console rather boxy.  The trapezoidal shape cuts down on material and makes the enclosure more interesting than a box which most other NES clone consoles seem to use.  Overall the design is pretty impressive for a "homebrew" console.

The Power and Reset buttons have been taken from NOS assemblies from the original front loader NES.  Having separate power and reset buttons is ideal for flash cartridges which can use a long reset press to return to the cartridge menu and a short press to reset the game.  When RetroUSB's supply of NOS buttons runs out I assume it will use the buttons found on the "Limited Launch Edition".  

The AVS's plastic enclosure feels quite decent.  I am not prepared to say that the AVS' plastic matches the quality of Nintendo, Analogue or 8bitdo's plastic, but it does not feel cheap or flimsy.  While the top gray piece is more tan than a front loader's top gray piece, the plastic has a matte finish, which I find preferable to glossy plastic these days.

If there is something that I wish was improved on the AVS it would be the hinge.  It is too plain, there is no logo for the AVS anywhere on the outside of the plastic enclosure.  It should ideally be on the outside and inlaid in red.

The Controller ports are tight on the AVS, original controllers will not be pulled out by the gentlest tug.  The NES cartridge slot is also a tight grip, you may need to wiggle the cartridge out or hold onto the console as you pull.  The Famicom cartridge slot is much more loose, there is not a lot of plastic to keep it in the slot.  The FDS RAM Adapter is an awkward fit and rather tipsy in the AVS.  

The mini-USB port was something that was much more common in 2016 than 2021.  The mini-USB port on mine was a bit looser than expected, and only one of the two mini-USB port cables I could find worked.  I will not be sorry to see mini-USB or micro-USB go away, although given 8bitdo and Analogue are still rather partial to it it might take a while.

Playing games was very straightforward for the most part, the AVS worked with all my cartridges except for my Gimmick! reproduction cart.  That cartridge would work but the status bar area would be totally glitchy, suggesting that one of the signal pins near the audio expansion pins was not making proper contact with the connector pins.  I think the wires that attach to the audio pins may be to blame, but this cartridge works in everything else I have with a Famicom slot.

The AVS, like other FPGA consoles, does not handle bus conflicts very well.  This can be seen with a Cybernoid NES cartridge, which relies on bus conflict behavior to ensure that the graphics are not garbled when music instead of sound effects are selected.  The AVS and the Nt Minis will show garbled graphics unless a Game Genie code (SXZNZV) is used which bypasses the bus conflict.  Fortunately Cybernoid is the only cartridge known to fail on FPGA consoles.

The AVS works very well with the EverDrive N8 Pro.  It works well enough with the original EverDrive, but I did not test that cartridge for an extended period of time.  It should work just fine with the NES PowerPak, which is also a RetroUSB product but it is extremely dated compared to the N8 Pro.

The AVS does not support outputting a true frame rate, which is 60.098MHz.  This makes it unacceptable for many speedrunning communities because the console runs slightly slower than original hardware.  The AVS actually slows down the speed of the game and does not use buffering, so there is no lag associated with its output processing.  

Like many other "homebrew" FPGA devices such as the Phoenix or the GBA Consolizer, the AVS does not read EDID data from the display.  EDID tells the console or other device which refresh rates, pixel clocks, timings and modes its supports, which in turn permits a device to respond accordingly.  It should display fine with most HDMI devices, but there may be a few which do not like the AVS's signals and refuse to work with it.

The AVS Today

The AVS has the benefit of being regularly available for purchase for a four year period.  Its closest competitors, the Analogue Nt Mini and Nt Mini Noir were sold only during specific times in 2016-2017 and 2020-2021.  The Analogue consoles were much more expensive than the AVS but also offer significantly more features than the AVS, including built-in ROM support, microphone, 1080p/5x, custom palettes, cores for simulating other systems and analog output.  Of course, by the time you add a good flash cart to the price of an AVS you are pushing in to Nt Mini territory.  

The MiSTer NES Core is extraordinarily accurate these days and supports most of the mappers you would want to use on the AVS.  It can support 1080p, 1200p and 1440p resolutions, save states, FDS and original NES controllers through SNAC and BLiSSTer, 240p analog output, expansion audio, cheat codes, four player support, extra sprites, custom palettes and light guns.  However, MiSTer does not and cannot support a cartridge slot, so the undumped homebrew and unemulated obscurity must be handled by an FPGA console.  

The limit of 720p (and no 480p) of the AVS may the limitation most likely to date it compared to other hardware methods of playing the NES and Famicom.  720p is often not scaled very well on modern 4K TVs, the output may look soft and the scaling may add lag.  There are virtually no displays sold that are a true 1280x720 pixels.  1080p and 1440p have the benefit of being less aggressively scaled to 4K.  You may find a NESRGB-modded original console to be a more flexible choice when it comes to high definition TVs when paired with a powerful scaler like the new RetroTINK 5x or an OSSC.

Ultimately, if you find the features described in this blog article of sufficient value, then the AVS may be right for you.  It will give you the epitome of the NES and Famicom experience.  If you are new to FPGA consoles then it is a good "first step into a larger world".  However, it has its limits and those limits, such as the lack of light gun support, will prevent you from a truly complete NES and Famicom experience.  

1 comment:

  1. I love mine. I run it through a Dell 4:3 LCD using an hdmi to vga converter. Looks really good and there is no noticeable lag.

    ReplyDelete