Running FreeDOS And 8086tiny On The Game Boy Advance Because You Can

How many people haven’t looked at their Game Boy Advance (GBA) handheld gaming device and wondered how much better it might be if it could run FreeDOS. Inside an 8086 emulator. If you’re like [ZZAZZ] and similarly suffer intrusive project-related thoughts, then this might be a moment of clear recognition, somewhat like sharing one’s story at a Programmers Anonymous meeting, but we digress.

In the video, the basic premise of making even the 8086tiny emulator work on the GBA seemed improbable on the outset – courtesy of the rather limited memory environment provided by the GBA – before even daring to look at things like disk access.

However, letting silly things like segmented memory and mismatched memory addresses deter us from pleasing said intrusive thoughts would be beyond the pale. Ergo we get a shining example of how days of rewriting code, stripping code, debugging code, fixing alignment issues in code and writing work-arounds for newly discovered issues in code can ultimately lead to the proud moment where FreeDOS boots on the GBA.

Granted it takes over an hour to do so, and has to be started from a butchered Pokémon Emerald save file, courtesy of a well-known exploit in that game, thankfully preserved in counterfeit cartridges.

Admittedly we’re not sure what practical applications there are for FreeDOS on the GBA, but that’s never stopped hackers from taking on impossible projects before, so there’s no sense letting it get in the way now.

Continue reading “Running FreeDOS And 8086tiny On The Game Boy Advance Because You Can”

ManiPylator focusing its laser pointer at a page.

Simulation And Motion Planning For 6DOF Robotic Arm

[Leo Goldstien] recently got in touch to let us know about a fascinating update he posted on the Hackaday.io page for ManiPylator — his 3D printed Six degrees of freedom, or 6DOF robotic arm.

This latest installment gives us a glimpse at what’s involved for command and control of such a device, as what goes into simulation and testing. Much of the requisite mathematics is introduced, along with a long list of links to further reading. The whole solution is based entirely on free and open source (FOSS) software, in fact a giant stack of such software including planning and simulation software on top of glue like MQTT message queues.

The practical exercise for this installment was to have the arm trace out the shape of a heart, given as a mathematical equation expressed in Python code, and it fared quite well. Measurements were taken! Science was done!

We last brought you word about this project in October of 2024. Since then, the project name has changed from “ManiPilator” to “ManiPylator”. Originally the name was a reference to the Raspberry Pi, but now the focus is on the Python programming language. But all the bot’s best friends just call him “Manny”.

If you want to get started with your own 6DOF robotic arm, [Leo] has traced out a path for you to follow. We’d love to hear about what you come up with!

Continue reading “Simulation And Motion Planning For 6DOF Robotic Arm”

FLOSS Weekly Episode 834: It Was Cool In 2006

This week Jonathan chats with Ben Meadors and Rob Campbell about the boatload of software Microsoft just released as Open Source! What’s the motivation, why is the new Edit interesting, and what’s up with Copilot? Watch to find out!

Continue reading “FLOSS Weekly Episode 834: It Was Cool In 2006”

A console is shown displaying a system’s startup information, followed by “Booting from Hard Disk …”, “Hello World!” in a green font, and “The keyboard is working!”

A Forth OS In 46 Bytes

It’s not often that we can include an operating system in a Hackaday article, but here’s the full 46-byte source of [Philippe Brochard]’s 10biForthOS in 8086 opcodes:

50b8 8e00 31d8 e8ff 0017 003c 0575 00ea
5000 3c00 7401 eb02 e8ee 0005 0588 eb47
b8e6 0200 d231 14cd e480 7580 c3f4

Admittedly, this is quite a minimal operating system. It’s written for the Intel 8086, and consists of a Forth implementation with only two instructions: compile (1) and execute (0). It can receive commands over a serial connection or from a keyboard. This allows a host computer to load more complex software onto it, one byte at a time. In particular, [Philippe] provides instructions for loading more advanced compilers, such as subleq-eForth for a more complete Forth implementation, or SectorC for C programming. He’s also written a 217-byte port of the OS to Linux Intel x64.

[Philippe] doesn’t take a strong stance on whether this should technically qualify as a Forth implementation, given that the base implementation lacks stacks, dictionaries, and the ability to define words. However, it does have an outer and inner interpreter, the ability to compile and execute code, and most importantly, “the simplicity and hacky feeling of Forth.”

[Philippe] writes that this masterpiece of minimalism continues the tradition of the minimal Forth implementations we’ve covered before. We’ve even seen Forth run on an Arduino.

The Commodore 64 Gets An HDMI Upgrade

