BT1, MS Dos function offsets/

Any developer realated stuff
Post Reply
MurphyG71
Posts: 2
Joined: Tue Apr 21, 2015 2:30 pm

BT1, MS Dos function offsets/

Post by MurphyG71 »

Hallo everyone!

This is my first post here after reading your fantastic infos over months.

I've started to disassemble the original BT1 MsDos Version because I want to get an impression of the original code structure(to get an idea how a programmer thought and worked in the 80s ;) ).

I've identified some functions and gave him names to show their main functionality.

My question is if there are other functions identified by you....and...would you please so kind to share it with me ? ;)

Code: Select all

ListCharacterItems                       seg000 000005FB  
WriteCharacterName                       seg000 0000073B 
GetRace                                  seg000 000009B1  
WriteRace                                seg000 000009BF 
WriteClass                               seg000 000009D7 
CharacterInfoStrength                    seg000 000009EC  
TradeItem                                seg000 00000C4B  
CopyCharacternameToBuffer                seg000 00000DC6
CharacterSelectionLoop                   seg000 000017F6  
TradeGoldInputLoop                       seg000 00001BEC  
WriteToRightWindowClrScr                 seg000 00001DBA
WriteDone                                seg000 00001E99  
WriteExit                                seg000 00001EAE  
WriteCancel                              seg000 00001EC3 
WriteContinue                            seg000 00001ED8 
WriteTextValuePair                       seg000 00001EED  
WriteValueTextPair                       seg000 00001F0A  
YesNoQuestion                            seg000 00001F27
GetSelectionFromRightWindow              seg000 00001F82
ScreenInputLoop                          seg001 0000000A
WriteToRightWindow                       seg001 00000928
ReadMouseData                            seg002 000002DC
ReadIoButton0                            seg002 00000437
ReadIoButton1                            seg002 00000474
ReadIoCoordinates                        seg002 000004B3
ReadKeyboardChar                         seg002 00000527  
GetRandom                                seg002 0000052C
CreateFile                               seg002 0000053E
OpenFile                                 seg002 00000553
CloseFile                                seg002 00000569
ReadFile                                 seg002 0000057A
ReadFile2                                seg002 00000593
LSeekFile                                seg002 000005F1
CheckKeyboardBuffer                      seg002 0000064B
SelectDrive                              seg002 00000773
CheckExistanceAndOpenFile                seg003 00000002
CheckDiskAndCreateFile                   seg003 0000014C
LoadLevsFile                             seg003 000001FB
CheckDiskExistanceAndRequestInsertOfDisk seg003 000002A5
CheckGivenDriveForDisk                   seg003 00000321
FightInputHandling                       seg006 0000393A
PrintInfoAndSelectMemberLoop             seg006 00003EAB 
drifting
Posts: 153
Joined: Wed Dec 07, 2011 10:21 pm

Re: BT1, MS Dos function offsets/

Post by drifting »

Here are the links to the IDA files that I use

BT1
BT2
BT3
MurphyG71
Posts: 2
Joined: Tue Apr 21, 2015 2:30 pm

Re: BT1, MS Dos function offsets/

Post by MurphyG71 »

Thanks!!!
really good work...

I will take a deep look into it :)
RevenantBob
Posts: 12
Joined: Sun Jul 26, 2015 2:43 pm

Re: BT1, MS Dos function offsets/

Post by RevenantBob »

I was working on this as well, come to find yours further along. I am working on creating a C++ remake for a hobby, but was struggling with the Compression algorithm.

Perhaps this will aid.
RevenantBob
Posts: 12
Joined: Sun Jul 26, 2015 2:43 pm

Re: BT1, MS Dos function offsets/

Post by RevenantBob »

RevenantBob wrote:I was working on this as well, come to find yours further along. I am working on creating a C++ remake for a hobby, but was struggling with the Compression algorithm.

Perhaps this will aid.
Turns out they just use Huffman so I was disassembling the compression algorithm for no reason. Good to know =)
dulsi
Posts: 242
Joined: Thu Mar 22, 2007 7:15 pm

Re: BT1, MS Dos function offsets/

Post by dulsi »

RevenantBob wrote:I am working on creating a C++ remake for a hobby
Bt Builder is an open source C++ remake of the Bard's Tale Construction Set. We are slowly adding features of the other games. The eventually goal is to be able to run all the games using the engine. We aren't working on import graphics though.
User avatar
ZeroZero
Posts: 286
Joined: Tue Mar 10, 2009 9:10 pm
Location: Germany

Re: BT1, MS Dos function offsets/

Post by ZeroZero »

@ RevenantBob

Hey, please observe, when you make a remake, that there is no the remake, because most versions were significantly different in game values and each version had their own bugs...

In paticular for BT1 this were:
8 Bit 65xx version (Apple & C64, maybe Atari 800 etc)
8 Bit Z80 version (Sinclair Spectrum, Schneider/Amstrad)
16 Bit Amiga
16 Bit Atari
16 Bit Apple II GS
16 Bit Apple MacIntosh
16 Bit DOS

They all were slightly different with different bugs.

So WHAT remake you plan to make :wink:

The 8 Bit 65xx version can be counted as "canonical" cause it was the original one, while others had way better graphics and sound.
RevenantBob
Posts: 12
Joined: Sun Jul 26, 2015 2:43 pm

Re: BT1, MS Dos function offsets/

Post by RevenantBob »

I played DOS version primarily, and I have background with programming DOS, so that's what I'm working with.

Already finished part of the graphics import, and converted the bit planes to 4 bit pixels. Working on setting up the shaders for opengl to do the rendering now that I got a proper EGA palette texture going.

Surprised how much is hard coded into the game actually. I can definitely see why each version would have it's own set of bugs.
Post Reply