Deeply Optimized MSX Emulation On ESP32-S3 With VGA Output

ESP32-S3 board with VGA and audio output during development. (Credit: Ivan Svarkovsky)
ESP32-S3 board with VGA and audio output during development. (Credit: Ivan Svarkovsky)

The ESP32-S3 is by many metrics quite the powerful little computer, which has led to it being used even for things like emulating retro consoles and similar. Here [Ivan Svarkovsky]’s S3-MSX-PC project pushes the envelope by taking the multi-system Retro-Go project’s MSX component and optimizing it for the ESP32-S3’s Xtensa Lx7 CPU cores.

The project involves an ESP32-S3 as the core, requiring at least 8 MB of PSRAM (N16R8 configuration) to match the tested configuration. Any software is loaded into PSRAM before it’s executed, with the MSX1, MSX2 and MSX2+ supported.

For audio you have to wire up your own PDM filters to connect to the two GPIO pins that are used for audio output, while VGA output is handled by a basic 2-bit R-2R RGB222 DAC. For input devices you can use any USB keyboard, while software is added via the web interface or directly onto an SD card.

The Technical Deep Dive section goes into more detail as to what exactly got changed – with the blessing of the fMSX author – in the original fMSX core, such as targeting the Lx7 core’s cache dimensions and optimizing hot paths to avoid bottlenecks. Memory accesses were aligned for Xtensa and moving certain data from Flash to RAM was another change, along with the prevention of pipeline flushing due to certain branching decisions.

Considering that MSX specifications are based on a Z80 core, it’s not so crazy that one of these ESP32-S3 MCUs can effectively emulate them. The Retro-Go project itself claims to cover a whole swath of Nintendo and Sega consoles, as well as others, making it almost too easy to do some retrogaming without even having to drag out a Raspberry Pi SBC or so.

Building A 1:150 Scale Toyota ProBox Micro Remote Control Car

Although in our imagination those scale models of cars certainly can drive and steer just like their full-scale counterparts, there’s something incredibly satisfying about watching them truly come to life. Here [diorama111] is an absolute master at the craft, with the most recent conversion of a 1:150 Toyota Probox car model once again demonstrating these skills with casual ease.

We previously covered such conversions, with another recent one in 2024 involving another 1:150 scale model. That particular one demonstrated driving around on scale model roads, which shows a good practical use of this conversion if you want to have e.g. a scale model town with cars that actually drive around.

In the video you can see how first the base of the scale model has a tiny 25 mAh Li-polymer battery installed, along with two motors, one for steering and one for driving using a rod-linkage system and a lead screw.

The tiny gears used were salvaged from mechanical watches, with photoreflectors keeping track of the driving and steering positions. Remote control is done by infrared, with a tiny SMD IR receiver module in the car, while charging and programming of the MCU is done via terminals installed on the bottom.

In the final part of the video the car is demonstrated driving around, with working head- and rear lights, as well as blinkers and stop lights, including the top rear one. In the video description links are provided to the various schematics and software on Google Drive for those who are feeling like a fun Sunday afternoon project.

Continue reading “Building A 1:150 Scale Toyota ProBox Micro Remote Control Car”

Repairing A Pair Of Voodoo 2 GPUs For Some SLI Action

Well there's your problem. (Credit: Bits und Bolts, YouTube)
Well there’s your problem. (Credit: Bits und Bolts, YouTube)

Recently [Bits und Bolts] stumbled over a pair of Dragon 3000 branded 3dfx Voodoo 2 cards in his unfixed cards pile, and decided that the best course of action was to not only fix them, but also run them in SLI for some sweet Unreal Tournament action. Naturally, these cards being in the broken cards pile meant that he first had to figure out why they were broken and fix all issues.

The advantage of having two identical Voodoo 2 cards is of course that any missing components, like some resistors on one card, could be referenced on the other card. Beyond that it was mostly a matter of reflowing clearly corroded pins on the ICs and replacing damaged resistors and resistor arrays before the first tests could be run.

Using the mojo utility it was easy enough to spot that there were still some lingering issues, with clear issues visible in 3D games as well. These were tracked down to a dodgy pin on one of the texture mapping units (TMUs) that needed some more reflowing, and a very sneaky resistor array that was cracked but not obviously so until prodded with a multimeter.

With both cards now making happy noises when individually tested, it was time to go full SLI, fire up the Pentium 2 system and enjoy the glory of 24 MB of VRAM at high resolutions in Unreal Tournament. Considering that the bloke who had sent in these cards had found them while cleaning up a shed, it’s quite amazing how little rework was needed to once again party like it’s 1999.

Continue reading “Repairing A Pair Of Voodoo 2 GPUs For Some SLI Action”

An image of the surface of Europa. The top half of the sphere is illuminated with the bottom half dark. The surface is traced with lineae, long lines across its surface of various hues of grey, white, and brown. The surface is a brown-grey, somewhat like Earth's Moon with the highest brightness areas appearing white.

Evidence For Water Vapor Plumes On Europa Vanishes In Re-Analysis

