Archive for the ‘Spectrum’ Category

Comet Chaos

Monday, July 7th, 2008

Thanks to Oleg for reminding me at OpenTech that I still hadn’t written this up yet…

This started out as an experiment in Comet techniques (which allow you to actively push data out from web servers without the client having to initiate the request) which quickly ballooned in ambitiousness – I didn’t set out to write Just Another Chat Application after all. The end result is a realtime multiplayer Javascript conversion of the Spectrum wargame Chaos… or a reasonable chunk of it, at least.

Play Comet Chaos now

If you’re interested in the workings behind it, check out this video from my Oxford Geek Nights presentation to hear about how Comet is like a small child on a car journey, find out how close web developers can get to world domination, and watch a live demonstration going pear-shaped.

(more…)

AY Club: Breath Of Air

Saturday, May 10th, 2008

As a postscript to the release of tracker2ay, here’s the reason I wanted to transfer tracker files back to the Spectrum in the first place: to play X-Agon’s 6-channel Breath Of Air (as featured on the AY Riders Satellite single) the way that God intended, on two Spectrums playing 3 channels each…

tracker2ay

Saturday, May 10th, 2008

Here’s a utility prompted by zxbruno and Eq both asking, in the space of two days, how to convert STC, SQT and PT3 music files to something you can actually play on a Spectrum. For those not in the know, STC and friends are Spectrum tracker file formats originally introduced by Sergey Bulba‘s AY Emulator and which are now the de-facto standard for archiving Spectrum demoscene music (most prominently on ZXDemo, ZXTunes and Sergey’s epic Tr_songs archive). Which means it’s a bit unfortunate that there’s not been an obvious way to transfer them back to the Spectrum.

In principle it should just be a case of locating the appropriate Z80 player routine and bundling that together with the music data. In practice it involves a lot of faffing about (such as repointing pointers to make up for slight rubbishness in the SQT data format, and writing a 5-line Basic loader/player). Now, thanks to this utility, you just need to type tracker2ay mysong.stc mysong.tap instead. (Oh, and it can convert to TAP, TZX or AY.)

If at this point you’re screaming “But why does it have separate source code if it’s written in Ruby, which is an interpreted language?” then award yourself 20 geek points. Ah, you see, this time I’ve been playing with rubyscript2exe (and tar2rubyscript) to create all-in-one executables that everyone can enjoy without worrying about library dependencies and things. (But obfuscates the code in the process. But in a good way.) Please do check out the source code if you’re curious about that sort of thing, because I reckon it’s one of the best bits of code I’ve written in a long time, in a ‘nicely-written code’ sort of way rather than ‘evil complicated hacks that go together to do something superficially elegant’.

Triptik

Sunday, February 17th, 2008

My very fast (written in something like 2 hours) music entry for raww.orgy, which ended up in 4th place. In a cunning kill-two-birds-with-one-stone move, it’s also one of my FAWM songs.

Download gasman_-_triptik.mp3

Triptik on FAWM

Pimp My Chips

Wednesday, February 6th, 2008

[Screenshot: Pimp My Chips]

This week saw the release of the long awaited Ate Bit musicdisk, Pimp My Chips – featuring a selection of Spectrum covers of classic pop songs. Musical contributions came from Mofobaru, Simon, Nik-O and myself, and the full pack is well worth a download if you’re suitably Windows-executable-equipped. If you don’t, or you’re more of an instant-gratification-click-and-listen type (or a stick-it-on-your-mp3-player type), here are my tracks as friendly bandwidth-hogging MP3s.

Dancing Queen (Abba)

Download gasman_-_dancing_queen.mp3

Disco 2000 (Pulp)

Download gasman_-_disco_2000.mp3

Video Killed The Radio Star (The Buggles)

Download gasman_-_video_killed_the_radio_star.mp3

Paranoid Android (Radiohead)

Download gasman_-_paranoid_android.mp3

OpenZXRom 2008-01-07 (the PRINTworks)

Monday, January 7th, 2008

[Skool Daze: "700 lines ERIC - Don't do it again..."]It seems like only last week that… hmm, yes, well. After the last release in the closing hours of 2007, I was all set to put OpenZXRom aside for a while. But then Philip Kendall and a merry band of anonymous people did phenomenal work on the OpenZXRom wiki page, documenting a mountain of games that did and didn’t work – and the list of bug reports was a carrot dangling in front of me and whispering “fix me. fiiiiix meeeee.” And I don’t even like carrots.

So, this is the result. Biggest news this time is the arrival of the PRINT statement – yes, it’s been long overdue, but now OpenZXRom can run that legendary masterwork: 10 PRINT “the c64 was crap” / 20 GO TO 10. (Actually, it briefly works and then dies in a burst of attribute clash, because I haven’t bothered to test for running off the bottom of the screen yet. Still, eh?) We’ve also got FLASH, BRIGHT, PAUSE, and beefed-up keyboard scanning for the benefit of games that piggyback on the interrupt routines. Despite the “let’s make a bunch of games work” focus of this release, it’s actually only made modest progress – for all too many of them, fixing the simple bugs just replaces them with progressively more obscure ones. But it’s still fair to bask in the successes of the 15% or so that do work now, including Skool Daze.

Download OpenZXRom 2008-01-07

