<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Get Info: #hardware</title>
    <description>Posts tagged “hardware” — Blog of independent game and app developer Matt Sephton. Featuring vintage Macintosh, game development, digital artwork, Japanese esoterica, video game reviews, hacks and tips, and much more.</description>
    <link>https://blog.gingerbeardman.com/tag/hardware/</link>
    <atom:link href="https://blog.gingerbeardman.com/tag/hardware/index.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Tue, 14 Jul 2026 14:36:29 +0000</pubDate>
    <lastBuildDate>Tue, 14 Jul 2026 14:36:29 +0000</lastBuildDate>
    <generator>Jekyll v4.4.1</generator>

    
      
        <item>
          <title>Casio CALEID XM-700 Mobile Navigator (1997)</title>
          <description>&lt;p&gt;I like to think everybody collects something odd. Me? I collect hanafuda video games: digital implementations of traditional physical Japanese card games. Mostly that means physical copies of games for consoles and computers both new and old, for handhelds like Game Boy Advance, WonderSwan, digital versions for computers, handhelds and smart phones, and sometimes versions for platforms nobody has ever heard of.&lt;/p&gt;

&lt;h2 id=&quot;down-the-rabbit-hole&quot;&gt;Down the rabbit hole&lt;/h2&gt;

&lt;p&gt;At some point last year (shortly before I began writing this blog post!) I found reference to a hanafuda video game created in 1998 for the Casio CALEID XM-700 Mobile Navigator &lt;a href=&quot;http://webcache.googleusercontent.com/search?q=cache%3Ahp.vector.co.jp%2Fauthors%2FVA003746%2FCALEID3.HTM&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;hl=en-gb&amp;amp;client=safari&quot;&gt;on a random old, Japanese website&lt;/a&gt;. It turns out this device is a long-forgotten handheld computer that was released in 1997, only in Japan. The device is what you might refer to as a &lt;abbr title=&quot;Personal Information Manager&quot;&gt;PIM&lt;/abbr&gt; or &lt;abbr title=&quot;Personal Data Assistant&quot;&gt;PDA&lt;/abbr&gt;, roughly equivalent to Apple Newton or Palm Pilot, particularly as it featured handwriting recognition. Not what we would consider powerful in this day and age, but good at running database lookups and any undemanding software written specifically for it. The CPU was Intel 8086 compatible, like &lt;a href=&quot;https://www.youtube.com/watch?v=q3qIS5XvzfQ&quot;&gt;other period CASIO handheld personal computers&lt;/a&gt;, and &lt;a href=&quot;https://www.sci.u-toyama.ac.jp/~iwao/caleid.html&quot;&gt;an SDK was available&lt;/a&gt;. Cost of the device was 47800JPY, which was around 240GBP or 400USD at the time.&lt;/p&gt;

&lt;p&gt;The game file came with a reference bitmap showing hanafuda scoring, which was just the type of guarantee and encouragement I needed to start hunting.&lt;/p&gt;

&lt;p class=&quot;tofigure&quot;&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/caleid-hanafuda-cards.png#pixel&quot; alt=&quot;PNG&quot; title=&quot;Scoring reference image, included inside HANA100.LZH&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;research-first&quot;&gt;Research first&lt;/h2&gt;

&lt;p&gt;So, after making sure the related web pages were archived to the Wayback Machine, and the downloads backed up, I did a bunch of reading to try to figure out whether or not I would be able to play this game if I bought a device.&lt;/p&gt;

&lt;p&gt;It turns out the device arrived around the same time as USB 1.0. So perhaps its development, and most definitely its buyers, existed in a world that predated widespread support for USB. To that end, the device only has a serial connection. And not only that, the serial connection is on a dock that was not always sold with the device. Without the dock there is no way to transfer files to/from the device!&lt;/p&gt;

&lt;p&gt;For me to stand a chance at this, I’d need to buy a device with a dock and the software to put files onto the device. After some searching, lots of waiting, and more searching, one came up for auction on Yahoo! Japan Auctions. I bought it.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/caleid-promo.jpg&quot; alt=&quot;PNG&quot; title=&quot;Promotional photo of Casio CALEID XM-700 Mobile Navigator&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;caleid-get&quot;&gt;CALEID GET!&lt;/h2&gt;

&lt;p&gt;The screen is 320x240 monochrome (1-bit) which exhibits an odd quirk that active pixels cast a shadow because the LCD is clear and the silver backing is some distance away. This is long before the LCD would be fused to the backing. In fact, some units you see for sale have creases in the silver backing, I’m not sure what must have happened to those devices!&lt;/p&gt;

&lt;p&gt;The system software is a charming custom OS, featuring a full mobile office suite, and 2MB of flash storage (1.49MB free for user data). Most importantly it allows user-created Add-ins to be loaded onto it, we would call them plugins or apps today. The device even has an expansion port for communications peripherals, enabling it to do email/fax using a cell phone or pay phone as data connection. A salaryman’s dream in late-90s Japan!&lt;/p&gt;

&lt;p&gt;My goal: sideload the hanafuda game, along with anything else I can lay my hands on, using the proprietary dock, sync software and a Japanese install of Windows 98!&lt;/p&gt;

&lt;p&gt;I love this sort of challenge that requires discovery and understanding of old hardware and software, and a little (but not too much) messing around with old versions of Windows.&lt;/p&gt;

&lt;lite-youtube style=&quot;aspect-ratio: 16/9;&quot; videoid=&quot;6vCO28GqnlA&quot; params=&quot;start=0&amp;amp;modestbranding=2&quot;&gt;
&lt;/lite-youtube&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;You can &lt;a href=&quot;https://twitter.com/gingerbeardman/status/1560631734198104065&quot;&gt;follow this process in a Twitter thread I created last year&lt;/a&gt; which contains additional images. I’ve also created an &lt;a href=&quot;https://imgur.com/a/4Ef6nXP&quot;&gt;imgur gallery&lt;/a&gt; of photos and screenshots from the installation process.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I thought it would be fun to try to do this on period correct hardware, so I tried to use my old Sony VAIO PCG-Z600RE from 1999, but the battery is coming up to 20 years old and even with mains power it no longer turns on reliably enough for me to do anything. I would have had to install Japanese language support into Windows. So I quickly gave up this folly.&lt;/p&gt;

&lt;p&gt;A better approach would be to use modern hardware running Windows in a Virtual machine, and &lt;a href=&quot;https://archive.org/details/windows-98-se-japanese-vmware&quot;&gt;I already have one set up running Japanese Windows 98&lt;/a&gt;. I hit a temporary roadblock whilst installing the DATA IMPRESSION for CALEID sync software: it is date locked to only run between the years 1988 and 2010. And here I am over a decade late! Thankfully a quick date change and we’re back in business.&lt;/p&gt;

&lt;p&gt;The first run of sync software post-install requests that you run a Comms check. You have to tap the menu and folder buttons alternately seven times to put the device into a special debug mode, a tip cleaned from an addendum leaflet that came in the box. Without that leaflet I probably would have been stuck.&lt;/p&gt;

&lt;p&gt;I used a USB to Serial cable to take care of the connection to the dock and it just worked, though I know from first hand experience that is lucky as some cheap adapters require a bit of fiddling to work with ancient Windows versions. Data transfer is slow at 9600 baud, that’s less than 1KB per second. I’ll try increasing the baud rate later, maybe.&lt;/p&gt;

&lt;h2 id=&quot;syncing&quot;&gt;Syncing&lt;/h2&gt;

&lt;p&gt;Syncing is done using a custom version of Data Impression 2, renamed Data Impression for CALEID. It has an arcane, overly complicated user interface along with a multitude of period and cultural quirks.&lt;/p&gt;

&lt;p&gt;After some time spent browsing and translating the menus I found the section of the interface listing Add-ins and imported a bunch that I downloaded earlier. There’s some awkwardness to this process which I’ll describe later.&lt;/p&gt;

&lt;p&gt;Syncing was working, but the add-ins were not syncing across for some reason. My thought that it was probably something obvious was correct. In the DATA IMPRESSION app you need to press the button that doesn’t look like other buttons (yellow text) and then enable Add-in syncing! We’re almost there, I can feel it.&lt;/p&gt;

