OS Dev with QEMU, OVMF, and GDB on Windows

According to The OSDev Wiki "Any recent version of QEMU with a recent version of OVMF will be sufficient to run a UEFI application". Nice. How do we set this up on a Windows host? Download a QEMU Windows build from https://qemu.weilnetz.de/w64/ (direct link to the latest version as of the writing of this: https://qemu.weilnetz.de/w64/2020/qemu-w64-setup-20200814.exeContinue reading OS Dev with QEMU, OVMF, and GDB on Windows

Difference between “dynamic-link library with exports” and “dynamic-link library” in Visual Studio

TL;DR: "with exports" means the project starts with some example exports added. You'll need exports, so why not let it insert some boilerplate code for you? Less chance of typos. Use "dynamic-link library" instead of "dynamic-link library with exports" if you want to add '__declspec' to things yourself. So you want to create a DLL … Continue reading Difference between “dynamic-link library with exports” and “dynamic-link library” in Visual Studio

An Ancient Game Engine Time Capsule

I stumbled across a 3-episode podcast (really 2 and a quarter because the second audio file is cut short) relating to an ancient 3D game graphics engine from 2008: http://egtpm.blogspot.com/2009/06/20080605egtpodcst-e3.html It's interesting to hear these folks talking about the future features of their game engine. Little did they know dark times were waiting in the … Continue reading An Ancient Game Engine Time Capsule

To use our product, just create a config file in an obscure directory

I love Sublime Text, but I can feel the death by a thousand paper cuts beginning. After a product has been on the market for long enough, the people developing it tend to stop caring about the user experience. Today I wanted to stop Sublime Text from zooming in any time I accidentally held down … Continue reading To use our product, just create a config file in an obscure directory

Capturing frames from a simulated HDL VGA generator

I've been following Will Green's excellent FPGA VGA Graphics in Verilog series, wherein he creates a VGA output block in Verilog, and displays some sprites on the screen. I wanted to do away with the need for physical hardware, and simulate the VGA generator entirely (I gotta have my end-to-end testing!) using Icarus Verilog. So … Continue reading Capturing frames from a simulated HDL VGA generator