Vista de Lectura

Hay nuevos artículos disponibles. Pincha para refrescar la página.

Reverse Engineering LEGO Island

While LEGO themed video games have become something of a staple, in 1997 they were something of an odity. LEGO Island became the first LEGO video game released outside of Japan in 1997 and become something of a hit with over one million copies sold. The game was beloved among fans and set the stage for more LEGO video games to come. In an effort of love, [MattKC] put together a team to reverse engineer the game.

The team set out with the intent to create a near perfect recreation of the codebase, relying on custom made tools to run byte checks on the rewrite compilation and the original binary. While the project is functionally complete, [MattKC] believes it is impossible to get a byte accurate codebase. This is because of what the team called “compiler entropy.” Strange behaviors exists inside of Microsoft’s Visual C++ compiler of the era, and small changes in the code have seemingly random effects to unrelated parts of the binary. To mitigate this issue would likely require either partially reverse engineering Visual C++ or brute forcing the code, both of which would take a large amount of effort and time for no real benefit.

Another interesting step the team had to work out was how the game handled graphics. In the version of Direct X used, the developers could chose between immediate mode and retained mode. The difference largely boils down to how models and assets are handled. In immediate mode, Direct X is largely just a render engine and everything else is handled by the developer. With retained mode, Direct X works more similarly to a game engine where all the model and asset management is handled by Direct X. Almost all developers ended up using immediate mode to the point that Microsoft deprecated support for retained mode. For this reason, if you were to download and run LEGO island on a modern Windows PC, it would yell at you for not having the proper libraries. There is debate about how best to handle this moving forward. The team could rely on an unsupported library from Microsoft, reverse engineer that library only making the functions needed, or using leaked source code.

With the completion of the reverse engineering, engineering can commence. For example, an annoying and persistent bug caused the game to crash if you tried to exit. While it was effective in closing the game, it also caused progress to be lost. That particular bug was fixed simply by initializing a variable in the game’s fronted. Interestingly, that bug was not present in the late betas of the game that had been dug up from the depths of the internet leading to questions as to why a rewrite of the fronted was necessary so late in the development. Now efforts are commencing to port the game to other platforms which bring with it fresh headaches including rewriting for OpenGL and the balance of keeping a historically accurate game with the needs of modern development.

 

A Look Inside a Lemon of a Race Car

Automotive racing is a grueling endeavor, a test of one’s mental and physical prowess to push an engineered masterpiece to its limit. This is all the more true of 24 hour endurance races where teams tag team to get the most laps of a circuit in over a 24 hour period. The format pushes cars and drivers to the very limit. Doing so on a $500 budget as presented by the 24 hours of Lemons makes this all the more impressive!

Of course, racing on a $500 budget is difficult to say the least. All the expected Fédération Internationale de l’Automobile (FIA) safety requirements are still in place, including roll cage, seats and fire extinguisher. However, brakes, wheels, tires and safety equipment are not factored into the cost of the car, which is good because an FIA racing seat can run well in excess of the budget. Despite the name, most races are twelve to sixteen hours across two days, but 24 hour endurance races are run. The very limiting budget and amateur nature of the event has created a large amount of room for teams to get creative with car restorations and race car builds.

The 24 Hours of Le-MINES Team and their 1990 Miata

One such team we had the chance of speaking to goes by the name 24 Hours of Le-Mines. Their build is a wonderful mishmash of custom fabrication and affordable parts. It’s built from a restored 1999 NA Miata complete with rusted frame and all! Power is handled by a rebuilt 302 Mustang engine of indeterminate age.

The stock Miata brakes seem rather small for a race car, but are plenty for a car of its weight. Suspension is an Amazon special because it only has to work for 24 hours. The boot lid (or trunk if you prefer) is held down with what look to be over-sized RC car pins. Nestled next to the PVC pipe inlet pipe is a nitrous oxide canister — we don’t know if it’s functional or for show, but we like it nonetheless. The scrappy look is completed with a portion of the road sign fabricated into a shifter cover.

The team is unsure if the car will end up racing, but odds are if you are reading Hackaday, you care more about the race cars then the actual racing. Regardless, we hope to see this Miata in the future!

This is certainly not the first time we have covered 24 hour endurance engineering, like this solar powered endurance plane.

You Wouldn’t Download a Helmet?

Odds are, if you have ridden a bicycle for any amount of time, you have crashed. Crashes are fast, violent and chaotic events that leave you confused, and very glad to have a helmet. But what if there was another way of protecting your head? [Seth] decided to find out by taking a look at the Hövding airbag helmet.