OpenZXRom 2007-12-31 (Here be dragons)

Monday, December 31st, 2007

[Screenshot: Paperboy, with 'Here be dragons: 0x03B5' error] Just sneaking in at the end of the year as if it was releasing to an actual deadline or something, OpenZXRom 2007-12-31 brings eagerly awaited support for the LOAD “” command. This means that it can now handle all the necessary parts of a ‘typical’ Basic loader – CLEAR, LOAD, RANDOMIZE USR – and make a good honest attempt at loading real commercial games from tape. Sometimes it even works: Manic Miner! Egghead 4! Fat Worm Blows A Sparky! They all load and run successfully, exactly the way they’re supposed to. No ifs, no buts.

Even for the programs that do fall over – still the majority – this release marks a turning point. At this stage, it makes sense to dig around and investigate why things are failing and what needs to be added next, rather than just shrugging and saying “well, what do you expect… of course it breaks right now, it’s still in the stupidly early stages”. To that end, the throbbing yellow and magenta border of death has been furnished with new diagnostic error messages like the one in the screenshot. In this example, Paperboy loads up correctly and gets as far as the main menu, but throws a “Here be dragons” error on starting the game – meaning that it’s jumped to an as-yet uncharted location in the ROM. It turns out that 0x03B5 is the address of the ‘beeper’ routine, hinting that that might be a useful addition for a future release…

Download OpenZXRom 2007-12-31

Update: There’s now a page on the ZX Spectrum Technical Info Wikia gathering a chart of OpenZXRom successes and failures.

SoundTracker 20th Anniversary

Monday, November 19th, 2007

[screenshot: SoundTracker 20th Anniversary]

Released last week (ok, so I’m slacking…), SoundTracker 20th Anniversary is, unsurprisingly, Hooy-Program’s celebration of the 20th anniversary of Karsten Obarski’s SoundTracker for the Amiga, which has shaped the design of computer music software ever since. This Spectrum production features a four-channel MOD soundtrack by Yerzmyey using the original ST-01 sample pack, played using the General Sound add-on interface.

To be honest, I find the General Sound to be an exceedingly silly interface. It has its own processor that’s four times as fast as the one on the Spectrum, and its own independent memory store – in fact, the whole thing has a spec strangely comparable to one of the original Amigas – so it’s pushing the bounds of credibility to call it a way of playing MODs on the Spectrum. It’s more like sellotaping a CD player to the side and saying “Look! My Spectrum can play CD-quality audio!”

But hey, it made for a nice silly new demo, anyway.

OpenZXRom 2007-10-15 (Maths and minigames)

Tuesday, October 16th, 2007

[Screenshot: Play Ball! by Evilpaul] This is Play Ball! by EvilPaul, a 4K game from the 2003 Minigame competition. It has the distinction of being the first ever real-world Spectrum program to successfully load and run on OpenZXRom from a tape file. That’s due in no small part to the fact that the Basic portion consists of a single RANDOMIZE USR call followed by a REM, but still, that’s a worthy milestone for the project after a 16 month hiatus, wouldn’t you say?

We haven’t cut any corners in pursuit of that goal either – some crucial pieces of plumbing have been added in this release. The first dabblings into floating point arithmetic are in place, including the foundations for the stack-based mini-language that will be the heart of all our mathematical backflips later on. On the Basic language front we’ve added PEEK, POKE, IN, OUT, USR and PLOT to our repertoire. The big news, though, is that it can now handle simple string expressions, which means that LOAD “foo” CODE is just around the corner – and then that’s the final piece of the Classic Spectrum Basic Loader implemented, which should get a good few hundred games up and running.

There’s been a bit of prettying up too, both inside and outside – the code has been reshuffled into multiple files (because rom.asm eventually grew big enough to be annoying), and the system font has received some much needed care and attention courtesy of Paul van der Laan and his Clairsys font.

Download OpenZXRom 2007-10-15

Bleeding-edge seat-of-the-pants types can follow the OpenZXRom subversion repository for the latest updates.

Oxford Spectrum meetup, 20 October 2007

Sunday, September 16th, 2007

From 2pm, The Gloucester Arms After a hiatus of goodness-knows-how-long, Oxford will be home to another Spectrum pub meet on Saturday 20th October, from 2pm at The Gloucester Arms. Well over a dozen illustrious inhabitants of comp.sys.sinclair and the World Of Spectrum forums have indicated their interest already, so it’s promising to be a good one.

Limited crash space will be available for long-distance travellers (I could probably accommodate about 5-6 before things start getting, um, cosy), so drop me an email if you’d like to take that up. You may also want to get in touch to swap mobile numbers, in the unlikely event that we have to move on to somewhere else before you arrive (due to our group being SO FREAKING HUGE) or if you think you’re likely to get lost on the way or something. On that subject, here’s how to get there (full map):

From the coach station (Gloucester Green): Go round the back of the concourse, and head for the far left corner of the market square – the Gloucester Arms pub is in front of you. There, that was easy…

From Oxford train station: Go out of the main entrance towards the horrible green spire, then keep on heading in that direction past the big glass buildings on your left, over the bridge and continue down George Street (the one with Cafe Orient and Jessops on). At Old Orleans and the Cock And Camel pub, take the left turn. You’ll see the Gloucester Arms up ahead.

See you there!