Trying To Install Haiku On A 2009 Mac Mini

Although the number of uses for a 2009-era Mac Mini aren’t very long, using them to run new-and-upcoming operating systems like Haiku on would seem to be an interesting use case. This is what [The Phintage Collector] recently took a swing at, using both the 2024 Beta 5 release and a current nightly build. The focus was mostly on the 32-bit build, as this has binary compatibility with BeOS applications, but the 64-bit version of Haiku was of course also installed.

One of the main issues with these Mac systems is that they use EFI for the BIOS, so you’re condemned to either take your chances with the always glitchy CSM ‘classical BIOS’ mode, or to make Haiku and EFI get along. While for the 64-bit version of Haiku this wasn’t too much of a struggle, the 32-bit version ran into the problem that the 64-bit EFI BIOS really doesn’t like 32-bit software. After a while the 32-bit version of Haiku was thus abandoned for a later revisit.

With the 64-bit version a lot of things just work, though audio couldn’t be made to work even with a USB dongle, and there’s no hardware acceleration for graphics, so gaming isn’t really going to happen either. The positive thing here is probably that as a test system for 64-bit Haiku such a Mac Mini isn’t too crazy, it being just an Intel system with an Apple-flavor EFI BIOS.

If you’re into giving it a shot yourself, the video description page contains a lot of resources to consult.

Continue reading “Trying To Install Haiku On A 2009 Mac Mini”

The Complex Transformations Underlying MC Escher’s Works

Self-similar images are rather common, which are images in which the same image is repeated on a smaller scale somewhere within the image that one is looking at, something which is also referred to as the Droste effect. Yet in [MC Escher]’s 1956 Prentententoonstelling (‘picture gallery’) drawing, this self-similar image is somehow also the foreground image, from where it just keeps looping around in an endless dance. How this effect is accomplished and what the mathematical transformations behind it are and how they work is explained in a recent video by [3Blue1Brown].

The video uses previous work by [B. de Smit] and [H. W. Lenstra Jr] whose 2003 paper detailed the underlying transformations, as well as the mystery of the center of the work.

Although [MC Escher] created a transformation grid with square rectangles into which a non-transformed image could be copied verbatim, he left the center as a void with just his signature in it, leaving many to guess how one might be able to fill in this area with something that made sense. In the work by [Smit] et al. it was postulated that by treating the work as having been drawn on an elliptic curve over a field of complex numbers this might be possible.

While the transformation is simple enough at first, with just four rectangles at different zoom levels to make up the corners, the trick is to connect these rectangles. Using the demonstrated complex method this can be automated, with the central void now filled in and creating its own Droste effect. This once again demonstrates the beautifully complex mathematics in [Escher]’s works, despite him never having had any formal mathematical education.

Continue reading “The Complex Transformations Underlying MC Escher’s Works”

Making The Forgotten 1982 Game Adventure Canoe Run On MAME

A Taito Egret II mini arcade cabinet.
A Taito Egret II mini arcade cabinet.

A while back [Jack] came across a Taito arcade game that neither he nor any of his mates recognized. The game was Adventure Canoe and part of the collection of forty preinstalled games on a Taito Egret II mini arcade cabinet. Yet despite [Jack] and his buddies being avid 1980s arcade enthusiasts, this 1982 title for the Z80-based Taito SJ system was completely unfamiliar to them.

When even a web search turned up extremely few details, [Jack] did the only reasonable thing and borrowed the rather expensive mini arcade for hopefully some extracting of the game ROM.

As expensive as this mini arcade is, it features the typical ARM-based SoC and Linux-based firmware. Although you can totally dump the Flash, [Jack] found that the firmware update ZIP file was a much easier target to poke at and hopefully extract the ROMs from.

Of course, Taito used password-protected ZIP files within the firmware, leading to some reverse-engineering to find the passwords. The first was ‘hidden’ as plain text in the egret2 binary. For the remainder of the ZIP files the password wasn’t as readily found, but required some sleuthing. This took the form of dynamic runtime analysis with gdb, using information previously gleaned from a Ghidra analysis. Eventually this yielded the final passwords.

Extracting the game’s ROM files this way allowed for them to be adapted to the format that MAME expects, after which the game just had to be added to the emulator’s source files. With this done the game fired right up, and [Jack] was able to play the game without any trouble.

Testing Refrigerants And Capillary Tubes To Find Peak Performance

Heat lift graphs. (Credit: Hyperspace Pirate, YouTube)
Heat lift graphs. (Credit: Hyperspace Pirate, YouTube)

Although vapor-compression refrigeration is a simple concept, there are still a lot of details in the implementation of such a system that determines exactly how efficient it is. After making a few of such systems, [Hyperspace Pirate] decided to sit down and create a testing system that allows for testing of many of these parameters.

Some of the major components that determine the coefficient of performance (COP) of a heat pump or similar system include the used refrigerant, as well as the capillary tube diameter or expansion valve design. For the testing in the video three refrigerants are used: R600 (N-Butane), R134a (tetrafluoroethene, AKA Freon) and R290 (propane), with R134a being decidedly illegal in places like the EU. The use of R600 instead of R600A is due to the former allowing for a lower pressure system, which is nice for low-power portable systems.

The test rig has the typical fresh-from-the-scrap-heap look that we’re used to and love from [Hyperspace Pirate], but does exactly what it says on the tin, and is easy for any DIY enthusiast to replicate. Which compressor to pick for a specific refrigerant is also covered in the video, along with oil type and more.

