8-Bit BTCS - Wedging into the Bard's Tale II engine.
Just wanted to reassure you all that we are progressing for each day. Zerozero is busy building a tool to decipher Prodos and I am looking into the BT II disks to be able to make a filelist - just as we did with BT I. We'll probably need a lot of help testing and identifying when we have progressed a little longer.
/Twoflower
Excellent progress, Zerozero! If this works out well, we might be able to use the Bard's Tale III engine - which I believe would be the best option.
While Zerozero's been researching on his side, I've been recieving some help from a friend (Magervalp, who has deconstructed Ultima III and IV in about the same way we are dissecting the Bard's Tale engines) and have recieved the loader which he have been using. Hopefully I can manage to fit his routines in memory, giving us full access to a quick, filebased Bard's Tale II. As a bonus, we'll probably get an incredibly speedy version of Bard's Tale I which even might fit onto one diskside. I haven't really tried compacting it yet, but I do believe it might be doable.
More updates tomorrow.
While Zerozero's been researching on his side, I've been recieving some help from a friend (Magervalp, who has deconstructed Ultima III and IV in about the same way we are dissecting the Bard's Tale engines) and have recieved the loader which he have been using. Hopefully I can manage to fit his routines in memory, giving us full access to a quick, filebased Bard's Tale II. As a bonus, we'll probably get an incredibly speedy version of Bard's Tale I which even might fit onto one diskside. I haven't really tried compacting it yet, but I do believe it might be doable.
More updates tomorrow.
/Twoflower
I have now all files from BT3 boot disk as windows binary files, readable with e.g. C64Copy. However, unless I want to read and understand all the code of it, I yet have no hint on how the other disks are read. They are formatted using prodos, however they do not contain any directory data, so they must be read prodos block wise. Therefor I should expect some tables with prodos block tables OR with prodos file index blocks on the boot disk that the main program uses to read in the right blocks from the other disks. I hope to get some more help on the weekend.
To summarize it in some short points:Darendor wrote:What does this Magervalp's loader routine do exactly?
* It is one of the few loadersystems which features a saveroutine - just like most commerial loaders had (including the Pirateslayer-loader which the BT's originally utilizes). One of my problems so far is that the games (BT I and II) must be able to save the roster. Since the loaderroutines i've looked at don't feature saving I need to remove the loaderroutine completely from the drive-memory and load it again - each time you save to the two roster-files. This causes problem with available memory and is really slow.
* The loader can use compressed files if we wish to. The same loader and files can be used on most disk-devices - 1541 (and clones), 1571 (in dual-side mode too), 1581/FD-drives and even the CMD-harddisks.
* It is considerably (with compression i'd guess about 10 times) quicker loading all files. Waiting-times will be reduced to almost zero for everything you do. Diskswapping will be minimized and probably removed completely for BT I.
* All files will be unencrypted, visible, examinable, loadable and exchangable. We could replace them with maps, events and images of our choice. That's nice as we intend to make an editor for the games.
Right now i'm attempting to one-file the Bard's Tale II startup-sequence and remove the intro. This alone makes the first diskside completely obsolete.
EDIT: Success! The game now skips the intro and only loads the last three files of the startupdisk (= 116 blocks - compressed 75 blocks). It enters the "Insert CHARACTER disk" screen without any errors. This looks promising.
/Twoflower
Don't go mad.
There's plenty of progress as we speak, but both me and Zerozero are a bit short on time at the moment. As for Bard's Tale III, we can read the first side - I now have to find the T/S links in memory to be able to access the files on the other disksides.
As for Bard's Tale II, things are looking brilliant. I've located some space at the end of the resident memory ($FB00-FFE0) which don't get overwritten during a stroll around the city, wilderness and combat. This enables me to use the above mentioned loader. First thing to do when I have installed it is to try it out on the unpacked and decoded city-disk files and try to figure out what file is what. I can now say that we with atleast 90% security can use the BT II engine for our purposes - just like you requested, Darendor. Unfortunatly, we're into quite complex stuff right now, which limits the progress to what me and Zerozero have time to do.
If you guys want to help out - try to give me the information you can about what is included on the BT II citydisk. Does the citydisk include all the cities? How does Garth's work in BT II (one inventory, or one in each town?) Are there more than one Guild (eg. one in each town?) and where in the savefile does it keep track of it? It's safe to say that the rosterfiles should be found, unencoded, on the citydisk.
There's plenty of progress as we speak, but both me and Zerozero are a bit short on time at the moment. As for Bard's Tale III, we can read the first side - I now have to find the T/S links in memory to be able to access the files on the other disksides.
As for Bard's Tale II, things are looking brilliant. I've located some space at the end of the resident memory ($FB00-FFE0) which don't get overwritten during a stroll around the city, wilderness and combat. This enables me to use the above mentioned loader. First thing to do when I have installed it is to try it out on the unpacked and decoded city-disk files and try to figure out what file is what. I can now say that we with atleast 90% security can use the BT II engine for our purposes - just like you requested, Darendor. Unfortunatly, we're into quite complex stuff right now, which limits the progress to what me and Zerozero have time to do.
If you guys want to help out - try to give me the information you can about what is included on the BT II citydisk. Does the citydisk include all the cities? How does Garth's work in BT II (one inventory, or one in each town?) Are there more than one Guild (eg. one in each town?) and where in the savefile does it keep track of it? It's safe to say that the rosterfiles should be found, unencoded, on the citydisk.
/Twoflower