Exploring Homebrew For The Pokémon Mini

Originally only sold at the Pokémon Center New York in late 2001 for (inflation adjusted) $80, the Pokémon Mini would go on to see a release in Japan and Europe, but never had more than ten games produced for it. Rather than Game Boy-like titles, these were distinct mini games that came on similarly diminutive cartridges. These days it’s barely remembered, but it can readily be used for homebrew titles, as [Inkbox] demonstrates in a recent video.

Inside the device is an Epson-manufactured 16-bit S1C88 processor that runs at 4 MHz and handles basically everything, including video output to the monochrome 96×64 pixel display. System RAM is 4 kB of SRAM, which is enough for the basic games that it was designed for.

The little handheld system offered up some capabilities that even the full-sized Game Boy couldn’t match, such as a basic motion sensor in the form of a reed relay. There’s also 2 MB of ROM space directly addressable without banking.

Programming the device is quite straightforward, not only because of the very accessible ISA, but also the readily available documentation and toolchain. This enables development in C, but in the video assembly is used for the added challenge.

Making the screen tiles can be done in an online editor that [Inkbox] also made, and the game tested in an emulator prior to creating a custom cartridge that uses an RP2040-based board to play the game on real hardware. Although a fairly obscure gaming handheld, it seems like a delightful little system to tinker with and make more games for.

Continue reading “Exploring Homebrew For The Pokémon Mini”

Building A Self-Playing Chess Board Robot

As popular as the game of chess is, it has one massive flaw. This being that it requires two participants, which can be a challenge. Although playing chess on a computer against an AI has been a thing for many decades, it’s hard to beat physical chess boards that give you all the tactile pleasure of handling and moving pieces, yet merging the two is tricky. You can either tell the player to also move the opponent’s pieces, or use a mechanism to do so yourself, which [Joshua Stanley] recently demonstrated in a video.

There are a few ways that you can go about having the computer move and detect the pieces. Here [Joshua] chose to use Hall magnetic sensors to detect the magnets that are embedded in the 3D printed chess pieces as well as their absence. These sensors are mounted to the back side of a PCB which is also the playing field, thus using the silkscreen for the board markings.

For the electromagnet that moves the chess pieces core x/y kinematics were used to move it underneath the PCB, engaging when moving pieces but otherwise deactivated. This is all controlled by an ESP32 MCU, while the computer runs the open-source Stockfish chess engine. As the human player changes piece positions this is detected by the magnet’s presence, with the change input into Stockfish.

Continue reading “Building A Self-Playing Chess Board Robot”

Gaming On An Arduino Uno Q In Linux

After Qualcomm’s purchase of Arduino it has left many wondering what market its new Uno Q board is trying to target. Taking the ongoing RAM-pocalypse as inspiration, [Bringus Studios] made a tongue-in-cheek video about using one of these SoC/MCU hybrid Arduino boards for running Linux and gaming on it. Naturally, with the lack of ARM-native Steam games, this meant using the FEX x86-to-ARM translator in addition to Steam’s Proton translation layer where no native Linux game exists, making for an excellent stress test of the SoC side of this board.

Technically, this is a heatsink. (Credit: Bringus Studios, YouTube)
Technically, this is a heatsink. (Credit: Bringus Studios, YouTube)

We covered this new ‘Arduino’ board previously, which features both a quad-core Cortex-A53 SoC and a Cortex-M33 MCU. Since it uses the Uno form factor, all SoC I/O goes via the single USB-C connector, meaning that a USB-C docking station is pretty much required to use the SoC, though there’s at least 16 GB of eMMC to install the OS on. A Debian-based OS image even comes preinstalled, which is convenient.

With a mere 2 GB of LPDDR4 it’s not the ideal board to run desktop Linux on, but if you’re persistent and patient enough it will work, and you can even play 3D video games as though it’s Qualcomm’s take on Raspberry Pi SBCs. After some intense gaming the SoC package gets really quite toasty, so adding a heatsink is probably needed if you want to peg its cores and GPU to 100% for extended periods of time.

As for dodging the RAM-pocalypse with one of these $44 boards, it’s about the same price as the 1 GB Raspberry Pi 5, but the 2 GB RPi 5 – even with the recent second price bump – is probably a better deal for this purpose. Especially since you can skip the whole docking station, but losing the eMMC is a rawer deal, and the dedicated MCU could be arguably nice for more dedicated purposes. Still, desktop performance is a hard ‘meh’ on the Uno Q, even if you’re very generous.

Despite FEX being a pain to set up, it seems to work well, which is promising for Valve’s upcoming Steam Frame VR glasses, which are incidentally Qualcomm Snapdragon-based.

Continue reading “Gaming On An Arduino Uno Q In Linux”

