Sail Virtually Aboard The “Itanic” With IA-64 Emulator

Intel’s Itanium architecture was an interesting experiment, but it has gone down in history as one of the chip giant’s bigger flops, so much so that it earned the name “Itanic” in the tech press. This is perhaps unfair, considering it did limp on until a quiet EOL in 2020. We didn’t know anyone missed it, but perhaps it was more the technical challenge than nostalgia for obsolete server hardware that led [Yufeng Gao] and [gdwnldsKSC] to spin up an instruction-set translator for the late, lamented, IA-64 architecture.

Note that it’s very much in alpha, version 0.1, so don’t expect all the things. Neither HP-UX and OpenVMS will boot, which is a pity since Itanium’s great success was arguably winning those OSes and thereby killing the bespoke architectures HP and DEC had at the time. Gentoo can get to a shell, as long as you use Kernel 6.6 or older, and Windows Server 2003 and XP-64 both apparently boot.

It’s not incredibly performant, with 486-level speeds when running on Ryzen 5000 series hardware, but then, it is a 64-bit hardware being emulated here, and pretty weird hardware at that. Itanium’s Very Long Word Instruction architecture was notoriously hard to program well. Specifically, it was hard to compile optimized programs for, so we expect optimizing an emulator is going to be similarly difficult. That’s why this is so impressive, even at this early stage.

The late, unlamented Itanium is probably one of the few systems not in the Virtual OS Museum, but perhaps eventually this project will change that.

via Raymii.org

DOOM Runs (slowly) In A IBM PC-Compatible CSS Sheet

Just when you thought we’d run out of things to port DOOM to, here comes [Ahmed Amer] with his CSS-DOS, a massive 300 MB CSS style sheet, that runs not just DOS, but Windows 1.0 and, of course, DOOM. The CSS sheet isn’t holding a DOOM port this time, though — it’s holding a full IBM PC compatible, with a simulated 8086, 640 kB of RAM, floppy and VGA controllers. Yes, in one style sheet. We did mention it was 300 MB, right?

CSS is not a very good programming language. It’s got functions and if statements nowadays, but it doesn’t really do programs in the usual sense. That is, lists of instructions that feed one into another. You can’t change a variable without jumping through hoops. The sort of static behavior you get from a CSS sheet actually matches hardware architecture better than software, which was the key insight [Ahmed] had to make the project possible. It’s still not easy, or elegant, or perhaps even sane, as you can find out from the excellent write-up he has describing how he pulled this off. We particularly like the interactive guide to the full mountain of madness that is the .css file.

Now, we admit that “runs DOOM” may be an exaggeration — even if the maddeningly massive CSS sheet ran an IBM-AT full speed, that hardware can’t handle the game at any playable speed. It doesn’t emulate at anything close to full speed, though. Because this is such a gratuitously weird hack, it only runs at two instructions per second. No, not FPS, instructions, as in at the CPU level. Well, it could be worse, at least it’s not clock ticks. Still, if you’re time-dilated enough you can wait the 3 weeks to boot DOS, and the 3 months to load a level, you can play DOOM at 0.0001 FPS.

Look, we didn’t make the rules — they say everything has to try and run DOOM. They don’t say everything has to run it well.

A 6502 All In The Data

Emulating a 6502 shouldn’t be that hard on a modern computer. Maybe that’s why [lasect] decided to make it a bit harder. The PG_6502 emulator uses PostgreSQL. All the CPU resources are database tables, and all opcodes are stored procedures. Huh.

The database is pretty simple. The pg6502.cpu table has a single row that holds the registers. Then there is a pg6502.mem table that has 64K rows, each representing a byte. There’s also a pg6502.opcode_table that stores information about each instruction. For example, the 0xA9 opcode is an immediate LDA and requires two bytes.

The pg6502.op_lda procedure grabs that information and updates the tables appropriately. In particular, it will load the next byte, increment the program counter, set the accumulator, and update the flags.

Honestly, we’ve wondered why more people don’t use databases instead of the file system for structured data but, for us, this may be a bit much. Still, it is undoubtedly unique, and if you read SQL, you have to admit the logic is quite clear.

We can’t throw stones. We’ve been known to do horrible emulators in spreadsheets, which is arguably an even worse idea. We aren’t the only ones.

