xrayspx's picture

Mister Multisystem, Finally


I am not writing this as a "getting started" or beginners guide, though it might evolve to serve that for some people. It's just notes I'm taking for things I need to look up. I'm not going to do any in-depth technical review or anything, go watch a youtube video for that. My perspective is from a career as a sysadmin and Linux user. Your mileage will certainly vary.

I strongly encourage you to skip my un-edited drivel and just scroll to more listy looking part.

This past weekend we resolved to kicking off, tidying up and playing with the MiSTer Multsystem. The actual "Problem" with getting this project going was that everything was way too easy to get, which has been our luck every time we need any Raspberry Pi's and stuff. We anticipated about a 3-4 month minimum lead time to land all the parts, figure out how it all goes together and how to get software to it. Everything turned up within a week. We got the DE-10 direct from the Terasic and they shipped pretty much immediately. Same story with the MultiSystem pack. I've been extremely interested watching this project as Neil has announced updates and features. The box was well packed and safe even after a real kicking by the various shipping companies.

I think it sat on the Project shelf for a month before we even had time around the holidays to put it together and try it out. It was super easy to assemble. Note: I spent 3 or 4 years in a local computer store in the '90s, and a 25-mumble-year career in IT so your mileage may vary. Actually that's not fair. Natalie did pretty much all the assembly work with me just kind of putting the case together. I'm still paranoid that I over-tightened screws or something since I've never really worked much with 3d printed anything. The case is very nice, well laid out and, while tight, everything is easy to route and very well documented.

Goals vs Reality

The Plan: This guy should sit prominently in The Room, quite probably wood-grained and hooked up to the main TV. There it would host all the console games for all the consoles neither of us ever had, and so have no muscle memory or nostalgia for. You know, For Kids.

The Reality: I was familiar from well-afar of the Mister project for some time. I know why the ST is there, and given all our other projects, this does have the capacity of seriously amusing me. But I wasn't sure about the MiSTer's interface, it looked like it might be a lot less friendly than something like EmulationStation. And that's a thing I go into below.

The other day I temporarily yet elegantly installed the MiSTer in the arcade cabinet and gave it a quick smoke test to make sure it still did things. I took a few minutes to figure out what using the external drive that I just happened to have hanging around was about and the effect it had on the virtual filesystem browser stuff.

1 week later and we spent a couple of hours today playing a bit, loading more games and software, then playing a bit more. Natalie wanted to start getting things documented for the Manual to the Living Room we are slowly beginning to put together. As we went through computer platforms from Atari 8-bit, ST, Amiga Natalie was taking notes on how to load software on each and get back to the main menu and whatever but really aside from necessary differences in how the keyboards are mapped, everything's just the same. We've been playing with an X-Box 360 controller because it's the only controller we own and it just worked. The arcade controls are going to take a bit of effort but the sticks and the trackball work, I just need to map buttons, and from what I can see that's not very hard.

The Big, Ugly Truth

The reason I really liked the standard linux machine plus a slick launcher is because it looks nice on the arcade cabinet and people could navigate it pretty easy. You know what? There are no "people" and this thing is way more convenient to use than the Pi + RetroPie. No trying to keep the button layout relatively synced between a bunch of different MAME emulators. Make that "A bunch of different versions of a bunch of different emulators". Nothing was ever consistent beyond the necessary controls. But it does look cool.

Enter the MiSTer. Since we're not emulating, there's not really anything much to tweak. Everything can pretty much be set up globally aside from a few platform specific changes. Even with arcade cores the UI is so consistent and easy to deal with that I won't exactly be pining for RetroArch any time soon. I need to figure out how to set a default set of controls though so I don't have to set the controls up for every single arcade cabinet forever. I know there's a menu item for that I just haven't pulled the trigger on possibly screwing things up yet.

It's also extremely easy to keep updated with all the latest cores using the "update_all" script. I'm using the "RetroDriven" fork, though I'm not sure what materially differs from the main line version. It's just the one I saw first. That tool was a revelation since you can just have it go out and populate any missing arcade ROMs, as well as adding cores that haven't made it to the main-line MiSTer distribution yet.

Sound can be /amazingly/ better than MAME. I'm not familiar enough with any console game to know what it should sound like vs an emulator. But I played a couple of games to test out Donkey Kong and it took me 3 games to get past just how much better it sounded on exactly the same hardware. I think it's like emulating a Moog synth vs copying it electrically at the circuit level. It'll at least get you a lot closer to "actual hardware" than MAME possibly can. (Important Note: The 4th game of DK I got within 700 points of my personal best 62,500 score on the board, and it's not like I'm constantly playing that game, it's pretty rare for me to do that well that quickly. [I think it's really more like 85k but that was before we had the board so I can't remember])


