Bloodwych Remake (HTML Version)

Started by MadMunky, February 03, 2013, 09:15:29 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

MadMunky


Hungry Horace

i wrote a comment about the 'table' below the palette earlier.

I should have known better.... i actually used the data there in the WHDLoad slave, because the mouse/pointer sprites are actually stored there:

      Address $8E88      ; sprite 0
      Address $8F18      ; sprite 1
      Address $8ED0      ; sprite 2
      Address $8F60      ; sprite 3

I actually 'clear' (and store) these sprites so that the pointer will disappear when you are in a walking mode.

Quote from: KillerGorillabecause winuae is made of code and your amiga is made of stuff


Hungry Horace

I had what I am hoping is a breakthrough on the "character design" information this evening - it will require further investigation but I successfully changed the colours if blodwyn's legs and torso.

I do not have addresses yet, but two locations were patched .... Hopefully they are next to each other and are next to the other items such as the blodwyn's head (style and colour) arms, boots, feet etc.


My process.... I investigated what colours were used for blodwyn by palette register. These were; 3,4,8 and E. Two greys, a blue and a white.


I wrote a program in Amos that calculated all of the possible combinations (24) and proceeded to check the Bloodwych binary for occurrences.  It counted the number of finds for each, and the patched over a new value (all blues)

Initially I had no luck, I found data for various combination word values, but they caused crashes or simply yielded no change.

When I switched to searching to long numbers, I found out of all of my combinations only one yielded results .... Two results in fact for this same value.

Running the newly saved binary I found the torso and legs of blodwyn had changed, and I am assuming (pending further investigation) that this is why I had two results.

Tomorrow I will get the addresses and see if "live" editing is possible, and then start investigating with other characters and surrounding data :)

Let's hope this works as well as I hope it will!!!
Quote from: KillerGorillabecause winuae is made of code and your amiga is made of stuff


MadMunky

Good work Horace, it sounds like they actually did what we do to colour the images so your find that the arms and head use a slightly different palette. Hopefully one this will make it a lot easier to finish the remaining palettes we need and it will also be near a table where they store which type of torso etc is used for which character

Hungry Horace

It seems this data *can* be edited with live data. There is good and bad news atm.

I can confirm I have found a  block of  $6B8 length (I believe, I am assuming it is terminated at the $ff at this point)

In the BW439 binary, this is located at $34F08 (or $351c8 in loaded memory)

There are $14 bytes per character, tested with Blodwyn and Murlock.
This length would correlate to $55/$56 "characters" being defined (which is correct for all the "normal" characters and monsters)

The structure is as follows;

Head: 4 bytes
Legs: 4 bytes
Torso: 4 bytes
Arms: 4 bytes
Head (at distance): 1 byte
Body/arms/Legs (at distance): 2 bytes
Belt/Feet (at distance): 1 byte

I will add this table to files exported / imported by my editor as  characters.colours or something


The bad news is of course that the choice of body/head/legs etc is not in this same table... so more investigation is needed, and I am not sure how easy this is going to be.



Quote from: KillerGorillabecause winuae is made of code and your amiga is made of stuff


Hungry Horace

#110
got a little further.

I just 'looked' at the table of head sprites, turned them into a set of numbers, and guess what the sequent might be for the main champions....

$0f 10 0E 0D  (blodwyn, murlock, Eleanor, Roseanne..)

low and behold, a list of "what head is used" can be found at $A596 in the BW 439 binary :)


0F 10 0E 0D 01 0A 07 06 02 0C 03 05 00
0B 08 04 04 05 06 03 10 07 03 11 11 11
11 11 04 04 04 0D 0C 0C 0C 0C 0C 03 03
01 01 02 02 02 02 02 02 01 03 01 06 06
07 07 07 07 10 10 10 10 0B 0B 0B 0B 09
0C 02 07 06 07 01 05 05 05 05 05 03 01
01 03 0F 0F 0F 0F 0F 0F