A Novelty Clock Makes The Best Tiny Mac Yet

We’re lucky enough in 2026 to have cheap single-board computers fast enough to emulate machines from the 1990s, touching on the 32-bit era. We’ve seen a few projects as a result, emulating the Apple Macs of the 68000 era, but even with the best 3D printing, they can disappoint when it comes to the case. So when [This Does Not Compute] saw a novelty alarm clock using a very well-modelled mini replica of an early Mac, putting a Mac emulator in it was the obvious way to go.

The project uses a Raspberry Pi with a small colour LCD.  The video below the break takes us through the process of gutting it and mounting the Pi and display on a custom 3D-printed bracket. In an unexpected touch, parts of the original LCD are used to give the curved corners, which owners of an original Mac will remember. It may have a little further to go in that its fake floppy drive is begging to be converted to an SD card slot, and it has a now-unused brightness dial. But we’d say it’s one of the best little Mac emulators we’ve seen so far, if perhaps not the smallest.

Continue reading “A Novelty Clock Makes The Best Tiny Mac Yet”

PlayStation 3 Emulator RPCS3 Can Play Nearly Three-Quarters Of All PS3 Games

Although already having entered the territory of ‘retro gaming’, the Sony PlayStation 3 remains a notoriously hard to emulate game console. Much of this is to blame on its unique PowerPC-based Cell processor architecture, which uses a highly parallel approach across its asymmetric multi-core die that is very hard to map to more standard architectures like those in today’s x86 and ARM CPUs. This makes it even more amazing that the RPCS3 emulator team has now crossed the 70% ‘playable’ threshold on their compatibility list.

This doesn’t mean that you can fire up these games on any purported ‘gaming system’, as the system requirements are pretty steep. If you want any kind of enjoyable performance the recommended PC specifications feature an Intel 10th generation 6-core CPU, 16 GB of dual-channel RAM and a NVIDIA RTX 2000 or AMD RX 5000 series GPU or better.

It should be noted here also that the ‘playable’ tag in the compatibility list means that the game can be completed without game breaking glitches. Performance remains an issue, with very creative optimizations through e.g. the abuse of x86 SIMD instructions remaining the topic of research by the emulator developers. Yet as original PS3 hardware gradually becomes less available, the importance of projects like RPCS3 will become more clear.


Header: Evan-Amos, Public domain.

EmuDevz Is Literally A Software Game

The idea of gamifying all the things might have died down now that the current hype is shoving AI into all the things — but you’ve probably never seen it quite like EmuDevz, a game in which you develop an 8-bit emulator by [Rodrigo Alfonso].

There’s a lot of learning you’ll have to do along the way, about programming and how retro systems work, including diving into 6502 assembly code. Why 6502? Well, the emulator you’re working on (it’s partially-written at the start of the game; you need only debug and finish the job) is for a fantasy system called the NEEES “an antique game console released in 1983”. It’s the NEEES and not NES for two reasons. One, Nintendo has lawyers and they really, really know how to use them. Two, by creating a fantasy console that is not-quite-a-Famicom, the goalposts for EmuDevz can be moved a bit closer in.

Continue reading “EmuDevz Is Literally A Software Game”

The Power-Free Tag Emulator

Most of you know how an NFC tag works. The reader creates an RF field that has enough energy to power the electronics in the tag; when the tag wakes up, two-way communication ensues. We’re accustomed to blank tags that can be reprogrammed, and devices like the Flipper Zero that can emulate a tag. In between those two is [MCUer]’s power-free tag emulator, a board which uses NFC receiver hardware to power a small microcontroller that can run emulation code.

The microcontroller in question is the low-power CW32L010 from Wuhan Xinyuan Semiconductor, a Chinese part with an ARM Cortex M0+ on board. Unfortunately, that’s where the interesting news ends, because all we can glean from the GitHub repository is a PCB layout. Not even a circuit diagram, which we hope is an unintended omission rather than deliberate. It does, however, lend itself to the fostering of ideas, because if this designer can’t furnish a schematic, then perhaps you can. It’s not difficult to make an NFC receiver, so perhaps you can hook one up to a microcontroller and be the one who shares the circuit.