While it's true that there are some arcade games that aren't yet "there" on the MiSTer, which work fine on a Pi-3, the fact is that while a given arcade core might not be ready for showtime just yet, like OutRun. And obviously there are systems that are simply too complex for the DE10-nano to copy. There are options, and they're imperfect, but still fun. The Sega 32x core works just fine I guess for games like Virtua Racing, and the Saturn core seems to be coming along fast. However for me a lot of the real value of this system is going to come in running the computers of my youth. Since I always had computers, I never really had consoles aside from the 2600 so I've been playing with the Atari 8-bit and ST cores (and the Amiga, because, you know, let's be real...). I'm even going to set up some hard drive images and profiles for color vs high-res mono.

This will get us through in emulation until the Next Big Kickstarter shows up at my door and I can use the ST to all of its ability with my SpecreGCR cartridge, etc...

I think we're into the MiSTer Multisystem for somewhere in the region of $400-$450. That's kind of steep, however what you get is every game released for every console up to about the PS1 / Sega 32x and maybe Saturn-ish. Plus all the 8-bit and 16-bit computers of the '70s through the early '90s, and their entire libraries. Plus a couple hundred arcade games. All easily managed in a simple to use and easy to understand interface.

Definitely 100% worth a look, especially given what people will spend for those "throwback" mini-consoles with a fixed set of titles baked into some potted-blob SoC.

I'm going to move a lot of the above into sorted bullets. I'm throwing some stuff around and will organize it as I go.

  • The "Minimig" Amiga emulator seems to run /way/ too fast, and I can't see any setting to slow it down, all indications are that it should be running a 7.whatever Mhz 68000. But the ST one works great. I saw someone saying the music was too fast, but indicated the game play was accurate. I disagree, the whole thing feels too fast to use for games I have muscle memory for (Tower Toppler).

  • As noted above in detail, the sound is fantastic, it's not even close.

  • Video Weirdness. I'm positive this is down to some scaling setting. I'm trying to get screenshots but my Mac keyboard doesn't have either a printscreen key or an F13 key, so balls. To use DK as an example since it does show up prominently what I'm seeing is variable "width" of identical single-pixel vertical lines or dots. So for instance the ladders in DK. One side of the ladder might be narrower than the other. Usually I see "normal" and "skinny" ladders, but I think I saw a "fat" one or two. Similarly in Ms. PacMan, some dots render as skinny. Aspect ratios seem correct otherwise so that's why I'm thinking it's some setting somewhere maybe. I don't even care it's a trade-off I'm willing to make for all the other benefits for gameplay and manageability.

    Yep, that was it: There are video processing options and you can choose from a list of profiles to match what you're doing

  • I do wish I could figure out how to directly edit core configs from the command line. Everything I've found seems to either be an empty file or binary that I can't modify. I'm sure there's something I can do. I'd love to figure out how to set generalized defaults for all cores, and then the user can define anything custom. So one key layout that will generally work across the board and then per-core settings can override that. Those per-core files could be shared as well. An editable "SNES Core - MS XBOX 360 Controller.cfg" or whatever.

  • I'm struggling to correctly make a folder for favorites using symlinks with absolute paths
  • xrayspx's picture



    Dr. Dre - Nuthin' But a G' Thang

    I had a request to share some playlist management stuff so I thought I should explain myself. I've got a significant CD collection, and a somewhat-significant collection of TV shows. This is fine on its own, but lots of media is pretty worthless without well curated playlists that you really don't have to think about. So I built Spotify, MTV and Syndicated TV.

    * NOTE: If you have a better way to do any of this let me know and I'll fix it. I particularly have the sense, which is not backed up by my testing, that "sort -R" isn't great.

    Music's easier so we'll start there. I use Strawberry to manage my music. This was all running under Clementine and aside from some DB schema changes, the scripts are portable between them.

    Until relatively recently I was never a big fan of "star" or "heart" ratings, but Clementine/Strawberry will store this metadata in the MP3 itself so I should be able to quickly recover if I lose my music database. In the app I have a few Smart Playlists like 3-Stars, 3 Stars + (This is 3, 4 and 5 star tracks), 4-Stars, 4-Star + and 5 Stars. To use 4 Star as an example, the rules look like this:

    Match every search term (AND)
    Rating - Greater than - 3.5 Stars
    Rathing - Less than - 5 Stars
    Ratin - Not Equals - 5 Stars
    Length - Greater Than - 8 Seconds

    That results in a playlist of 8423 songs with ratings between 4 and 4.99 stars. There was a bug in Clementine which I got fixed where ratings could exceed 5, so I'm a little careful to deal with weirdo cases, but it's pretty simple. I also have a bunch of manually selected playlists, so like an '80s one, '90s, and "Barn Radio". Barn Radio is our catch-all for the ubiquitous music we heard from the late '70s through late '80s. For Natalie that was largely with her dad in the dairy barn, for me it was the music of my 2 hours on the bus every day.

    Anyway, I have all these .m3us stored in a folder along with my MP3s called "playlists_base". These are used by a nightly playlist generator that pulls ~200 tracks and makes daily playlists running 8 or 10 hours each. The reason for this is that streaming software such as Airsonic-Advanced kind of chokes on massive playlists. It could be Airsonic itself, it could be populating the mobile client, I don't really know or care, other than to say it works great with list sizes under about 1000 tracks or so, so I keep them shorter.

    The x-Star playlists are all built from the database like this 4 Star + playlist below. You can see it do a couple of different Star Rating DB queries, dump out the tracks to $playlist_tmp.m3u, then cat that file and do a random sort to generate the final version. It's pretty easy to adjust the mix based on ratings, so if I wanted to weight high-rated tracks I could do that by adjusting how many tracks of the 200 are returned by each search:


    rm /Volumes/Filestore/CDs/playlists/4\ Stars\ +.m3u


    while [ $i -le 100 ]

    ### Switching from Clementine to Strawberry ###
    #       file=$(sqlite3 /var/tmp/clementine.db "select filename from songs where rating > "0.9" order by random() limit 1;" | awk -F "file://" '{print $2}')
            file=$(sqlite3 /var/tmp/strawberry.db "select url from songs where rating > "0.9" order by random() limit 1;" | awk -F "file://" '{print $2}')

            ### Clementine data encodes special characters and accent marks and stuff so I'm using
            ### Joel Parker Henderson's to undo that:

            data=$(/home/xrayspx/bin/ "$file")
            if [ -f "$data" ]
                    ### Have to escape leading brackets because grep treated it as a range and would allow duplicates ###
                    ### Can't do that in "data" because \[ isn't in the filename so they'll fail ###

                    escaped=$(echo "$data" | sed 's/\[/\\[/g')
                    #echo "$escaped"

                    ### Avoid duplicates
                    match=$(grep -i "$escaped" /var/tmp/4-star-tmp.m3u)
                    if [ -z "$match" ]
                            echo "$data" >> /var/tmp/4-star-tmp.m3u


    while [ $i -le 100 ]
    ### Switching from Clementine to Strawberry ###
    #        file=$(sqlite3 /var/tmp/clementine.db "select filename from songs where rating >= "0.8" and rating          file=$(sqlite3 /var/tmp/strawberry.db "select url from songs where rating >= "0.8" and rating 

            ### Clementine data encodes special characters and accent marks and stuff so I'm using
            ### Joel Parker Henderson's to undo that:

            data=$(/home/xrayspx/bin/ "$file")
            if [ -f "$data" ]
                    ### Have to escape leading brackets because grep treated it as a range and would allow duplicates ###
                    ### Can't do that in "data" because \[ isn't in the filename so they'll fail ###

                    escaped=$(echo "$data" | sed 's/\[/\\[/g')
                    #echo "$escaped"

                    ### Avoid duplicates
                    match=$(grep -i "$escaped" /var/tmp/4-star-tmp.m3u)
                    if [ -z "$match" ]
                            echo "$data" >> /var/tmp/4-star-tmp.m3u

    cat /var/tmp/4-star-tmp.m3u | sort -R > /Volumes/Filestore/CDs/playlists/4\ Stars\ +.m3u

    rm /var/tmp/4-star-tmp.m3u

    Those Star Rating lists are called at the beginning of my overall static playlist script, but the Barn playlist and other manually selected ones are built from the "playlists_base" directory. I basically just edit those .m3us in place with Strawberry as we add CDs. They just the files, do a random sort and pull the top 200. This will use any .m3u in .../playlists_base/ and make a daily file from it:


    #scp xrayspx@pro:~/.config/Clementine/clementine.db /var/tmp/

    ### Switching between Clementine and Strawberry ###
    #cp /Volumes/Filestore/CDs/playlists_base/clementine.db /var/tmp/

    cp /Volumes/Filestore/CDs/playlists_base/strawberry.db /var/tmp/


    ls /Volumes/Filestore/CDs/playlists_base/*.m3u > /Volumes/Filestore/CDs/playlists_base/m3us.txt

    while IFS= read -r file

            filename=$(echo $file | awk -F "/Volumes/Filestore/CDs/playlists_base/" '{print $2}')

            echo Filename: $file

            rm "$file.full"
            rm "$file.scratch"
            rm "/Volumes/Filestore/CDs/playlists/$filename"

            ###Testing a change since Strawberry creates playlists without EXTINF lines ###
    #        array=`grep EXTINF "$file" | sort | uniq`
            array=`grep -v EXTINF "$file" | sort | uniq`

            printf '%s\n' "${array[@]}" | sort -R > "$file.full"
            head -n 200 "$file.full" > "/Volumes/Filestore/CDs/playlists_base/$filename.scratch"

            while IFS= read -r extinfo
    #       echo $extinfo
                    term=`echo $extinfo` # | cut -d "," -f 2-`
    #       echo $term

     ###Testing a change since Strawberry creates playlists without EXTINF lines ###
     # grep -A 1 -m 1 "$term" "$file" >> "/Volumes/Filestore/CDs/playlists/$filename"

            grep -m 1 "$term" "$file" >> "/Volumes/Filestore/CDs/playlists/$filename"

            rm "$file.full"
            rm "$file.scratch"


    rm /var/tmp/clementine.db
    rm /var/tmp/strawberry.db

    For TV shows it's a bit more complicated. I've got individual scripts for things like Sitcoms, Saturday Morning Cartoons, Buddy-Cop shows, Nick-at-Nite, etc. Each script uses a text file which just lists the relative path to the directories I want to randomize. I just read in that text file then scan each directory and build an array that again I sort -R and dump in an m3u. You'll see a couple of my conventions here, like the "dvd_extras" folders I use for any extras that I want to keep but don't want to have show up in the mix, as well as a bunch of other crap I grep out.

    This script references "./.sitcoms.txt", which looks like this:

    ./Archer (2009)
    ./30 Rock
    ./Absolutely Fabulous
    ./Alexei Sayle's Stuff

    #! /bin/bash

    while read line
            find "$line" -type f;
    done < .sitcoms.txt

    printf '%s\n' "${array[@]}" | sort -R | grep -v -w "batch" | grep -v dvd_extras | grep -v "./$" | grep -v "\.m3u" | grep -v -i ds_store |
     grep -v "\.nzb" | grep -v "\.nfo" | grep -v "\.sub" | grep -v "\.sfv" | grep -v "\.srt" | grep -v -i "\.ifo" | grep -v -i "\.idx" |
     sed 's/^/..\//' > ./1\ -\ Playlists/Sitcoms.m3u

    This dumps out to a folder called "1 - Playlists" inside my TV Shows directory, just so it shows up first. There's a folder in there for Blocks as well, in which I create blocks of 10 random episodes of a bunch of shows. This is built to replicate like TBS/TNT/USA in the evening where you just sit and watch a block of whatever is on. In practice I do this wrong and tend to be too picky about these and just watch blocks until I've worked my way through a whole series and wind up tired of it forever.

    One thing I do for things like Nick at Nite and overall Sitcom lists and stuff is that I mix in commercials. I don't do this very well though, I just treat my directory of commercials like any other TV show. I'd rather do "pull a TV show, toss in two commercials, repeat", but I'm not there yet I guess.

    The last type of lists I build are for music videos. I break this into a few different playlists, one overall catchall that pulls in all videos, a playlist for MTV 120 Minutes, and one for "Arcade / Pizzeria" music. Basically the ubiquitous music you'd hear in a pizza shop or arcade in the '80s or '90s. I do the same commercial thing here as well.


    #! /bin/bash

    array=`find ../120\ Minutes -type f;
    find ../../../Commercials -type f`

    printf '%s\n' "${array[@]}" | sort -R | grep -v dvd_extras | grep -v "./$" | grep -v "ERRORS$" | grep -v "\.sh" | grep -v "\.m3u" |
     grep -v -i ds_store | grep -v ".nzb" | grep -v ".srt" > 120\ Minutes.m3u

    xrayspx's picture

    Tech Henge


    Shriekback - Nemesis

    As noted previously we basically just bought our way into a retro-computer collection with the addition of an Atari ST and two further 8-bit systems. This created problems for us, but we decided to solve them with craftsmanship and as a result Natalie built an impressive henge.

    Previously my office had a bookshelf that Natalie built while I was out of town for work. It worked great for 10 years or so but the shelves were only 10" deep, and while I was able to cram an impressive amount of stuff on there, it had to change. So we designed one 24" deep with a work surface a couple of inches deeper than that, and then a 20" hutch for the top section. This will allow us to have several layers of display items with storage behind them.
    Because as is my motto: "If It's Not Display, It's In The Way"

    So we've spent the last week setting everything up and trying to consolidate all the new stuff into bins, test what's working and what needs repair, and cabling up all the systems and network hardware. We put two 12u racks in the bottom, one is full of network hardware, NAS, and webservers and the other has several Atari 8-bit peripherals that are hooked up and then storage for in-progress projects like the Kaypro II. We designed it with the three cubbies to accommodate our printer and scanner, but decided that they were better used with books and stuff, so as a bonus we swapped out the top on a metal cabinet we already had and it really fits in well.

    You can already see there's room for 4 computers/keyboards and mice "comfortably", and we could probably have 6 going if we really wanted to add anything more. We'll be spending some time to come trying to find the most effective way to fill this thing, but I think it's off to a good start, and we can nearly eat on our dining room table again, so that's a bonus! I think all we have left to do is unfortunately send the Elvis tapestry on a permanent vacation and replace him with 3 or 4 bookshelves to hold all the software and documentation we got with this haul.

    xrayspx's picture

    What Have I Done: Atari Edition


    The Ramones - Somebody Put Something in my Drink

    Yesterday we went out and collected what was left of the Atari collection we bought, so today we set up pretty much everything in one place. This is why we need to build furniture:

    This collection comes to us from a man I was in an Atari computer club with back in the '80s, when I was an Overly-Enthusiastic 'Tween pirate. So while I don't have my personal childhood 8-bit and ST computers anymore, this is actually stuff I remember. I specifically remember the ICD enclosure with the Apple sticker stuck on it for example. The ST actually was lovingly packed in a suitcase with custom foam for the machine, Spectre GCR and external floppy. However when we got it home the foam utterly disintegrated all over our dining room, so that's all being replaced just in case we ever take it anywhere again, but I can definitely remember that case being lugged into meetups back in the day as well.

    There are also lots of things I've never seen in person before, like the Atari-branded tablet, light pen or the Indus GT drive. Apparently you can retire quite comfortably off the sale of an Indus GT, at least according to eBay weirdos. I don't know, I just remember they looked real cool in magazine ads.

    It should be noted that all those boxes of disks, and the other boxes of stuff not pictured, contain nearly all fully licensed commercial software and manuals. That's why I haven't posted any shots of ST demos and cracked game intros and stuff. There aren't any :-) Everything is legal and has manuals, which is great. One of the big issues I had when I was a kid is that yeah, I had tons of games, but no idea how half of them worked, not a problem for Jumpman, but big problem for SCRAMM or Silent Service or MULE, at least I never knew how to play them. While this definitely wasn't a "Gamers" computer, it's really going to be interesting to stick Natalie in front of Calamus or PageStream and show her the state of the art for 1988 design software. Spectrum 512 has already left us both stumped. I've got some re-learning to do for sure.

    Natalie was super excited playing with the drawing tablet and I guess I might have to get a CRT just so we can try the light pen out too. We're also looking forward to projects with the AtariLab temperature and light modules, which just have a really interesting history.

    My loose plan is to get a GoTek so as not to have to deal with physical disks as much, and a SCSI to SD that can live in that ICD enclosure (along with probably 15 Raspberry Pis!) so that everything is gainfully employed once its new home is ready. To use the Spectre GCR I'll need high resolution mode, which should be achievable with a VGA converter. Color requires a monitor to support a 15Khz refresh rate (or use of an expensive scan doubler), but monochrome should work just fine. I'm waiting eagerly for to start selling their "ultimate" retro computing monitors to actually solve that problem once and for all.

    Once we get the new storage built we'll have much more room to get in and start opening stuff up on the bench and start some repairs.


    On the 8-bit side, inventory-wise, we've got:
    XE Game System
    XEGS Light Gun
    1010 Tape Drive
    1050 Disk Drive
    Indus GT Disk Drive
    CX80 Trackball
    CX77 Touch Tablet
    CX75 Light Pen
    AtariLab Light Module
    AtariLab Temperature Module

    Of that, the XEGS seems to be totally fine, while the 130XE tests bad on a bunch of its RAM, so that will be a project. I don't know whether I'll just replace the 64x1 DIPs that are in there now or go for some over-the-top modern upgrade that might be easier to source. It's also likely got a bad keyboard membrane, but I have a spare to replace that on hand.

    On the ST side:
    Atari 1040 ST
    SC1224 Color monitor
    SF-314 Floppy Drive
    ICD FA-ST 2x SCSI disk enclosure
    Spectre GCR Mac Emulator
    There's also an internal PC emulator mod that I've not tested yet
    Gravis analog joystick

    The external floppy at the very least has a bad power switch, and doesn't seem to do anything. There are a total of 4 SCSI drives spread between two enclosures, but none of them spun up immediately either, so some work to do there. The Atari mouse doesn't work (yet!), so we got a DE9 to USB adapter so we can use modern mice. However that Gravis stick will work as a mouse, and was crucial to getting the machine up and tested.

    There's one broken key slider stem that can be seen in the picture, we have the key and got a whole bag of replacement sliders so that's handled.

    The external mouse & joystick switch box kind of resolves the problem of those ports being buried under the machine.

    xrayspx's picture

    Fall Project Time


    REM - The Wrong Child

    I recently started bringing in a truly special collection of Atari hardware. I was expecting to pick up an ST and some software, and when we arrived found not only that that ST had loads of peripherals and neat stuff to test out, but lots of 8-bit hardware and an XE Game System as well. I actually had to do this in trips just to make sure I had somewhere rational to store all of it while we inventory it and do any repairs and cleanup needed before we start trying to see what other more serious collectors might want to take in. But honestly how could I pass this up an XEGS for this room?

    We really only need to make a stand for the 2600 that will let you see and use both systems. All the power and A/V stuff routes to that shelf so we can just fire them up in place and start playing.

    But what this really spawned is a project to start building furniture in the office. Natalie has this habit of doing projects while I'm out of town on business as a surprise for when I get back, so in 2015, before the full house renovation, while I was on a trip to a datacenter for a week Natalie built this bookshelf. At the same time she uncovered the awesome tile floor in the office which had been hidden under the crappiest industrial carpeting for all these years.

    However we're reached a tipping point with that thing. The shelves are 12" deep which is great for a bookshelf but not so great for cramming a bunch of computer equipment into. You can see it's way too narrow to comfortably fit that scanner for instance.

    The goal is to build something deeper which can comfortably store an ST, Mac Classic, and some other small home computers as well as just bulk storage of Crap in My Office. At the moment all my network hardware, switches, firewalls and storage are buried under my main desk. Tidy and out of the way, but a hassle to get to if I need to plug new stuff in or actually work on anything. I don't want to be 70 years old crawling around on the floor to add a network drop, so we're going to get that stuff out of there. We also need just "Bulk Computer Storage" for larger systems like a Mac Pro, KayPro II. My desk and repair bench has been getting a little crowded lately, so I'm hoping a good amount of that stuff can move as well. Some of the details of what we're doing are going to be a surprise, but it'll be cool, I swear. I've told Natalie my only real goal is to have somewhere to put my laptop bag. All this stacking shit is making me itchy :-)

    The ST is currently taking up exactly the surface area of a small storage cabinet, which is a little cramped for purposes of troubleshooting to say the least, though a couple of toys have trickled in since I got it, like an Atari 9-pin to USB adapter for a modern mouse and a supply of replacement key switch sliders/stems.

    We'll be building more ST projects to share Real Soon Now, promise. Once we get our bearings from all the work office moves and re-shuffling these shelves. My word is as good as a Tremiel promising us all Falcons By Christmas!

    So I wanted to save a quick "Before" of that space before we start tearing into the project:

    That Panasonic boombox works and sounds AWESOME, but barely even picks up the FM transmitter from 10 feet away because the boombox's day-job is to hide multiple WiFi routers, a network switch and a 10 port power strip, so there's like 8 WiFi antennas right up against the tuner, not ideal. Be nice to clear that up.

    xrayspx's picture

    Kodi Machine Screensaver Notes


    Veruca Salt - Born Entertainer

    I've just spent too long messing with a small PC to replace my Raspberry Pi Kodi machine. Problem was that the system would blank the screen after 10 minutes and there's too much stuff to test, and each test takes 10 minutes. Make a change, reboot, wait 10 minutes, make another change, and so on.

    The problem was the Xorg default screen blanking, and it was fixed by creating /etc/X11/xorg.conf, with only the following config in it:

    Section "ServerFlags"
    Option "IgnoreABI" "True"
    Option "BlankTime" "0"
    Option "StandbyTime" "0"
    Option "SuspendTime" "0"
    Option "OffTime" "0"

    I had previously tried a bunch of stuff with setterm and enabling rc.local to run from Systemd, all to no avail, so I wanted to document this one for the next time.

    xrayspx's picture

    Search for Certificates on Windows Systems


    Nine Inch Nails - Broken

    Here are a lot of words about what's essentially a one-line CMD + Powershell script...

    I've recently run into a situation where a trusted root certificate authority certificate was missing from several Windows systems in multiple locations and domains. This was causing an issue with automation which reached out to a site which had a certificate signed by that CA. I can see a good use case for this if an organization has their own CA and needs to verify that all endpoints have that CA certificate in their trust store for example.

    xrayspx's picture

    Mac Classic Pt. 2 - This is Fine


    Pailhead - I Will Refuse

    Note: I say "We" a lot. Natalie has been doing at least as much of this work as me. She has a whole method that she likes for the tantalum caps so she pretty much installed all of those. She even discharged the CRT. We learned later that the Classic seems to bleed the CRT automatically which is nice. I'm still sticking a screwdriver back there every time though just to make sure.

    Good and bad news on the Mac Classic front.

    If you read in part one, we over-paid a princely sum for a Mac which "Works as intended", but which should really have been "For parts or repair" for 1/3 what we paid.

    So I'm personally beholden to make this fucker run regardless of personal cost in blood or treasure at this point.

    "Rookies do very tidy job and rightfully feel pleased"

    We recapped the motherboard on the Mac Classic. We got a heat gun, generous with the tape all around to make sure we didn't mess up any other components, and quickly and easily got the old parts off, we cleaned the pads up with solder wick, tinned them with new solder and put in the replacement tantalum caps, applying a bit of flux and cleaning regularly along the way. No damaged pads, everything went extremely smoothly regardless of which of us held the iron. Natalie really did most of the installation of the new parts.



    "Rookie makes Rookie Mistake"

    The eagle-eyed among you already see why my office smelled like shit all day last Saturday. Of course, tantalums don't note polarity the same way any electrolytic I've dealt with has. So we installed them all backwards.

    I know I have seen at least one person mention that while doing a recap and replacing electrolytics with tantalums. In fact, in the box from the company we ordered the replacements from:

    So it's not like there weren't ample people trying to get this information into my head. Oh well, happens. Here's the before & after, after the second recap:

    I also took the cardboard shield off the high voltage board and saw sticky burnt electrolyte gack on the back of the board. That gack was the smell that took this machine beyond just "nicotine soaked" when you turned it on.

    We've removed the high voltage board and will re-cap that in Part 3.

    I'm in no position to recommend the hot air station we got, but it was just "not quite the cheapest one on Amazon". Came with some extras like a pair of side cutters and a couple pairs of tweezers, so that was helpful.

    xrayspx's picture

    Mac Classic - First Impression


    "Works As Intended" they said....

    Unless Craigslist Guy was using a sharpie to play tic-tac-toe on the wavy checkerboard screen, we have different definitions of "intended".

    Of course if the intention is that we have a project now, well then Mission Accomplished. Replacement caps are on the way. The board itself looks totally clean aside from the standard nicotine layer gooped everywhere, but no visible corrosion or damage.

    xrayspx's picture



    Peter Murphy - The Sweetest Drop

    *Skip to the RetroPie customization stuff*

    Like every other moderately Vintage / Retro Computing person,
    not to mention my whole job being what it is, I immediately bought one of those
    12" IPS 16:9 Eyoyo monitors when I started seeing them pop up on some YouTube channels. Thing works great as a bench monitor, but it's kind of a weird size for use with 1980s OSes that expect 4:3. I found that Eyoyo also makes a 4:3 12" 800x600 monitor with all the same inputs so I grabbed one. Since the Atari branded monitors for the ST were 12", and I never saw any of these machines on anything much bigger than a 13" TV back in the day, this looks pretty much exactly as I remember and the correct aspect ratio makes everything feel "bigger" in the right way.

    The Pi 3 seems to be completely sufficient for emulating a stock 8Mhz 68000, it just needs enough power, swapping a 750ma power supply for 2.5A made a huge speed difference in emulation. I'm not trying to make this a "modern" experience like PiMiga or anything that requires any more horespower. For software, I started with RetroPie for their package management and the fact that they've already done the work of building all their packages to run from the command line with SDL/framebuffer, plus the ease of tweaking things like the boot splash screen, etc.

    Aside from that, it's really just Hatari and Amiberry. I found a 1GB ACSI disk image for the ST which is split into thirds and had a bunch of preloaded software. I've not added anything to it yet, but apparently the hero at 8bitchip has also archived over 1500 ST games and has patched them to run from a hard disk so I won't need to sort through a bunch of disk images which is great. I already spotted Oxyd in the list.

    That all makes me want to get NeoDesk running, which I gather is possible though it didn't immediately work in the 5 minutes I had to spend on it. Like I said, for this machine I'm not interested in running a "modern" take like PiMiga. But "nostalgia", well, while I'd certainly love to have original ST or Amiga hardware, I really am more nostalgic for the content and getting in front of Vroom or Nebulus for 10 minutes every 2 months, and it's awesome that it's using the same desktop I spent so much time in front of.

    The little boot menu I wrote just replaces the RetroPie file at /opt/retropie/configs/all/ with one that shows the user a menu to select the boot OS or shutdown. Windows 3.11 is a menu option, that's kind of TBD. DosBox is installed but I haven't done the full Windows install yet but it'll be fun to play Solitaire on this thing.

    Little tweaks I made to RetroPie

    I used RetroPie as my base rather than regular Raspbian because of their great packaging and basic customization tools. I just installed Hatari and Amiberry from the retropie_setup installer and they worked immediately at the command line. The retropie_setup tool also lets you swap out the default boot splash screen. I was expecting to just find the location of the file and swap in an Atari Fuji logo and be done with it. But they've built the tool into their setup utility, and even let you assign an MP4 so I was able to use an animated rainbow Fuji logo so it just looks awesome.

    I made one edit to /boot/cmdline.txt to suppress the bootup log output, so cmdline.txt looks like this now:

    console=serial0,115200 console=tty1 root=PARTUUID=8ee2ea28-02 rootfstype=ext4 rootwait loglevel=3 quiet consoleblank=0 plymouth.enable=0

    I copied /opt/retropie/configs/all/ out of the way and replaced it with:



    That's pointing to the boot menu screen. It's really simple but really what am I trying to do here? I did add a countdown timer so it will automatically boot to an ST desktop after 20 seconds:

    # /opt/retropie/configs/all/

    echo "POMPEY PIRATES" | sed -e :a -e "s/^.\{1,$(tput cols)\}$/ & /;ta" | tr -d '\n' | head -c $(tput cols)
    echo ""
    echo ""
    echo "Press '1' For Atari ST"
    echo "Press '2' For Amiga"
    echo "Press '3' For Windows 3.11"
    echo "Press '9' For Bash Shell"
    echo "Press '0' For Shutdown"
    echo "Press 'T' For Trainer"
    echo ""
    echo ""

    msg="Booting Atari ST in"
    tput cup 12 0
    echo -n "$msg"


    l=$(( l+1 ))

    for i in {15..01}
    tput cup 12 $l
    echo -n "$i Seconds"

    read -t 1 -n 1 system 2>/dev/null

    if [ "$system" = "1" ]
    /opt/retropie/emulators/hatari/bin/hatari --timer-d 0 && reset; /home/pi/bin/menu
    elif [ "$system" = "2" ]
    /opt/retropie/emulators/amiberry/ && reset; /home/pi/bin/menu
    elif [ "$system" = "9" ]
    exit 0
    elif [ "$system" = "0" ]
    sudo shutdown -h now


    /opt/retropie/emulators/hatari/bin/hatari --timer-d 0 && reset; /home/pi/bin/menu


  • I'll probably install Windows and Mini vMac just to do it
  • Add ST High Res mode
  • May add a timer to the menu to boot to the ST after some number of seconds just to make it more immersive.
  • Add a "POMPEY PIRATES" at the top and "PRESS 'T' FOR TRAINER" at the bottom for authenticity

  • Pages

    Subscribe to RSS - Computers