Turning A GDB Coredump Debug Session Into A Murder Mystery

Debugging an application crash can oftentimes feel like you’re an intrepid detective in a grimy noir detective story, tasked with figuring out the sordid details behind an ugly crime. Slogging through scarce clues and vapid hints, you find yourself down in the dumps, contemplating the deeper meaning of life and  the true nature of man, before hitting that eureka moment and cracking the case. One might say that this makes for a good game idea, and [Jonathan] would agree with that notion, thus creating the Fatal Core Dump game.

Details can be found in the (spoiler-rich) blog post on how the game was conceived and implemented. The premise of the game is that of an inexplicable airlock failure on an asteroid mining station, with you being the engineer tasked to figure out whether it was ‘just a glitch’ or that something more sinister was afoot. Although an RPG-style game was also considered, ultimately that proved to be a massive challenge with RPG Maker, resulting in this more barebones game, making it arguably more realistic.

Suffice it to say that this game is not designed to be a cheap copy of real debugging, but the real deal. You’re expected to be very comfortable with C, GDB, core dump analysis, x86_64 ASM, Linux binary runtime details and more. At the end you should be able to tell whether it was just a silly mistake made by an under-caffeinated developer years prior, or a malicious attack that exploited or introduced some weakness in the code.

If you want to have a poke at the code behind the game, perhaps to feel inspired to make your own take on this genre, you can take a look at the GitHub project.

Cynus Chess Robot: A Chess Board With A Robotic Arm

Downward-facing camera and microphone in the arm. (Credit: Techmoan, YouTube)
Downward-facing camera and microphone in the arm. (Credit: Techmoan, YouTube)

There are many chess robots, most of which require the human player to move the opposing pieces themselves, or have a built-in mechanism that can slide the opposing pieces around to their new location. Ideally, such a chess robot would move the pieces just like how a human would, of course. That’s pretty much the promise behind the Manya Cynus chess robot, which [Matt] over at the Techmoan YouTube channel bought from the Kickstarter campaign.

Advertising itself as a ‘Portable AI Chess Robot’, the Manya Cynus chess robot comes in the form of a case that unfolds into a chess board and also contains the robotic arm that contains the guts of the operation. Powered by the open source Stockfish chess engine, it can play games against a human opponent at a few difficulty levels without requiring any online connectivity or a companion app. It moves its own pieces by picking up the metal-cored chess pieces with its arm, while its front display tries to display basic emotions with animated eyes. A 3-MP downward-facing camera is located on the head section, along with a microphone.

As for how well it works, [Matt] isn’t the best chess player, but he had a fair bit of fun with the machine. His major complaints circle around how unfinished the firmware still feels, with e.g., invalid moves basically ignored with only a barely visible warning popping up on the screen. In general, he’d rather classify it as an interesting development kit for a chess robot, which is where the BLE 5.1-based interface and a purported Python-based development environment provided by Manya seem to come into focus.

Continue reading “Cynus Chess Robot: A Chess Board With A Robotic Arm”

Video Game Archive Myrient To Shut Down On March 31

Recently the Myrient game video archive announced that they’re shutting down on March 31st of this year, for a couple of reasons, but primarily the skyrocketing financial costs of hosting the archive. One advantage of Myrient over e.g. Archive.org is that – per the FAQ – every game on the site is curated and checked against a checksum of a known good copy. The site also focuses on fast downloads, making it a good resource if you’re trying to find ROMs of some more obscure old gaming system.

Amidst the mourning it seems also pertinent to address the reasons behind this shutdown. Although finances are the main reason for this hobby project to be shut down, it’s due to (paywalled) download managers that  have recently appeared, and which completely bypass the donation requests and similar on the website. Despite use of Myrient for commercial, for-profit purposes having always been explicitly forbidden, this has been ignored to the point where the owner of Myrient had to shell out over $6,000 per month to cover the difference after donations.

Along with the rising costs of hosting due to rising storage and RAM prices courtesy of AI datacenter buildouts, this has meant that a hobby archive like this has become completely unsustainable. Barring good ways to block illegal traffic like these download tools and/or a surge in donations, it would seem that all archives like this are at risk of shutting down, along with other sites that contain commercially interesting content.

Fixing The Damage Of A Botched SNES SuperCIC Mod

Not what you want to see when testing that 'repaired' SNES. (Credit: Skawo, YouTube)
Not what you want to see when testing that ‘repaired’ SNES. (Credit: Skawo, YouTube)

The good part about older game consoles like the Super Nintendo is that they have rather rudimentary region locks, but unfortunately this also gives some people the idea that installing something like the SuperCIC mod chip to make a SNES region-free is easy. The patient that arrived on [Skawo]’s surgery table was one such victim, with the patient requiring immediate surgery to remove the botched installation before assessing the damage.

Here the good news was that the patient features the revision B CPU, making it a good console to rescue. The bad news was that the pads of the old CIC chip had been ripped up, there was a solder bridge on S-PPU1 between two pins and both the installed wiring and soldering were atrocious, requiring plenty of touch-ups.

