article

Adding Scripting to .NET Applications

An article describing how you could add JavaScript script support to your .NET applications via the Jint package.

avatar
Richard Moss
article

Writing DOOM WAD files

In a prior post, I described id's WAD format used by classic games such as DOOM and how to read them. This post covers how to write them. As with my first post, this only covers the original WAD format, not the enhanced ones which followed.

avatar
Richard Moss
article

Decoding DOOM Picture Files

In my previous post, I described id's WAD format used by classic games such as DOOM and how to read them. While researching the format though, I wasn't 100% sure that I was extracting lumps properly - the only readable file I'd discovered was `DMXGUS` in `DOOM1.WAD`, and also `LICENSE` in `DARKWAR.WAD`... hardly conclusive. Armed with the specification from the DOOM FAQ I decided to take a brief segue into decoding the pictures to verify the lumps I was extracting were valid.

avatar
Richard Moss
article

Reading DOOM WAD Files

WAD "Where's All the Data" files used by DOOM and various other games are simple containers, similar to zip and other archive formats, without additional complexity (such as compression) and data-centric rather than file. This article describes how to read the WAD files used by DOOM, DOOM II, Rise of the Triad and similar games of that area. The article covers reading of a WAD and extracting its contents

avatar
Richard Moss
article

A review of the Argon ONE Raspberry Pi 4 Case

A review of the Argon ONE Raspberry Pi 4 case and my initial experiences with it.

avatar
Richard Moss
article

Installing Mopidy and pHAT Beat on a Raspberry Pi

Installing Mopidy on a Raspberry Pi Zero W using the pHAT Beat audio hat.

avatar
Richard Moss
article

Tools we use - 2019 edition

A round up of the different software tools used by Cyotek over the past year.

avatar
Richard Moss
article

Resolving compile error "Interop type cannot be embedded. Use the applicable interface instead"

When working with COM interop libraries you may receive the compile error "Interop type cannot be embedded. Use the applicable interface instead". This article describes two common causes of this error and how to resolve it.

avatar
Richard Moss
article

CanoScan LiDE 100 Windows 10 and Windows 11 Compatibility

Although officially the Canon CanoScan LiDE 100 scanner is not supported on Windows 10 or Windows 11, I have found that it is fully functional. This article describes the versions of Windows I have tested the scanner with along with any observations.

avatar
Richard Moss
article

Book Review: The Ray Tracer Challenge

A review of the book "The Ray Tracer Challenge", by Jamis Buck.

avatar
Richard Moss
article

Error VSP1048 when trying to instrument assembly created using Visual Studio 2019

A brief note on assemblies compiled with Visual Studio 2019 and their compatibility with older Visual Studio tooling.

avatar
Richard Moss
article

Creating a custom type converter part 3: Types to string

How to use a TypeConverter to provide editing of immutable structs that are properties of containing objects via a PropertyGrid.

avatar
Richard Moss