Nintendo NES Classic is Powered by Allwinner R16 SoC, Likely Hackable

Orange Pi Development Boards

Nintendo NES Classic Edition is a small replica of Nintendo NES, both adapted to modern times with an HDMI output, and keeping with nostalgia thanks to connectors for original game controllers, and pre-loaded with 30 classic games.

Nintendo_NES_Classic

If you planned to add your own games however, the lack of USB ports, micro SD card slot, or any other storage or network interface could make it impossible. But based on a recent photo tweeted by Peter Brown, senior review editor at GameSpot, there may be light out of the tunnel, as while the main storage device (4Gbit NAND flash) is soldered to the board, the main board is powered by Allwinner R16 quad core Cortex A7 processor with a Mali-400MP2, and it’s quite likely UART / serial console and/or FEL interfaces are exposed on the board, making it possible to hack the device and potentially load your own games.

Click to Enlarge
Click to Enlarge

The other side of the board would really help finding out whether the UART pins are indeed available where I marked them [Update: Correct. NES Classic Hacked, see comments section]. If so, it would still be quite inconvenient to hack the board, as you’d need to connect a USB to serial debug board (normally a couple of dollars) in order to access the terminal, and either copy/paste code, or transfer data to the board. If some of the other connectors are carrying USB signal, it might also be possible to do some hardware hacking to add USB ports.

Software-wise, some references for Allwinner R16 Parrot board can be found in mainline Linux. Allwinner also released Linux based Tina OS for the processor on Github a few weeks ago.

Thanks to Zoobab for the tip.

34
Leave a Reply

avatar
34 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
14 Comment authors
WaluisMarkWMorgancodekippernaobsd Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
tkaiser
Guest
tkaiser

CHIP Pro relies on GR8 (A13 based just like R8 but with minor modifications regarding audio capabilities, this is single Cortex-A8). The R16 seems to be more or less an A33 (quad Cortex-A7) instead.

tkaiser
Guest
tkaiser

@cnxsoft
Is that really eMMC? Seems just a boring 4Gb (512MB) raw NAND? Most likely there’s USB OTG exposed at the other side of the PCB and somehow one can enter FEL mode but why starting to hack such insanely boring hardware?

Ahrlad
Guest
Ahrlad

@tkaiser
Well, it’s stylish and will sell millions, while having some very glaring hardware features lacking. People will want to add bluetooth gamepad support, expand the game library, add emulators for other systems… a lot of stuff really.

The hardware is pretty dull, though.

tkaiser
Guest
tkaiser

@cnxsoft
BTW: http://github.com/tinalinux is still there but the only interesting stuff therein is just a new kernel 3.4 drop with some enhancements but more importantly nearly all of the stuff properly licensed (with some exceptions, see issue 1 there)

tkaiser
Guest
tkaiser

@Ahrlad
Well, there are A33 based tablets with BT and way more NAND for less than 40 bucks available. If I would start to hack around these would be my target devices instead ๐Ÿ˜‰

@cnxsoft
Nope, was below tinalinux. I would believe these are different Allwinner business units not knowing/caring about what the others do ๐Ÿ™ But fortunately that’s not that important as long as we get properly licensed code/blobs to let linux-sunxi devs continue to work.

Roel
Guest
Roel

Are the controllers not usb with another connector, just as with the original xbox?

Cheaper solution is lakka.tv, buy a supported dev board (within the near future support for orangepi pc or probably all the H3 boards) en shop with raphnet for all your original controller to usb converters.
If the opi one will be supported it can’t be cheaper!
Maybe if you think it’s worth the money, buy a retrode to connect your old SNES and SMS cartridges to your lakka box.

Harley
Guest
Harley

* 4Gb NAND flash (not “GB”?) = 512 MB usable storage only.

Lower “b” verses upper-case “B” makes a huge difference.

Ahrlad
Guest
Ahrlad

@Roel
Nah, it’s the same interface as the wii classic controller, no relation to USB.

Ahrlad
Guest
Ahrlad

@tkaiser
Yeah I’m not arguing with that, though I likely wouldn’t choose a tablet to hack ๐Ÿ˜‰

I’m just saying lots (and lots) of people will buy these things, have some fun playing the games with their friends, and then try to look for solutions for the hardware limits. Me, I’ve ordered a few extension cords from China, I foresee a pretty big demand for them seeing how the controller cable is like 60 cm or thereabouts ๐Ÿ˜›

tkaiser
Guest
tkaiser

@Roel
Isn’t http://orange314.com/RetrOrangePi comparable to lakka.tv? And isn’t the whole point about Nintendo hardware here that you get the old ROMs in a legal way?

Theguyuk
Guest
Theguyuk

Odd they haven’t gone with a game expansion method, very much a sell and walk away, yet with such a back catalogue of games odd business choice?

Oh the fun on Christmas day

” Please note: an AC adapter for the USB cable is required to play the system but is not included in the packaging. “

