Ice cream Sandwich on my Samsung Galaxy S 2

The Samsung Galaxy S 2 is a great phone, the best phone I’ve ever owned (and I presume I’ll say that about each newer phone I buy too, it’s becoming a familiar mantra) but it’s taken a while for Samsung to release the new Android, Ice Cream Sandwich (ICS) upgrade for it. I’m a Meteor Mobile user and ICS was released by them late last week.

Unfortunately when I tried to upgrade my rooted Gingerbread phone through KIES it simply upgraded to the latest Gingerbread release (2.3.5) and not ICS. It may have been because my phone was rooted but I had read that it was possible to upgrade rooted phones. I was disappointed but then my phone kept half-reseting. The bootup tune would play every 5 minutes or so and the phone would appear to have reset. It happened too fast for a reboot so I didn’t know what was happening. Quite frustrating though.

So, I backed up my sms texts, backed up aCar and my Podkicker subscriptions and with the help of this page I installed a generic European ICS firmware on to my SGS2. It was painful unfortunately. KIES, the Samsung desktop sync software, is fairly rubbish. I had to plug my phone in and out of my computer, using different USB ports, resetting my phone in between, just so the software would recognise my phone. I eventually had to use ODIN and the same switching USB ports trick again. I think the Samsung USB drivers conflict with the generic Windows drivers which causes the problems but this is a long standing problem with Samsung phones.

The instructions on the page above are fairly straight forward. Just keep trying to get your phone recognised if you have problems. It will work eventually. When your phone is in download mode and ODIN is squirting the firmware over it should only take a few minutes to work. I had to stop the download twice before it worked which got me worried that I might have bricked the phone!

Was it worth upgrading? The new Roboto font in ICS is gorgeous. It’s a huge step up from the default in Gingerbread. I immediately replaced the Samsung TwLauncher with ADWLauncher EX. The phone looks much the same as it was in Gingerbread, the settings page is better, the fonts are better and it does feel snappier. Unfortunately Kids Place doesn’t work but I found another kid’s sandbox app, Famigo that does.

I’m happy I upgraded but wish it had been easier. The upgrade works a lot better for most people, don’t worry if you see the upgrade notice. Just make sure your contacts and other data are backed up before you go down this path! If you upgrade through KIES it won’t delete everything on your phone and the upgrade is a lot less painful.

Oh yeah, in ICS the screenshot function is now Volume Down+Power buttons.

Happy birthday my rubber keyed friend!

Well, 2012 has turned out to be quite a year for retro computing. The Commodore 64 turned 30 this year, Jack Tramiel died, and the ZX Spectrum is 30 years old too!

I have fond memories of the original 48K ZX Spectrum. Even though it had a tiny rubber keyboard it suited my much younger and smaller hands. I do recall the “Symbol Shift” key got stuck a few times making it hard to type in BASIC code but I guess I opened up the machine and cleaned the keyboard membrane when that happened.

On the off chance you haven’t read it yet there’s a great article on the Sir Clive Sinclair’s machine in the first issue of Retro Gamer that came free with the 100th.

At the time many 8 bit machines used tapes to load their software. Disks were a rare luxury. The loading sounds became so engrained in our minds that even now they’re recognisable and someone created an iOS app that recreates them. (Thanks Conor!)


Or the real thing. It takes a while …

Edit: Conor noticed that google.co.uk has a new Google Doodle for the day that’s in it:

Prince of Persia: the Apple II source

It’s been a good few months for the 8 bit versions of Prince of Persia. Last October saw the release of a C64 version. Yesterday the original source code for the Apple II version was uploaded to github! Read about how Jason Scott recovered that source code from 20 year old disks (similar to what I did recently!)

The game was originally written in assembler so the source code was already out there. How? Machine code is the language a machine understands and assembler is a human representation of that machine code. For example, the machine code “A9 00 8D 20 D0” is actually this more readable assembler: (that inserts the value 0 into the memory location $D020)

LDA #00
STA $D020

The assembler code released yesterday goes one step further. It uses labels, variables and comments. See BOOT.S as a good example. Variables are defined at the top and labels are used throughout making it a lot easier to deal with moving and adding code around. Look for the text “skewtbl” where you’ll find a simple loop that reads in data from memory and inserts it into 2 registers.

:0 ldy sector
 lda skewtbl,y
 sta $3d
 lda sectaddr,y
 beq :1
 sta $27
:rdsect jsr $005c
:1 dec sector
 bne :0

 lda SLOT
 jmp $900

skewtbl hex 00,0d,0b,09,07,05,03,01
 hex 0e,0c,0a,08,06,04,02,0f

sectaddr hex 00,09,00,00,00,00,00,00
 hex 30,31,32,33,34,00,00,00

Jordan Mechner puts it more poetically:

Non-programming analogy: Video game source code is a bit like the sheet music to a piano sonata that’s already been performed and recorded. One might reasonably ask: If you have the recording, what do you need the sheet music for?
You don’t, if all you want is to listen and enjoy the music. But to a pianist performing the piece, or a composer who wants to study it or arrange it for different instruments, the original score is valuable.

Props to this Slashdot post for the extra links. Also worth a look is the development diary of the C64 version and there are videos showing how the game was made back in 1985!

Giants: Citizen Kabuto going cheap!

If you want a humorous FPS and have $2.99 to spare you can’t really get any better than Giants: Citizen Kabuto. It’s 50% off right now as part of an Interplay promotion at GOG.

It’s an old game, released back in the dawn of time (or the year 2000, whichever came first) but it holds up well. There’s very funny dialogue, the graphics were amazing for their time and still look great. Back then you’d be hard pressed to find a machine that could play it well but that’s not a problem with any sort of modern machine.

Go on, go on, go on. It’s lots of fun and I can’t recommend it enough.

RIP Jack Tramiel

Jack Tramiel, the man who founded Commodore and brought Atari back from the dead died on Sunday at the age of 83. RIP.

lemon64 thread.

Here’s a great Cringley post on Jack Tramiel.

What I learned this week that I didn’t know before was that the people who worked for Tramiel really loved him. Jack Tramiel was no Steve Jobs: he was better.

The Commodore 64 was a phenomenal success. People forget that in the early 1980s the C64 outsold the Apple ][, IBM PC, and the Atari 400/800 combined. Commodore was the first to sell computers through discount retailers, opening whole new distribution channels. And don’t forget it was Jack who saw the value in Amiga, which in many ways set performance targets that took Apple years to beat. It would have been very interesting to see how the Amiga would have faired had Jack Tramiel stayed at Commodore.

I should have written more in this post yesterday but I didn’t have time. The Commodore 64 was the first computer I really obsessed about and learned loads about. Previously I had dabbled in BASIC using the Vic 20 and then a 48K Spectrum but after I got a C64 I learned how games were coded, learned quite a bit of assembler and produced and distributed my first software. That software wasn’t amazing or anything but I was always learning new things.

So, thanks Jack for creating the company that created such an amazing computer that had a huge influence on my life. When Steve Jobs died last year there were glowing blog posts about his machines. I vaguely recall an Apple II in a school lab but I hardly ever used it. The C64s in the same lab were much more interesting!

Gaia Machina


How did they manage to squeeze all that into a 64k executable? Watch it fullscreen. Amazing.

Reading the top voted comments on this post gives the impression that some /. visitors are not altogether that geeky but the replies are a lot more interesting.

I can’t seem to make heads or tails of this post. It’s techno-babble and word salad. I guess I should remember this feeling when I talk about programming with my non-programming friends.

Sort of sad as a programmer you have no knowledge of some of programming history.