A New Golden Age Of Browser Games

Arguably, the golden age of browser gaming occurred in the 00s mostly revolving around Adobe Flash. This was an era with high creativity and a low barrier of entry, and also decentralized from gatekeeping app stores. Sadly, these times have passed us by as the security concerns around Flash led to its discontinuation and most casual gamers have migrated to the app store for their fix. But that doesn’t stop some from continuing to bring gaming to the browser, even if those games were never intended for it in the first place like this browser port of Celeste.

Celeste is an indie platformer where the player climbs a mysterious mountain while confronting her inner struggles. Originally meant for consoles and PC, a group of friends including [velzie], [bomberfish], and [Toshit] aka [r58Playz] took this as a challenge especially after seeing someone else’s half finished web port of this game. Most of the build revolves around WebAssembly (wasm) and around “cursed” .NET runtime hacks which also allow the port to run the community-made Everest mod loader. It uses a multithreaded and JIT compiling version of mono-wasm backported from .NET 10 to .NET 9 to maximize performance. The team actually first started by porting Terraria to the browser, and then moved on to this Celeste port from there.

The port of Celeste can be played here, and their port of Terraria is also available, although may not support a ton of Hackaday traffic so some patience is advised. There are also GitHub repositories for Celeste and Terraria as well.  With impressive ports of relatively modern games moving into the browser, perhaps we’re entering a new golden age of browser gaming; we’ve also seen things like Minecraft implemented in only HTML and CSS lately as well.

Factorio Running On Mobile

As a video game, DOOM has achieved cult status not just for its legendary gameplay and milestone developments but also because it’s the piece of software that’s likely been ported to the most number of platforms. Almost everything with a processor can run the 1993 shooter, but as it ages, this becomes less of a challenge. More modern games are starting to move into this position, and Factorio may be taking a leading position. [Point Substantial] has gotten this game to run on a mobile phone.

The minimum system requirements for Factorio are enough to make this a challenge, especially compared to vintage title like DOOM. For Linux systems a dual-core processor and 8 GB of memory are needed, as well as something with at least 1 GB of VRAM. [Point_Substantial]’s Xiaomi Mi 9T almost meets these official minimum requirements, with the notable exception of RAM. This problem was solved by adding 6 GB of swap space to make up for the difference.

The real key to getting this running is that this phone doesn’t run Android, it runs the Linux-only postmarketOS. Since it’s a full-fledged Linux distribution rather than Android, it can run any software any other Linux computer can, including Steam. And it can also easily handle inputs for periphreals including a Switch Pro controller, which is important because this game doesn’t have touch inputs programmed natively.

The other tool that [Point_Substantial] needed was box86/box64, a translation layer to run x86 code on ARM. But with all the pieces in place it’s quite possible to run plenty of games semi-natively on a system like this. In fact, we’d argue it’s a shame that more phones don’t have support for Linux distributions like postmarketOS based on the latest news about Android.

Thanks to [Keith] for the tip!

Back To The 90s On Real Hardware

As the march of time continues on, it becomes harder and harder to play older video games on hardware. Part of this is because the original hardware itself wears out, but another major factor is that modern operating systems, software, and even modern hardware don’t maintain support for older technology indefinitely. This is why emulation is so popular, but purists that need original hardware often have to go to extremes to scratch their retro gaming itch. This project from [Eivind], for example, is a completely new x86 PC designed for the DOS and early Windows 98 era.

The main problem with running older games on modern hardware is the lack of an ISA bus, which is where the sound cards on PCs from this era were placed. This build uses a Vortex86EX system-on-module, which has a processor running a 32-bit x86 instruction set. Not only does this mean that software built for DOS can run natively on this chip, but it also has this elusive ISA capability. The motherboard uses a Crystal CS4237B chip connected to this bus which perfectly replicates a SoundBlaster card from this era. There are also expansion ports to add other sound cards, including ones with Yamaha OPL chips.

Not only does this build provide a native hardware environment for DOS-era gaming, but it also adds a lot of ports missing from modern machines as well including a serial port. Not everything needs to be original hardware, though; a virtual floppy drive and microSD card reader make it easy to interface minimally with modern computers and transfer files easily. This isn’t the only way to game on new, native hardware, though. Others have done similar things with new computers built for legacy industrial applications as well.

