8-Bit BTCS - Wedging into the Bard's Tale II engine.

Any developer realated stuff
User avatar
Darendor
Posts: 1502
Joined: Wed Jan 14, 2009 1:53 am
Location: Red Deer, Alberta, Canada

Post by Darendor »

Fair enough then.
User avatar
Twoflower
Posts: 128
Joined: Thu Mar 19, 2009 12:40 am
Location: Haarlem, NL
Contact:

Post by Twoflower »

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
User avatar
Darendor
Posts: 1502
Joined: Wed Jan 14, 2009 1:53 am
Location: Red Deer, Alberta, Canada

Post by Darendor »

All this still begs the question - which engine will we use? We need to decide this.
Chaney
Posts: 100
Joined: Tue Jun 27, 2006 7:56 pm
Location: California

Post by Chaney »

Just call me Beta! :D
When in doubt, kick your neighbors dog!
User avatar
ZeroZero
Posts: 286
Joined: Tue Mar 10, 2009 9:10 pm
Location: Germany

Post by ZeroZero »

hi Chaney, do you want to join the team? And what are your special abilities?
Chaney
Posts: 100
Joined: Tue Jun 27, 2006 7:56 pm
Location: California

Post by Chaney »

I have no programming skills, except a little visual basic. That is why I am volunteering to be a beta tester.
When in doubt, kick your neighbors dog!
User avatar
ZeroZero
Posts: 286
Joined: Tue Mar 10, 2009 9:10 pm
Location: Germany

Post by ZeroZero »

Unfort I can't upload pictures here and it is too late to make a webspace. Anyway I finished reading the directory of the BT3 boot disk. Tomorrow I will make it read the files contents and save them back to windows binary files, so we can handle them with decent tools.
User avatar
Twoflower
Posts: 128
Joined: Thu Mar 19, 2009 12:40 am
Location: Haarlem, NL
Contact:

Post by 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.
/Twoflower
User avatar
Darendor
Posts: 1502
Joined: Wed Jan 14, 2009 1:53 am
Location: Red Deer, Alberta, Canada

Post by Darendor »

What does this Magervalp's loader routine do exactly?
User avatar
ZeroZero
Posts: 286
Joined: Tue Mar 10, 2009 9:10 pm
Location: Germany

Post by ZeroZero »

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.
User avatar
Twoflower
Posts: 128
Joined: Thu Mar 19, 2009 12:40 am
Location: Haarlem, NL
Contact:

Post by Twoflower »

Darendor wrote:What does this Magervalp's loader routine do exactly?
To summarize it in some short points:

* 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
User avatar
Darendor
Posts: 1502
Joined: Wed Jan 14, 2009 1:53 am
Location: Red Deer, Alberta, Canada

Post by Darendor »

Careful with bypassing the boot disk. On BTI, the boot disk contains a jump table for events in Skara Brae, so the same idea might be on BTII.
User avatar
Darendor
Posts: 1502
Joined: Wed Jan 14, 2009 1:53 am
Location: Red Deer, Alberta, Canada

Post by Darendor »

I will go mad.
User avatar
Twoflower
Posts: 128
Joined: Thu Mar 19, 2009 12:40 am
Location: Haarlem, NL
Contact:

Post by 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.
/Twoflower
User avatar
Darendor
Posts: 1502
Joined: Wed Jan 14, 2009 1:53 am
Location: Red Deer, Alberta, Canada

Post by Darendor »

Every city has a Guild in it. The Garthe's inventory shop is universal stock - if you sell say a Dmnd Dagger at the Garthe's in Philippi you can buy it back out in Tangramayne and so on.
Post Reply