My previous attempt at this had some issues, so I went back to the drawing board and have been working on “Mk II”, which I’m pleased to say is working really nicely now
This ASCII graph shows the performance when loading sequential data, at various interleave values. The first entry is without the disk acceleration enabled.
I have also been working on a new image loader which will support the disk acceleration. This loader reads the image from a file and displays it progressively. It also shows a percentage when loading the main story file. My next task will be to incorporate the disk acceleration code into it (it can be used without it too).
This disk acceleration code has only been testing in an emulator. It works on both PAL and NTSC computers, and supports multiple 1541 drives.
The repository (a fork of the Ozmoo repository) is here:
I have finished the new image loader, which is enabled with the new -ni option to make.rb, and followed by a filename, or the word “none” to not show an image (but it does show a percentage as it loads the main program).
The image must be converted from a koala paint (KLA or KOA file) or a hires (HIR) file into a SEQ file using the new “convert.rb” program. That is needed so the new loader can show the image progressively (line by line). The conversion program also lets you specify the colours of the background, border, and foreground of the shown percentage.
This image loader supports disk acceleration, enabled by the -da option to the “make.rb” script, but also works without it.
BTW, the existing image loader is still there and usable.
It would be great if somebody could test the disk acceleration on real hardware (and the new image loader too). I am unable to do it myself.
@fredrik I think this is nearly ready for a pull request. Though I haven’t updated any documentation yet. What do you think?
Testing on real hardware is essential. I have a C64, but I don’t have a real disk drive.
Also, of course, just like Infocom did, we must ask the user if they want to use the accelerator code, or they can’t play the game if they use something like an SD2IEC device, or a third-party drive that isn’t 100% compatible with a 1541 drive.