^
Here's a link for playing the game in JSBeeb:
http://bbc.godbolt.org/?autoboot&disc=h ... D-1B00.ssd
It feels a bit slow in JSBeeb, possibly because of JSBeeb's extremely accurate disc-drive noise emulation!
Dethmunk wrote:Hi guys, just to say a massive, massive thankyou to Lurkio for working with me to finish The Darkness of Raven Wood. With some awesome coding and optimizations and to Tricky for his Compression/Decompression code.
Many thanks to you, John, for conceiving this great new game project and for seeing it through, and for letting me compress the heck out of your artwork and generally hack your programs to bits! Tricky, thanks for your
compression code, and especially the decompressor, which is incredibly fast on the Beeb, and
which I used to compress all of John's pics (and then lump the majority of them into one humongous file) so that the whole game would fit onto a single .SSD disc-image, a feat I became obsessed with achieving for some reason -- partly just for the challenge but also partly because you'd then hopefully be able to run the game on a TurboMMC.
I've checked that the .SSD works in a TurboMMC connected to a Master, and also in a TurboMMC connected to a Model B.
I'm hoping John will go into a little bit more detail about how he produced the amazing graphics -- in particular, John, I know you used Photoshop to do the originals, but did you originally use just four colours or did you rely on Image2BBC to do the "colour downsampling" for you? (As you can probably tell, I know nothing about creating art (but I know what I like!).)
Meanwhile:
- On the technical side, apart from tricky's brilliant de/compression code, the other point of possible interest was using OSWORD &7F calls to do direct disc-sector reads to speed up the loading of the pictures, which I'd never used before. Very simple and effective once you know what the "API" expects. I enumerated a massive list of sector-offsets so the program would know which pic began on which sector (having used OSWORD &7F initially to read sectors 0 and 1 -- the disc catalogue -- to work out the start-sector of the humongous compressed pic bundle) and pass the sector number to OSWORD.
- I realise now we probably could have sped things up even more if we'd somehow interleaved the location pictures with the textual location descriptions, all in the same file, but that was a faff too far, at this time. Instead, I just tweaked John's use of OPENIN and INPUT# by moving PTR# directly to the right point in the location-description text-file every time the player moved to a new location, eliminating the need to read and discard all the preceding location-descriptions in the text-file first. This of course required another in-memory list of offsets, one for each location description.
- We used a Master-compatible version of Robin Nixon's Slim Characters program from Electron User so that there'd be 40 chars per line in MODE 5.
- The last technical point I'll mention is the use of the Pack utility in the PRES BASIC Editor ROM -- at least, I think it was that particular ROM; I installed it in BeebEm so long ago that I'm no longer 100% sure that this is the source I used. The BASIC programs needed compressing because we kept getting "Out of memory" errors, as HIMEM's at &5800 in MODE 5. The Pack utility was handy (though you need to be careful if you use it to remove "non-essential" spaces and you've used the ? or ! operators liberally).