&lt;p class=&quot;tofigure&quot;&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/caleid-data-impression.png&quot; alt=&quot;PNG&quot; title=&quot;Data synchronisation is achieved using Data Impression for CALEID (see &amp;lt;a href=&apos;https://imgur.com/a/4Ef6nXP&apos;&amp;gt;imgur gallery&amp;lt;/a&amp;gt;)&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;add-ins&quot;&gt;Add-ins&lt;/h2&gt;

&lt;p&gt;The last little bits are worth bullet pointing, as they require some detailed operation:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Launch “DATA IMPRESSION for CALEID”&lt;/li&gt;
  &lt;li&gt;Select 電子手帳 (“Electronic Notebook”) from the buttons above the clock on the right (2nd from bottom) and then:
    &lt;ol&gt;
      &lt;li&gt;Make the model selection カレイド (“Caleid”, default)&lt;/li&gt;
      &lt;li&gt;Make the type of communication データ送信 (“data transmission”, dropdown 2, 3rd list item)&lt;/li&gt;
      &lt;li&gt;Click the 動作設定 (“operation settings”, button 3)&lt;/li&gt;
      &lt;li&gt;Check the アドイン (“Add-in”) checkbox (bottom, alt+D)&lt;/li&gt;
      &lt;li&gt;Uncheck all other types of data to disable syncing of those&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;Select メモ帳 (“Notepad”) from the menu on the right and then:
    &lt;ol&gt;
      &lt;li&gt;Select the アドイン (“Add-in”) folder&lt;/li&gt;
      &lt;li&gt;Select メモ帳 (“Notepad”) -&amp;gt; アドインデータの読み込み (“Read Add-in Data”) from the menu bar (alt+M, R)&lt;/li&gt;
      &lt;li&gt;Choose an add-in file (*.adi)&lt;/li&gt;
      &lt;li&gt;Repeat steps 1-3 for multiple add-ins&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;Press the スタート (“Start”) button on the dock. Add-In will be sent to the CALEID.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Gotchas:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Serial ports in VMs can be a hassle, try both the host PC and guest VM ports&lt;/li&gt;
  &lt;li&gt;DATA IMPRESSION will let you know if it can’t communicate over the selected serial port&lt;/li&gt;
  &lt;li&gt;Cursor needs to be in the Add-Ins folder for the Add-in menu items to be enabled&lt;/li&gt;
  &lt;li&gt;Syncing without an Add-in selected will result in a failure message&lt;/li&gt;
  &lt;li&gt;If you select an existing add-in rather than the Add-in folder, the existing add-in will be overwritten by the newly imported one(!)&lt;/li&gt;
  &lt;li&gt;If you start with the demo data you’ll have a bunch of test items in the various apps, see note below&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Awkwardness: Add-ins have to be transferred one at a time, but a sync of a single Add-in goes fast enough after disabling syncing of all other types of data (notes, calendar, spreadsheets, etc).&lt;/p&gt;

&lt;p&gt;Note: the first time I setup the device starting with the demo data it must have been syncing 25 years worth of recurring demonstration calendar events. Each sync of a single add-in took multiple minutes. Maybe that’s why they didn’t want anybody running the sync software so long after the device had been released?&lt;/p&gt;

&lt;p&gt;The final, &lt;a href=&quot;https://lucidar.me/en/serialib/most-used-baud-rates-table/&quot;&gt;highest supported baud rate is 38400&lt;/a&gt; (4800 bytes/sec theoretical speed, 3840 bytes/s actual speed, that’s 3.75KB/sec). Game sizes range between 3KB and 32KB, averaging 12KB each. So the slowest part of the process is the GUI busy work to install the Add-ins in DATA IMPRESSION for CALEID, and then syncing them one by one.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;game-on&quot;&gt;Game on!&lt;/h2&gt;

&lt;p&gt;Here’s my Casio CALEID XM-700 Mobile Navigator running 花合わせ (Hana-awase) a hanafuda game made by すーさん (Sū-san) in 1998. Pixels are slightly wider than they are tall so the cards in the game display wider than in the image at the top of the page.&lt;/p&gt;

&lt;p&gt;…I wonder how many other people have played this game in the last 25 years?&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In a follow-up post I’ll detail the other games that I was able to install on the device.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/caleid-hanafuda-running.jpg&quot; alt=&quot;JPG&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/caleid-hanafuda-running-close-up.jpg&quot; alt=&quot;JPG&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;casio-catalog-97-12&quot;&gt;CASIO Catalog ‘97-12&lt;/h2&gt;

&lt;p class=&quot;tofigure&quot;&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/caleid-catalog.webp&quot; alt=&quot;WEBP&quot; title=&quot;CALEID page from the CASIO Catalog, December 1997, with thanks to &amp;lt;a href=&apos;https://www.casio-calculator.com/Download/Catalogue/Catalogues.html&apos;&amp;gt;casio-calculator.com&amp;lt;/a&amp;gt;&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;extras&quot;&gt;Extras&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://cdn.gingerbeardman.com/files/caleid-addins.dim.zip&quot;&gt;caleid.addins.dim.zip&lt;/a&gt; (294KB) a profile for DATA IMPRESSION for CALEID that has all the Add-ins I’ve found so far pre-installed and ready to sync&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cdn.gingerbeardman.com/files/caleid.portmon-serial-addin.txt&quot;&gt;caleid.portmon-serial-addin.txt&lt;/a&gt;
(44KB) a &lt;a href=&quot;https://learn.microsoft.com/en-us/sysinternals/downloads/portmon&quot;&gt;portmon&lt;/a&gt; serial log taken whilst syncing a single Add-in (the sample card game that comes with DATA IMPRESSION for CALEID)&lt;/li&gt;
&lt;/ul&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Fri, 25 Aug 2023 21:44:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2023/08/25/casio-caleid-xm700-mobile-navigator-hardware/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2023/08/25/casio-caleid-xm700-mobile-navigator-hardware/</guid>
        </item>
      
    
      
        <item>
          <title>Beyerdynamic Blue Byrd (1st generation) battery replacement</title>
          <description>&lt;p&gt;I’ve had a pair of Beyerdynamic Blue Byrd 1st generation bluetooth earbud headphones since June 2020. They are great Bluetooth headphones but were recalled just after I bought them. Somebody got too sweaty and managed to somehow burn themselves on the headphone wire. Given that no replacement was being offered I refused to send mine back in the recall. I don’t exercise with mine so I figured I’d be safe enough and I have been.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Warning: I’d like to take the opportunity to mention how bad Beyerdynamic customer support is: absolutely atrocious. Everybody I dealt with over the phone were really aggressive.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The headphones have a companion app that you can do a hearing test with, and you can supplement that one with a second test through the &lt;a href=&quot;https://mimi.io/mimi-hearing-test-app&quot;&gt;Mimi hearing test app&lt;/a&gt;. The results can be used to personalised the sound that is produced, counteracting any hearing loss you have. For me, it seems to amplifies sound in the frequency range of my age-related hearing loss and tinnitus so that I can hear sounds I can’t hear so clearly using normal headphones. It works well and the sound is really great. A short while after the recall official support for upgrading the firmware was pulled from the app, but everything else continues to work as well as I need it to.&lt;/p&gt;

&lt;h2 id=&quot;problem&quot;&gt;Problem&lt;/h2&gt;

&lt;p&gt;After three years the expected battery life was down from around 6 hours to perhaps 2 or 3 hours at best. To give you an idea of what an inconvenience this is: I’d have to go into a movie with a full charge or they’d run out part way through. I looked around for a replacement set but they’re hard to come by and I don’t like the design of the 2nd generation model so I decided to see if I could change the batteries myself. I watched some YouTube videos and it seemed doable!&lt;/p&gt;

&lt;p&gt;I couldn’t find any direct replacements, the &lt;em&gt;3.7V VDL 53mAh 410920 lithium-ion&lt;/em&gt; seem unobtainable in 2023 and I needed two of them. I eventually settled on two &lt;em&gt;3.7V 80mAh 401119 lithium-polymer&lt;/em&gt; batteries, of no particular brand, but from a reputable eBay seller. They are pretty much identical sizes—roughly 2cm x 1cm x 0.4cm—and are a straight swap. The new batteries have a higher power rating so I’m hoping to get longer usage between charges: we’ll see.&lt;/p&gt;

&lt;h2 id=&quot;lets-do-this&quot;&gt;Let’s do this!&lt;/h2&gt;

&lt;p&gt;The battery cover compartments separate by pulling apart—carefully—perpendicular to the seam (so, each half directly away from each other and the line of the wire). One battery, I think the furthest from the remote, has two wires: ground and positive. The other battery, I think closest to the remote, has three wires: ground, positive and negative. Just desolder the existing batteries and solder the new batteries in their place.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Warning: the remote itself doesn’t need to be opened, as it contains only a small circuit board with surface mounted buttons, the USB-C charging socket, and related bluetooth electronics. It opens with a similar process to the battery covers, but I found that it is more easily damaged (and I did damage mine) so I would recommend leaving well enough alone!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;All in all replacing the batteries was pretty straight forward if you have the right tools, I recommend at least a magnifier or preferably microscope screen, and a good hot soldering iron. My friend &lt;a href=&quot;https://twitter.com/daver888&quot;&gt;Dave&lt;/a&gt; had all the gear which made the job easy. So, thanks to him!&lt;/p&gt;

&lt;p&gt;Initial usage with the new batteries is encouraging. In a week or two I’ll edit this blog post with the sort of usage time I’m getting.&lt;/p&gt;

&lt;lite-youtube style=&quot;aspect-ratio: 16/9;&quot; videoid=&quot;ktpNqWAlB0s&quot; params=&quot;start=0&amp;amp;modestbranding=2&quot;&gt;
&lt;/lite-youtube&gt;

&lt;p&gt;Here’s a little bit of video showing me unsoldering one of the original batteries. Everything is tiny!&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Fri, 30 Jun 2023 11:18:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2023/06/30/beyerdynamic-blue-byrd-replacement-batteries/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2023/06/30/beyerdynamic-blue-byrd-replacement-batteries/</guid>
        </item>
      
    
      
        <item>
          <title>Reviewing the iPhone Xs in 2023</title>
          <description>&lt;p&gt;Yes, the iPhone Xs came out in 2018. I thought it would be interesting to review it in 2023. Plus, I only just bought one!&lt;/p&gt;

&lt;p&gt;I hung on to the old home-button form factor for as long as I could, using a 6s for the longest time, but two things made me move to an edge-to-edge phone:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;I was on an SE2020 which doesn’t have enough RAM to run modern iOS well. The newer SE2022 has more RAM, but still suffers from…&lt;/li&gt;
  &lt;li&gt;the encroachment of user interface meant for edge-to-edge phones that do not work well on home-button devices: gestures, buttons, and weird spacings and misalignments: death by a thousand cuts.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So, why an Xs over a &lt;em&gt;newer&lt;/em&gt; iPhone? Many reasons.&lt;/p&gt;

&lt;h2 id=&quot;good&quot;&gt;Good&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Extra RAM is the biggest benefit, especially when it comes to multi-tasking&lt;/li&gt;
  &lt;li&gt;Home bar interactions are great, they make sense for this device&lt;/li&gt;
  &lt;li&gt;Safari address bar at the bottom also makes sense!&lt;/li&gt;
  &lt;li&gt;One of my favourite gestures is swiping up on the editable Safari address bar to get to tab view&lt;/li&gt;
  &lt;li&gt;Being able to see large cards for every tab now makes sense&lt;/li&gt;
  &lt;li&gt;3D Touch is so much more immediate than a long press&lt;/li&gt;
  &lt;li&gt;Camera features less computational adjustments&lt;/li&gt;
  &lt;li&gt;OLED blacks are really black&lt;/li&gt;
  &lt;li&gt;256GB capacity means less hassle&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;bad&quot;&gt;Bad&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Top corners accessibility is a pain, though reachability helps&lt;/li&gt;
  &lt;li&gt;Entering passwords is slower due to Face ID being slower than fingerprint&lt;/li&gt;
  &lt;li&gt;Having to enter my passcode more frequently due to Face ID fails&lt;/li&gt;
  &lt;li&gt;OLED ghosting at low brightness&lt;/li&gt;
  &lt;li&gt;3D Touch interactions other than long press have been removed&lt;/li&gt;
  &lt;li&gt;&lt;del&gt;Speakers are nowhere near as good as on the SE2020&lt;/del&gt;&lt;br /&gt;   &lt;em&gt;This issue was fixed for free at the same time as an official battery replacement&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;indifferent&quot;&gt;Indifferent&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Speed is slightly slower than SE2020, but the increased RAM and user interface fit are a net gain&lt;/li&gt;
  &lt;li&gt;Very slippery, but I use a case that provides additional grip and protection as I am clumsy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, there we have it! I bought an old iPhone rather than a new one and I’m enjoying it.&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Mon, 20 Mar 2023 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2023/03/20/reviewing-the-iphone-xs-in-2023/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2023/03/20/reviewing-the-iphone-xs-in-2023/</guid>
        </item>
      
    
      
        <item>
          <title>Updating the Becker Cascade navigation filesystem</title>
          <description>&lt;p&gt;I have a &lt;a href=&quot;https://ifdesign.com/en/winner-ranking/project/becker-traffic-pro-7949/2069&quot;&gt;Becker Traffic Pro 7949&lt;/a&gt; car audio and navigation system in my LHD Renault Twingo mk1. This unit, effectively a re-badged Becker Cascade with a green OLED screen rather than colour, was bundled with high-end sports cars of German and Italian origin, but I added one to my lowly Twingo because it’s a 1DIN headunit with great sound quality, navigation and music support from CF card, that gives spoken and on-screen turn-by-turn directions!&lt;/p&gt;

&lt;p&gt;Even today the interface is rock solid and obvious, and the turn-by-turn directions pack a lot of information on screen. Below we can see (clockwise from top right): menu marker, ETA, distance to next turn as number and as shaded road edge, turn-by-turn arrow, traffic message control badge, remaining journey time, current road and next road.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/becker-7949.png&quot; alt=&quot;PNG&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2009/09/05/hacking-the-becker-cascade-navigation-cf-card/&quot;&gt;A while ago I hacked the CF card structure&lt;/a&gt; to allow use of larger capacity cards to more easily store maps and music side-by-side. Good times!&lt;/p&gt;

&lt;h2 id=&quot;upgrading-maps&quot;&gt;Upgrading maps&lt;/h2&gt;

&lt;p&gt;The maps for this thing were long discontinued, but for a while users such as myself were able to use maps made for BMW’s business fleet (with partial postcode search) and more recently Mercedes-Benz (with no postcode search).&lt;/p&gt;

&lt;p&gt;It’s also possible to add speed limit and camera data through injecting a new .lwd file (thanks SCDB!) into the split ISO filesystem. This relied on using Windows and some old apps.&lt;/p&gt;

&lt;p&gt;Today I wrote a small shell script to do the same on macOS (and probably Linux, maybe Windows).&lt;/p&gt;

&lt;noscript&gt;&lt;p&gt;&lt;a href=&quot;https://gist.github.com/gingerbeardman/f18de0abe61c8dd548b4901b606bf39b&quot;&gt;View the source code as a Gist&lt;/a&gt;&lt;/p&gt;&lt;/noscript&gt;
&lt;script src=&quot;https://gist.github.com/gingerbeardman/f18de0abe61c8dd548b4901b606bf39b.js&quot;&gt;&lt;/script&gt;

</description>
          <author>by Matt Sephton</author>
          <pubDate>Sun, 11 Dec 2022 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2022/12/11/updating-the-becker-cascade-navigation-filesystem/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2022/12/11/updating-the-becker-cascade-navigation-filesystem/</guid>
        </item>
      
    
      
        <item>
          <title>Aquaplus P/ECE: Game Reviews Vol. 2</title>
          <description>&lt;p&gt;If you’ve not yet read &lt;a href=&quot;/2021/08/19/aquaplus-piece-vs-panic-playdate/&quot;&gt;my review of the P/ECE&lt;/a&gt; hardware comparing it to Playdate, now is the time to catch up! It includes my 6 favourite games on the system.&lt;/p&gt;

&lt;p&gt;Below I cover more of the interesting and unique games that I enjoy on the system.&lt;/p&gt;

&lt;hr /&gt;

&lt;lite-youtube style=&quot;aspect-ratio: 16/9;&quot; videoid=&quot;44SKkmpJqlA&quot; params=&quot;start=0&amp;amp;modestbranding=2&quot;&gt;
&lt;/lite-youtube&gt;

&lt;h3 id=&quot;delta-star-by-black-ftz&quot;&gt;Delta Star, by BLACK FTZ&lt;/h3&gt;

&lt;p&gt;A new game for P/ECE in 2021! Well, technically it’s a re-release but I’ll take what I can get after all these years. Especially for only &lt;a href=&quot;https://booth.pm/en/items/3223530&quot;&gt;500¥ at BOOTH&lt;/a&gt; (pixiv account required).&lt;/p&gt;

&lt;p&gt;At first glance you might think this is a simple Asteroids clone, but you’d be wrong. Whilst it does share much with that concept it adds in enough of its own ideas to make it unique.&lt;/p&gt;

&lt;p&gt;First, the big differences: you can pass through enemies if you’re careful, and you can shoot down enemy bullets. That’s right, these aren’t lifeless hunks of rock floating around in space! There are multiple types of enemies some of which will fire either normal bullets or homing missiles. Your ship has forwards and reverse thrust, forward dash (a predictable and much more enjoyable equivalent of Asteroid’s teleport), sideways strafing (which I should use more often), and emergency braking. You can fire multiple shots at once, as expected, but they’re limited in number and have a short range of roughly a quarter of the width of the screen.&lt;/p&gt;

&lt;p&gt;There are 52 levels, with 4 boss encounters, and continue points. Gameplay is against the clock with remaining time being converted into points. Extra lives are awarded at key point milestones and greeted with one of many great sound effects. The initial levels are easy and can be completed quickly, almost like a tutorial, and after that difficulty ramps up quite nicely. As an example, enemy bullets aren’t seen until level 9. And I adore for the motivational messages at the end of each level that let you know how you did “don’t mind, nobody is perfect”.&lt;/p&gt;

&lt;p&gt;The game features smooth 60fps vector graphics with sub-pixel accuracy, plus some nice effects using multiple lines of different shades of grey. And amazing chip tunes. Listen to the high score entry tune at the end of the above video!&lt;/p&gt;

&lt;p&gt;I’ve been playing the free “Gratuitous Version” which has only one boss type and lacks music, so I’m excited to spend more time with this fleshed out version now that it’s available once again. Awesome work by BLACK FTZ team, what a lovely surprise for 2021.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/piece-speed-barricade.gif#piece&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;speed-barricade-by-kenta-cho-aba-games&quot;&gt;Speed Barricade, by Kenta Cho (ABA Games)&lt;/h3&gt;

&lt;p&gt;This was previously shown in my blog post comparing the P/ECE with Playdate, but I neglected to mention one cool thing…&lt;/p&gt;

&lt;lite-youtube style=&quot;aspect-ratio: 16/9;&quot; videoid=&quot;9h_m_Yz-PUc&quot; params=&quot;start=0&amp;amp;modestbranding=2&quot;&gt;
&lt;/lite-youtube&gt;

&lt;h3 id=&quot;speed-barricade-live-by-kenta-cho-aba-games&quot;&gt;Speed Barricade LIVE, by Kenta Cho (ABA Games)&lt;/h3&gt;

&lt;p&gt;If you play with your P/ECE connected using USB cable to your Windows PC you can use a special client app, &lt;a href=&quot;http://www.asahi-net.or.jp/\~cs8k-cyu/piece/sbrg.html&quot;&gt;Speed Barricade LIVE&lt;/a&gt;, to show real-time 3D footage of your game in full colour at high resolution! A true spectator sport.&lt;/p&gt;

&lt;hr /&gt;

&lt;lite-youtube style=&quot;aspect-ratio: 16/9;&quot; videoid=&quot;szQSOMhH0uQ&quot; params=&quot;start=0&amp;amp;modestbranding=2&quot;&gt;
&lt;/lite-youtube&gt;

&lt;h3 id=&quot;majang-project-by-hiroshi-makabe&quot;&gt;Majang Project, by Hiroshi Makabe&lt;/h3&gt;

&lt;p&gt;This game came out of the first of two P/ECE Hand Books written by &lt;a href=&quot;https://twitter.com/sinpen&quot;&gt;Hiroshi Makabe&lt;/a&gt;. The development of the game was outlined in the book and on an &lt;a href=&quot;https://web.archive.org/web/20021215064406/http://www.jc2.co.jp/p/contents2.html&quot;&gt;accompanying website&lt;/a&gt;. It has impressive greyscale graphics, nice animation, wonderful chip tune music, sampled voice clips, win/lose scenes, and hosts a nice VS CPU game of Mahjong. And that’s Riichi/Japanese Mahjong, not the Solitaire type you might associate with the name. I’d say this game is definitely of retail-release quality and was a good showcase for what is possible on the platform.&lt;/p&gt;

&lt;hr /&gt;

&lt;lite-youtube style=&quot;aspect-ratio: 16/9;&quot; videoid=&quot;YLcG_G5s8R8&quot; params=&quot;start=0&amp;amp;modestbranding=2&quot;&gt;
&lt;/lite-youtube&gt;

&lt;h3 id=&quot;alert-アラート-by-jumpei-isshiki-hello-world-project&quot;&gt;ALERT (アラート), by Jumpei Isshiki (HELLO WORLD PROJECT)&lt;/h3&gt;

&lt;p&gt;A nice little barrage shmup with procedurally generated boss fights! Prize winner in the &lt;a href=&quot;https://www.coremagazine.co.jp/megastore/piece/result.html&quot;&gt;Megastore Cup official contest&lt;/a&gt;. There’s a lot going on here, not just the bullets but also the gameplay logic and music. Remaining enemy bullets turn to points which offers an engaging risk/reward mechanic. Three game modes, Easy, Hard, and ENDLESS. Let’s go for the high score!&lt;/p&gt;

&lt;p&gt;I read that there was once a &lt;a href=&quot;https://mao.5ch.net/test/read.cgi/linux/1262615084&quot;&gt;port of this game&lt;/a&gt; to Dingux-based devices, and found it on a &lt;a href=&quot;https://www.axfc.net/u/976888.zip&quot;&gt;download site&lt;/a&gt; (I guessed “alert” was the password, how lucky!).&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/piece-delivery-bird.gif#piece&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;delivery-bird-by-hafupon&quot;&gt;Delivery Bird, by Hafupon&lt;/h3&gt;

&lt;p&gt;This is a Sokoban that shifts the view to side-on rather than top-down, which allows for height and gravity to enter into the puzzles. As with many of the best games on P/ECE, it was entered into one of the official game development &lt;a href=&quot;https://aquaplus.jp/piece/contest/index.html&quot;&gt;contests run by Aquaplus&lt;/a&gt;. This game won a runner-up prize.&lt;/p&gt;

&lt;p&gt;There’s also a &lt;a href=&quot;https://www.vector.co.jp/magazine/softnews/050608/n0506085.html&quot;&gt;Windows version&lt;/a&gt; that expands on the concept.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/piece-norito.gif#piece&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;norito-by-gorujii&quot;&gt;Norito, by Gorujii&lt;/h3&gt;

&lt;p&gt;Another runner-up in the &lt;a href=&quot;https://www.coremagazine.co.jp/megastore/piece/result.html&quot;&gt;Megastore Cup official contest&lt;/a&gt;. A great looking game featuring fluid wire-frame 3D with dithering for distant objects. It’s a strange sort of shmup that makes me think of both Jumping Flash and Battlezone. Controls take some getting used to but after that score attack is quite a challenge. The game system and stages are intertwined with a story, and things like the “one-shot” fortune-telling add extra flair.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;In the next volume of reviews I’ll cover the official bundled games in addition to some homebrew ports of popular games from other systems.&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Sat, 28 Aug 2021 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2021/08/28/aquaplus-piece-game-reviews-vol-2/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2021/08/28/aquaplus-piece-game-reviews-vol-2/</guid>
        </item>
      
    
      
        <item>
          <title>Aquaplus P/ECE (vs Panic Playdate)</title>
          <description>&lt;p&gt;The P/ECE was a Japan-only handheld/mobile gaming console released in late-2001. It was created by Aquaplus, a company better known for visual novels, so it carries with it a certain oddball charm. After 20 years I find it heart-warming to see that the &lt;a href=&quot;https://aquaplus.jp/piece/&quot;&gt;official website&lt;/a&gt; is still online!&lt;/p&gt;

&lt;p class=&quot;tofigure&quot;&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/piece.jpg&quot; alt=&quot;Aquaplus P/ECE&quot; title=&quot; Aquaplus P/ECE, launch edition&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;what-is-it&quot;&gt;What is it?&lt;/h2&gt;

&lt;p&gt;An &lt;a href=&quot;https://game.watch.impress.co.jp/docs/20011203/piece.htm&quot;&gt;early preview of the P/ECE&lt;/a&gt; referred to the P/ECE as a portable game console though the water was somewhat muddied by the fact that one of the built in apps, Picket, was a PIM (Personal Information Manager). This means it was often referred to as a PDA. It has a d-pad, start and select buttons, and you can play games on it—that makes it a console in my eyes. But a console where each unit could be used as a development device by connecting it to a desktop computer.&lt;/p&gt;

&lt;p&gt;Looking back at the P/ECE it was ahead of its time in many ways. To get a feel for what was going on when it came out:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;the most popular phone manufacturers were Nokia and Sony Ericsson&lt;/li&gt;
  &lt;li&gt;the battle between the PlayStation 2 and Dreamcast was ongoing&lt;/li&gt;
  &lt;li&gt;ICO was the latest PlayStation 2 game&lt;/li&gt;
  &lt;li&gt;Rez was the latest Dreamcast game&lt;/li&gt;
  &lt;li&gt;the iPod and Game Boy Advance had both just launched&lt;/li&gt;
  &lt;li&gt;YouTube and Facebook had yet to be created&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…it really was a different era!&lt;/p&gt;

&lt;h2 id=&quot;discovery&quot;&gt;Discovery&lt;/h2&gt;

&lt;p&gt;I learned of the P/ECE several years ago when looking at the output of one of my favourite video game developers, Kuniake “kuni” Watanabe. He’s probably best known for &lt;a href=&quot;https://www.siliconera.com/panekit-the-infinitive-crafting-toy-case-game-finally-sees-profits-after-13-years/&quot;&gt;Panekit&lt;/a&gt;, and open-world sandbox game on PlayStation. Though my favourite of his games is &lt;a href=&quot;/2013/06/29/maboshi/&quot;&gt;MaBoShi&lt;/a&gt; on Wii (and DS via download play) which is a razor sharp focussed set of three games that interact with each other in an innovative (and &lt;a href=&quot;https://www.google.com/patents/US20090093314&quot;&gt;patented&lt;/a&gt;) way. I’d go so far as to say that &lt;a href=&quot;https://www.youtube.com/watch?v=MiVbBi0jdhw&quot;&gt;Circle mode in MaBoShi&lt;/a&gt; is my favourite game concept of all time.&lt;/p&gt;

&lt;p&gt;The same preview article I mentioned above also says “in terms of specs, (P/ECE) comes above the PocketStation and below the Game Boy” though I think that’s selling the P/ECE a little short. The CPU was quite fast and efficient for its time, and the fact that it had no specific graphics hardware meant that people had to get creative and optimise. Some of the results, seen below, would have been very tricky or impossible to achieve on the original Game Boy.&lt;/p&gt;

&lt;p&gt;Over its short term of popularity the P/ECE platform had a vibrant homebrew scene and received ports or demakes of everything from Mitchell Corp’s masterpiece Polarium, through arcade gems like Flipull (aka Plotting), to console classics Panel de Pon (aka Tetris Attack) and more besides. It was home to proper Japanese RPGs and small arcade games and the number of games stretch into triple figures.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;selected-games-by-kuniake-watanabe&quot;&gt;Selected Games by Kuniake Watanabe&lt;/h2&gt;

&lt;p&gt;Anyway! During his indie days, Kuni developed for a &lt;a href=&quot;https://k-u.hatenadiary.org/entries/1970/01/01&quot;&gt;range of platforms&lt;/a&gt; and in a variety of languages and wrote several games for the P/ECE. Here are my favourites:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/piece-spout.gif#piece&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;spout&quot;&gt;spout&lt;/h3&gt;

&lt;p&gt;A lunar lander style game where your thrust can destroy the scenery. Your task is to get as high as possible, though that is much easier said than done as the scenery becomes gradually more complex and time is always ticking away.&lt;/p&gt;

&lt;p&gt;This is perhaps the most famous P/ECE game as it was released with source code for an SDL version and received ports to GP32 and related platforms. There’s a &lt;a href=&quot;http://microtrip-game.com/spout/&quot;&gt;modern remake for iOS and Android&lt;/a&gt; by a different developer, though it keeps the same title.&lt;/p&gt;

&lt;p&gt;edit: &lt;a href=&quot;https://twitter.com/k_u/status/1429654871532212224?s=21&quot;&gt;kuni’s game design notes&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/piece-fencer.gif#piece&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;fencer&quot;&gt;fencer&lt;/h3&gt;

&lt;p&gt;A snake type game where your head has momentum and your tail length depends on your speed, allowing fine and fluid movement. The goal is to avoid bombs and use your tail as a barrier that will destroy them. Chaining together multiple explosions is the key to high scores.&lt;/p&gt;

&lt;p&gt;There was an official updated version for iOS, titled fencell, but it’s not longer on the App Store due to Apple removing all 32-bit games back in 2017. Yet the 20-year-old P/ECE version is &lt;a href=&quot;http://www.susami.co.jp/kuni/junk/junk.htm&quot;&gt;still available for download&lt;/a&gt;. There’s a lesson for us all.&lt;/p&gt;

&lt;p&gt;edit: &lt;a href=&quot;https://twitter.com/k_u/status/1429654873574830080?s=21&quot;&gt;kuni’s game design notes&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/piece-interground.gif#piece&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;interground&quot;&gt;interground&lt;/h3&gt;

&lt;p&gt;In this game you must use a rotating stick to push sand around in an attempt to bury the little people running on top of it. If the stick touches a moving enemy or you run out of time that means game over.&lt;/p&gt;

&lt;p&gt;edit: &lt;a href=&quot;https://twitter.com/k_u/status/1429654875755802631?s=21&quot;&gt;kuni’s game design notes&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;selected-games-by-kenta-cho-aba-games&quot;&gt;Selected Games by Kenta Cho (ABA Games)&lt;/h2&gt;

&lt;p&gt;Whilst digging into P/ECE forgotten history, I also found several old games by Kenta Cho (then: Saba, now: ABA Games) who even today continues to &lt;a href=&quot;http://www.asahi-net.or.jp/\~cs8k-cyu/browser.html&quot;&gt;crank out brilliant little games&lt;/a&gt; at an inspiring rate.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/piece-barrage-reactor.gif#piece&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;barrage-reactor&quot;&gt;Barrage Reactor&lt;/h3&gt;

&lt;p&gt;A twin-stick shmup played with a d-pad and two buttons! The d-pad moves your ship around and the buttons rotate your aim as you fire automatically. Waves of enemies appear and a surprisingly tactical game ensues.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/piece-speed-barricade.gif#piece&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;speed-barricade&quot;&gt;Speed Barricade&lt;/h3&gt;

&lt;p&gt;A 3D “Tron” light cycles game where the aim is to stay alive for as long as possible whilst outwitting an increasing number of computer controlled players. Quick reflexes are definitely needed for this one!&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/piece-re.gif#piece&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;re-w32badtrance&quot;&gt;Re: W32/Badtrance&lt;/h3&gt;

&lt;p&gt;A 3D demake of Rez where the Microsoft Outlook(!) icon produces waves of enemies that need to be shot down as efficiently as possible by locking on to multiple enemies before firing your missiles. With the strap line “Gentlemen, open your Outlook. Go to Cyberterrorism.” maybe Kenta Cho was sick of email back in 2001?&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;If there’s enough interest I’ll feature more P/ECE games in a future blog post. Let me know on the comments link at the bottom of the page.&lt;/p&gt;

&lt;h2 id=&quot;20-years-later&quot;&gt;20 years later&lt;/h2&gt;

&lt;p&gt;Here we are in 2021 and Panic’s Playdate will soon be shipping. By now I’m sure you’ve spotted several similarities between the P/ECE and Playdate. The main one being that both devices offer immediate, unfettered access to developers wishing to make their own games, and those games can be side-loaded.&lt;/p&gt;

&lt;p&gt;Of course, 20 years is a long time in technology so the Playdate has many improvements compared to what the P/ECE achieved in 2001. More storage, faster CPU, better connectivity, plus a bigger and better screen. Playdate offers cross-platform development using either C or Lua and, and you won’t need a device to develop for the platform. In contrast, P/ECE offered development only for Windows and only in C, plus you needed a device to test your code. A &lt;a href=&quot;https://github.com/autch/piemu&quot;&gt;homebrew emulator&lt;/a&gt; was eventually released, which is what I’ve used for the screen recordings shown earlier.&lt;/p&gt;

&lt;p&gt;Oh, and both devices have names that make web searches a bit tricky. 😅&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/piece-vs-playdate.jpg&quot; alt=&quot;JPG&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;specifications-comparison&quot;&gt;Specifications Comparison&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt; &lt;/th&gt;
      &lt;th&gt;Playdate&lt;/th&gt;
      &lt;th&gt;P/ECE&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Manufacturer&lt;/td&gt;
      &lt;td&gt;Panic&lt;/td&gt;
      &lt;td&gt;Aquaplus&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Release date&lt;/td&gt;
      &lt;td&gt;2021&lt;/td&gt;
      &lt;td&gt;2001&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Battery (active)&lt;/td&gt;
      &lt;td&gt;8h&lt;/td&gt;
      &lt;td&gt;2h&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Battery (standby)&lt;/td&gt;
      &lt;td&gt;2w&lt;/td&gt;
      &lt;td&gt;1w&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Battery (type)&lt;/td&gt;
      &lt;td&gt;Rechargeable internal battery&lt;/td&gt;
      &lt;td&gt;1×AA&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;CPU (type)&lt;/td&gt;
      &lt;td&gt;STMicroelectronics STM32F746&lt;br /&gt;(ARM Cortex-M7F)&lt;/td&gt;
      &lt;td&gt;EPSON S1C33209&lt;br /&gt;(32-bit RISC)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;CPU (speed)&lt;/td&gt;
      &lt;td&gt;180 MHz&lt;/td&gt;
      &lt;td&gt;24 Mhz&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Storage (RAM)&lt;/td&gt;
      &lt;td&gt;16MB&lt;/td&gt;
      &lt;td&gt;256KB&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Storage (Flash)&lt;/td&gt;
      &lt;td&gt;4GB (3.9GB usable)&lt;/td&gt;
      &lt;td&gt;512KB (348KB usable)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Device (colour)&lt;/td&gt;
      &lt;td&gt;Yellow&lt;/td&gt;
      &lt;td&gt;Silver&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Device (dimensions)&lt;/td&gt;
      &lt;td&gt;76×74×9mm&lt;/td&gt;
      &lt;td&gt;101×65×17mm&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Device (inputs)&lt;/td&gt;
      &lt;td&gt;D-pad, A, B, Menu, Sleep, Accelerometer, Crank&lt;/td&gt;
      &lt;td&gt;D-pad, A, B, Start, Select&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Device (weight)&lt;/td&gt;
      &lt;td&gt;85g&lt;/td&gt;
      &lt;td&gt;92g&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Data connection (wired)&lt;/td&gt;
      &lt;td&gt;USB-C to A&lt;/td&gt;
      &lt;td&gt;USB-B to A&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Data connection (wireless)&lt;/td&gt;
      &lt;td&gt;Wi-Fi &amp;amp; Bluetooth&lt;/td&gt;
      &lt;td&gt;Infrared (IR)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Sound (type)&lt;/td&gt;
      &lt;td&gt;Software synthesis, Digital audio&lt;/td&gt;
      &lt;td&gt;Software synthesis&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Sound (speaker)&lt;/td&gt;
      &lt;td&gt;Mono&lt;/td&gt;
      &lt;td&gt;Mono&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Sound (headphone)&lt;/td&gt;
      &lt;td&gt;Stereo&lt;/td&gt;
      &lt;td&gt;Mono&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Display (technology)&lt;/td&gt;
      &lt;td&gt;Sharp Memory LCD&lt;/td&gt;
      &lt;td&gt;FSTN LCD&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Display (size)&lt;/td&gt;
      &lt;td&gt;59×35mm&lt;br /&gt;(2.7” diagonal)&lt;/td&gt;
      &lt;td&gt;45×31mm&lt;br /&gt;(2.15” diagonal)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Display (resolution)&lt;/td&gt;
      &lt;td&gt;400×240&lt;/td&gt;
      &lt;td&gt;128×88&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Display (colours)&lt;/td&gt;
      &lt;td&gt;2 (1-bit)&lt;/td&gt;
      &lt;td&gt;4 (2-bit greyscale)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Display (rendering)&lt;/td&gt;
      &lt;td&gt;Software&lt;/td&gt;
      &lt;td&gt;Software&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Software (bundled)&lt;/td&gt;
      &lt;td&gt;24&lt;/td&gt;
      &lt;td&gt;6&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Software (SDK)&lt;/td&gt;
      &lt;td&gt;C &amp;amp; Lua&lt;/td&gt;
      &lt;td&gt;C&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Launch price&lt;/td&gt;
      &lt;td&gt;$179 (¥19000)&lt;/td&gt;
      &lt;td&gt;¥11000 ($100)&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;related-posts&quot;&gt;Related Posts&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/08/28/aquaplus-piece-game-reviews-vol-2/&quot;&gt;Aquaplus P/ECE: Game Reviews Vol. 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Thu, 19 Aug 2021 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2021/08/19/aquaplus-piece-vs-panic-playdate/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2021/08/19/aquaplus-piece-vs-panic-playdate/</guid>
        </item>
      
    
      
        <item>
          <title>Modern replacements for old Wacom tablet pens</title>
          <description>&lt;p&gt;Whilst researching the &lt;em&gt;Wacom ArtPad II&lt;/em&gt; for my Macintosh Classic, I stumbled across some information that the &lt;em&gt;Samsung Galaxy Note S-Pen&lt;/em&gt; is compatible with the pen used on the &lt;em&gt;Wacom ArtPad&lt;/em&gt; and other tablets from that period. I love that the same technology is being used almost 30 years on.&lt;/p&gt;

&lt;p&gt;So after buying a &lt;em&gt;Wacom ArtPad II&lt;/em&gt;, which came with an original pen, out of curiosity I bought a few different types of &lt;em&gt;S-Pen&lt;/em&gt; to confirm the information I had read.&lt;/p&gt;

&lt;p&gt;I hope his is useful to somebody who has an old &lt;em&gt;Wacom&lt;/em&gt; tablet but is missing a pen.&lt;/p&gt;

&lt;p class=&quot;tofigure&quot;&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/wacom-replacements.jpg&quot; alt=&quot;JPG&quot; title=&quot;A selection of pens compatible with my &amp;lt;em&amp;gt;Wacom ArtPad II&amp;lt;/em&amp;gt;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;From top to bottom:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The original pen that came with my &lt;em&gt;Wacom ArtPad II&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;“Samsung S-Pen with Eraser”&lt;/em&gt; (here black, with eraser, about three quarters of the size of the original pen) cost £10. Works well, including the eraser. I would class it as a very good replacement for the original pen.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;“S-Pen For Samsung Galaxy Note 10.1”&lt;/em&gt; (here black, a little smaller again, about a third or so the size of the original pen) cost £5. This works just fine with my &lt;em&gt;ArtPad II&lt;/em&gt;. The nib has ever so slightly more friction than the original pen but it’s a good stand in. The shape is slightly flattened so it’s comfortable for pointing, but not for drawing.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;“S-Pen NOTE 1”&lt;/em&gt; (here white, about the size of a &lt;em&gt;Nintendo DS&lt;/em&gt; stylus) cost £2. Too small to use for writing. However the one I received was broken, in that it was always clicking.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;notes&quot;&gt;Notes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Toshiba Tablet-PC&lt;/em&gt; pens are also known to be compatible&lt;/li&gt;
  &lt;li&gt;There are many other third party &lt;em&gt;Samsung&lt;/em&gt;-compatible pens available&lt;/li&gt;
  &lt;li&gt;You might be able to rehouse the &lt;em&gt;S-Pen&lt;/em&gt;, for example in a larger, 3D-printed body&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;pen-compatibility-between-models&quot;&gt;Pen compatibility between models&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;UltraPen&lt;/em&gt;, &lt;em&gt;Cintiq&lt;/em&gt; pen, &lt;em&gt;“Penabled”&lt;/em&gt; pen, &lt;em&gt;ArtPad / UD / CT&lt;/em&gt; pen, or &lt;em&gt;S-Pen&lt;/em&gt; are interchangeable (this is what I needed)&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Bamboo&lt;/em&gt; pens and &lt;em&gt;Graphire&lt;/em&gt; pens are interchangeable&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Intuos3&lt;/em&gt; pens can only be swapped with other &lt;em&gt;Intuos3&lt;/em&gt; pens&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;references&quot;&gt;References&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://68kmla.org/forums/topic/62386-modern-replacements-for-old-wacom-tablet-pens/?tab=comments#comment-669264&quot;&gt;68kMLA forum topic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://greg-kennedy.com/wordpress/2014/11/19/wacom-artpad-ii-kt-0405-r-to-usb/&quot;&gt;greg-kennedy.com&lt;/a&gt; (plus comments)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://web.archive.org/web/20150922033442/http://wiki.bongofish.co.uk/doku.php?id=bongofish:tablets&quot;&gt;Bongofish wiki&lt;/a&gt; (archived page)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://web.archive.org/web/20120710075320/http://www.wacom-asia.com/aptky/607/pen.pdf&quot;&gt;Wacom Asia&lt;/a&gt; (archived PDF)&lt;/li&gt;
&lt;/ul&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Fri, 30 Apr 2021 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2021/04/30/modern-replacements-for-old-wacom-tablet-pens/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2021/04/30/modern-replacements-for-old-wacom-tablet-pens/</guid>
        </item>
      
    
      
        <item>
          <title>Macintosh Classic logic board recap</title>
          <description>&lt;ul&gt;
  &lt;li&gt;Difficulty: 7/10&lt;/li&gt;
  &lt;li&gt;Cost: &amp;lt; £20&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I last used my Macintosh Classic a few years ago. At that point everything worked OK. Switching it on this month I find there’s no sound and it won’t boot. This is par for the course with these 30-year-old machines. Time for a service!&lt;/p&gt;

&lt;p&gt;I decided quite early on that I would not rush any part of this, which turned out to be the right decision!&lt;/p&gt;

&lt;p&gt;The first thing to do is to check that the PRAM battery hasn’t leaked or worse, exploded, which would cover the logic board in acid and would be uneconomical to repair.&lt;/p&gt;

&lt;p&gt;Took me a while to find my long torx bit to open up the Macintosh case. But good news - no battery leakage!&lt;/p&gt;

&lt;p&gt;I removed the 30-year-old battery and bought a replacement.&lt;/p&gt;

&lt;p&gt;Surprisingly the replacement battery (not pictured) was already 5 years old, manufactured 2017. Not ideal, but it’ll do for now.&lt;/p&gt;

&lt;p&gt;Next, I figured I would make a quick system disk as I had figured out that I could boot it from floppy disk if I held down Cmd+Alt+Shift+Del, which is the first odd thing.&lt;/p&gt;

&lt;p&gt;Trying to reset PRAM on boot resulting in nothing happening, and there was no startup chime. Two more odd things.&lt;/p&gt;

&lt;p&gt;Somebody suggested maybe the keyboard wasn’t working. I booted the System floppy and tested all keys and they were fine.&lt;/p&gt;

&lt;p&gt;Next, I disconnected the hard drive to see if anything changed and I was able to boot using the system ROM (a feature only ever found on this specific model). This gets me into a bare-bones System 6 and from here there’s a hidden way to reset PRAM. I did that and there was no change to symptoms.&lt;/p&gt;

&lt;p&gt;Time to stop delaying the inevitable and take a look at the capacitors. Having never seen a leaking capacitor before I thought that everything looked fine from a cursory glance at the PCB. But with some guidance from &lt;a href=&quot;https://68kmla.org/forums/&quot;&gt;68KMLA forum&lt;/a&gt;, and a bit more time, I could see that there was a thin film of almost transparent dried residue surrounding almost all the caps, and some corrosion at the caps near the main power connector. Recap is needed!&lt;/p&gt;

&lt;p&gt;Removing the capacitors is the big challenge. I don’t have any dedicated soldering stations or heat flow gear, just a portable soldering iron, a pencil soldering iron and a twinkle in my eye.&lt;/p&gt;

&lt;p&gt;I spent a few days looking at YouTube videos and asking for opinions on methods of removing capacitors. Under advice, I found a practice board in a dead AV AMP that had a gazillion capacitors and I used that to practice. In the end I decided I would use the “twist and go” method (that’s what I’m calling it!) which involved using long nose pliers to grab the capacitor from above, and whilst pushing towards the board gently rotating the capacitor back and forth around its centre point. On the practice board some caps were more difficult that others, but I never lifted a pad in some 20 or so capacitors.&lt;/p&gt;

&lt;p&gt;I’ve no doubt you could lift a pad if you used a different technique or you went about it recklessly, but I found this seemingly brutal method worked very well. In years gone by I would have rushed this part!&lt;/p&gt;

&lt;p&gt;If I can do it on a practice board successfully, on-demand, with one hand, it should be more than believable that it’s possible to do it successfully in better circumstances.&lt;/p&gt;

&lt;p&gt;On the Macintosh board they were much easier, and fewer, and I also never lifted a pad. I was left with the odd leg that was easily removed with some excess solder during the cleanup phase.&lt;/p&gt;

&lt;p&gt;In total 8 capacitors were in need of replacement, and I swapped them with tantalum capacitors which I understand will never need replacing in future. They look different, but I don’t mind that it makes it more obvious that they have been replaced IMHO.&lt;/p&gt;

&lt;p&gt;Oh, and I bought some new rosin/flux-core solder of a reputable brand, and that really improved my soldering technique and results compared to when I was using the old/cheap/free solder I had in my tool box. You get what you pay for!&lt;/p&gt;

&lt;p&gt;The results are not my finest work, but I would say above average and the machine is now booting well with sound and a faster replacement drive so we’re good to go!&lt;/p&gt;

&lt;p&gt;I picked up an extra 2MB of RAM from eBay to take this machine to a maximum of 4MB! That’s megabytes!&lt;/p&gt;

&lt;p&gt;All that remains is for me to configure my SD card with the apps and games I like to have around. I’m going for multiple System installs that I can switch between after a quick reboot. Plus Japanese support. This task is made easier and quicker by using emulators to do the hard work many times faster than hardware, and finally copy the prepared disk image onto the SD card.&lt;/p&gt;

&lt;p&gt;Then, at last, I will be able to play games on this little thing once more!&lt;/p&gt;

&lt;div class=&quot;carousel__holder&quot;&gt;
    &lt;div class=&quot;carousel&quot;&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;a&quot; checked=&quot;checked&quot; /&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;b&quot; /&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;c&quot; /&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;d&quot; /&gt;
        
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;d&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;b&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;a&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;c&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;b&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;d&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;c&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;a&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
        &lt;div class=&quot;carousel__track&quot;&gt;
          &lt;ul&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/macintosh-classic-recap-1.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/macintosh-classic-recap-1.jpg&quot; /&gt;&lt;/li&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/macintosh-classic-recap-2.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/macintosh-classic-recap-2.jpg&quot; /&gt;&lt;/li&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/macintosh-classic-recap-3.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/macintosh-classic-recap-3.jpg&quot; /&gt;&lt;/li&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/macintosh-classic-recap-4.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/macintosh-classic-recap-4.jpg&quot; /&gt;&lt;/li&gt;
            
          &lt;/ul&gt;
        &lt;/div&gt;
        &lt;div class=&quot;carousel__indicators&quot;&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;a&quot;&gt;&lt;/label&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;b&quot;&gt;&lt;/label&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;c&quot;&gt;&lt;/label&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;d&quot;&gt;&lt;/label&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;style&gt;
.carousel__holder {width: 100%; position: relative; padding-bottom: 82%; margin: 1rem 0 1rem;}
.carousel {
  height: 100%;
  width: 100%;
  overflow: hidden;
  text-align: center;
  position: absolute;
  padding: 0;
}
.carousel__staticimage,
.carousel__controls,
.carousel__activator {
  display: none;
}

.carousel__activator:nth-of-type(1):checked ~ .carousel__track {
  -webkit-transform: translateX(-000%);
          transform: translateX(-000%);
}
.carousel__activator:nth-of-type(1):checked ~ .carousel__slide:nth-of-type(1) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(1):checked ~ .carousel__controls:nth-of-type(1) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(1):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(1) {
  opacity: 1;
}

.carousel__activator:nth-of-type(2):checked ~ .carousel__track {
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}
.carousel__activator:nth-of-type(2):checked ~ .carousel__slide:nth-of-type(2) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(2):checked ~ .carousel__controls:nth-of-type(2) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(2):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(2) {
  opacity: 1;
}

.carousel__activator:nth-of-type(3):checked ~ .carousel__track {
  -webkit-transform: translateX(-200%);
          transform: translateX(-200%);
}
.carousel__activator:nth-of-type(3):checked ~ .carousel__slide:nth-of-type(3) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(3):checked ~ .carousel__controls:nth-of-type(3) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(3):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(3) {
  opacity: 1;
}

.carousel__activator:nth-of-type(4):checked ~ .carousel__track {
  -webkit-transform: translateX(-300%);
          transform: translateX(-300%);
}
.carousel__activator:nth-of-type(4):checked ~ .carousel__slide:nth-of-type(4) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(4):checked ~ .carousel__controls:nth-of-type(4) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(4):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(4) {
  opacity: 1;
}


.carousel__control {
  height: 30px;
  width: 30px;
  margin-top: -15px;
  top: 50%;
  position: absolute;
  display: block;
  cursor: pointer;
  border-width: 5px 5px 0 0;
  border-style: solid;
  opacity: 0.35;
  opacity: 1;
  outline: 0;
  z-index: 3;
  color: #fafafa;
  mix-blend-mode: difference;
}
.carousel__control:hover {
  opacity: 1;
}
.carousel__control--backward {
  left: 20px;
  -webkit-transform: rotate(-135deg);
          transform: rotate(-135deg);
}
.carousel__control--forward {
  right: 20px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.carousel__indicators {
  position: absolute;
  bottom: 20px;
  width: 100%;
  text-align: center;
}
.carousel__indicator {
  height: 10px;
  width: 10px;
  border-radius: 100%;
  display: inline-block;
  z-index: 2;
  cursor: pointer;
  opacity: 0.35;
  margin: 0 2.5px 0 2.5px;
}
.carousel__indicator:hover {
  opacity: 0.75;
}
.carousel__track {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 0;
  margin: 0;
  transition: -webkit-transform 0.5s ease 0s;
  transition: transform 0.5s ease 0s;
  transition: transform 0.5s ease 0s, -webkit-transform 0.5s ease 0s;
}
.carousel__track .carousel__slide {
  display: block;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
}

.carousel__track .carousel__slide:nth-of-type(1) {
  -webkit-transform: translateX(000%) translateZ(0);
          transform: translateX(000%) translateZ(0);
}

.carousel__track .carousel__slide:nth-of-type(2) {
  -webkit-transform: translateX(100%) translateZ(0);
          transform: translateX(100%) translateZ(0);
}

.carousel__track .carousel__slide:nth-of-type(3) {
  -webkit-transform: translateX(200%) translateZ(0);
          transform: translateX(200%) translateZ(0);
}

.carousel__track .carousel__slide:nth-of-type(4) {
  -webkit-transform: translateX(300%) translateZ(0);
          transform: translateX(300%) translateZ(0);
}


.carousel--scale .carousel__slide {
  -webkit-transform: scale(0);
          transform: scale(0);
}
.carousel__slide {
  height: 100%;
  position: absolute;
  opacity: 0;
  overflow: hidden;
}
.carousel__slide .overlay {height: 100%;}
.carousel--thumb .carousel__indicator {
  height: 30px;
  width: 30px;
}
.carousel__indicator {
  background-color: #fafafa;
}

.carousel__slide:nth-of-type(1),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(1) {
  background-size: cover;
  background-position: center;
}

.carousel__slide:nth-of-type(2),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(2) {
  background-size: cover;
  background-position: center;
}

.carousel__slide:nth-of-type(3),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(3) {
  background-size: cover;
  background-position: center;
}

.carousel__slide:nth-of-type(4),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(4) {
  background-size: cover;
  background-position: center;
}

&lt;/style&gt;

&lt;script&gt;
  function isVisible(el) {
        while (el) {
            if (el === document) {
                return true;
            }

            var $style = window.getComputedStyle(el, null);

            if (!el) {
                return false;
            } else if (!$style) {
                return false;
            } else if ($style.display === &apos;none&apos;) {
                return false;
            } else if ($style.visibility === &apos;hidden&apos;) {
                return false;
            } else if (+$style.opacity === 0) {
                return false;
            } else if (($style.display === &apos;block&apos; || $style.display === &apos;inline-block&apos;) &amp;&amp;
                $style.height === &apos;0px&apos; &amp;&amp; $style.overflow === &apos;hidden&apos;) {
                return false;
            } else {
                return $style.position === &apos;fixed&apos; || isVisible(el.parentNode);
            }
        }
  }
  
  setInterval(function(){
    var j=0;
    var elements = document.querySelectorAll(&apos;.carousel__control--forward&apos;);
    for(i=(elements.length - 1);i&gt;-1;i--) {
      if(isVisible(elements[i])) j=i;
    }
    elements[j].click();
  },7000);
  
&lt;/script&gt;

</description>
          <author>by Matt Sephton</author>
          <pubDate>Sat, 20 Feb 2021 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2021/02/20/macintosh-classic-logic-board-recap/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2021/02/20/macintosh-classic-logic-board-recap/</guid>
        </item>
      
    
      
        <item>
          <title>Famicom Mahjong/Hanafuda controller USB keyboard mod</title>
          <description>&lt;ul&gt;
  &lt;li&gt;Difficulty: 7/10&lt;/li&gt;
  &lt;li&gt;Cost: &amp;lt; £20&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I play a lot of Hanafuda games. In the arcade these games share a control panel with Mahjong. It’s basically a keyboard featuring the first half of the alphabet, presented as a long row of keys in alphabetical order. This makes playing Arcade Hanafuda games a bit of a chore without a bunch of keyboard remapping and emulator faff.&lt;/p&gt;

&lt;p&gt;Some people were using arcade control panels connected to their PC. In Japan you can buy a custom electronics kit to make a USB Mahjong/Hanafuda controller, but it’s expensive at about €85 plus shipping and import duty. There had to be a better way!&lt;/p&gt;

&lt;p&gt;I saw that a couple of old Famicom Mahjong games by Capcom were bundled with a custom controller. It was essentially two controllers in one, so won’t work with my controller adapter cables. So I wondered how easy it would be to convert one to USB? Posting on a NES developer forum helped me verify that it should be possible.&lt;/p&gt;

&lt;p&gt;Christmas 2019 I bought a bunch of games from Japan and added a Famicom Mahjong controller to my order. It arrived, I put it on my to-do list, then a global pandemic happened.&lt;/p&gt;

&lt;p&gt;Almost a year later I picked it up and decided to figure it out. I would need a little Arduino, a usb cable with data and power, and I’d have to write some Arduino code to poll the buttons a couple of times every update. Back in 2019 nobody had done this mod so I was in my own.&lt;/p&gt;

&lt;p&gt;Just before I started to write code, I figured I’d do a quick Google search to see if anything had changed. And, unbelievably, somebody else had done this exact mod in February 2020 and open sourced their code. I thanked them and that meant the project was instantly half done.&lt;/p&gt;

&lt;p&gt;I bought an additional Pro Micro (Arduino compatible) and set it up on a breadboard that made it easier for me to wire up a prototype and check everything was working.&lt;/p&gt;

&lt;p&gt;Finally I cut the old controller cord and wired my new setup into the controller. It worked perfectly. I went back in to trim some supports and add some alternative reinforcements to prevent the controller bending and creaking.&lt;/p&gt;

&lt;p&gt;Using this controller makes playing these games so much easier, and I’ve discovered a couple of games that have made this well worth the time and investment.&lt;/p&gt;

&lt;div class=&quot;carousel__holder&quot;&gt;
    &lt;div class=&quot;carousel&quot;&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;a&quot; checked=&quot;checked&quot; /&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;b&quot; /&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;c&quot; /&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;d&quot; /&gt;
        
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;d&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;b&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;a&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;c&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;b&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;d&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;c&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;a&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
        &lt;div class=&quot;carousel__track&quot;&gt;
          &lt;ul&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/hanafuda-controller-a-1.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/hanafuda-controller-a-1.jpg&quot; /&gt;&lt;/li&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/hanafuda-controller-a-2.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/hanafuda-controller-a-2.jpg&quot; /&gt;&lt;/li&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/hanafuda-controller-b-1.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/hanafuda-controller-b-1.jpg&quot; /&gt;&lt;/li&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/hanafuda-controller-b-2.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/hanafuda-controller-b-2.jpg&quot; /&gt;&lt;/li&gt;
            
          &lt;/ul&gt;
        &lt;/div&gt;
        &lt;div class=&quot;carousel__indicators&quot;&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;a&quot;&gt;&lt;/label&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;b&quot;&gt;&lt;/label&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;c&quot;&gt;&lt;/label&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;d&quot;&gt;&lt;/label&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;style&gt;
.carousel__holder {width: 100%; position: relative; padding-bottom: 82%; margin: 1rem 0 1rem;}
.carousel {
  height: 100%;
  width: 100%;
  overflow: hidden;
  text-align: center;
  position: absolute;
  padding: 0;
}
.carousel__staticimage,
.carousel__controls,
.carousel__activator {
  display: none;
}

.carousel__activator:nth-of-type(1):checked ~ .carousel__track {
  -webkit-transform: translateX(-000%);
          transform: translateX(-000%);
}
.carousel__activator:nth-of-type(1):checked ~ .carousel__slide:nth-of-type(1) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(1):checked ~ .carousel__controls:nth-of-type(1) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(1):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(1) {
  opacity: 1;
}

.carousel__activator:nth-of-type(2):checked ~ .carousel__track {
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}
.carousel__activator:nth-of-type(2):checked ~ .carousel__slide:nth-of-type(2) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(2):checked ~ .carousel__controls:nth-of-type(2) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(2):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(2) {
  opacity: 1;
}

.carousel__activator:nth-of-type(3):checked ~ .carousel__track {
  -webkit-transform: translateX(-200%);
          transform: translateX(-200%);
}
.carousel__activator:nth-of-type(3):checked ~ .carousel__slide:nth-of-type(3) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(3):checked ~ .carousel__controls:nth-of-type(3) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(3):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(3) {
  opacity: 1;
}

.carousel__activator:nth-of-type(4):checked ~ .carousel__track {
  -webkit-transform: translateX(-300%);
          transform: translateX(-300%);
}
.carousel__activator:nth-of-type(4):checked ~ .carousel__slide:nth-of-type(4) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(4):checked ~ .carousel__controls:nth-of-type(4) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(4):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(4) {
  opacity: 1;
}


.carousel__control {
  height: 30px;
  width: 30px;
  margin-top: -15px;
  top: 50%;
  position: absolute;
  display: block;
  cursor: pointer;
  border-width: 5px 5px 0 0;
  border-style: solid;
  opacity: 0.35;
  opacity: 1;
  outline: 0;
  z-index: 3;
  color: #fafafa;
  mix-blend-mode: difference;
}
.carousel__control:hover {
  opacity: 1;
}
.carousel__control--backward {
  left: 20px;
  -webkit-transform: rotate(-135deg);
          transform: rotate(-135deg);
}
.carousel__control--forward {
  right: 20px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.carousel__indicators {
  position: absolute;
  bottom: 20px;
  width: 100%;
  text-align: center;
}
.carousel__indicator {
  height: 10px;
  width: 10px;
  border-radius: 100%;
  display: inline-block;
  z-index: 2;
  cursor: pointer;
  opacity: 0.35;
  margin: 0 2.5px 0 2.5px;
}
.carousel__indicator:hover {
  opacity: 0.75;
}
.carousel__track {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 0;
  margin: 0;
  transition: -webkit-transform 0.5s ease 0s;
  transition: transform 0.5s ease 0s;
  transition: transform 0.5s ease 0s, -webkit-transform 0.5s ease 0s;
}
.carousel__track .carousel__slide {
  display: block;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
}

.carousel__track .carousel__slide:nth-of-type(1) {
  -webkit-transform: translateX(000%) translateZ(0);
          transform: translateX(000%) translateZ(0);
}

.carousel__track .carousel__slide:nth-of-type(2) {
  -webkit-transform: translateX(100%) translateZ(0);
          transform: translateX(100%) translateZ(0);
}

.carousel__track .carousel__slide:nth-of-type(3) {
  -webkit-transform: translateX(200%) translateZ(0);
          transform: translateX(200%) translateZ(0);
}

.carousel__track .carousel__slide:nth-of-type(4) {
  -webkit-transform: translateX(300%) translateZ(0);
          transform: translateX(300%) translateZ(0);
}


.carousel--scale .carousel__slide {
  -webkit-transform: scale(0);
          transform: scale(0);
}
.carousel__slide {
  height: 100%;
  position: absolute;
  opacity: 0;
  overflow: hidden;
}
.carousel__slide .overlay {height: 100%;}
.carousel--thumb .carousel__indicator {
  height: 30px;
  width: 30px;
}
.carousel__indicator {
  background-color: #fafafa;
}

.carousel__slide:nth-of-type(1),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(1) {
  background-size: cover;
  background-position: center;
}

.carousel__slide:nth-of-type(2),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(2) {
  background-size: cover;
  background-position: center;
}

.carousel__slide:nth-of-type(3),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(3) {
  background-size: cover;
  background-position: center;
}

.carousel__slide:nth-of-type(4),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(4) {
  background-size: cover;
  background-position: center;
}

&lt;/style&gt;

&lt;script&gt;
  function isVisible(el) {
        while (el) {
            if (el === document) {
                return true;
            }

            var $style = window.getComputedStyle(el, null);

            if (!el) {
                return false;
            } else if (!$style) {
                return false;
            } else if ($style.display === &apos;none&apos;) {
                return false;
            } else if ($style.visibility === &apos;hidden&apos;) {
                return false;
            } else if (+$style.opacity === 0) {
                return false;
            } else if (($style.display === &apos;block&apos; || $style.display === &apos;inline-block&apos;) &amp;&amp;
                $style.height === &apos;0px&apos; &amp;&amp; $style.overflow === &apos;hidden&apos;) {
                return false;
            } else {
                return $style.position === &apos;fixed&apos; || isVisible(el.parentNode);
            }
        }
  }
  
  setInterval(function(){
    var j=0;
    var elements = document.querySelectorAll(&apos;.carousel__control--forward&apos;);
    for(i=(elements.length - 1);i&gt;-1;i--) {
      if(isVisible(elements[i])) j=i;
    }
    elements[j].click();
  },7000);
  
&lt;/script&gt;

</description>
          <author>by Matt Sephton</author>
          <pubDate>Sat, 09 Jan 2021 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2021/01/09/famicom-mahjong-hanafuda-controller-usb-keyboard-mod/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2021/01/09/famicom-mahjong-hanafuda-controller-usb-keyboard-mod/</guid>
        </item>
      
    
      
        <item>
          <title>Hacking the Becker Cascade navigation CF card</title>
          <description>&lt;p&gt;I just had my tonsils removed and whilst recovering at home I decided to try to figure out how I could use larger CF cards in my &lt;a href=&quot;https://ifdesign.com/en/winner-ranking/project/becker-traffic-pro-7949/2069&quot;&gt;Becker Traffic Pro 7949&lt;/a&gt; car audio and navigation system, a close relative to the Becker Cascade.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/becker-7949.png&quot; alt=&quot;PNG&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The unit came with maps on a 2GB card which is barely big enough for the maps, leaving not much room for MP3 files. Later map distributions increased the size of the card to 4GB as the map quality increased, but still not much room remaining for music.&lt;/p&gt;

&lt;h2 id=&quot;lets-go-bigger&quot;&gt;Let’s go bigger&lt;/h2&gt;

&lt;p&gt;I bought a new CF card of the same type (SanDisk), opting for a SanDisk Ultra 8GB, and copied the files and volume name over. It didn’t work.&lt;/p&gt;

&lt;p&gt;Next, I cloned the smaller card onto the larger card and that worked! Then I expanded the size of the partition and it stopped working.&lt;/p&gt;

&lt;p&gt;What’s going on?&lt;/p&gt;

&lt;h2 id=&quot;partition-magic&quot;&gt;Partition Magic&lt;/h2&gt;

&lt;p&gt;At the time I had a ThinkPad laptop with a built in CF reader. This allowed me to look at the card contents at a device/block level rather than the filesystem level. I noticed that there was the usual space after the main partition, and low and behold what did I see at the start of that “unused” space? Some magic text!&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;HARMANBECKER BECKER V4
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I even figured out the magic text for Ferrari branded units with the assistance of a helpful owner.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;HARMANBECKER FERRARI V4
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The version number would be increased in step with any updates to the system software.&lt;/p&gt;

&lt;p&gt;By partitioning a SanDisk card and giving it the same file contents, volume name, and this magic text made the upgrade work. For a while I sold these modified cards on eBay for a nice little markup and it kept me in video games for a while. Good times!&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Sat, 05 Sep 2009 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2009/09/05/hacking-the-becker-cascade-navigation-cf-card/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2009/09/05/hacking-the-becker-cascade-navigation-cf-card/</guid>
        </item>
      
    

  </channel>
</rss>
