Oli's old stuff

Tinkering with retro and electronics

Apr 19, 2020 - 9 minute read - spectrum z80 retro gamedev smeg

Introduction to SMEG

Introducing SMEG In this post I’m going to introduce the SMEG adventure game system that I’m creating to build my ZX Spectrum point and click adventure. What is SMEG? SMEG stands for Scriptable MachinE for adventure Games, a very tenuous play on words that pays homage to Lucas Arts’ SCUMM and one of my favourite TV shows, Red Dwarf. Rather than just being a fun acronym, it nicely describes the approach and the architecture of the system.

Mar 1, 2020 - 6 minute read - spectrum z80 retro gamedev

Making a game for the ZX Spectrum in 2020

Making a game for the ZX Spectrum in 2020 One of the aims for me creating my Spectrum emulator neccy (short for not a speccy) was so I could learn the ins-and-outs of the Spectrum - something I never did when I was using this machine back in the 80’s. “What better way to learn it”, I thought, “than to create an emulator?”. As it stands, writing an emulator for a 35+ year old machine is really only part of the puzzle.

Feb 15, 2020 - 12 minute read - emulator spectrum

neccy - Toy 48k Emulator Feb 2020 roundup

Hello again, neccy! It’s been a while since I posted about neccy, my toy 48k ZX Spectrum emulator. It’s probably a good idea to remind ourselves where we were. My next milestone is to get Sinclair BASIC working. After that, who knows - I’ll probably try and go for sound and then onto trying to run a game. It’s a long journey ahead. And here’s how it looked:

Nov 17, 2019 - 5 minute read - emulator spectrum

Hello, neccy

Hello, neccy! It’s been a (long) while since I blogged. I thought I’d break the silence by talking about a fun little project I started. I was working on a 2d physics based game and was getting frustrated by my own lack of maths knowledge. One night I watched One Lone Coder’s video series on building a NES emulator and it triggered a something of a nostalgia vibe in me.

Aug 4, 2017 - 4 minute read - oldcode

OldCode (Manta-X) July 2017 Roundup

July 2017 Roundup Wow, it’s been a month already? I’ve not written an update for a while, but it doesn’t mean that activity has stopped on the OldCode / Manta-X project. Name Change The last thing I did in July was to change the “internal” branding (namespaces, project names, etc) from “Manta-X” to “OldCode”. Manta-X was always a code name, and one from the original days of the project (pre-rediscovery & updates, I may add).

Jul 1, 2017 - 4 minute read - oldcode

Manta-X: 2d or bust!

Why 3D is bad for me The goal of this project was always to make a game. Specifically, to make a top-down, side scrolling shump type of game. The previous old code entries talked about ripping out superflous stuff and pulling the project back to the essence of what 2004 me was trying to achieve. I started looking into modernizing the codebase to a newer version of OpenGL, one that moves away from immediate mode and into the realm of shaders.

Jun 16, 2017 - 5 minute read - vm languages

gmc - Hacking a toy VM

gmc: Hacking a toy VM If anyone remembers me from back in the “old code” days (circa 2006), there was a scripting language I used to use called GameMonkey Script. It was a lua-like language that was designed to be more familiar to C++ programmers. Back in the day, I used to contribute minor changes to the core language itself as well as write about it on GameDev.net. GameMonkey itself is long dead, having been put into a maintence-only mode by one of the original authors (see Greg’s Github and abandoned completely by Matt, the other author.

Aug 3, 2016 - 6 minute read - oldcode

Updating Manta-X (Part 3)

Updating Tech Whilst I have have stripped out a lot of cruft and slowly begun bringing the project up to date, remember that a lot of the technologies we’re currently based on are very old - even after the update from a couple of years ago when I brought in SDL 1.2, TinyXml 2 and Visual Studio 2012. I decided that whilst things are fairly simple, I should upgrade some of the foundations - it’ll be easier to do it now before things get more complex.

Jul 31, 2016 - 4 minute read - oldcode

Updating Manta-X (Part 2)

Components Last time around we devolved the hierarchy into a component-based model. I wanted to clean that up a bit to make creating and accessing components a bit simpler. At this point I’m not interested in exploring ‘pure’ entity-component models or arriving at a super-optmized solution, I’ll just implement something that makes working on the current system a bit more convenient whilst not closing off any future avenues. Here’s the current GameObject class:

Jul 31, 2016 - 5 minute read - oldcode

Updating Manta-X

Old Code, New Code The last 8 posts have focussed on the past, bringing an old dog back to life. Now it’s time to look to the future. We’re no longer stripping things away, we’re now in the process of refactoring, modernising and - Horus forbid - adding new features. The process of iteratively refactoring something is a skill you seem to pick up with experience. I clearly didn’t have this skill 12 years ago, as I left the game in a broken state, with a bunch of things ripped out and not working.