With the CIC pads already a loss, finishing the SuperCIC mod seemed like a good plan, also since this would make for a nice region-free console. This mod involves a PIC16F630 with special firmware that works with the corresponding CIC IC in each cartridge, while also switching between 50/60 Hz mode to fit the cartridge’s region. After an initial test with PAL and NTSC cartridges everything seemed all right. Then [Skawo] ran the SuperNES Burn-In test from its cartridge, which gave dire news.

Continue reading “Fixing The Damage Of A Botched SNES SuperCIC Mod”

Taser Chess Teaches Valuable Lessons The Hard Way

Over the last few centuries, behavioral psychologists have documented all kinds of ways of modifying our actions and the actions of various animals. From the famous Skinner boxes to many modern video game mechanics, animals and humans alike can learn through the addition or subtraction of various rewards and punishments. And it doesn’t only impact simple actions either; [Everything is Hacked] took this idea to the extreme, using painful electric shocks to teach himself to avoid making blunders while playing chess.

This positive punishment system uses a medical device called transcutaneous electrical nerve stimulation (TENS) to deliver an electric shock to the skin. The electrical jolt is routed through a custom-built, conductive chess board where each square is isolated from the others and controlled by its own relay. The pieces are conductive as well, so if one is placed on a square where it shouldn’t go a relay will switch on to quickly provide the behavioral modification. The control logic is provided by a Raspberry Pi running the Stockfish chess engine, and it keeps track of the locations of the positions of all the pieces by using MX switches in the base of each square on the board.

This project took [Everything is Hacked] over a year to get into a working condition, including having to rebuild the entire project twice after mishaps with baggage handling at an airline. But he was able to demo the board to the Open Sauce tech festival and even took it to his local park to play chess with the local hustlers. Unfortunately, he reports that he spent more time reworking and rewiring his board over that year than he did improving his chess game, so unfortunately he still hasn’t been able to win any of his money back yet. Perhaps combining this project with a chess-playing robot would help.

Continue reading “Taser Chess Teaches Valuable Lessons The Hard Way”

Porting Super Mario 64 To The Original Nintendo DS

Considering that the Nintendo DS already has its own remake of Super Mario 64, one might be tempted to think that porting the original Nintendo 64 version would be a snap. Why you’d want to do this is left as an exercise to the reader, but whether due to nostalgia or out of sheer spite, the question of how easy this would be remains. Correspondingly, [Tobi] figured that he’d give it a shake, with interesting results.

Of note is that someone else already ported SM64 to the DSi, which is a later version of the DS with more processing power, more RAM and other changes. The reason why the 16 MB of RAM of the DSi is required, is because it needs to load the entire game into RAM, rather than do on-demand reads from the cartridge. This is why the N64 made do with just 4 MB of RAM, which is as much RAM as the NDS has. Ergo it can be made to work.

The key here is NitroFS, which allows you to implement a similar kind of segmented loading as the N64 uses. Using this the [Hydr8gon] DSi port could be taken as the basis and crammed into NitroFS, enabling the game to mostly run smoothly on the original DS.

There are still some ongoing issues before the project will be released, mostly related to sound support and general stability. If you have a flash cartridge for the DS this means that soon you too should be able to play the original SM64 on real hardware as though it’s a quaint portable N64.

Continue reading “Porting Super Mario 64 To The Original Nintendo DS”

The Joy Of Making Handheld Tetris From Scratch

As anyone who’s made a thing knows, a lot of work goes into bringing something from idea to completion. But there’s also considerable satisfaction in the process. [Willian] recently did exactly that, and shares the joyful experience of creating a homebrew handheld game gadget from scratch. It runs a homebrewed Tetris clone (as well as Snake), and we love the results.

The game gadget uses an ATmega328P programmed via the Arduino IDE, and a 1.8″ TFT color LCD screen. It’s self-contained in a box with a few buttons as controls and runs off three AAA cells. [Willian] made the smart design choice to run the microcontroller at 8 MHz instead of the more common 16 MHz, because doing so meant the board can run at 3.3 V instead of 5 V. Why does this matter? The LCD display runs off 3.3 V as well, and if all components can run off the same supply and logic levels, it simplifies things considerably.

Also, creating a 3.3 V supply is a simple matter of three alkaline cells in series with an LDO (low drop-out) regulator, which is great for a handheld device. We do note that AA cells have a considerably higher energy density and capacity than AAA cells and are usually the better choice, but one works with what one has, and sometimes the space and weight saved by AAA is just too good to pass up.

The software has some notable approaches to keep things responsive and optimal. Instead of defining each of the Tetris pieces as a 2D shape, [Willian] instead pre-defines each piece (and their rotations) so that rotating a piece is just an index change in an array, instead of a transform implementing a rotation. Also, full-screen redraws are comparatively slow over SPI and caused flickering, so only cells that have changed are redrawn to the screen to keep things responsive. The code is all on GitHub, and it’s a great peek at how things get implemented under the hood.

The enclosure is just cardboard, and it does the job in [Willian]’s case. But we’ll point out that cardboard is actually a highly adaptable material from which to prototype. With just a few tips and a little care, paper products can be your new best friend when it comes to one-offs and prototypes.