Home > Allwinner H-Series, Hardware, Linux > Nintendo NES Classic is Powered by Allwinner R16 SoC, Likely Hackable

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

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.

  1. tkaiser
    November 8th, 2016 at 14:52 | #1

    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.

  2. November 8th, 2016 at 15:01 | #2

    @tkaiser
    Ooops… Removed the reference to CHIP Pro. A search must have showed that post, and I did not check it enough…

  3. tkaiser
    November 8th, 2016 at 15:04 | #3

    @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?

  4. Ahrlad
    November 8th, 2016 at 15:47 | #4

    @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.

  5. tkaiser
    November 8th, 2016 at 15:53 | #5

    @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)

  6. November 8th, 2016 at 16:17 | #6

    @tkaiser
    Yes, it’s NAND flash: http://www.cypress.com/part/s34ml04g200tfi000.
    I could not remember Spansion had been bought out by Cypress either.

    @tkaiser
    I was convinced it was on Allwinner-zh account before, but maybe not.

  7. tkaiser
    November 8th, 2016 at 16:33 | #7

    @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.

  8. Roel
    November 8th, 2016 at 16:58 | #8

    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.

  9. Harley
    November 8th, 2016 at 17:02 | #9

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

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

  10. November 8th, 2016 at 17:08 | #10

    @Harley
    Yes 4Gbit.

  11. Ahrlad
    November 8th, 2016 at 17:13 | #11

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

  12. Ahrlad
    November 8th, 2016 at 17:17 | #12

    @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 πŸ˜›

  13. tkaiser
    November 8th, 2016 at 17:19 | #13

    @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?

  14. Theguyuk
    November 8th, 2016 at 17:30 | #14

    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. “

  15. Roel
    November 8th, 2016 at 21:34 | #15

    @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.

  16. Terrly
    November 8th, 2016 at 22:09 | #16

    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.

  17. XNC
    November 9th, 2016 at 01:28 | #17

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

  18. Armer
    November 9th, 2016 at 15:26 | #18

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

  19. naobsd
    November 10th, 2016 at 12:14 | #19

    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.

  20. codekipper
    November 10th, 2016 at 15:28 | #20

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

  21. November 10th, 2016 at 20:06 | #21

    @naobsd
    Nice.

    If people work on this, more info may eventually get to http://linux-sunxi.org/Nintendo_NES_Classic_Edition

  22. naobsd
    November 11th, 2016 at 08:03 | #22

    @cnxsoft
    Updated

  23. November 11th, 2016 at 10:31 | #23

    @naobsd
    Thanks!

  24. November 15th, 2016 at 11:22 | #24
  25. tkaiser
    November 15th, 2016 at 14:56 | #25

    @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 MHz@1460 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 πŸ˜‰

  26. tkaiser
    November 15th, 2016 at 15:09 | #26

    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.

  27. Morgan
    November 15th, 2016 at 16:46 | #27

    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

  28. MarkW
    November 20th, 2016 at 06:14 | #28

    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.

  29. January 8th, 2017 at 15:22 | #29

    Somebody managed to load some extra games to the console -> https://www.youtube.com/watch?v=Q2c5JLHl56g

  30. tkaiser
    January 10th, 2017 at 21:36 | #30

    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/

  31. Waluis
    February 3rd, 2017 at 06:23 | #31

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

  32. theguyuk
    February 3rd, 2017 at 16:04 | #32
  33. Waluis
    February 9th, 2017 at 00:44 | #33

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

  34. theguyuk
    February 9th, 2017 at 05:21 | #34

    @Waluis
    Looks like you need to ask suppliers

  1. No trackbacks yet.