Chris Williams

Chris Williams

@diodesign.org

Work @developers.google.com Previously @theregister.com Wear sunscreen.

482 followers249 following93 posts

Free rein, especially. When I see 'free rein / reign' in text, it's like an NMI fires to double-check the usage. Same with 'its / it's'.

Merriam-Webster@merriam-webster.com

We acknowledge that no one has the bandwidth for this, but if it helps: -It’s ‘sleight of hand’ -It’s ‘bated breath’ -It’s ‘lo and behold’ -It's 'buck naked' -It’s ‘brass tacks’ -It’s ‘free rein’ -It’s ‘toe the line'

Thanks for the interview - that was fun to talk about Drobe to El Reg. Archive is the mag you need if you're using RISC OS. It's interesting that this AI era is resulting in a noticeable uptick in development output in the post-Acorn community. Agents can have a big impact in niches

Archive Magazine@archiveriscos.bsky.social

The latest issue of Archive, the magazine for RISC OS users, is out now! Volume 28 Issue 4 launches today, with the digital edition going out in batches and the printed edition dropping through letterboxes in 18 countries around the world shortly. www.riscosopen.org/forum/forums...

Recently learned there's a name for the weird and wonderful art style used on the covers and pages of textbooks and some computer manuals from the 1990s. It's called Utopian Scholastic. Think hi-res, well-lit animals, instruments, food and similar against clinical white negative space. Encartawave.

You know these from encyclopedias, edutainment CD-ROMs, and Dorling Kindersley books. Then I remembered Acorn Computers having manuals like this, which fits given its focus on UK schools in the 1980s and 1990s following the BBC Micro program. Contrasts the utilitarian PC manuals for businesses.

With permission from the current IP holder, Sky in the UK, too, which is really cool. I'm pretty much stunned by this. It's a full deep dive into how a family of home computer systems, including their custom chips, were designed by hand by really clever people back in the day

BTW I previously tried using the Unicorn engine for embedded dynarec. While this is an awesome piece of software, based on Qemu, it didn't really fit my bare-metal needs. So I started my own dynarec engine, inspired by Bleem, beginning with RV32 then aarch64 then the ultimate monster: x86_64

Previously experimented with a RISC OS-like WIMP (Windows, Icons, Menus, Pointer) desktop environment, but I think a fixed BIOS/UEFI-like GUI is better for managing a virtualization host. Individual guest VMs can provide the desktop apps/environment, routed through the GUI VM, if needed.

Working on adding a Unicorn-based emulation layer to my 64-bit RISC-V hypervisor so you can run non-native guests (riscv32, aarch64, x86_64) seamlessly. Below, the green text is console output from an x86 Linux guest amid hypervisor debug traces. Still WIP! More: github.com/diodesign/di...

My first proper paid job was reverse-engineering products and firmware for interoperability purposes, so this not only resonates but also is entirely accurate and representative of the kind of work involved in examining these kinds of devices.

I rewrote my RISC-V hypervisor in Zig and added support for new features like hardware virtualization (H extension). It previously used segmented physical memory for guest isolation, and will fall back to that if H is not present. asciinema.org/a/XbV4OoBD8G... Need to tidy up the code

asciinema.orgFirst RISC-V Linux guest boot of Zig Diosix hypervisorDiosix, rewritten in Zig for 64-bit RISC-V systems, boots a guest virtual machine, and allows console-based interaction with this VM.

For further proof that OS development is hard: copy.fail A page cache corruption that stays in memory but never hits the disk. Since the disk remains "clean," checksums don’t catch it. It allows unprivileged users to gain root or escape containers by corrupting shared memory of sensitive binaries.

copy.failCopy Fail — 732 Bytes to RootCVE-2026-31431. 100% Reliable Linux LPE — no race, no per-distro offsets, page-cache write that bypasses on-disk file-integrity tools and crosses containers. Found by Xint Code.

Developing a Dungeons & Dragons style NES RPG in 6502 assembly must have been tough, even if its programmer thought the job was "pretty simple" due to his experience with the Apple II.* Still, the code was fairly buggy, as illustrated in this cool video below * www.gamesradar.com/games/final-...

Displaced Gamers@displacedgamers.bsky.social

Ever wonder how Final Fantasy gets the numbers you see during battle? How do your stats contribute to physical attacks? Are there any bugs in the game? (spoilers: uhh... yeah) Behind the Code has finally reached Final Fantasy. Enjoy. youtu.be/O_CLnBCgJks

Super-in-depth look at the 6502 assembly in a NES game, with lessons for today's code in terms of performance optimization decisions and missteps

Displaced Gamers@displacedgamers.bsky.social

Have you ever played Commando on the NES? Ever notice how the scrolling seems to jump and jitter as you move up the screen? WHY does it do that!? Let's find out! New Behind the Code: youtu.be/OauZmS0Klxw

A cool demonstration of Zig as a language IMO: a PlayStation 1 emulator with built-in dissembler and debug. It emulates the 32-bit MIPS 3000A-based CPU core as well as the Sony GPU, GTE, SPU, and more Readable code, too, and links to system reference info github.com/maxpoletaev/...

github.comGitHub - maxpoletaev/nupsx: Experimental PlayStation 1 emulatorExperimental PlayStation 1 emulator. Contribute to maxpoletaev/nupsx development by creating an account on GitHub.

This is going to date me, but in college I studied 90 to 45nm processes for my EE degree. I asked a professor about sub-45 and his response was: "oh, that's just dark magic." I dunno how he'd describe sub-10nm. Anyway, if you don't know how modern chips are made, check this out

conputer dipshit@davidcrespo.bsky.social

extremely cool and a good intro to wtf computer chips are

To build and run on Linux: 1. Make sure you've installed: * clang * lld * Qemu with the 32-bit RISC-V system emulator 2. Clone the repo from GitHub and edit its run-dot-sh file so: CC=clang OBJCOPY=llvm-objcopy 3. Run in a terminal: ./run.sh

I like alternative languages and architectures to see how syntax, structure, and other implementation details can be done differently. There's not only ziglang.org which I think is cool, but also SystemVerilog alternative Veryl: github.com/veryl-lang/v... Yet another side project coming on.

github.comGitHub - veryl-lang/veryl: Veryl: A Modern Hardware Description LanguageVeryl: A Modern Hardware Description Language. Contribute to veryl-lang/veryl development by creating an account on GitHub.