
NES Classic Mini boot image dump method via UART and USB - johansch
https://www.ns-koubou.com/blog/2016/11/11/nes_classic/
======
metaphor
Hardware is definitely SNES throwback ready.

Based on data from [1], the 30 included NES ROMs amount to < 5.3 MiB total.
Increase that by roughly an order of magnitude to account for complexity, and
it shouldn't take much to tuck 30 SNES ROMs + emulator + OS into that NAND.

[1]
[http://tuxnes.sourceforge.net/nesmapper.txt](http://tuxnes.sourceforge.net/nesmapper.txt)

~~~
derefr
I don't think they'll do this. Not because it's technically infeasible, but
because of their alternatives.

The Classic NES makes sense as a _business strategy_ , because NES Virtual
Console games don't really sell well: people don't think _individual_ NES
games on the Virtual Console are worth the money Nintendo wants to charge for
them (~$5). So the Classic NES—a fancy, "value-added" shovel-ware package—is
the best way Nintendo have to make money from that old IP. If people aren't
willing to buy the _games themselves_ , they'll still pay for a cheap bit of
hardware with those same games _on_ it. (Consumer psychology is weird
sometimes.)

A "Classic SNES" doesn't make as much sense: SNES titles on the Virtual
Console _do_ sell, often for much higher prices. There's no _business_ reason
to turn them into a shovelware package.

~~~
johansch
How do you know that SNES titles sell well on VC? I can't imagine Nintendo are
publishing sales data on these things?

~~~
derefr
On the Wii U eShop, at least (don't know about the Wii or 3DS shops), you can
sort titles by "most downloaded." Many SNES (and GBA) games rank highly—often
as highly as Nintendo's new releases. Virtually none of the NES titles do,
even when discounted.

------
david-given
English translation via Google Translate:

[https://translate.google.com/translate?sl=ja&tl=en&js=y&prev...](https://translate.google.com/translate?sl=ja&tl=en&js=y&prev=_t&hl=en&ie=UTF-8&u=https%3A%2F%2Fwww.ns-
koubou.com%2Fblog%2F2016%2F11%2F11%2Fnes_classic%2F&edit-text=)

It seems that while the u-boot is missing most commands, you can connect
sunxi-tools to it by hooking up the USB while holding the reset button down,
and then use AllWinner's debug protocol to poke it.

I wonder --- if the SoC has no customisations, could run the ROM on another
similar device?

~~~
pault
I wonder if it will ever be possible to machine translate Japanese into
legible English. Some of these translations are so strange they're humorous:

> (Hereinafter, abbreviated as Famicom Mini guy of GBA attention because it is
> not)

> By those who exploded before launch was in and out

~~~
userbinator
Google is mostly relying on machine learning and can translate between _many_
languages due to it, but better results can be obtained using one of the
translators developed by the Japanese themselves which attempt to do actual
parsing.

There are also various other apps (largely developed by the anime/visual novel
community) that might work better at extracting meaning, although that's more
in the direction of quick dictionary lookups.

------
jimmies
The fact that the NES Classic Mini runs Android means that sooner or later
someone on XDA will port the emulator to everything that runs Android.

Not that there wasn't any emulator on Android before, but having one more good
choice doesn't hurt.

~~~
rubyfan
That is _if_ anyone can get there hands on one.

~~~
johansch
I did a non-committing pre-order at a local retailer (Webhallen, Sweden - I
love this feature of theirs, I think it is quite unique) the day it was
announced because.. why not. They didn't have an idea what the price would be
but later adjusted it down to the eventual local MSRP level.

Picked it up yesterday figuring that I could likely sell it (with a profit) in
case I didn't end up enjoying it. But I think I'll hang on to it - or maybe
turn it into a christmas gift for someone. It's a really neat little thing.
The software has obviously been crafted with a loving attention to detail.

And the games themselves have more depth that I thought - having only
experienced them briefly in various desktop OS emulators before, with lots of
annoying small issues (like not having an ideal controller, sound issues, no
easy/natural way to play them on the TV with nearly instant bootup time, etc).

Also, those ROMs I've heard (ahem) are floating around on the net tend not to
come with these fantastic user manuals:

[https://www.nintendo.co.jp/clv/manuals/en/index.html](https://www.nintendo.co.jp/clv/manuals/en/index.html)

(I just wish they would have included them in some neat Nintendo-ish way in
the main menu UX.)

------
joshbaptiste
I really wish Nintendo or Sega would come out with an official retro WiFi
appliance that allows one to buy classic games from an "App Store" and play
multiplayer player games over the network. They have the extensive catalog of
retro games to make money (NES/SNES/N64 or Master system/Genesis) and it
wouldn't take that much hardware to do it.

~~~
zokier
Isn't that what Wii with Virtual Console is?

~~~
joshbaptiste
Yea but it involves finding and purchasing a (most likely) used Wii. I'm a
casual gamer and never heard of virtual console. A dedicated retro console
would fare better and be cheaper IMO, just like this one (without any such
features) which sold out in seconds on Amazon.

~~~
coredog64
To add to that, you've got to buy a sketchy 3rd party HDMI adapter to plug
your used Wii into a modern TV.

~~~
comex
The Wii U and 3DS both support Virtual Console for a variety of old Nintendo
consoles (more for the Wii U), and the Switch presumably will too. Though,
Nintendo being Nintendo, transferring purchases between consoles is rarely
possible.

~~~
joshbaptiste
As a casual gamer who likes playing the games of my childhood. I'd prefer a
dedicated retro rig that (due to minimal requirements) could be the same form
factor as an Amazon FireTv stick without dealing with the "hacky" nature of
the emu scene or purchasing a full blown console.

------
johansch
My favorite modification to its software would be some controller button
combination shortcut to the reset button. Having to reach to the actual device
to switch games is so annoying.

Surely Nintendo could have come up with a combination that was not used in any
of the included 30 games? For a company that was so focused on user experience
early on, they really dropped the ball with that button design, btw. Start,
Select _and_ a primary action button ("A")? Anyway, that mishap meant there
was room for a rescue now in 2016, to use some unused combination of those
peculiar buttons to do the reset. But alas, no.

Other nice things to have that would hopefully be doable:

\- putting the game manuals on the actual device for viewing on the TV

\- the audio is a bit harsh; it sounds like it needs some filtering, maybe
just some dead simple high-pass (edit: err, low-pass) filter would do it

~~~
metaphor
> \- the audio is a bit harsh; it sounds like it needs some filtering, maybe
> just some dead simple high-pass filter would do it

Could you clarify what was meant by harsh?

The HDMI PHY[1] differentially encodes either I2S or S/PDIF (from SoC). This
is a lossless digital-to-digital translation, which suggests that audio being
_a bit harsh_ is either a consequence of precise emulation of the NES APU[2]
or something wonky with the speakers you're using.

I made the assumption that by _harsh_ you meant dissonant sounds of a
relatively high audio frequency, which would make sense given how the 2A03 APU
synthesizes audio, but wouldn't make sense if you're suggesting that a _dead
simple high-pass filter_ would resolve the issue.

[1]
[http://www.epmi.com.tw/sayapro03.php?id=78](http://www.epmi.com.tw/sayapro03.php?id=78)

[2]
[https://en.wikipedia.org/wiki/Ricoh_2A03](https://en.wikipedia.org/wiki/Ricoh_2A03)

~~~
johansch
I bailed out halfway into my CS/EE university program (to start working in
software instead) a very long time ago in part so I wouldn't have to finish
the signal theory/processing course, so please bear with me.

"I made the assumption that by harsh you meant dissonant sounds of a
relatively high audio frequency"

Yes, that's what I'm hearing. Here is a comparison video where you can listen
to the difference between the original NES (via an ADC, presumably) and the
NES Classic Mini:

[https://www.youtube.com/watch?v=Z9EyI3mVhi4](https://www.youtube.com/watch?v=Z9EyI3mVhi4)

Anyway, to me it sounds that by just filtering away some high frequencies you
would get a better approximation of the original.

Edit: Oh wait, I see what I did; I mixed up high-pass filter with low-pass
filter (again). Doh. I do maintain that whoever named them made a mistake.

~~~
metaphor
Ahh, makes sense now. The emulator sounds like it does an outstanding job of
functionally reproducing the APU, but clearly doesn't capture the analog LPF
contributions of the original architecture[1] (2nd and 4th pages apply).

An improvement to the NES Classic will necessarily have to come in software as
a DSP LPF either within the emulator application or at the OS level (someone
mentioned seeing alsa during boot??). Nevertheless, a passive analog hack is
definitely not going to be applicable.

[1]
[http://www.freeinfosociety.com/electronics/schemview.php?id=...](http://www.freeinfosociety.com/electronics/schemview.php?id=2405)

~~~
johansch
Oh come on, do tell us what NES emulator you made? :)

~~~
metaphor
What makes you think that I've developed my own emulator?

Not that the assumption was incorrect...

~~~
johansch
The incredibly intricate understanding of the NES sound?

------
Matt3o12_
I wonder if the boot image contains any GPLv3 software. Could this this allow
us to make Nintendo release the OS in a way that allows us to upload custom
ROMs (I've heard that there is a home brew community) as well as custom roms
(so that we are not limited to 30 games).

~~~
johansch
It does. They published this:

[http://data.nintendo.co.jp/oss/NintendoEntertainmentSystemNE...](http://data.nintendo.co.jp/oss/NintendoEntertainmentSystemNESClassicEdition_OSS.zip)

Containing:

[http://pastebin.com/9SzB2ZFp](http://pastebin.com/9SzB2ZFp)

~~~
dezgeg
Which one of those is GPLv3 and not GPLv2?

------
johansch
For anyone wishing to follow this topic over time the subreddit format works
great:

[https://www.reddit.com/r/nesclassicmods/](https://www.reddit.com/r/nesclassicmods/)

------
revelation
The u-boot here doesn't seem to match what Nintendo released as OSS:

r16-uboot-fc3061df4dbd4153819b2d2f141d82b88fea51cf.tar.gz

Notice the commit hash.

