Welcome to ThePixelMage.

Try to learn something.
<-Back

The Retro Experience

Published: 2024-1-20

Overview

I often find myself feeling nostalgic for those childhood times watching cartoons and playing video games at a time when life was simple and TV’s were in 4:3. The goal of this project is to create a “Retro Experience” using mostly hardware I have lying around my apartment (or found on the side of the road). This post will serve as an introduction to the project and also include’s chapter 1 of the journey. Stay tuned for additional chapters published as I can.

Hardware

Most of the following pieces of hardware I had lying around already.

  • Raspberry Pi 3b+ (upgrading homelab to pi5 so have this as spare)
  • 8BitDo SN30 Pro Controller (Christmas present last year!)
  • MicroSD card 32gb (leftover from a multi-pack)
  • 5v 2a power adapter (bought recently when I needed a consistent power supply for the Pi Zero)
  • Magnavox 19mdtd20 CRT (girlfriend found on side of the road, what a steal!)
  • A/V to RCA cable (this one actually had to be purchased)

Part 1 - Daylight’s Burning

Today marks the first official day of “The Retro Experience Project”. It’s official because I am officially committing this idea to paper or more accurately in this case committing these markdown files to git. That is how I managed to convince myself to actually work on this content creation, I disguised it as coding. In reality this is more like the seventh day of “The Retro Experience Project” but I spent the first six getting this website “just right” before I could even begin to work on any real content. And the messed up part is that it’s still not just right enough for me and I will likely sink much, much more time into it, but that’s another matter. (info. This website is written using SvelteKit and hosted on Vercel. I plan to make a dedicated post about the website itself and how I set it up so stay tuned for that if you’re into that kind of thing.)

The day was mostly research oriented and involved me collecting some sources of software as well as bookmarking documentation for things I will need down the line.

The Time Machine

Do you ever hear the familiar sound of an old video game or TV show and suddenly you’re transported back to your childhood home, enjoying a Saturday morning without a care in the world? I call this the “time machine effect”, and it is the north star of this project.

I can break the project down into two main pieces:

  1. Retro Live TV Emulator (with commercials)
  2. Retro Game Emulation

Retro Live TV Emulator

Let’s start with TV because that is the piece of this I find most interesting. Now I know what you might have been thinking when you read the “(with commercials)” part there - “with commercials? why would anyone want to watch commercials?” - and in most cases you’d be right. However, there’s just something about seeing old school commercials that takes me back in a unique way. The commercials were played so often and on such loops that sometimes I think they left a unique imprint on my brain. Seeing them again activates the time machine in a unique way that is hard to describe x-files theme plays. Regardless of my sanity commercials are a pillar of this project and I won’t hear another peep about it. Anyway, let’s talk a little bit about how I will accomplish this.

I plan on using ErsatzTV to emulate the full old school TV experience. ErsatzTV can create an IPTV stream using local media, it can even include filler content like commercials. This IPTV stream can be consumed by many different media players but I will be going with JellyFin as it is the most versatile for my use case. If you were to replicate this yourself an IPTV address can be used in many different applications just do a quick google search for <YOUR_DEVICE> IPTV and you’ll likely find something.

As for the commercials, that will likely be an ongoing effort. In my initial research it looks like I will have to spend some time collecting various uploads of retro commercials from various sources out there. Thankfully ErsatzTV offers easy to configure filler content so the only challenge here is acquiring the stuff.

Retro Game Emulation

Retro game emulation is fairly straightforward. I plan to use EmulationStation on the RaspberryPi 3. That is really about it. I already have a solid collection of legal backup roms so when the time comes it should be as easy as installing EmulationStation on the Pi.

To spice things up a little I am challenging myself to create an automatic save state sync, so I can pickup and play the titles across my other devices. To accomplish this I intend on using Syncthing. Something that has always kept me from fully enjoying emulation is the idea that my save state isn’t as tangible as a physical game might be. Both in the sense that it could be destroyed on accident due to something like corruption or in the sense that I can’t just take the cartridge and place it in another device and pickup where I left off. Using Syncthing I hope to accomplish a somewhat seamless experience where I can finish playing Pokemon Crystal on my CRT and then pick up my Steam Deck later in bed and continue where I left off.

Until Next Time

That’s it for Chapter 1, thanks for tuning in. I am trying to keep posts to at least once a week. We will see if I keep up with that but this year is about specific goals.

Try to learn something.