Derive Source Code?

Discussions and help for Bard's Tale I: Tales of the Unknown
User avatar
Quantum Reality
Posts: 91
Joined: Mon Mar 15, 2010 8:34 pm

Post by Quantum Reality »

A propos of this I'll be working on getting the source code for the Bard's Tale on the Apple ][ version. I should warn that the only extant disk images seem to be cracked copies, so it'll be 99% original EA code and 1% changes made by the release group (one of which includes, apparently, wiping out the questions you get by the Review Board).

The Apple does not have a fully functional OS in ROM. What is available is "stub code" which involves a bootloader in the $C600 block, mapped to slot six in an Apple ][, ][+, //e and emulated as such in the //c and //gs. The bootloader knows to go to track zero, sector zero and load the first 256 bytes. after that, it's just a matter of bootstrapping the process.

The bottom line of all this is that I suspect the customized OS on the C64 version is an artifact of the EA crew having heavily modified DOS 3.3 and/or writing a new operating system from scratch. Things they would have done:

1. Thrown out the Applesoft BASIC hooks (you don't need a huge-ass command interpreter since user interaction is through the game only)
2. Modified disk access routines to optimize loading of binary data from the disk.
3. Possible slight track/sector reordering? People used to do this in DOS sometimes to change the speed of disk loading.

Seems logical to me they would have retained this where possible for the C64, especially if the 1541 is as slow as I seem to remember some people complaining.

Anyway, I'll see about grabbing some memory dumps soon enough.
User avatar
Darendor
Posts: 1502
Joined: Wed Jan 14, 2009 1:53 am
Location: Red Deer, Alberta, Canada

Post by Darendor »

The Apple II is the grandfather source code.

Removing the questions from the review board? There are no such questions on the C64 version. :?
Quantum Reality wrote:A propos of this I'll be working on getting the source code for the Bard's Tale on the Apple ][ version. I should warn that the only extant disk images seem to be cracked copies, so it'll be 99% original EA code and 1% changes made by the release group (one of which includes, apparently, wiping out the questions you get by the Review Board).

The Apple does not have a fully functional OS in ROM. What is available is "stub code" which involves a bootloader in the $C600 block, mapped to slot six in an Apple ][, ][+, //e and emulated as such in the //c and //gs. The bootloader knows to go to track zero, sector zero and load the first 256 bytes. after that, it's just a matter of bootstrapping the process.

The bottom line of all this is that I suspect the customized OS on the C64 version is an artifact of the EA crew having heavily modified DOS 3.3 and/or writing a new operating system from scratch. Things they would have done:

1. Thrown out the Applesoft BASIC hooks (you don't need a huge-ass command interpreter since user interaction is through the game only)
2. Modified disk access routines to optimize loading of binary data from the disk.
3. Possible slight track/sector reordering? People used to do this in DOS sometimes to change the speed of disk loading.

Seems logical to me they would have retained this where possible for the C64, especially if the 1541 is as slow as I seem to remember some people complaining.

Anyway, I'll see about grabbing some memory dumps soon enough.
Post Reply