Why PlayStation Graphics Wobble, Flicker And Twitch

Although often tossed together into a singular ‘retro game’ aesthetic, the first game consoles that focused on 3D graphics like the Nintendo 64 and Sony PlayStation featured very distinct visuals that make these different systems easy to distinguish. Yet whereas the N64 mostly suffered from a small texture buffer, the PS’s weak graphics hardware necessitated compromises that led to the highly defining jittery and wobbly PlayStation graphics.

These weaknesses of the PlayStation and their results are explored by [LorD of Nerds] in a recent video. Make sure to toggle on subtitles if you do not speak German.

It could be argued that the PlayStation didn’t have a 3D graphics chip at all, just a video chip that could blit primitives and sprites to the framebuffer. This forced PS developers to draw 3D graphics without such niceties like a Z-buffer, putting a lot of extra work on the CPU.

Continue reading “Why PlayStation Graphics Wobble, Flicker And Twitch”

Driving Sim Handbrake Based On Load Cell

Simulator-style video games are designed to scale in complexity, allowing players to engage at anything from a casual level to highly detailed, realistic simulation. Microsoft Flight Simulator, for example, can be played with a keyboard and mouse, a controller, or a huge, expensive simulator designed to replicate a specific airplane in every detail. Driving simulators are similar, and [CNCDan] has been hard at work on his DIY immersive driving sim rig, with this hand brake as his latest addition.

For this build, [CNCDan] is going with a lever-style handbrake which is common in motorsports like drifting and rallying. He has already built a set of custom pedals, so this design borrows heavily from them. That means that the sensor is a load cell, which takes input force from a lever connected to it with a spring mechanism. The signal is sent to an Arduino for processing, which is set up to send data over USB like any joystick or controller. In this case, he’s using an Arduino that was already handling inputs from his custom shifter, so he only needed to use another input and add some code to get his handbrake added into his sim.

[CNCDan] built a version of this out of laser-cut metal parts, but also has a fully 3D printable one available as well. Plenty of his other videos about his driving rig are available as well, from the pedal assembly we mentioned earlier to the force-feedback steering wheel. It’s an impressive set of hardware with a feel that replicates racing about as faithfully as a simulator could. Interestingly, we’ve also seen this process in reverse as well where a real car was used instead as a video game controller.

Continue reading “Driving Sim Handbrake Based On Load Cell”

How Resident Evil 2 For The N64 Kept Its FMV Cutscenes

Originally released for the Sony PlayStation in 1998, Resident Evil 2 came on two CDs and used 1.2 GB in total. Of this, full-motion video (FMV) cutscenes took up most of the space, as was rather common for PlayStation games. This posed a bit of a challenge when ported to the Nintendo 64 with its paltry 64 MB of cartridge-based storage. Somehow the developers managed to do the impossible and retain the FMVs, as detailed in a recent video by [LorD of Nerds]. Toggle the English subtitles if German isn’t among your installed natural language parsers.

Instead of dropping the FMVs and replacing them with static screens, a technological improvement was picked. Because of the N64’s rather beefy hardware, it was possible to apply video compression that massively reduced the storage requirements, but this required repurposing the hardware for tasks it was never designed for.

The people behind this feat were developers at Angel Studios, who had 12 months to make it work. Ultimately they achieved a compression ratio of 165:1, with software decoding handling the decompressing and the Reality Signal Processor (RSP) that’s normally part of the graphics pipeline used for both audio tasks and things like upscaling.

Continue reading “How Resident Evil 2 For The N64 Kept Its FMV Cutscenes”

Running DOOM And Super Mario 64 Inside A PDF File

Although generally described as a document format, PDFs have ballooned from a Postscript-lite format into a mutant featuring XML and JavaScript support, basically turning what once was a fairly simple format into an interactive page. Naturally, this has to be used for good, and that is why we have the Doom PDF project, as well as [Game of Tobi] using that project as the inspiration for a Super Mario 64 port based on the decompiled source code.

The nice thing about the Super Mario 64 version is that it’s stand-alone, running from a 23.5 MB PDF, unlike the Doom PDF which runs the game in DOSBox. The compromise is that Super Mario 64 PDF runs at just a few FPS, with the output in glorious ASCII.

What enables this feat is to open the PDF in a viewer that supports JavaScript, with the PDF.js that comes with most browsers generally allowing for integrated JS in the PDF to be executed. Unfortunately [Game of Tobi] hasn’t released source code for this project, but we hope that this is forthcoming.

While one can argue about the practicality of this whole demonstration from a gaming perspective, it definitely shows that PDF as a format has gotten way out of hand now that it’s even overrun with hellspawn and Italian plumbers.

Continue reading “Running DOOM And Super Mario 64 Inside A PDF File”