Undeveloper
Retcon

Learn how computers work by building a retro game console

main menu

Retcon update Sep 2023.02

Videos, Mashups, Gorillas and a HUGE redesign

Did you miss me?

I’m sorry to all my supporters that it’s been so long since my last update. I’ve had a few personal things to deal with in the last several months (some exciting, some very boring!) and some of you may have noticed that I published my first YouTube explainer videoopen_in_new which took a big bite of my time. If you hadn’t noticed, please do take a lookopen_in_new and give it some love!!

Despite all this, things haven't stood still on the Retcon project. I’ve been busily tinkering away with the designs, taking them for test drives and planning how it could be the best learning experience possible, as well as allowing for loads of creative flexibility so project creators aren’t unnecessarily constrained by my ideas.

With that in mind, I decided to make a few really significant changes to the Retcon design, which has delayed my original schedule by a few months but which I think are ultimately worth the wait.

Because I've got loads to update you on, I've decided to split this post into a few parts – one just about the redesigns, another on my GORILLAS.BAS clone and this post for the rest.

Videos

My first explainer video as part of a planned series is out!

If you haven’t already watched it — what are you waiting for!?

 

Putting this together took a lot longer than I expected, but mostly I chalk that up to some valuable lessons learned about videography, and I’m really pleased that I put in so much effort on the quality as it’s had so much positive feedback and many more views, likes and subs than I had anticipated!

Off the back of this, I’m now confident that video content is a great way forward for me to reach learners, creators and other enthusiasts, and although I will still be providing written content and tutorials with the Retcon project, I’ll give at least equal focus to video.

More upcoming videos in the works at the moment:

  • Binary and hex numbers
  • Digital logic and logic gates
  • Memory and I/O mapped peripherals
  • Serial communications & peripherals

Stay tuned for more updates, and if you haven't already subscribed to the channelopen_in_new, there's no time like the present!

Playing Game Gear cartridges on a TV with a SNES controller?

‘Nuff said really...

Way back in February I sat down with my trusty soldering iron and tried integrating the RetroSix Game Gear cartridge slotopen_in_new with the Retcon board I had already put together and...it worked!

The Sega Game Gear is for all intents and purposes a handheld version of the Master System, with only a few differences — it has a smaller usable screen area and it also supports twice the colour depth per channel (so 4,096 possible colours rather than 64) but these are really the most significant differences to accommodate.

With a small tweak to the HDL installed on the AV module to optionally support these changes, and the cartridge wired in parallel with the Master System slot, I got all three of my test carts running — a handheld console displaying on the big TV!

Game Gear cartridge slot wired into Retcon Project Board and Sonic the Hedgehog playing on the TV

Not content with that conceptual mashup, in a quest for a great new controller shell to recommend, I also decided to try another product from RetroSix, their SNES replacement controlleropen_in_new, which rather interestingly uses a USB C socket as a cable connector. This actually felt like more work than the Game Gear slot as since the SNES controller protocol is serial, and the Master System / Game Gear’s is parallel, I had to painstakingly mod the controller board to bypass the electronics on it and connect the switch contacts directly to a (rather expensive) full featured USB C cable I decapitated. All that done, and unsurprisingly it worked in the end, and I found myself playing Game Gear columns on a TV screen with a SNES controller — weird!

 

Side note: although I think the RetroSix SNES controller is cool, on balance I prefer the simplicity and robustness of the Retro Modding NES shells — read about the design revisions for more on those.

Retcon design revisions

More exciting design changes than you can shake a proverbial stick at.

A raytraced 3D image of the new Retcon Controller design

Read the full post

GORILLAS.BAS

I took some time out in March to enter the annual SMSPower! coding competition and ended up remaking a classic from my mispent youth.

A picture of a gorilla throwing a banana

Read the full post

Z80 Debugger / Sega Mapper

I've developed a few minor but important features for the Retcon AV in last couple of months, specifically for Z80 & Master System support: a Z80 debugger and a “Sega Mapper”.

The debugger presents an on-screen interface that can display values read from the Retcon AV’s input pins and also can be used to pause and step a CPU for very basic exploration and debugging of how the CPU works. I hope this will be useful in demonstrating how CPUs function in practice and might also be useful in ironing out bugs in programs that didn’t get caught earlier.

A photo of the Retcon Z80 debug screen running on an Asus portable monitor

The Sega Mapper is a simple bit of circuitry which is built into most Master System game ROMs that allows the system to address more than the standard 64KB of ROM. The largest known original SMS games were up to 512KB and homebrew games can be even bigger. Mappers are also used in other cartridges, like NES cartridges. In fact NES games have a much, much larger variety of mappers than the Master System, which mostly relied on the original system present in Sega’s own chips.

Since mappers come built into cartridges, we don’t need to build them if all we are doing is playing real cartridges, however we do need to provide our own if we want to use larger memories directly in our project builds, or if we want to play game ROMs we have written from the SD card on the Retcon AV. We could build a mapper on the Project Board from discrete parts, but even the basic Sega Mapper needs several chips to implement, taking up valuable board space, and in any case we would be stuck with that mapper and out of luck if we wanted to write a game or play one which uses a different type of mapper.

For these reasons, I decided to leave the problem of implementing mappers up to the Retcon AV, where the reconfigurable FPGA can take care of the all details. Now it’s just a case of deciding how our mapper needs to work and getting the FPGA to implement it. That strategy should work for the standard Sega Mapper, other SMS mappers (like Codemasters), most NES mappers and even exotic custom mappers that you invent yourself (you can do some really cool things with custom mappers, like flipping graphics tiles around in hardware, etc.)

So long story short, for now, I’ve written a very basic mapper which is compatible with the Sega Mapper and which should get most people started when it comes to using more than 32KB of memory, for whatever reason.

– Will