Game Graphics: Rasterization

Last time, I talked about racing the beam, a type of graphics used when memory was scarce. Now it’s time to step into the future with more memory and talk about what modern 2D games still do to this day: rasterization.

Just in time Memory

Continuing the trend set by racing the beam, rasterized graphics are also on a grid, just a much tinier one. Though not unique to rasterized, the “frame buffer” is the logical conclusion of bitmap mode fidelity: enough memory is allocated so that every pixel can have its own color. What’s different about a frame buffer is that everything is drawn before it is shown and, crucially, this doesn’t have to happen in the same order as the pixels are displayed. Rasterization draws entire shapes — triangles, lines and rectangles — into the frame buffer and the screen is typically updated all at once. Continue reading “Game Graphics: Rasterization”

Spice Up Your Earrings With Microelectronics

We’ve covered [mitxela] in the past and if you know him, you’ll likely know him for putting the micro in microelectronics. This year, he’s at it again with his LED Industrial Piercing.

A T-shaped flexible PCB that is smaller than an index finger
This tiny PCB is really pushing the limits of fabrication

Inspired by the absolutely tiny 0402 LEDs and industrial piercings, [mitxela] started thinking of a way to construct the 5cm long device. He found some normal LED earrings to steal the battery compartment from. Then, with a tick needle and some more steel, he created a new industrial earring with some holes.

Of course, no [mitxela] project is complete without comically tiny microsoldering and this project makes the VQFN ATTiny he used look large. He puts his PCB suppliers to the test with a merely 1mm wide flex PCB for the LEDs to be mounted on. Finally, he combines the flex PCB, the earring and some epoxy to create yet another piece of LED jewelry.

Video after the break.
Continue reading “Spice Up Your Earrings With Microelectronics”

Turbocharge Your Transient Sensors With Math

If you’ve made a robot or played around with electronics before, you might have used a time-of-flight laser distance sensor before. More modern ones detect not just the first reflection, but analyze subsequent reflections, or reflections that come in from different angles, to infer even more about what they’re looking at. These transient sensors usually aren’t the most accurate thing in the world, but four people from the University of Wisconsin managed to get far more out of one using some clever math. (Video, embedded below.)

The transient sensors under investigation here sends out a pulse of light and records what it receives from nine angles in individual histograms. It then analyzes these histograms to make a rough estimate of the distance for each direction. But the sensor won’t tell us how it does so and it also isn’t very accurate. The team shows us how you can easily get a distance measurement that is more accurate and continues by showing how the nine distance estimates can even distinguish the geometry it’s looking, although to a limited extent. But they didn’t stop there: It can even detect the albedo of the material it’s looking at, which can be used to tell materials apart!

Overall, a great hack and we think this technology has potential – despite requiring more processing power. Continue reading “Turbocharge Your Transient Sensors With Math”

Freshening Up Google’s USB-C PD Sniffer

USB-C Power Delivery has definitely made the big mess of wires a bit smaller but not all cables are created equal — some of them can handle upwards of 100 W while the cheapest can handle only 10. To accommodate this, USB-C cables need to actively tell both ends what their capabilities are, which turns an otherwise passive device into a hidden chip in a passive looking cable.

[Greg Davill] has decided to unravel the mystery of why your laptop isn’t charging by creating a USB-PD sniffer. Based on Google’s Twinkie sniffer, the FreshTwinkie makes the design more accessible by reducing the number of layers in the PCB and replacing the BGA variant of the STM32 for a more DIY-friendly QFN version. Interestingly, this isn’t the first time we’ve seen somebody try and simplify the Twinkie; back in 2021, the Twonkie from from [dojoe] hit a number of similar notes.

USB-C Power Delivery is just one of many protocols spoken over the CC pins, and the FreshTwinkie might be able to detect when some of those are enabled and why or why not. With future development, it could potentially provide useful information as to why a Thunderbolt 4 or tunneled PCIe device isn’t working correctly.

PicoGUS: For All Your ISA Sound Card Needs

Sound cards used to be a big part of gaming machines in the 90s and 2000s but have largely gone extinct in the wake of powerful CPUs doing the sound themselves. Sound cards were expensive back then and, because the good ones weren’t very common, are expensive still for the retro gamer. But if you don’t need the real thing, [polpo] has you covered with his RP2040-based ISA sound card.

The PicoGUS, as he calls it, primarily serves to replace the Gravis UltraSound with modern components at a low cost. It uses the RP2040’s PIO to attach to an ISA bus and the RP2040’s dual-core power to synthesize the audio for its primary target, but also the AdLib (OPL2), CMS/Game Blaster and Tandy 3-Voice. [polpo] sells the PicoGUS on his Tindie store, but since it’s open source, you can of course just make your own.

Although “work-in-progress”, the PicoGUS is very useful to the right person and a perfect demonstration of how the RP2040’s PIO can be used to interface with almost any type of protocol.

Of couse, that’s not the only way to use the PIO, you can also create a CAN bus or even add another USB port.

Zork Zcode Interpreters Appear Out Of Nowhere

Some of our readers may know about Zork (and 1, 2, 3), the 1977 text adventure originally written for the PDP-10. The game has been public domain for a while now, but recently, the interpreters for several classic 1980s machines have also appeared on the internet.

What’s the difference? Zork is not a PDP-10 executable, it’s actually a virtual machine executable, which is in turn run by an interpreter written for the PDP-10. For example, Java compiles to Java bytecode, which runs on the Java virtual machine (but not directly on any CPU). In the same way, Zork was compiled to “Z-machine” program files, called ZIP (which was of course used in 1990 by the much more well known PKZIP). To date, the compiler, “Zilch” has not been released, but the language specification and ZIP specifications have, which has led some people to write custom ZIP compilers, though with a different input language.

For more on the VM, check out Maya’s Zork retrospective. (And dig the featured art. Subtle!)

Of course, that’s not the only type of interpreter. Some programming languages are interpreted directly from source, like this BASIC hidden in the ESP32’s ROM.

A 1/5th scale hydraulic jack model

Miniature Hydraulic Jack Is A Scale Marvel

Most hydraulic jacks are big tools that can lift upwards of 1000 kg but [Maker B]’s is quite a bit smaller than average.

The world’s smallest hydraulic jack is a tiny hand-machined model made out of tiny pieces of iron, brass and copper. But here’s the kicker: It’s a real hydraulic jack with real hydraulic fluid! At 1/5th scale, it obviously isn’t as strong as a full-size jack, but it can still easily lift an impressive 24 soda cans! Switching between the lathe and mill, [Maker B] shows how all the parts of the jack are made from stock metal in detail, and even explains in simple terms how a hydraulic jack works in this masterpiece of a video.

Over the years, we’ve seen plenty of tiny objects cranked out from stock pieces of metal — often bolts. But the fact that the end result here is a working tool, puts it into a decidedly less common niche. Of course, given what we’ve seen from [Maker B] in the past, it’s hardly a surprise.
Continue reading “Miniature Hydraulic Jack Is A Scale Marvel”