The Commodore 64 may remain the best selling computer of all time, but it has one major flaw. It doesn’t have HDMI! That makes it a total pain to use with modern displays. Thankfully, [Side Projects Lab] has whipped up an HDMI output board to solve this concerning oversight from the original designers.

The project was inspired by work by [Copper Dragon], who whipped up a nifty RGB output board. This device worked by reading the inputs to the C64’s VIC II graphics chip, which it then used to recreate a pixel-perfect video frames to then produce a quality analog video output. [Side Projects Lab] figured the same interception technique would be useful for producing a quality HDMI output.

The result was the HD-64. It sits inside the C64 in place of the original RF modulator. It uses an interleaver socket to capture digital signals going to the VIC II. It then feeds these signals to an emulated VIC II running inside an FPGA, which creates the pixel-perfect screen representation and synthesizes the proper digital HDMI output. Meanwhile, the analog audio output from the SID chip is captured from the RF modulator’s original header, and sent out via the HDMI output as well. The default output is super-sharp, but the device can be configured to allow scanlines and anti-aliasing if that’s more to your tastes.

If you want to hook your C64 up to a modern screen, this is going to be one of the tidiest and sharpest ways to do it. We’ve seen similar hacks for other platforms before, too. Video after the break.

Continue reading “The Commodore 64 Gets An HDMI Upgrade”

C64 on desk with NFC TeensyROM and game token

TeensyROM NFC Game Loading On The C64

When retro computing nostalgia meets modern wireless wizardry, you get a near-magical tap-to-load experience. It’ll turn your Commodore 64 into a console-like system, complete with physical game cards. Inspired by TapTo for MiSTer, this latest hack brings NFC magic to real hardware using the TeensyROM. It’s been out there for a while, but it might not have caught your attention as of yet. Developed by [Sensorium] and showcased by YouTuber [StatMat], this project is a tactile, techie love letter to the past.

At the heart of it is the TeensyROM cartridge, which – thanks to some clever firmware modding – now supports reading NFC tags. These are writable NTag215 cards storing the path to game files on the Teensy’s SD card. Tap a tag to the NFC reader, and the TeensyROM boots your game. No need to fumble with LOAD “*”,8,1. That’s not only cool, it’s convenient – especially for retro demo setups.

What truly sets this apart is the reintroduction of physical tokens. Each game lives on its own custom-designed card, styled after PC Engine HuCards or printed with holographic vinyl. It’s a tangible, collectible gimmick that echoes the golden days of floppies and cartridges – but with 2020s tech underneath. Watch it here.

Continue reading “TeensyROM NFC Game Loading On The C64”

Mainboard with the two 128 kB EPROMs containing the special MacIntosh Plus ROM image. (Credit: Pierre Dandumont)

The Lost 256 KB Japanese ROM For The Macintosh Plus Has Been Found

The Apple Macintosh Plus was one of the most long-lived Apple computers and saw three revisions of its 128 kB-sized ROMs during its life time, at least officially. There’s a fourth ROM, sized 256 kB, that merges the Western ROMs with Japanese fonts. This would save a user of a Western MacIntosh Plus precious start-up time & RAM when starting software using these fonts. Unfortunately, this particular ROM existed mostly as a kind of myth, until [Pierre Dandumont] uncovered one (machine-translated, French original).

The two 128 kB EPROMs containing the special MacIntosh Plus ROM image. (Credit: Pierre Dandumont)
The two 128 kB EPROMs containing the special MacIntosh Plus ROM image. (Credit: Pierre Dandumont)

Since this particular ROM was rumored to exist somewhere in the Japanese market, [Pierre] went hunting for Japanese Macintosh Plus mainboards, hoping to find a board with this ROM. After finally getting lucky, the next task was to dump the two 128 kB EPROMs. An interesting sidenote here is that the MacIntosh Plus’ two ROM sockets use the typical programming voltage pin (Vpp) as an extra address line, enabling 256 kB of capacity across the two sockets.

This detail probably is why this special ROM wasn’t verified before, as people tried to dump them without using that extra address line, i.e. as a typical 27C512 64 kB EPROM instead of this proprietary pinout, which would have resulted in the same 64 kB dump as from a standard ROM. Thanks to [Doc TB]’s help and his UCA device it was possible to dump the whole image, with the images available for download.

Using this ROM image was the next interesting part, as [Pierre] initially didn’t have a system to test it with, and emulators assume the 128 kB ROM format. Fortunately these are all problems that can be solved, allowing the ROM images to be validated on real hardware as well as a modified MAME build. We were informed by [Pierre] that MAME releases will soon be getting support for this ROM as well.