Unlike on Mars where for decades we have had dozens of orbital and ground-based platforms zipping and scurrying about to prod at every bit of emitted radiation, rock type and twitch of dust devils in its thin atmosphere, for other planets and their moons we have to do a lot more speculative interpretation of data. Such was the case with the presumed existence of water plumes on Jupiter’s moon Europa. These now appear to have been a statistical fluke, per research by [L. Roth] et al. in Astronomy & Astrophysics.

As succinctly summarized in the article on this by [Javier Barbuzano] of Sky and Telescope, the original 2013 finding of said water plumes by the same team was based on faint UV emissions from Europa’s southern hemisphere as captured by the Hubble Space Telescope. However, in more recent captures these emissions were not detected again, leading them to reexamine their original analysis of the 2013 data.

One of the main flaws was in the assumption of where Europe was located on Hubble’s 1,000 x 1,000 resolution detector, with the re-analysis showing that they were off by a couple of pixels. A second flaw was quite understandable as since 2013 we have learned that Europa has a thin hydrogen exosphere which interacts with the Sun’s UV radiation. The resulting scattering induces a UV glow which could be mistaken for UV radiation emanating from the moon’s surface.

Even with this one intriguing feature turning out to be a mirage, it doesn’t make Europa any less interesting as it’s still assumed to have vast liquid water oceans. Along with Uranus’ moon Miranda this makes it very worth it to experience more of the sights and sounds of these alien worlds, whether in person or via our robotic friends.

The Merits Of Comment-Driven Development As Counterweight To TDD

The world of software has seen many paradigms come and go, all of which were supposed to revolutionize its development. Still, one of the basic tenets in engineering of there being no shortcuts to just doing the work properly also rings true in the field of software engineering: trying to skip ‘nice to haves’ like proper documentation, code formatting, and proper testing inevitably results in developers nervously trying to ignore the looming avalanche of technical and other project debts as they keep piling up.

While Test-Driven Development (TDD) once got praised as the silver bullet, the principle of writing tests before writing code merely postpones the inevitable project collapse. The elephant in the room is that you cannot pass on the basics in engineering and expect to come out fine on the other end. There’s a reason why phrases like “all tests green, successfully failed in production” have become common.

This is where the concept of Comment-Driven Development (CDD) comes into play. What started as a bit of a joke many years ago stuck in my mind and led me to my current approach in software development that tries to effectively mirror solid engineering principles.

Continue reading “The Merits Of Comment-Driven Development As Counterweight To TDD”

Introducing Boron Buckyballs

A buckminsterfullerene, also known as a buckyball, is typically a fullerene consisting of sixty carbon atoms (C60) arranged in a way that resembles a football-like sphere. Extending this arrangement to other types of atoms has until now however proven as elusive as finding non-carbon-based lifeforms. In a paper by [Hyun Wook Choi] et al. and published in Chemical Science the discovery of boron buckyballs is detailed. There is also a soft-paywalled article in the Chemical & Engineering News magazine for a higher-level perspective.

The discovered boron-based buckyball ups the number of atoms to eighty, forming B80 (boron fullerite) with a slightly larger diameter than C60 at 0.85 nm versus 0.71 nm. Perhaps more interesting are the claims by the authors that boron fullerite may have more practical applications than its carbon-based cousin, mostly due to it being predicted to be a semiconductor with an 0.8 eV energy gap and better electron acceptance that provides interesting doping prospects.

Producing these boron structures used laser vaporization with a helium carrier gas that was seeded with argon to increase cooling efficiency. Inside this boron cluster the reported structures were then discovered and characterized as described in the paper.

Obviously, going from a fascinating laboratory discovery to bulk production won’t be easy, and the predicted properties of boron fullerite may turn out to be incomplete or have a dark side that we aren’t aware of. Regardless, they’re bound to be more useful at least than the carbon version that’s remained mostly a curiosity despite many years of research.

Safely Using Old EV Batteries In Your Home Solar Setup

As straightforward as the concept of taking battery packs out of an old electric or hybrid car and reusing them for home power storage sounds, this thought process skips a few essential steps. As argued by [Ed] in a recent video based on his own experiences with high-voltage Nissan Leaf batteries in a home PV system, the main problem is that you’re taking a battery out of a larger system including a lot of the management hardware and software.

The referenced Battery Emulator project is an open source effort to create a suitable interface between these EV batteries, with the mentioned Nissan Leaf being just one example in the project Wiki, with the connection scheme shown in the top image. It’s also noted that the Leaf battery BMS is not designed to operate continuously, so they need to be restarted every day or so lest they become too inaccurate.

These and other things are all solid reasons why you have to be absolutely certain that you want to integrate these high-voltage battery packs into your 12 – 48V low-voltage DC system. You’re after all assuming all the responsibility of setting up a system that’s both safe and reliable, so having a good read through something like the Battery Emulator Wiki and sourcing first-hand experiences from the folk in this community would be a very wise first step.

Continue reading “Safely Using Old EV Batteries In Your Home Solar Setup”