Thanks to [Stephen] for the tip!

Continue reading “Back To The 90s On Real Hardware”

A Non-Sony Playstation Motherboard Replacement

As hardware ages, it becomes harder and harder to keep it in service. Whether that’s because of physical aging or lack of support from the company who built it in the first place, time is not generally good for electronics, especially when it comes to our beloved retro gaming systems. The first Playstation, for example, is starting to see some of the deleterious effects of having originally been built in the 90s, and [LorentioB] has a new, third-party motherboard to bring to the table to keep these systems online as well as adding some features in that Sony removed.

The motherboard is known as the nsOne, meaning Not Sony’s One since this is the first motherboard built by a single person outside of Sony. It’s not based on any FPGAs or emulators and is completely compatible with all of the original hardware, chips, and other circuitry of the original Playstation. Based on the PU-23 series, it even revives the removed parallel port, which Sony removed after the first versions of the hardware because of region locking concerns and other pro-consumer issues. Every chip footprint and connector was reverse engineered manually, using optical sanding, scanning, and net-by-net tracing.

For such a complex piece of hardware this is quite the feat, and for anyone who wants to restore old hardware or add the parallel port back on to their system this could be a game changer. [LorentioB] is not quite finished yet but hopes to have a finished version shortly. As far as fully opening up the system goes, there are some software hacks to look at that allow more games to run on the system and some hardware hacks that open the system up as well.

Unlocking The Potential Of A No-Name Handheld Game

The rise of inexpensive yet relatively powerful electronics has enabled a huge array of computing options that would have been unheard of even two decades ago. A handheld gaming PC with hours of battery life, for example, would have been impossible or extremely expensive until recently. But this revolution has also enabled a swath of inexpensive but low-quality knockoff consoles, often running unlicensed games, that might not even reach the low bar of quality set by their sellers. [Jorisclayton] was able to modify one of these to live up to its original promises.

This Ultimate Brick Game, as it is called, originally didn’t even boast the number of games, unlicensed or otherwise, that it claimed to. [Jorisclayton] removed almost all of the internals from this small handheld to help it live up to this original claim. It boasts a Raspberry Pi Zero 2W now as well as a TFT screen and has a number of other improvements including Bluetooth support for external controllers and upgraded audio. A second console was used for donor parts, and some case mods were made as well to accommodate a few extra buttons missing on the original console.

Right now the project is in a prototype phase, as [Jorisclayton] is hoping to use the donor case to build a more refined version of this handheld console in the future. Until then, this first edition upgrade of the original console can run RetroPie, which means it can run most games up through the Nintendo 64 era. RetroPie enables a ton of emulation for old video games including arcade games of the past. This small arcade cabinet uses that software to bring back a bit of nostalgia for the arcade era.

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.

Continue reading “Reverse Engineering LEGO Island”

You Can Now Play DOOM In Microsoft Word, But You Probably Shouldn’t

DOOM used to primarily run on x86 PCs. It later got ported to a bunch of consoles with middling success, and then everything under the sun, from random embedded systems to PDFs. Now, thanks to [Wojciech Graj], you can even play it in Microsoft Word.

To run DOOM inside Microsoft Word, you must enable VBA macros, and ignore security warnings, to boot. You’ll need a modern version of Word, and it will only work on Windows on an x64 CPU. As you might imagine, too, the *.DOCM file is not exactly lightweight. It comes in at 6.6 MB, no surprise given it contains an entire FPS. It carries inside it a library called doomgeneric_docm.dll and the whole doom1.wad data file. Once the file is opened, a macro then extracts all the game data and executes it.

If you think that Microsoft Word doesn’t really have a way of displaying live game graphics, you’d be correct. Instead, that DLL is creating a bitmap image of the game state for every frame, which is then displayed inside Word itself. It uses the GetAsyncKeyState function to grab inputs from the arrow keys, number keys, and CTRL and space so the player can move around. It certainly sounds convoluted, but it actually runs pretty smoothly given all the fuss.

While this obviously works, you shouldn’t get in the habit of executing random code in your word processor. It’s just not proper, you see, like elbows on the dinner table! And, you know. It’s insecure. So don’t do that.

Continue reading “You Can Now Play DOOM In Microsoft Word, But You Probably Shouldn’t”