For basic systems you’d use a simple capillary tube, whereas an airconditioner or similarly more complex system would use an adjustable valve design. With the rig you can test the efficiency of different tube diameters, with three sizes available in this version. Unfortunately the electronic expansion valve (EEV) that was going to be used didn’t get a chance to shine due to unforeseen events.

With the R134a and butane a COP of 2.0 – 2.5 was achieved when taking power factor into account, which was reasonable considering a compressor was used that targets R134a. Regardless, if you have ever felt like repurposing that old compressor from a fridge or AC unit, this might be a fun afternoon project.

Continue reading “Testing Refrigerants And Capillary Tubes To Find Peak Performance”

Implementing PCIe Over Fiber Using SFP Modules

Although we can already buy commercial transceiver solutions that allow us to use PCIe devices like GPUs outside of a PC, these use an encapsulating protocol like Thunderbolt rather than straight PCIe. The appeal of  [Sylvain Munaut]’s project is thus that it dodges all that and tries to use plain PCIe with off-the-shelf QSFP transceivers.

As explained in the intro, this doesn’t come without a host of compatibility issues, least of all PCIe device detection, side-channel clocking and for PCIe Gen 3 its equalization training feature that falls flat if you try to send it over an SFP link. Fortunately [Eli Billauer] had done much of the leg work already back in 2016, making Gen 2 PCIe work over SFP+.

The test setup involves a Raspberry Pi 5 on a PCIe breakout board and a PCIe card connected to the whole QSFP intermediate link with custom SFP module PCBs for muxing between PCIe edge connector or USB 3.0 connectors to use those cheap crypto miner adapter boards. The fiber is just simple single-mode fiber. Using this a Gen 2 x1 link can be created without too much fuss, demonstrating the basic principle.

Moving this up to Gen 3 will be challenging and will be featured in future videos, involving more custom PCBs. With Gen 5 now becoming standard on mainboards, it would be great to see this project work for Gen 3 – 5 at link sizes of x4 and even x16 so that it might be able to run external GPUs at full bandwidth unlike Thunderbolt.

Thanks to [zoobab] for the tip.

Continue reading “Implementing PCIe Over Fiber Using SFP Modules”

Digging Into The Twilight Hack That Brought Us Wii Homebrew

With each new game console, there’s an effort to get around whatever restrictions exist to run your own software on it. In the case of the Nintendo Wii, the system was cracked through one of its most popular games — The Legend of Zelda: Twilight Princess. How this hack works was recently covered in detail by [Skawo].

The key for this ‘Twilight Hack‘ is to use a modified game save that allows you to run arbitrary code from an SD card, something which was first patched out of the Wii firmware with version 3.3. As shown in the video using the source code, the basic concept is that the name of Link’s horse in the game is changed in the save file to be longer than the allocated buffer, which leads to a buffer overflow that can be used to reach the application loader code.

Interestingly, while the horse’s name can only be 8 characters long, and the buffer is 16 bytes (due to ShiftJIS two-byte encoding), the save file loading code allocates no less than 100 bytes, for some reason. Since the code uses strcpy() instead of strncpy() (or C11’s strncpy_s()), it will happily keep copying until it finds that magic 0x00 string terminator. Basically the horse can have any name that fits within the save file’s buffer, just with no null-byte until our specially crafted payload has been copied over.

Although it took Nintendo a few months to respond to this hack, eventually it was patched out in a rather brutal fashion by simply searching for and wiping any modified save files. Naturally this didn’t stop hackers from finding ways to circumvent this save file check, which led to more counter-fixes by Nintendo, which led to more exploits, ad nauseam.

Even with firmware update 4.0 finally sunsetting the Twilight Hack, hackers would keep finding more ways to get their previous Homebrew Channel installed, not to mention so that they could keep watching DVDs on a Wii.

Continue reading “Digging Into The Twilight Hack That Brought Us Wii Homebrew”

A Mercury Rover Could Explore The Planet By Sticking To The Terminator

The planet Mercury in true color. (Credit: NASA)
The planet Mercury in true color. (Credit: NASA)

With multiple rovers currently scurrying around on the surface of Mars to continue a decades-long legacy, it can be easy to forget sometimes that repeating this feat on other planets that aren’t Earth or Mars isn’t quite as straightforward. In the case of Earth’s twin – Venus – the surface conditions are too extreme to consider such a mission. Yet Mercury might be a plausible target for a rover, according to a study by [M. Murillo] and [P. G. Lucey], via Universe Today’s coverage.

The advantages of putting a rover’s wheels on a planet’s surface are obvious, as it allows for direct sampling of geological and other features unlike an orbiting or passing space probe. To make this work on Mercury as in some ways a slightly larger version of Earth’s moon that’s been placed right next door to the Sun is challenging to say the least.

With no atmosphere it’s exposed to some of the worst that the Sun can throw at it, but it does have a magnetic field at 1.1% of Earth’s strength to take some of the edge off ionizing radiation. This just leaves a rover to deal with still very high ionizing radiation levels and extreme temperature swings that at the equator range between −173 °C and 427 °C, with an 88 Earth day day/night cycle. This compares to the constant mean temperature on Venus of 464 °C.

To deal with these extreme conditions, the researchers propose that a rover might be able to thrive if it sticks to the terminator, being the transition between day and night. To survive, the rover would need to be able to gather enough solar power – if solar-powered – due to the Sun being very low in the sky. It would also need to keep up with the terminator velocity being at least 4.25 km/h, as being caught on either the day or night side of Mercury would mean a certain demise. This would leave little time for casual exploration as on Mars, and require a high level of autonomy akin to what is being pioneered today with the Martian rovers.

Top image: the planet Mercury with its magnetic field. (Credit: A loose necktie, Wikimedia)