<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Get Info: #sony</title>
    <description>Posts tagged “sony” — 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/sony/</link>
    <atom:link href="https://blog.gingerbeardman.com/tag/sony/index.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Wed, 01 Jul 2026 16:09:47 +0000</pubDate>
    <lastBuildDate>Wed, 01 Jul 2026 16:09:47 +0000</lastBuildDate>
    <generator>Jekyll v4.4.1</generator>

    
      
        <item>
          <title>Five interesting facts about the design of the original PlayStation</title>
          <description>&lt;p&gt;Some things you probably didn’t realise about the design of the original &lt;em&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/PlayStation_(console)&quot;&gt;Sony PlayStation&lt;/a&gt;&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;it was inspired by Apple’s &lt;em&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Macintosh_Plus&quot;&gt;Macintosh Plus&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;the colour is grey with a hint of violet to counteract plastic ageing/yellowing&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Sony&lt;/em&gt; acquired the PlayStation name from Yamaha&lt;/li&gt;
  &lt;li&gt;it led to the &lt;em&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Vaio&quot;&gt;VAIO&lt;/a&gt;&lt;/em&gt; range of PCs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Bonus fact:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Vaio#Etymology&quot;&gt;VAIO&lt;/a&gt;&lt;/em&gt; was originally an acronym for Video Audio Input Output&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;photo-reference&quot;&gt;Photo reference&lt;/h2&gt;

&lt;p&gt;Taken from &lt;em&gt;&lt;a href=&quot;https://www.worldcat.org/title/1050032044&quot;&gt;Digital Dreams: The Work of the Sony Design Center&lt;/a&gt;&lt;/em&gt; (1999, Paul Kunkel)&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/sony-playstation-facts-1.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/sony-playstation-facts-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/sony-playstation-facts-2.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/sony-playstation-facts-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/sony-playstation-facts-3.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/sony-playstation-facts-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/sony-playstation-facts-4.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/sony-playstation-facts-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: 133%; 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();
  },60000);
  
&lt;/script&gt;

</description>
          <author>by Matt Sephton</author>
          <pubDate>Mon, 12 Jun 2023 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2023/06/12/five-interesting-facts-about-the-design-of-the-original-playstation/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2023/06/12/five-interesting-facts-about-the-design-of-the-original-playstation/</guid>
        </item>
      
    
      
        <item>
          <title>Sony Reader “Exceptional internal memory state: formatting” workaround</title>
          <description>&lt;p&gt;I get a strange error from time-to-time on my Sony Reader (PRS-650).&lt;/p&gt;

&lt;p&gt;After the Reader powers up, or comes out of transfer mode, it does the busy spinner and then says:&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;+---------------------------------------+
| Exceptional internal memory state     |
| Formatting                            |
|                              [  OK  ] |
+---------------------------------------+
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;At this point pressing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OK&lt;/code&gt; will format the device. Yikes!&lt;/p&gt;

&lt;h2 id=&quot;short-workaround&quot;&gt;Short Workaround&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Do not press&lt;/strong&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OK&lt;/code&gt; on the format warning&lt;/li&gt;
  &lt;li&gt;Press hardware &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RESET&lt;/code&gt; button with paperclip&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If this does not work, try the following:&lt;/p&gt;

&lt;h2 id=&quot;longer-workaround&quot;&gt;Longer Workaround&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Do not press&lt;/strong&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OK&lt;/code&gt; on the format warning&lt;/li&gt;
  &lt;li&gt;Instead, plug device into your computer&lt;/li&gt;
  &lt;li&gt;Backup &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;READER&lt;/code&gt; partition (optional, but recommended)&lt;/li&gt;
  &lt;li&gt;Press hardware &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RESET&lt;/code&gt; button with paperclip&lt;/li&gt;
  &lt;li&gt;Wait for Reader to reboot (no PRS+ features when booting with USB connected)&lt;/li&gt;
  &lt;li&gt;Unplug from computer&lt;/li&gt;
  &lt;li&gt;Shutdown/restart reader (PRS+ features will be re-enabled)&lt;/li&gt;
  &lt;li&gt;Problem is gone!&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;cause&quot;&gt;Cause&lt;/h2&gt;

&lt;p&gt;My theory: PRS+ doesn’t like the device being “dirty” when it is unmounted or ejected improperly.&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Sat, 05 May 2018 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2018/05/05/sony-reader-exceptional-internal-memory-state-formatting-workaround/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2018/05/05/sony-reader-exceptional-internal-memory-state-formatting-workaround/</guid>
        </item>
      
    
      
        <item>
          <title>Better custom font sizes on Sony Reader devices</title>
          <description>&lt;p&gt;Below are details of a script to generate custom CSS to make sure custom fonts all appear at similar sizes when they are used as the display fonts on Sony Readers running PRS+ custom firmware. &lt;em&gt;Without this script certain custom fonts will appear much bigger or smaller than others.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I use this with my PRS-650, but it probably applies to most Sony Readers and perhaps some other eReaders. Get in touch if you have an idea how it can apply to other eReaders.&lt;/p&gt;

&lt;h2 id=&quot;source-code&quot;&gt;Source Code&lt;/h2&gt;

&lt;noscript&gt;&lt;p&gt;&lt;a href=&quot;https://gist.github.com/gingerbeardman/f07d9e033dab453b56afee9829828ed1&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/f07d9e033dab453b56afee9829828ed1.js&quot;&gt;&lt;/script&gt;

&lt;h3 id=&quot;installation&quot;&gt;Installation&lt;/h3&gt;
&lt;p&gt;Requirements:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;php&lt;/li&gt;
  &lt;li&gt;python&lt;/li&gt;
  &lt;li&gt;pip&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dependencies:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;font-line&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Useful incantations:&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;sudo -H python -m ensurepip
sudo -H pip install font-line
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;location&quot;&gt;Location&lt;/h3&gt;
&lt;p&gt;Script should be alongside the folders of font families in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/READER/fonts&lt;/code&gt;&lt;/p&gt;

&lt;h3 id=&quot;usage&quot;&gt;Usage&lt;/h3&gt;
&lt;p&gt;Run from the command line without any arguments.&lt;/p&gt;

&lt;h3 id=&quot;output&quot;&gt;Output&lt;/h3&gt;
&lt;p&gt;One custom CSS file for each font family is written to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/READER/database/system/PRSPlus/epub/&lt;/code&gt;&lt;/p&gt;

&lt;h2 id=&quot;how-does-it-work&quot;&gt;How does it work?&lt;/h2&gt;
&lt;p&gt;Using the python tool &lt;a href=&quot;https://github.com/source-foundry/font-line&quot;&gt;font-line&lt;/a&gt; I get the sum of Ascender+Descender from the font metrics for each family. Dividing 1 by that number normalises the font size by making larger fonts slightly smaller, and smaller fonts slightly larger. The script finally writes the new size information into the CSS in the expected format at the correct location.&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Thu, 07 Dec 2017 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2017/12/07/better-custom-font-sizes-on-sony-reader-devices/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2017/12/07/better-custom-font-sizes-on-sony-reader-devices/</guid>
        </item>
      
    

  </channel>
</rss>
