General - 2013-12-12
I spend a lot of my spare time looking at the code of old ZX Spectrum games. I do this strange activity for several reasons. One is to see how a game is put together looking at the design, architect and structure of the data. Another is to see if there is anything hidden within the game, like an unused graphic or room. Thirdly I have an aim of maybe converting these games to a modern platform, like the PC, and want the port to be identical before I improve anything on it.
This is quite a popular past time amongst the retro-scene. Some guys port games from one 8-bit platform to another, which requires the same effort to break the original machine code in order to understand which bits need changing for the different hardware. Some guys just play the game to death in order to understand it fully before creating a remake on a PC or tablet. I think for some of us it is a penance for not releasing a game when the 8-bit platforms where originally in use.
My first step is to start disassembling the Z80 code and try and workout where everything fits, including the data and the graphics. My approach is to find any code that writes to the display file (the screen) as this is an obvious code which can be changed visually. Normally you end up finding either an area of the screen which is written in memory then copied to the display or some sort of graphics or sprite routine. From here I back trace the code and normally end up relating some sort of data structure holding positions and sizes of the moving objects within the game. At this point I like to start to write some PC code which takes this raw data and converts it to something the PC can display, ending up with larger copies of the original graphics being display on a PC. Don't laugh but I find this a little bit exciting, seeing emulated spectrum graphics in my own program.
Of course, doing this in my spare time means it is slow and laborious. Naturally family life and work has a higher priority so I tend to spend those quiet hours before bedtime looking at this stuff and normally when I pick up steam after an hour or so and really start to fathom some complicated code it is normally time to get some sleep else suffer the next morning after a late night. I have in the past thought if anyone does this for a job. It is hard to think of a position in the software industry which requires these skills. There are modern retakes on old games, but these tend to have the essence and character of the old game only and are normally a totally different spin which I would assume do not need to know the ins and outs of the original. Would a company be willing to pay a coder to spend a month breaking down an old 8 bit game for the data and graphics? I can't imagine many direct ports would sell or be played either. It would be a bit of a dream job to spend some time reverse engineering a classic, porting it to a modern platform then redesigning the port adding more levels, better graphics and more interaction in the game. Anyone?
Site Update - 2013-10-30
Site Update - 2013-02-21
I've added a new section for Denton Designs, that great 8 bit software company, under the Software Companies section.
Opinion - 2012-07-03
Lately there has been a lot of discussion on how IT in schools have been dumbed down over the years and how pupils are only learning how to use office packages rather than learn the nuts and bolts of programming. Part of the argument is comparing this with the 1980s and how we all learnt to code and use computers.
However I feel this is a little rose-tinted. Thinking back to my time in the early 80s, when micro computers started to appear, it was really only a few geeky boys who showed an interest. As this interest grew, the micros became more and more popular and soon the majority of young lads owned an 8 bit computer. However I only actually knew about a handful of lads, out of the whole school who used it for programming, as the majority used it to just play games. Also my school thought computers in the home were a passing fad, so they would not allow it to be taught as a lesson until you were in the Sixth form. It was never a main subject for those early years.
So going back to dumbing down, as a whole I think people like choice ofsimplicity, most not wanting to do something that appeared complicated, like programming, when a simpler solution is available. This was probably why consoles became more popular over the micro. As plugging in a cartridge and playing the game is much simpler than having to type the correct command to load in a program from tape, wait five to ten minutes, only for the loading to fail.
This also reflects in todays popularity for phones and tablets. It was reported that Tablets might outship laptops by 2016, which makes sense. Laptops are still PCs, very complicated and temperamental machines. Vast amounts of people use PCs to browse, update their Facebook account, shop and tweet. PCs are capable of doing much more, never in history has a single machine been capable of handling so many different types of jobs. So why not buy a gadget that actually concentrates on the type of activities you only want to do, this being communicating in a multitude of ways for most PC users. Tablets are perfect for this by removing all those extra bits which PCs have.
This belief that we were a nation of coders is a little out of proportion. Yes we did lead the way in young programmers writing games, but that was a much smaller market back then and as a percentage it was still only a few people who actually did programming. However, I say bravo to the projects like Raspberry PI, which are giving low level computing to the masses. And the more kids they encourage to take an interest in IT and programming the better. As a nation we have lost a lot of skills over the years having resourced abroad and we should invest closer to home as much as around the world.