{"id":437,"date":"2026-08-28T23:59:44","date_gmt":"2026-08-28T13:59:44","guid":{"rendered":"https:\/\/www.amigaretro.com\/projects\/?p=437"},"modified":"2026-08-28T23:59:44","modified_gmt":"2026-08-28T13:59:44","slug":"six-machines-one-game","status":"publish","type":"post","link":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/","title":{"rendered":"Six Machines, One Game: Proving the Multi-Port Idea"},"content":{"rendered":"<h1>Six Machines, One Game<\/h1>\n<p><strong><em>Part 2A of a series<\/em><\/strong> &#8211; an unplanned chapter between Part 2 and Part 3.<\/p>\n<p><strong>Part 1: <a href=\"https:\/\/www.amigaretro.com\/projects\/blakes-7-beatle-quest\/\">Blake\u2019s 7, Beatle Quest, and a Very Practical Text Adventure Path<\/a><\/strong><\/p>\n<p><strong>Part 2:<\/strong> <a href=\"https:\/\/www.amigaretro.com\/projects\/beatle-quest-real-hardware\/\"><strong>Beatle Quest, Real Hardware, and What \u201cFinished\u201d Actually Means<\/strong><\/a><\/p>\n<h2>This was not the plan<\/h2>\n<p>Part 2 ended with a promise: Blake&#8217;s 7 catches up, and Pyramid 2000 gets built from nothing. That is still coming. It is still Part 3.<\/p>\n<p>This is the chapter that happened first, uninvited.<\/p>\n<p>Beatle Quest had just reached v1.00.22 on real NABU hardware &#8211; clean, tested, finished, in every sense that mattered about 2 weeks ago. Then came an obvious question I had been quietly avoiding: if the whole point of this engine is that the game logic lives in a portable .ADV data file and a small C runtime, was that actually true? Or was it just true on paper?<\/p>\n<p>There was only one way to find out. Stop talking about portability and go prove it, on real, different, unrelated 8-bit and 16-bit machines.<\/p>\n<h2>The idea being tested<\/h2>\n<p>The claim, precisely: the same BQFULL.ADV data file &#8211; the same rooms, the same puzzles, the same 1000-point scoring, byte-for-byte identical &#8211; should be able to run on any machine with a C compiler and basic file I\/O, with only the platform-specific edges of the runtime needing to change. Screen clearing. Delay routines. Not the game.<\/p>\n<p>If that held up, it would mean something real: not just &#8220;Beatle Quest runs on NABU,&#8221; but &#8220;this whole approach to preserving old text adventures travels.&#8221;<\/p>\n<p>Six targets went in, one after another: Commodore 64, Commander X16, MSX, Apple II, Amiga, and a TRS-80 Color Computer built by hand in 6809 assembly rather than through a C compiler at all. Six real, different toolchains. Six real, different ways for this idea to have quietly been wrong.<\/p>\n<h2>What actually needed to change, and what did not<\/h2>\n<p>Almost nothing changed. That was the whole result, in miniature.<\/p>\n<p>Every port kept the entire game-logic layer untouched: the room graph, the command parser, the scripted-action engine, the scoring, save\/load. What changed, per platform, was small and mechanical &#8211; a screen-clear call here, a delay routine there, a file-open convention somewhere else. On the smoothest of the six (Amiga), that list was two lines: a Delay() wrapper and an ANSI clear-screen escape sequence. Everything else just ran.<\/p>\n<p>That is not nothing. That is the actual thing being tested, working.<\/p>\n<h2>The one that did not go smoothly at all<\/h2>\n<p>Five of the six ports went smoothly at the software level: keep the C runtime, adapt the small platform-specific edges, and the same scripted playthrough runs correctly. That is not quite the same as &#8220;done&#8221; though &#8211; one of those five, Commander X16, still has a real problem on real hardware I have not solved yet. I cover that honestly later rather than skipping past it here. The sixth port, the TRS-80 Color Computer, was a different kind of hard: not a real-hardware wrinkle that showed up later, but three full attempts before the software side even worked at all.<\/p>\n<p>The CoCo is a smallish machine, with less room to work with than some of the other five. My first attempt went in through a modern C compiler &#8211; a C compiler is a C compiler, I figured. It was not that simple. Getting the compiled program to even fit took real effort, and once it did, it locked up solid the moment the game actually started running, with nothing on screen to explain why. I paused it there (The compiler is just not mature enough), unsolved.<\/p>\n<p>The second attempt used a different kind of compiler, built specifically for this family of machines, translating a dialect of BASIC into the machine&#8217;s own native code. That got much closer. A determined effort to trim it down closed most of the gap. But &#8220;most&#8221; was not &#8220;all&#8221; &#8211; the last stretch turned out to be blocked by a genuine bug in the compiler&#8217;s own official fix for exactly this situation. I confirmed that, not just suspected it, by building the smallest possible program that still showed the same failure (Great Program, BASIC-To-6809).<\/p>\n<p>Two real, careful attempts, two real dead ends &#8211; same underlying reason both times. Every layer standing between the game logic and the machine costs something, and this machine simply does not have room to spare.<\/p>\n<p>So the third attempt gave up on someone else&#8217;s compiler and wrote the engine directly in the machine&#8217;s own language instead, using a real, surviving commercial game from the machine&#8217;s first year on the market as a reference for how software like this was actually built at the time. That version worked. Fully data-driven against the same shared file format as every other port, and it cleared the same bar every other platform had: a full, scripted playthrough of the whole game, a perfect score &#8211; confirmed on a real, physical CoCo, with a genuine period-correct floppy drive attached.<\/p>\n<p>The lesson is not &#8220;assembly is better.&#8221; It is narrower and more useful than that: portability holds right up until a specific machine&#8217;s limits say otherwise, and when that happens, the fix is not to fight the ceiling &#8211; it is to build for the machine that is actually there.<\/p>\n<h2>The lesson that came after the &#8220;working&#8221; version, not before it<\/h2>\n<p>That should have been the end of the CoCo story. It was not.<\/p>\n<p>&#8220;Confirmed on real hardware&#8221; turned out to mean something narrower than it sounded. Real hardware, yes &#8211; but with a genuine, original-style floppy drive attached, the exact setup I had used for every other CoCo test, and by far the easiest one to reach for. Most people running a CoCo today are not doing that, though. Real floppy drives from this era are used less and less. The practical way to get a program onto a real CoCo now is a small modern add-on card that plugs into the disk-controller slot and stands in for a whole shelf of floppies, using an SD card instead. From BASIC&#8217;s point of view it behaves exactly like a disk drive. Underneath, it is nothing like one at all.<\/p>\n<p>My disk-reading code talked directly to the original floppy controller&#8217;s own hardware. Fast, and it had worked every time on the setup I had tested. On the modern SD-based replacement, it did not work at all. Not a crash &#8211; something quieter and more misleading. It reported success and handed back data that looked plausible but was not the right data. That is a much harder kind of wrong to notice than an outright failure.<\/p>\n<p>Two more rewrites of the disk-handling code followed, each a more careful, lower-level attempt to talk to that same original hardware correctly. Each one looked right on the emulator I used for day-to-day testing. Neither held up once actually tried on the real modern hardware people actually use.<\/p>\n<p>The fix, when it finally came, was not a cleverer way to talk to the hardware. It was giving up on talking to the hardware directly, and calling the machine&#8217;s own disk operating system instead (DECB) &#8211; the same handful of built-in &#8220;open a file,&#8221; &#8220;read the next character,&#8221; &#8220;close it&#8221; commands that Disk BASIC itself is built from. Real commercial software from the machine&#8217;s own era used those same commands without a second thought, specifically so it would keep working no matter what disk hardware ended up plugged in underneath.<\/p>\n<p>It is the kind of fix that is obvious in hindsight and easy to miss going in &#8211; well, for me anyway, especially when the instinct is to solve a hardware problem with more hardware-level code. It took someone who had actually written software for this exact era of machine, back when it was new, to say the quiet part out loud: don&#8217;t fight the disk controller, just ask BASIC to do it, the way everyone building real software for this machine always did. Thirty-plus years on, I had simply forgotten that as the obvious first move &#8211; a genuinely old lesson, rediscovered rather than invented.<\/p>\n<p>Confirmation came in stages, the way it usually does. The corrected code proved itself first on two independent emulators, then on a real CoCoSDC card in a real machine &#8211; a full playthrough and a save-then-reload, both clean, both correct. For CoCoSDC at least, the modern-storage question was genuinely closed.<\/p>\n<p>FujiNet&#8217;s own real hardware took one more step to settle. Reading worked immediately, matching what CoCoSDC had already shown. Writing did not &#8211; a real, repeatable error, on the one card I was testing, on both of the ways it can talk to storage. My first instinct was to assume the fix had a second hole in it and go looking for one. What actually settled it was running the exact same disk code through FujiNet&#8217;s own PC emulator &#8211; the real server software, just hosted differently &#8211; and watching it write correctly, log entries and all. That does not prove the physical card is fine. It does prove the fix is: same code, same protocol, and it works. Whatever is wrong with that one card is a question for the card, not the code &#8211; worth being precise about, rather than letting one stray hardware error quietly reopen a question that had already been answered.<\/p>\n<h2>Six for six, with one honest asterisk<\/h2>\n<p>Every platform reached the same bar: a full, scripted, 378-command playthrough of the entire game, ending in a perfect 1000 out of 1000. Not &#8220;should work.&#8221; Run, and read the transcript. (The CoCo&#8217;s own version of that transcript needed re-running once, on the corrected, BASIC-native disk code above, before it could really count &#8211; see the previous section. Old lessons have a way of asking to be proven twice.)<\/p>\n<p>Most needed a person to test them &#8211; which, for a project built around &#8220;playable, not just plausible,&#8221; felt like the right place for a person to be anyway.<\/p>\n<p>That bar &#8211; a perfect scripted run &#8211; is about the game logic, and every one of the six clears it. It is not the same as &#8220;runs on real, physical hardware,&#8221; and I do not want to blur those two together. So here is the honest state of that harder bar. The original NABU build and the CoCo build have both actually run on real hardware (CoCo has more to its story than that one sentence suggests &#8211; see above). Commander X16 has been tried on real hardware too, and does not currently survive it &#8211; it locks up reliably, a real, open problem I have not solved. Commodore 64, Apple II, MSX, and Amiga have not been tried on real hardware at all yet &#8211; not &#8220;failed,&#8221; just genuinely untested outside an emulator so far. Proven-in-software and proven-on-real-metal are two different bars. Pretending otherwise would undo the whole point of being careful about the difference.<\/p>\n<h2>What this chapter actually settled<\/h2>\n<p>The multi-port question is answered, cleanly, in the specific sense I set out to test: the same room graph, the same puzzles, the same 1000-point scoring, running correctly against six genuinely different toolchains with almost nothing but the platform edges changed. That is the actual claim this chapter makes, and it is a real one &#8211; &#8220;it is portable in theory&#8221; is a much weaker sentence than &#8220;the identical script produces the identical perfect score on six unrelated machines.&#8221;<\/p>\n<p>Whether all six also survive contact with real, physical hardware is a related but separate question, still partly open &#8211; and the honest thing is to leave it looking exactly that open, rather than round it up early. That was always the real point of building this engine around a shared, machine-independent data file in the first place: a bet, made a while ago, that doing the hard work once &#8211; the room flow, the puzzle chain, the parser, the scoring &#8211; would pay for itself every time afterward. Six platforms into proving the logic, it has. The remaining real-hardware questions are next.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-439 aligncenter\" src=\"https:\/\/www.amigaretro.com\/projects\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-28-213232-300x234.png\" alt=\"\" width=\"300\" height=\"234\" srcset=\"https:\/\/www.amigaretro.com\/projects\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-28-213232-300x234.png 300w, https:\/\/www.amigaretro.com\/projects\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-28-213232.png 577w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>The <strong>&#8220;Ports&#8221;<\/strong> release page is under construction: <a href=\"https:\/\/github.com\/ontheslab\/adventure\">Interactive fiction (IF) &#8211; Text Adventure cross platform porting<\/a>.<\/p>\n<p><strong>Next up<\/strong>, for real this time: Blake&#8217;s 7 catches up, and Pyramid 2000, built from nothing on the same foundations. <strong>Part 3<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Six Machines, One Game Part 2A of a series &#8211; an unplanned chapter between Part 2 and Part 3. Part 1: Blake\u2019s 7, Beatle Quest, and a Very Practical Text Adventure Path Part 2: Beatle Quest, Real Hardware, and What \u201cFinished\u201d Actually Means This was not the plan Part 2 ended with a promise: Blake&#8217;s<a class=\"more-link\" href=\"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/\">Read more  &#10230;<\/a><\/p>\n","protected":false},"author":21,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[84,57,73,72],"tags":[67,85,86,83,74],"class_list":["post-437","post","type-post","status-publish","format-standard","hentry","category-games","category-retrogen","category-nabu","category-trs80","tag-article","tag-coco","tag-color-computer","tag-text-adventure","tag-trs80"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Six Machines, One Game: Proving the Multi-Port Idea - Amiga Retro Brisbane Projects<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Six Machines, One Game: Proving the Multi-Port Idea - Amiga Retro Brisbane Projects\" \/>\n<meta property=\"og:description\" content=\"Six Machines, One Game Part 2A of a series &#8211; an unplanned chapter between Part 2 and Part 3. Part 1: Blake\u2019s 7, Beatle Quest, and a Very Practical Text Adventure Path Part 2: Beatle Quest, Real Hardware, and What \u201cFinished\u201d Actually Means This was not the plan Part 2 ended with a promise: Blake&#8217;sRead more &#10230;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/\" \/>\n<meta property=\"og:site_name\" content=\"Amiga Retro Brisbane Projects\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-28T13:59:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.amigaretro.com\/projects\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-28-213232.png\" \/>\n\t<meta property=\"og:image:width\" content=\"577\" \/>\n\t<meta property=\"og:image:height\" content=\"451\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"intangybles\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"intangybles\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/six-machines-one-game\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/six-machines-one-game\\\/\"},\"author\":{\"name\":\"intangybles\",\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/#\\\/schema\\\/person\\\/ef7ef27139852846ec843b32e0c47dea\"},\"headline\":\"Six Machines, One Game: Proving the Multi-Port Idea\",\"datePublished\":\"2026-08-28T13:59:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/six-machines-one-game\\\/\"},\"wordCount\":2039,\"publisher\":{\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/six-machines-one-game\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/Screenshot-2026-08-28-213232-300x234.png\",\"keywords\":[\"Article\",\"CoCo\",\"Color Computer\",\"Text Adventure\",\"TRS-80\"],\"articleSection\":[\"Games\",\"General Retro\",\"NABU\",\"TRS-80\"],\"inLanguage\":\"en-AU\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/six-machines-one-game\\\/\",\"url\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/six-machines-one-game\\\/\",\"name\":\"Six Machines, One Game: Proving the Multi-Port Idea - Amiga Retro Brisbane Projects\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/six-machines-one-game\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/six-machines-one-game\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/Screenshot-2026-08-28-213232-300x234.png\",\"datePublished\":\"2026-08-28T13:59:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/six-machines-one-game\\\/#breadcrumb\"},\"inLanguage\":\"en-AU\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/six-machines-one-game\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-AU\",\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/six-machines-one-game\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/Screenshot-2026-08-28-213232.png\",\"contentUrl\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/Screenshot-2026-08-28-213232.png\",\"width\":577,\"height\":451},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/six-machines-one-game\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Six Machines, One Game: Proving the Multi-Port Idea\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/#website\",\"url\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/\",\"name\":\"Amiga Retro Brisbane Projects\",\"description\":\"Amiga was\u2026is &amp; will be \u2026 as long as we are around.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-AU\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/#organization\",\"name\":\"Amiga Retro Brisbane Projects\",\"url\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-AU\",\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/arb-logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/arb-logo.svg\",\"width\":534,\"height\":192,\"caption\":\"Amiga Retro Brisbane Projects\"},\"image\":{\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/#\\\/schema\\\/person\\\/ef7ef27139852846ec843b32e0c47dea\",\"name\":\"intangybles\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-AU\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb82b762414a7351c26e0df4677134fa0bacfc8c283248a6ee3bedd7d0d694be?s=96&d=robohash&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb82b762414a7351c26e0df4677134fa0bacfc8c283248a6ee3bedd7d0d694be?s=96&d=robohash&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb82b762414a7351c26e0df4677134fa0bacfc8c283248a6ee3bedd7d0d694be?s=96&d=robohash&r=pg\",\"caption\":\"intangybles\"},\"sameAs\":[\"https:\\\/\\\/www.amigaretro.com\"],\"url\":\"https:\\\/\\\/www.amigaretro.com\\\/projects\\\/author\\\/intangybles\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Six Machines, One Game: Proving the Multi-Port Idea - Amiga Retro Brisbane Projects","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/","og_locale":"en_US","og_type":"article","og_title":"Six Machines, One Game: Proving the Multi-Port Idea - Amiga Retro Brisbane Projects","og_description":"Six Machines, One Game Part 2A of a series &#8211; an unplanned chapter between Part 2 and Part 3. Part 1: Blake\u2019s 7, Beatle Quest, and a Very Practical Text Adventure Path Part 2: Beatle Quest, Real Hardware, and What \u201cFinished\u201d Actually Means This was not the plan Part 2 ended with a promise: Blake&#8217;sRead more &#10230;","og_url":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/","og_site_name":"Amiga Retro Brisbane Projects","article_published_time":"2026-08-28T13:59:44+00:00","og_image":[{"width":577,"height":451,"url":"https:\/\/www.amigaretro.com\/projects\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-28-213232.png","type":"image\/png"}],"author":"intangybles","twitter_card":"summary_large_image","twitter_misc":{"Written by":"intangybles","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/#article","isPartOf":{"@id":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/"},"author":{"name":"intangybles","@id":"https:\/\/www.amigaretro.com\/projects\/#\/schema\/person\/ef7ef27139852846ec843b32e0c47dea"},"headline":"Six Machines, One Game: Proving the Multi-Port Idea","datePublished":"2026-08-28T13:59:44+00:00","mainEntityOfPage":{"@id":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/"},"wordCount":2039,"publisher":{"@id":"https:\/\/www.amigaretro.com\/projects\/#organization"},"image":{"@id":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/#primaryimage"},"thumbnailUrl":"https:\/\/www.amigaretro.com\/projects\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-28-213232-300x234.png","keywords":["Article","CoCo","Color Computer","Text Adventure","TRS-80"],"articleSection":["Games","General Retro","NABU","TRS-80"],"inLanguage":"en-AU"},{"@type":"WebPage","@id":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/","url":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/","name":"Six Machines, One Game: Proving the Multi-Port Idea - Amiga Retro Brisbane Projects","isPartOf":{"@id":"https:\/\/www.amigaretro.com\/projects\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/#primaryimage"},"image":{"@id":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/#primaryimage"},"thumbnailUrl":"https:\/\/www.amigaretro.com\/projects\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-28-213232-300x234.png","datePublished":"2026-08-28T13:59:44+00:00","breadcrumb":{"@id":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/#breadcrumb"},"inLanguage":"en-AU","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/"]}]},{"@type":"ImageObject","inLanguage":"en-AU","@id":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/#primaryimage","url":"https:\/\/www.amigaretro.com\/projects\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-28-213232.png","contentUrl":"https:\/\/www.amigaretro.com\/projects\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-28-213232.png","width":577,"height":451},{"@type":"BreadcrumbList","@id":"https:\/\/www.amigaretro.com\/projects\/six-machines-one-game\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.amigaretro.com\/projects\/"},{"@type":"ListItem","position":2,"name":"Six Machines, One Game: Proving the Multi-Port Idea"}]},{"@type":"WebSite","@id":"https:\/\/www.amigaretro.com\/projects\/#website","url":"https:\/\/www.amigaretro.com\/projects\/","name":"Amiga Retro Brisbane Projects","description":"Amiga was\u2026is &amp; will be \u2026 as long as we are around.","publisher":{"@id":"https:\/\/www.amigaretro.com\/projects\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.amigaretro.com\/projects\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-AU"},{"@type":"Organization","@id":"https:\/\/www.amigaretro.com\/projects\/#organization","name":"Amiga Retro Brisbane Projects","url":"https:\/\/www.amigaretro.com\/projects\/","logo":{"@type":"ImageObject","inLanguage":"en-AU","@id":"https:\/\/www.amigaretro.com\/projects\/#\/schema\/logo\/image\/","url":"https:\/\/www.amigaretro.com\/projects\/wp-content\/uploads\/2022\/09\/arb-logo.svg","contentUrl":"https:\/\/www.amigaretro.com\/projects\/wp-content\/uploads\/2022\/09\/arb-logo.svg","width":534,"height":192,"caption":"Amiga Retro Brisbane Projects"},"image":{"@id":"https:\/\/www.amigaretro.com\/projects\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.amigaretro.com\/projects\/#\/schema\/person\/ef7ef27139852846ec843b32e0c47dea","name":"intangybles","image":{"@type":"ImageObject","inLanguage":"en-AU","@id":"https:\/\/secure.gravatar.com\/avatar\/bb82b762414a7351c26e0df4677134fa0bacfc8c283248a6ee3bedd7d0d694be?s=96&d=robohash&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/bb82b762414a7351c26e0df4677134fa0bacfc8c283248a6ee3bedd7d0d694be?s=96&d=robohash&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bb82b762414a7351c26e0df4677134fa0bacfc8c283248a6ee3bedd7d0d694be?s=96&d=robohash&r=pg","caption":"intangybles"},"sameAs":["https:\/\/www.amigaretro.com"],"url":"https:\/\/www.amigaretro.com\/projects\/author\/intangybles\/"}]}},"_links":{"self":[{"href":"https:\/\/www.amigaretro.com\/projects\/wp-json\/wp\/v2\/posts\/437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.amigaretro.com\/projects\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.amigaretro.com\/projects\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.amigaretro.com\/projects\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.amigaretro.com\/projects\/wp-json\/wp\/v2\/comments?post=437"}],"version-history":[{"count":2,"href":"https:\/\/www.amigaretro.com\/projects\/wp-json\/wp\/v2\/posts\/437\/revisions"}],"predecessor-version":[{"id":440,"href":"https:\/\/www.amigaretro.com\/projects\/wp-json\/wp\/v2\/posts\/437\/revisions\/440"}],"wp:attachment":[{"href":"https:\/\/www.amigaretro.com\/projects\/wp-json\/wp\/v2\/media?parent=437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.amigaretro.com\/projects\/wp-json\/wp\/v2\/categories?post=437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.amigaretro.com\/projects\/wp-json\/wp\/v2\/tags?post=437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}