There are no doubt similar tables around here.


The list of heads is as follows;

00 ulrich
01 astroth
02 edward
03 sethra
04 thai change
05 flay
06 elfric
07 baldrick
08 hengist
09 zendick
0A zothen
0B zastaph
0C megrim
0D roseanee
0E elanor
0F blodwyn
10 murlock
11 demon




edit:

Found it!   (well, sort-of)

There are a list of pre-defined bodies-structures  that can be used... this makes things quite a bit easier overall.

These are listed @ $A418 in the BW 439 binary.

The full data-block is as follows;

00 03 04 04 02 03 03 03 02 04 02
01 02 03 03 03 03 01 0B 02 03 03 03 0C
0C 0C 0C 0C 03 03 03 08 08 04 04 04 0A
0D 0D 0D 0D 07 07 07 07 07 07 03 02 02
0B 0B 03 03 03 03 03 03 03 03 03 03 03
03 03 04 07 07 07 07 07 01 01 01 01 01
0B 07 02 02 00 00 00 00 00 00


I need to do some testing to see what bodies are formed by each option.
Quote from: KillerGorillabecause winuae is made of code and your amiga is made of stuff


Wishbone

Looks good, thanks Horace! We will definitely have to test this in our remake (looking at Madmunky) :)
REFORGE
    THY
  BONES

MadMunky

#112
Nice one horrace! Im going to have to play!



looks like you can do some fun stuff with this..




Horace, please can you post a line/example of the palette data so I can also try and find this

Hungry Horace

#113
you mean the list of palette entries for the characters?

00 04 08 00 0E 04 08 03 0E 04 08 03 04 08 04 0E 08
08 04 04 00 09 0C 0B 05 06 0E 00 09 0C 0B 0C 0B 0D 0B 0E
09 0C 06 0D 00 00 08 0C 09 0C 0B 00 09 0C 0B 00 0B 09 0C
0C 09 0C 0D 0C 05 00 00 0C 08 04 0E 00 08 04 0E 00 0B 08
04 0B 08 04 09 04 05 06 00 0C 01 05 06 00 01 05 06 06 06
05 06 06 05 06 01 05 00 00 00 05 09 0C 0B 00 0B 0D 0E 0B
0B 06 05 0E 0A 0D 0C 06 07 08 04 05 08 04 0D 00 08 04 0D
0B 0B 08 04 0D 07 08 08 08 05 06 00 07 05 06 0E 00 05 06
0E 0B 0B 05 06 0E 05 06 06 06 02 03 04 0C 09 0C 0B 00 09
0A 0B 0B 0B 0B 0A 0B 0A 0B 09 0C 00 05 06 0C 05 06 0E 00
05 06 0E 00 0B 05 07 08 05 06 00 07 05 04 06 0C 0B 0D 0E
00 01 05 06 06 06 05 06 06 05 06 0B 0D 00 04 0E 0C 0B 08
0E 0D 00 08 0E 00 0E 0E 0E 00 0E 08 0E 0B 00 00 00 07 07
<edit>


data begins at $34E44 in the BW439 binary (not sure where I got my value from before)

I am going to work on ripping each of the combinations (the crude way if need be) in order to create some kind of character design editor.
Quote from: KillerGorillabecause winuae is made of code and your amiga is made of stuff


MadMunky

Thanks Horace,

It seems like that table holds all the characters palettes but not the palettes for the larger monsters, summons/dragons etc..

MadMunky

This block of data does some strange stuff with the player portals...

ff ff ff ff ff ff ff fd ff ff ff fe ff ff ff e8
ff ff ff ac ff ff fe ec ff ff fb ff ff ff ff ff
ff ff df ff ff ff ef ff ff fe 8f ff ff fa cf ff
ff ee cf ff ff bf ff ff ff ff 7f f7 fe fd 7f d7
fc f5 7f 57 f8 d5 7d 57 08 d5 7d 57