The Hövding sits around your neck and looks somewhat akin to a neck pillow. It uses accelerometers situated in the fore and aft of the device to detect what it thinks is a crash. If a crash is detected, it will release a charge of compressed helium to inflate an airbag that wraps around the user’s head protecting a larger amount of the head then a traditional helmet. It also inflates around the wearer’s neck providing neck bracing in the impact further improving safety. The inflation process is incredibly fast and violent, very much akin to a car’s airbag. [Seth] demonstrated this on the process on two occasions to great effect, and to his amazement. While the idea of relying on computers to protect your head may sound ridiculous, studies have shown that the Hövding is safer than a regular helmet in certain situations.

Unfortunately the deployment process was irreversible making the product single use. Moreover, the Hövding would deploy in a crash regardless of if you hit your head or not. While Hövding offered a crash replacement at a discount, this would have created large amounts of e-waste.

The Hövding helmet next to various commuter helmets

However, the design is not perfect. During the product’s use there were 27 reports of the device not deploying — particularly when struck by a vehicle. More reports exist of the device deploying erroneously when it detected, for example, bending over too quickly as a crash. It could not meet the US safety standards for helmets and therefore it was never allowed to be sold in the US.

Hövding argued that it was a helmet equivalent and should be exempt from those standards to no avail. Studies suggested that it was not able to properly protect against sharp corner impacts similar to the anvil tests used by the United States as the airbag would bottom out in such circumstances.

Ultimate Hövding’s failure as a business came down to software. As the project continued, scope broadened and the device’s firmware grew more complicated. New features were introduced including USB-C charging, OTA updates and phone crash notifications. However, this also appears to have resulted in a firmware bug that caused some units to not deploy, and were potentially sold this way with Hövding’s knowledge. This led the Swedish Consumer Agency to temporarily ban the product along with a stop-use and recall on all Hövding 3s. While the ban was lifted by a judge, the damage was done, consumer trust in Hövding was gone and they filed for bankruptcy in 2023. Unfortunately, this left the existing customers of the Hövding high and dry, without a working app, update method, or crash replacement program.

Airbags are complex and amazing pieces of safety equipment, and while this is the first bike airbag recall we have covered, it’s not the first airbag recall we have seen.

Terminal DAW Does it in Style

As any Linux chat room or forum will tell you, the most powerful tool to any Linux user is a terminal emulator. Just about every program under the sun has a command line alternative, be it CAD, note taking, or web browsing. Likewise, the digital audio workstation (DAW) is the single most important tool to anyone making music. Therefore, [unspeaker] decided the two should, at last, be combined with a terminal based DAW called Tek.

Tek functions similarly to other DAWs, albeit with keyboard only input. For anyone used to working in Vim or Emacs (we ask you keep the inevitable text editor comment war civil), Tek will be very intuitive. Currently, the feature set is fairly spartan, but plans exist to add keybinds for save/load, help, and more. The program features several modes including a multi-track sequencer/sampler called the “arranger.” Each track in the arranger is color coded with a gradient of colors generated randomly at start for a fresh look every time.

Modern audio workflows often span across numerous programs, and Tek was built with this in mind. It can take MIDI input and output from the JACK Audio Connection Kit, and plans also exist to create a plugin server so Tek could be used with other DAWs like Ardor or Zrythm. Moreover, being a terminal program opens possibilities for complicated shell scripting and other such Linux-fu.

Maybe a terminal DAW is not your thing, so make sure to check out this physical one instead!

eInk PDA Revisited

In the dark ages, before iOS and Android phones became ubiquitous, there was the PDA. These handheld computers acted as simple companions to a computer and could often handle calendars, email, notes and more. Their demise was spelled by the smartphone, but the nostalgia of having a simple handheld and romanticizing about the 90’s and 2000’s is still there. Fortunately for the nostalgic among our readers, [Ashtf] decided to give us a modern take on the classic PDAs.

The device is powered by an ESP32-S3 connected to two PCBs in a mini-laptop clamshell format. It features two displays, a main eInk for slow speed interaction and a little i2c AMOLED for more tasks which demand higher refresh then an eInk can provide. Next to the eInk display is a capacitive slider. For input, there is also a QWERTY keyboard with back resin printed keycaps and white air dry clay pressed into embossed lettering in the keys and finally sealed using nail polish to create a professional double-shot looking keycap. The switches are the metal dome kind sitting on the main PCB. The clamshell is a rather stylish clear resin showcasing the device’s internals and even features a quick-change battery cover!

The device’s “operating system” is truly where the magic happens. It features several apps including a tasks app, file wizard, and text app. The main purpose of the device is on the go note taking so much time has been taken with the excellent looking text app! It also features a docked mode which displays tasks and time when it detects a USB-C cable is connected. Plans exist in the future to implement a calender, desktop sync and even Bluetooth keybaord compatibility. The device’s previous iteration is on GitHub with future plans to expand functionality and availability, so stay tuned for more coverage!

This is not the first time we have covered [Ashtf’s] PDA journey, and we are happy to see the revisions being made!

❌