Roel
Guest
Roel

@tkaiser
Didn’t You just propose to hack a A33 tablet ๐Ÿ˜‰

Of course you should use your own roms, therefore I suggest to get yourself a retrode and some controller adapters. Ok, altogether it’s a lot more expensive, but it’s also more “multipurpose”.
Didn’t know about Retrorangepi, thanks for the link.

Terrly
Guest
Terrly

These are definitly not UARTย pins (too far from the SOC), but I’m sure you can get RX/TX with the solder pads located at the upper right of the R16.

XNC
Guest
XNC

Free Electrons “added (the) support for the Allwinner R16”

Armer
Guest
Armer

Allwinner R16 doesn’t seem to have an HDMI output. Any idea?

naobsd
Guest
naobsd

there is UART, at least TX pin (2nd pad from left in red circle mark).
here is output: http://pastebin.com/H7z8TgK4

FEL can be used by press & hold RESET then POWER on.

codekipper
Guest
codekipper

@Armer
It has a EP952 next to the HDMI connection which converts video + i2s audio to HDMI.

naobsd
Guest
naobsd

@cnxsoft
Updated

tkaiser
Guest
tkaiser

@cnxsoft
Device settings are also known.

What a weird device, someone chose a processor that lacks HDMI video/audio, then adds an EP952 HDMI converter to drive it as 1280×720 LCD and to convert I2S to HDMI Audio. Possible but why? Then the SoC used comes with a power management unit but features no battery. Why? Could be used to implement pretty fine-grained dvfs/throttling settings. But by looking at ths_para, cooler_table and dvfs_table it’s obvious that CPU cores clock at up to 1344 [email protected] mV, as soon as 75ยฐC are exceeded then it’s 1200 MHz @ 1320 mV and when 90ยฐC are reached/exceeded it’s already 648MHz @ 1040mV.

Well, every cheap H3/H2+ could do better and comes already with HDMI support. Hopefully the development story of this device gets leaked sometimes in the future. Also curious why Nintento’s sources differ so much from freely available tinalinux SDK that has been released at roughly the same time. Most probably subcontractor madness as usual ๐Ÿ˜‰

tkaiser
Guest
tkaiser

Speaking of tinalinux SDK: Most files there had already proper licenses when released back in August, linux-sunxi community asked what’s up with the few remaining. Allwinner said they want to address this issue and it seems they start to deliver, see Mali400 README.md in fbdev_arm-openwrt-linux_armv7_dma-buf directory.

Morgan
Guest
Morgan

To save everyone the trouble of downloading 248MB, here are the contents of the above mentioned Nintendo Classic OSS release:


LVM2.2.02.132.tgz
alsa-lib-1.0.29.tar.bz2
busybox-1.24.1.tar.bz2
clovercon-km-6b883396add00817aa112e0ec4dbc112def803e8.zip
cryptsetup-1.6.8.tar.xz
eudev-3.1.2.tar.gz
ext-luajit-83dda3b07286174de43ee5adb25e7cc5fbe308e3.tar.gz
ext-sdl2-23fb2205dd1044dc0ab0858aaa59af9aebb20d1b.zip
ext-sdl2_mixer-2f88185f477e203619a82d530a31cf72fb076a68.zip
ext-soloud-fed891f0123d9ca70df1e5a3927018216c964f7b.tar.gz
glibc-2.22.tar.xz
kmod-20.tar.xz
libpng-1.6.20.tar.xz
linux-3.4.110.tar.xz
linux-9ed0e6c8612113834e9af9d16a3e90b573c488ca.tar.gz
lzo-2.09.tar.gz
popt-1.16.tar.gz
r16-uboot-fc3061df4dbd4153819b2d2f141d82b88fea51cf.tar.gz
util-linux-2.27.1.tar.xz
zlib-1.2.8.tar.xz

MarkW
Guest
MarkW

Maybe the reason for the external EP952 HDMI converter is because Allwinner lacks the proper HDMI pixel clock dividers to reproduce the required Nintendo display timings. I know that their older A10 through A31 could not do 1080p 23.976 or 59.940 HDMI timings for example. Bad display timings would cause dropped or repeated frames which would be very noticeable with most Nintendo games that scroll the screen at fixed NTSC 59.940Hz.

I’m not sure if even the latest Allwinner SoC have proper HDMI support.

tkaiser
Guest
tkaiser

Curious whether people start to evaluate an add-on board with the EP952 attached to the DSI connector of this R16 IoT thingie: https://forum.armbian.com/index.php/topic/3251-bpi-r16/

Waluis
Guest
Waluis

@tkaiser
Do you have more infos of the ep952?
Can’t find any more infos in web.
Also in your link is no ep952.

theguyuk
Guest
theguyuk
Waluis
Guest
Waluis

@theguyuk
I am looking for some more specs.
First of all a pinout

theguyuk
Guest
theguyuk

@Waluis
Looks like you need to ask suppliers