Running DOOM And Super Mario 64 Inside A PDF File

Although generally described as a document format, PDFs have ballooned from a Postscript-lite format into a mutant featuring XML and JavaScript support, basically turning what once was a fairly simple format into an interactive page. Naturally, this has to be used for good, and that is why we have the Doom PDF project, as well as [Game of Tobi] using that project as the inspiration for a Super Mario 64 port based on the decompiled source code.

The nice thing about the Super Mario 64 version is that it’s stand-alone, running from a 23.5 MB PDF, unlike the Doom PDF which runs the game in DOSBox. The compromise is that Super Mario 64 PDF runs at just a few FPS, with the output in glorious ASCII.

What enables this feat is to open the PDF in a viewer that supports JavaScript, with the PDF.js that comes with most browsers generally allowing for integrated JS in the PDF to be executed. Unfortunately [Game of Tobi] hasn’t released source code for this project, but we hope that this is forthcoming.

While one can argue about the practicality of this whole demonstration from a gaming perspective, it definitely shows that PDF as a format has gotten way out of hand now that it’s even overrun with hellspawn and Italian plumbers.

Continue reading “Running DOOM And Super Mario 64 Inside A PDF File”

Fixing Sony And Philips’ Doomed CD-i Console

Although not intended to be a game console, the CD-i would see a a couple of games released for it that would cement its position in gaming history as the butt of countless jokes, some of which still make Nintendo upset to this day. That aside, it’s still a fascinating glimpse at the CD-based multimedia future envisioned in the early 90s, starting with its release in 1990. Recently [MattKC] decided to purchase another CD-i in a fit of nostalgic rage, and repair it to show the world what the future could have been like.

Although Sony and Philips co-developed the device, Sony would go on to release the PlayStation a few years later, which made the CD-i’s life and expectations for it that much harder, leading to it slowly fading into history. The Magnavox one that [MattKC] got is one of the later models, based on the CD-i 450 that was introduced in 1994 as one of the more gaming-oriented models.

As is typical with older devices that use optical media, it would not read discs. It also would sometimes boot up with a ‘Memory Full’ error. This is a common fault due to the built-in battery having run out, erasing RAM-stored values and causing random glitches like this when garbage values were read in on boot.

Continue reading “Fixing Sony And Philips’ Doomed CD-i Console”

Writing An Optimizing Tensor Compiler From Scratch

Not everyone will write their own optimizing compiler from scratch, but those who do sometimes roll into it during the course of ever-growing project scope creep. People like [Michael Moroz], who wrote up a long and detailed article on the why and how. Specifically, a ‘small library’ involving a few matrix operations for a Unity-based project turned into a static optimizing tensor compiler, called TensorFrost, with a Python front-end and a shader-like syntax, all of which is available on GitHub.

The Python-based front-end implements low-level NumPy-like operations, with development still ongoing. As for why Yet Another Tensor Library had be developed, the reasons were that most of existing libraries are heavily focused on machine learning tasks and scale poorly otherwise, dynamic control flow is hard to implement, and the requirement of writing custom kernels in e.g. CUDA.

Above all [Michael] wanted to use a high-level language instead of pure shader code, and have something that can output graphical data in real-time. Taking the gamble, and leaning on LLVM for some parts, there is now a functional implementation, albeit with still a lot of work ahead.

Rare-Earth-Free Magnets With High Entropy Borides

Map of the calculated magnetic anisotropy. (Credit: Beeson et al., Adv. Mat., 2025)
Map of the calculated magnetic anisotropy. (Credit: Beeson et al., Adv. Mat., 2025)

Although most of us simultaneously accept the premise that magnets are quite literally everywhere and that few people know how they work, a major problem with magnets today is that they tend to rely on so-called rare-earth elements.