Hungry Horace

hey MM - what do you mean by player portals?  :o


re: dragons/summons etc, there is no need for them to be coloured really, because their colour scheme is dependent on their level.

i guess it must be possible to change what colours a level 1 dragon uses, what colours a level 2 dragon uses etc etc but that would be about it. (i am sure i can look for this if you think it would be useful)

it is a little bit of a shame that single-space monsters such as beholders and summons cannot be "mixed in" with other characters / monsters, but it's not a biggie.
Quote from: KillerGorillabecause winuae is made of code and your amiga is made of stuff


MadMunky

Quote from: Hungry Horace on April 30, 2014, 08:39:38 PM
hey MM - what do you mean by player portals?  :o

It looks like these are pointer address's for what is drawn on the player view.

MadMunky

#118
Horace you might find this helpful as we are changing our version to read a palette file for the monsters now and also the body types so here is a list of all the different body types we have found so far


CHA_BODY[0] = {
leg: CHA_LEG_FEMALE_NAKED,
torso: CHA_TORSO_FEMALE_NAKED,
arm: CHA_ARM_MALE
};
CHA_BODY[1] = {
leg: CHA_LEG_SKELETON,
torso: CHA_TORSO_SKELETON,
arm: CHA_ARM_SKELETON
};
CHA_BODY[2] = {
leg: CHA_LEG_MALE,
torso: CHA_TORSO_MALE_NAKED,
arm: CHA_ARM_MALE
};
CHA_BODY[3] = {
leg: CHA_LEG_MALE,
torso: CHA_TORSO_MALE,
arm: CHA_ARM_MALE
};
CHA_BODY[4] = {
leg: CHA_LEG_FEMALE,
torso: CHA_TORSO_FEMALE,
arm: CHA_ARM_FEMALE
};
CHA_BODY[5] = {
leg: CHA_LEG_MALE,
torso: CHA_TORSO_MALE,
arm: CHA_ARM_MALE
};
CHA_BODY[6] = {
leg: CHA_LEG_FEMALE_PLATE,
torso: CHA_TORSO_FEMALE,
arm: CHA_ARM_FEMALE
};
CHA_BODY[7] = {
leg: CHA_LEG_MALE_CHAIN,
torso: CHA_TORSO_MALE_CHAIN,
arm: CHA_ARM_MALE
};
CHA_BODY[8] = {
leg: CHA_LEG_FEMALE_CHAIN,
torso: CHA_TORSO_FEMALE,
arm: CHA_ARM_FEMALE
};
CHA_BODY[9] = {
leg: CHA_LEG_MALE_CHAIN,
torso: CHA_TORSO_MALE_CHAIN,
arm: CHA_ARM_MALE
};
CHA_BODY[10] = {
leg: CHA_LEG_FEMALE_PLATE,
torso: CHA_TORSO_FEMALE,
arm: CHA_ARM_FEMALE
};
CHA_BODY[11] = {
leg: CHA_LEG_MALE,
torso: CHA_TORSO_MALE_CHAIN,
arm: CHA_ARM_MALE
};
CHA_BODY[12] = {
leg: CHA_LEG_DEMON,
torso: CHA_TORSO_MALE_NAKED,
arm: CHA_ARM_MALE
};
CHA_BODY[13] = {
leg: CHA_LEG_DEMON,
torso: CHA_TORSO_MALE_CHAIN,
arm: CHA_ARM_MALE
};

MadMunky

#119
We now have our version reading all the monster types and palettes :)

http://bloodwych.co.uk/bwhtml/bloodwych.html

More Features

*Adding Bloodwych Font
*Fixing Character Graphics and distances issues
*Monster logic, monsters able to move and open wooden doors (unlocked)
*All monsters in the tower now drawn expect large monsters

Thanks to Wishbone for this and Horace for finding the data, this really makes it better and more accurate for us.