BT 1 file list on CBM64

Any developer realated stuff
User avatar
Twoflower
Posts: 128
Joined: Thu Mar 19, 2009 12:40 am
Location: Haarlem, NL
Contact:

Post by Twoflower »

Ok,

Here comes the disk with some of the files I have extracted - http://ifile.it/fyq1wpr.

Decriptions of the graphics files:

"14-00 $BC00" = Antwarrior animation.
"16-00 $BC00" = Vinecovered wall by night.
"16-08 $BC00" = Tree by night.
"17-01 $BC00" = House sporting triangle by night.
"19-00 $BC00" = The Guild.
"21-04 $BC00" = Golem / Stonewarrior animation.
"22-08 $BC00" = Kobold / Goblin animation.

Try replacing any file on the BT1 disk between NT50-NT80 with any of these. If you wish to - change the colors accordingly on $0D99 and onward if you feel like it - just decrease $50 from the value and start counting. :-)[/b]
/Twoflower
User avatar
Darendor
Posts: 1502
Joined: Wed Jan 14, 2009 1:53 am
Location: Red Deer, Alberta, Canada

Post by Darendor »

Twoflower wrote:Ok,

Here comes the disk with some of the files I have extracted - http://ifile.it/fyq1wpr.

Decriptions of the graphics files:

"14-00 $BC00" = Antwarrior animation.
"16-00 $BC00" = Vinecovered wall by night.
"16-08 $BC00" = Tree by night.
"17-01 $BC00" = House sporting triangle by night.
"19-00 $BC00" = The Guild.
"21-04 $BC00" = Golem / Stonewarrior animation.
"22-08 $BC00" = Kobold / Goblin animation.

Try replacing any file on the BT1 disk between NT50-NT80 with any of these. If you wish to - change the colors accordingly on $0D99 and onward if you feel like it - just decrease $50 from the value and start counting. :-)[/b]
I see some DEL files too. :shock:
User avatar
ZeroZero
Posts: 286
Joined: Tue Mar 10, 2009 9:10 pm
Location: Germany

Post by ZeroZero »

LOL I just made a fully decoated (but not yet decoded, i.e. not de-xored) BTII char disk, that actually works for playing
The trick really is, to put back org track 18 sector 0 onto the disk after the decoating...
And you MUST NOT validate that disk, the directory is split over the whole disk
User avatar
Darendor
Posts: 1502
Joined: Wed Jan 14, 2009 1:53 am
Location: Red Deer, Alberta, Canada

Post by Darendor »

ZeroZero wrote:LOL I just made a fully decoated (but not yet decoded, i.e. not de-xored) BTII char disk, that actually works for playing
The trick really is, to put back org track 18 sector 0 onto the disk after the decoating...
And you MUST NOT validate that disk, the directory is split over the whole disk
*Blank stare* :?

What?
User avatar
ZeroZero
Posts: 286
Joined: Tue Mar 10, 2009 9:10 pm
Location: Germany

Post by ZeroZero »

Ok for BTII all 4 disks are decloaked and anyway playable... :) However of course encrypted and not movable for the loader is still activate...
User avatar
Darendor
Posts: 1502
Joined: Wed Jan 14, 2009 1:53 am
Location: Red Deer, Alberta, Canada

Post by Darendor »

ZeroZero wrote:Ok for BTII all 4 disks are decloaked and anyway playable... :) However of course encrypted and not movable for the loader is still activate...

So...the loader needs to be done away with or?...
tedious
Posts: 2
Joined: Wed Dec 23, 2009 2:44 am

Post by tedious »

Twoflower wrote:It's font allright. It is located at $15D0 and onward in memory. I believe there is one normal and one inverted version in memory. I honestly don't think they have been visionary enough to visually invert the font by changing the colors.
The bitmapped font starts at $15CE (referenced by $0A26 and $0A2D), and has 8 byte per character. Every byte consists of 4 horizontal multicolor pixels (please look for information on multicolor mode elsewhere). The font is inverted on the fly by EOR $ff at $0a52 (or EOR $00 for no inversion), depending on the location on the screen. If the cursor position in Z54/Z55 is inside the text console ($15,$27,$03,$10) or inside the inverted column of the party list ($1b,$1f,$11,$18), the color is inverted. The logic for this is in the routine starting at $09E0 (data at $0A6E), which I hereby name "putchar" :). The routine prints the font pixels (the font starts at character $A0, by the way) directly to the multi-color bitmap. The "anti-alias" is part of the multi-color bitmap, and desperately needed because of the low resolution of 3x7 pixel per character (actually 4x8, but one pixel space is required). Here is an example character, K:

