Nintendo has revived the classic Game & Watch, this time in glorious full-color and running the same Super Mario Bros that first graced the Nintendo Entertainment System (NES) back in 1985. Even though it’s only been on the market for a few days, [stacksmashing] has already made some impressive progress towards unlocking the full potential of this $50 retro handheld.
It will come as no surprise to the average Hackaday reader that what we’re looking at here is a pocket-sized NES emulator, but until [stacksmashing] cracked his open, nobody was quite sure what kind of hardware is was running on. Thankfully there wasn’t an epoxy blob in sight, and all of the chips were easily identifiable. Armed with the knowledge that the Game & Watch is running on a STM32H7B0 microcontroller with a nearby SPI flash chip holding the firmware, it was just a matter of figuring out how the software worked.
It didn’t take long to find that an unpopulated header on the board would give him access to the Serial Wire Debug (SWD) interface of the STM32, though unfortunately he found that the chip’s security mode was enabled and he couldn’t dump the firmware.
But he was able to dump the RAM through SWD, which allowed him to identify where the Super Mario Bros NES ROM lived. By connecting the SPI flash chip to a reader and comparing its contents with what the system had in RAM, [stacksmashing] was able to figure out the XOR encryption scheme and come up with a tool that will allow you to insert a modified ROM into an image that can be successfully flashed to the chip.
So does that mean you can put whatever NES ROM you want on the new Game & Watch? Unfortunately, we’re not quite there yet. The emulator running on the device has a few odd quirks, and it will take some additional coaxing before its ready to run Contra. But we’ve seen enough of these devices get hacked to know that it’s just a matter of time.
[Thanks to NeoTechni for the tip.]
There’s already an update on this :)
https://twitter.com/ghidraninja/status/1328404559388155904
And they just got custom firmware working having established the pinouts if the variuos hardware:
https://twitter.com/ghidraninja/status/1329191402731868163?s=19
That’s pretty cool, but it’s a little expensive given what it is. I suppose the aesthetics are worth something. I just bought 2 working PSP 1000 models for $10 each from the junk bin, and that hardware is quite a bit more impressive. I suppose they’re considered junk because they’re the oldest models (slightly lower specs and missing later added features like video out). I fully expected to have to part them out for spares, and was quite pleasantly surprised when I powered them up and they just worked.
I wouldn’t exactly consider a ~300 MHz processor and 32 MB of RAM very impressive in 2020, but I suppose compared to a STM32 it’s an improvement. Of course I’d bet this is going to run a whole lot longer on a charge than the PSP ever did.
The psp battery has 4 times the capacity of this thing, the umd drive sucked a lot of juice, but I kind of doubt this device lasts any longer. That said there are a lot of handheld NES emulators preloaded with hundreds of games for less $ than this thing, some even allow you to swap games no hacking involved.
Good points all around. Certainly the PSP is not amazing by 2020 standards. It’s about 15 years old. Cost performance ratio today is higher on the PSP for exactly this reason.
The battery life is definitely lower with the UMD drive in use. However, if you install a custom firmware, you don’t need the UMD drive. Games will load faster from the memory card and the battery lasts a LOT longer. Additionally, the batteries on a PSP are extremely easy to swap out. If you’re going on a long trip, take extra batteries. No screwdriver needed. Of course having a bigger screen will eat more battery life, but also you have a bigger and wide-format screen.
The PSP also has pretty much every emulator up to PSX (if I remember correctly) ported to it. Assuming full control of the Game and Watch, that may come along at some time, but for now it will only run NES games.
The PSP also has some interesting accessories made for it: USB camera, GPS, SD digital TV tuner (1seg), etc. You could probably hack together anything else you wanted since the USB port has the data lines connected, unlike the Game and Watch out of the box, though the twitter thread seems to suggest a possible workaround if you are willing to solder.
I’m no Sony fanboy, but I did enjoy my PSP back in the day, and for $10, that’s a hard to beat device. I’ve come a long way since I was last hacking on PSPs. If I get up to anything good, I’ll fill you all in.
Oh, I just checked. Assuming full blast on Game and Watch, battery life is claimed to be 8 hours.
A PSP running a game from UMD is between 3-6 hours by Sony’s reckoning. In my experience, not using the UMD increases that to 6-8 hours when not running full blast.
(full blast meaning full video brightness, and full volume audio)
There’s also a common mod for removing the UMD drive and adding in another battery for extended life.
The Cortex-M7 in this thing is nothing to sneeze at. It has a six stage pipeline and branch prediction. And this particular model has a floating point unit supporting double precision! This ain’t no low-power Cortex-M0+. Still just a fraction of the memory of the PSP though and without the extra vector FPU, video codec, and programmable DSP.
That’s a fair point. The M7 much more modern, and in my case, more over my head. I’m no pro. I’m self taught and don’t know much more than C like languages. However the development environment for the Cortex is undoubtedly much easier to use than a hacked together open source toolchain the PSP might typically use.
There are surely better use cases for each. My main criticism is the $50 price point just to get my hands on yet another emulator. As mentioned by Chris up above, there are other emulator systems that run NES games for far less than this one, and they allow adding roms. I have one that cost a bit more than the Game and Watch, and it has two micro SD slots. I’ve also made some simple programs for it, since it just runs a flavor of linux. It’s more of an SOC than a microcontroller/processor though.
Where was this “junk bin” located? I’d like to find them again.
I believe I got them at “Super Potato” on Ota Road in DenDenTown in Osaka. There was one for $15 that I passed on. It might still be there. People don’t usually buy the “junk” items in Japan.
Oh yeah, there were also lots of old Tamagotchi and cartridge games in the junk bin too. Sofmap and Bookoff sometimes have junk bins, but they usually have used stuff either way.
That’s good to know. Bookoff is available here. (That’s how I got my streamer and smart speaker.)
one man’s junk bin is other man’s treasure trove
“Junk bins” like that just don’t exist in the UK. The main way of recycling second hand items here is by “charity shop” which is a shop run by a charity which will receive donations from people and sell them at a profit. I think they’ve had liability issues with selling old electronics, so mostly they don’t.
The last time I was in the UK (maybe 10 years ago?) there was Cash Generator stores that have a junk boxes full of toys, cheap chinese electronic, digital cameras and consoles. Bought few PSones for ~1 GPB/pc.
Due to the device missing Start and Select, I reckon a bit of LUA action is happening to remap button A to Start when you begin a game.
There was a mention that the ROM gets patched after loading it (not sure why they not patch it before they put it on the device)
Honestly, $50 ain’t bad for an STM32H7 with external Flash, a TFT, some buttons, and a nice case.
If you can disable the readout protection by mass-erasing, this looks like a nice little dev board.
Looks like general purpose Linux handhelds with 16GB storage start at 40$ or so. So I probably wouldn’t get this specifically on a bang-for-buck basis.
Sure, but application processors running an OS eat a lot more power than microcontrollers running a game.
This is more like a gameboy advance dev kit.
Which GP Linux handheld are you referring to here?
The buttons are working :)
https://youtu.be/YkcbVfwQMbY
but this one, being a “high end” STM32 has all the good stuff:
2× quadrature capable (advanced) timers (you can put two raw Hall sensors directly on each, the STM32 has the smith triggers and all inside!) on the same clock source as the CPU
2× SDIO interfaces
a ton of SPI, UART, I2C and all
5 channels DMA
powerfull NVIC (interrupt controller) (with many channels, many external sources (including ADC values, analog compare, …) , priorities, FIFO, … )
you generally also have specialized timer outputs for high power MOSFETS that generates the optimal waveform to drive them, to use in big H-bridges, … and all those little things that makes hardware projects work easily and cheaply
and more importantly, a few choices of IDE, including STM32CubeIDE based on eclipse where you can configure some HAL with a nice GUI, setup a FAT FS with DMA transfert from and to the SD card in a few clicks, … Instead of having to try to fish out a device tree somewhere to even get the thing to boot.
And contrary to a cortex A, this one should be very power efficient, especially if you care and take the time to turn off what you don’t need, use low power modes, …
And we’re not even talking about the real time capabilities of bare-metal vs Linux (RT or not).
Basically, more power is often not what you need, but the right specialized peripheral often is. STM32s are well known to have a lot of those whilst staying cheap and somewhat easy to configure.
The backlight leds are also working :)
https://youtu.be/hLjEJG_eMLE
Etch A Sketch :)
https://youtu.be/0h1IiEQwICI