Although firmly in the top 5 of misnomers, these abundant elements are hard to mine and isolate, which means that finding alternatives to their use is much desired. Fortunately the field of high entropy alloys (HEAs) offers hope here, with [Beeson] and colleagues recently demonstrating a rare-earth-free material that could be used for magnets.

Although many materials can be magnetic, to make a good magnet you need the material in question to be both magnetically anisotropic and posses a clear easy axis. This basically means a material that has strong preferential magnetic directions, with the easy axis being the orientation which is the most energetically favorable.

Through experimental validation with magnetic coercion it was determined that of the tested boride films, the (FeCoNiMn)2B variant with a specific deposition order showed the strongest anisotropy. What is interesting in this study is how much the way that the elements are added and in which way determines the final properties of the boride, which is one of the reasons why HEAs are such a hot topic of research currently.

Of course, this is just an early proof-of-concept, but it shows the promise of HEAs when it comes to replacing other types of anisotropic materials, in particular where – as noted in the paper – normally rare-earths are added to gain the properties that these researchers achieved without these elements being required.

The Inner Workings Of The Intel 8086’s Arithmetic Logic Unit

In the 1970s CPUs still had wildly different approaches to basic features, with the Intel 8086 being one of them. Whereas the 6502 used separate circuits for operations, and the Intel 8085 a clump of reconfigurable gates, the 8086 uses microcode that configures the ALU along with two lookup tables. This complexity is one of the reasons why the Intel 8086 is so unique, with [Ken Shirriff] taking an in-depth look at its workings on a functional and die-level.

These lookup tables are used for the ALU configuration – as in the above schematic – making for a very flexible but also complex system, where the same microcode can be used by multiple instructions. This is effectively the very definition of a CISC-style processor, a legacy that the x86 ISA would carry with it even if the x86 CPUs today are internally more RISC-like. Decoding a single instruction and having it cascade into any of a variety of microcodes and control signals is very powerful, but comes with many trade-offs.

Of course, as semiconductor technology improved, along with design technologies, many of these trade-offs and disadvantages became less relevant. [Ken] also raises the interesting point that much of this ALU control technology is similar to that used in modern-day FPGAs, with their own reconfigurable logic using LUTs that allow for on-the-fly reconfiguration.

Did We Overestimate The Potential Harm From Microplastics?

Over the past years there have appeared in the media increasingly more alarming reports about micro- and nanoplastics (MNPs) and the harm that they are causing not only in the environment, but also inside our bodies. If some of the published studies were to be believed, then MNPs are everywhere inside our bodies, from our blood and reproductive organs to having deeply embedded themselves inside our brains with potentially catastrophic health implications.

Early last year we covered what we thought we knew about the harm from MNPs in our bodies, but since then more and more scientists have pushed back against these studies, calling them ‘flawed’ and questioning the used methodology and conclusions. Despite claims of health damage in mice, institutions like the German federal risk assessment institute also do not acknowledge evidence of harm to human health from MNPs.

All of which raises the question whether flawed studies have pushed us into our own Chicken Little moment, and whether it’s now time to breathe a sigh of relief that the sky isn’t falling after all.

Continue reading “Did We Overestimate The Potential Harm From Microplastics?”

Using 3D Printing And Copper Tape To Make PCBs

In a recent video [QWZ Labs] demonstrates an interesting technique to use 3D printing to make creating custom PCBs rather straightforward even if all you have is a 3D printer and a roll of copper tape.

The PCB itself is designed as usual in KiCad or equivalent EDA program, after which it is exported as a 3D model. This model is then loaded into a CAD program – here Autodesk Fusion – which is used to extrude the traces by 0.6 mm before passing the resulting model to the 3D printer’s slicer.

By extruding the traces, you can subsequently put copper tape onto the printed PCB and use a cutting tool of your choice to trace these raised lines. After removing the rest of the copper foil, you are left with copper traces that you can poke holes in for the components and subsequently solder onto.

Continue reading “Using 3D Printing And Copper Tape To Make PCBs”