[] []
[] []
[][]--
[][]
[]....
[] []
[] []

The screen bitmap is at $2000-$3FFF, the (cell-based) color plane is at $0400-$07FF, and is initialized in EA1.PRG at $C070-$C129. The main picture frame, the text console frame, and the main picture title frame are drawn at the subroutines $C171, $C1E9, $C251 in the same file, and at $C133 the logo in the upper right is added (which is located as a bitmap in the peculiar C64 format:horizontal sequence of 8 vertical bytes a piece at C2AA).
that they actually transfer memory for 7 pixels, 1 pixel at the time, to make it look like scrolling.
The scrolling routine is at $1E60. It scrolls the text-console-part of the bitmap line by line (8 lines total) and actually includes an invocation at $1EBD of the delay routine at $1A62 after every line.
I should really memorymap the game and the two modules. We allready got quite some directions on the routines and the tables.
In another post there was a question what the data at $C900 means. This is the low part of words, where the high part is stored at $CA00. Together, $CA00+X/$C900+X specify the start address of the screen line X in the bitmap from $2000-$3FFF. Note that the start address of 255 lines is calculated although only the start address of the first 200 lines are valid, of course. This precalculated table (generated in the intro EA2.PRG at $4034-$4079) is used everywhere where things are put on screen.

Here is a start for a code reference as far as the code is concerned in a format that is understood by the dis6502 decompiler. As you can see, it does not contain a lot yet, but it is reliable. I extended the dis6502 by a few lines of code to convert C64 character set to PC, so I can debug this easier. This is all from reading the disassembled assembler (much easier than guessing from the few data files or memory dumps!)

BT_EA1_main .EQ $C000
BT_clearscr .EQ $C15C
BT_load_y .EQ $C700
BT_clearscr_and_resetirq .EQ $C744
BT_draw_main_box .EQ $C171
BT_draw_console .EQ $C1E9
BT_draw_main_title .EQ $C251
BT_title_1 .EQ $C2AA
BT_title_2 .EQ $C34A
BT_junk .EQ $C3EA
BT_EA3__main .EQ $0800
BT_EA3_main .EQ $08D2
BT_party_titles .EQ $096C
BT_putchar .EQ $09E0
BT_in_print_for_irq .EQ $09DF
BT_cmp_next_token_len_to_rest_of_line .EQ $0B2E
BT_set_linelen .EQ $0B63
BT_console_putnewl .EQ $0b67
BT_console_scroll .EQ $1E60
BT_sleep .EQ $1A62
BT_print_main_box_title .EQ $0B7D
BT_clear_console_and_home .EQ $1EE5
BT_font .EQ $15CE
BT_print .EQ $0AC6
BT_clear_main_box .EQ $1F20
BT_blit_xxx .EQ $1F60
BT_irq .EQ $1BC7
BT_kernal_irq .EQ $1BB4
BT_nmi .EQ $1C0F
BT_EA4_main .EQ $4000
c_rest_kernal .EQ $08D5
c_clear_stack .EQ $0939
User avatar
Darendor
Posts: 1502
Joined: Wed Jan 14, 2009 1:53 am
Location: Red Deer, Alberta, Canada

Post by Darendor »

Very nice work. It seems most of the people working on the C64 project have moved on or found wives or something unfortunately...:?
User avatar
Twoflower
Posts: 128
Joined: Thu Mar 19, 2009 12:40 am
Location: Haarlem, NL
Contact:

Post by Twoflower »

Well... Not really - during last years easter we simply had a lucky coincidence. I left my old job and waited for my new one to start on the 1:st of May and ZeroZero happened to have a vacation during the same time. This left us with loads of time to waste on examining the BT / BT 2 engine.

Suddenly, life started again and we lost focus and time. But I must admit it would have been really nice if Tedious had been here back then.
/Twoflower
Post Reply