More ways to get my stuff.

We’ve been working on setting up a new online store over the last few weeks and working on putting stuff up on other e-commerce sites for a larger online footprint since we don’t do any marketing here whatsoever.

Every sale that I’ve had since I started this almost 4 years ago has been from word of mouth support from people that liked these projects. For that I am tremendously grateful, and to those that helped spread the word, a big “Thank You!” from the bottom of my black heart.

Up until now I’ve been selling my products only on ebay, which has worked fairly well so far, but there are some obvious issues with that. Having a dedicated online store will give buyers more choice in terms of where to shop, and for me, more online presence and more control to do the things I need to do.

I’m sure this will be a welcome addition. While I will continue to sell on ebay, you will see some changes over the next few weeks here, that will integrate this site with the new store to make the shopping experience a lot smoother. Also, there will be more places out there on the web where these products will be available.

For now if you are interested in a sneak preview, my projects can be found on the following platforms:

These links may not be fully functional until the stores launch at the end of March hopefully. See you there.

Many new projects coming up on here.

I’ve been neglecting this site somewhat. There are a few reasons for this… two home renovations including a purchase of several, large and expensive pieces of equipment for a new workshop / lab which is still being expended to this day, the closure of our family business and a move across the province in search of a better life… and most importantly, a lot more quality time with the family.

There was no shortage of projects last year however. I’ve worked on, and completed many things, including a number Arduino projects, dozens of new JAMMA adapters, a new TV mod, a couple of robot controllers that I worked on with my son. It was probably my most productive year ever.

Many of these things have not yet been documented however, as documentation isn’t normally something I look forward to, but some of these projects I think are pretty cool and I’m sure they can be useful to some of you out there. Don’t be surprised to find out of order blog posts as I plan to back date these to around the time they were completed.

New projects!

More new projects. Instread of polishing and releasing stuff that I’ve been sitting on for months if not years, I’ve decided to distract myself with more projects.

These include a couple of robot controllers and some helper boards for programming Atmel MCUs via the Arduino platform, with which I’ve been doing a lot more work with recently. I’ll post more details on that soon, and will eventually make these available to the community as opensource / open hardware project. For now this is just a teaser.

Many more new JAMMA adapters coming soon.

I started to work on a number of new projects, but I’m not abandoning the JAMMA adapter work just yet. After a lot of demand with the Atari Dig Dug adapter, I have started to work on many of the other Atari games like Missile Command, Xevious, Centipede, Millipede and Crystal Castles.

This is progressing well, but I’m afraid even it these do get completed, I may not have the cycles to keep a steady flow of them available for people. I am working on a number of home renovation projects and getting distracted by other interruptions, the result of which may or may not be posted here eventually.

Arcade game resolutions

I did a bit of experimenting with setting different resolutions on the raspberry Pi for arcade emulation. This was in preparation for getting my standalone MAME image for the PJ adapter.

So the idea here is that the video output would be set to the exact resolution of the game, before emulation is started. Now, there are emulators that already do this, but I wanted to be able to possibly use emulators that don’t, and have full control of the process.

I started looking at the most commonly used resolution in arcade games. This came from MAME’s game info xml dump. Here’s the list:

Popular Horizontal Arcade Video Modes

Number of GamesResolution
399256x224
391320x224
302384x224
248320x240
197256x240
186288x224
146304x224
132336x240
64384x240
57512x240
53320x232
53256x480
53256x256
47704x480
43384x256
41480x480
41240x224
40640x240
33512x224
33400x254
30512x480
27352x240
27320x416
26256x192
25640x480
24512x384
23292x240
22512x400
20248x256
18512x288
18240x240
17638x240
16512x256
15448x224
13496x384
12432x224
12256x232
11508x384
11500x384
11240x192
10384x255

Popular Vertical Arcade Video Modes

Number of GamesResolution
540224x256
175224x288
106240x256
86240x320
74224x240
64224x320
60240x240
47224x384
36240x384
24248x256
19192x240
18192x256
16256x256
16208x248
15384x512
13224x272
12224x280
10216x288

So, there are some things that are worth noting. Most games will run in a resolution of 320×240 without scaling. It just means that the screen size may be reduced. We have popular horizontal resolutions of 256 and 288 and 320. We also have a large quantity of games at 336 and 384 which will not display correctly at 320×240 unless rescaled, which we are trying to avoid.

For vertical resolution or line count, we have most games displaying either 224 or 240 lines. This is expected, due to the limitations of an arcade monitor. More on this later.

What we need to do is come up with a scheme to display most of these games at native resolution. Here’s my solution:

The raspberry Pi has 3 low frequency pixel clocks 4.8MHz, 6.8Mhz and 9.6Mhz.

  • For horizontal resolutions <=288 pixels, we use 4.8Mhz
  • For horizontal resolutions >288 and <=384 pixels, we use 6.8Mhz
  • For horizontal resolutions >384 pixels, we use 9.6Mhz

This works out quite well with most games displaying properly and fitting nicely to the available horizontal screen real estate.

Vertical line count is less of a problem. It can almost be ignored except for a few games that display at 248 and 256 lines like Irem’s R-Type and Midway’s Mortal Kombat and other games. Games that go over 240 lines break the rules somewhat (see my video generation tutorial here) and will likely have problems being displayed on anything but adjustable arcade monitors.

What we do in these cases is to reduce the front and back porch portion of the video signal and use that to get the addition line count. In my testing this worked fairly well.

This is the basis of my video mode switching algorithm for emulation going forward. It will be implemented in my standalone minimalist MAME image that can be found here.

One issue with this, console games that switch resolutions on the fly (Seiken Densentsu 3 / the unreleased Secret of Mana 3?) can not take advantage of this.

Retropie 4.7.1 images for PJ Adapter

I spent the last week getting the new RetroPie images working on the PJ adapter. This is the first RetroPie release with Raspberry Pi4 support.

Unfortunately it wasn’t easy and it didn’t turn out well. The new release messes up the classification of my joystick driver, configuring it as a mouse. It somehow breaks scaling in vertical mode that I was not able to resolve. It removes useful emulators like mame2003 (from Pi1/Zero image at least), adds emulators that don’t run well on a Pi1/2/Zero. Raspberry Pi 4 has emulation sprite / background tearing and jitter issues when scrolling, with all emulation cores it seems. Then there are minor annoyances like the new video driver stack and changes to the PCM audio on the GPIO.

I did what I could at this time, adding emus and configuring everything to work, but some deal breaker issues remain, mainly scaling in vertical mode and Pi4 graphics jitter.

For this reason, vertical images will not be available for now. If using Pi3 or lower, stick with the 4.5.1 images at the moment. If buying a Pi for this, go with a Pi3. Honestly there is little reason to go with RetroPie 4.7.1 right now that I can see. If you already have a Pi4, try the 4.7.1 and let me know how it goes.

While Retropie is great for consoles, many of you want a good arcade emulation experience, and Retropie is not that. I will therefore spend the next while working on a stand alone minimalist MAME image as some have requested. It will be small and will boot straight to a game, with proper video mode setup to avoid any scaling issues. Much work has already been completed. More on this in the next post.

Network migration completed…

Unfortunately though, it wasn’t a complete success. The storage on the new server is only about 8GB while it should have about 120GB. This is something I only noticed after the work was all done, while putting up the large PJ images. It was once again a screw up on the part of my hosting provider….

The proper and easiest way to address this is to create a whole new VM from scratch and restore this site there from backup, which I’m not going to do after what I just went through with this migration.

For the time being I put all the large files on a mirror server, and linked to those instead.