Ultimate Amiga

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 2 [3]   Go Down

Author Topic: Hacking: A Guide to the Data-Structure of Bloodwych  (Read 46484 times)

0 Members and 1 Guest are viewing this topic.

Hungry Horace

  • Amorphous Blue-Blob Man
  • Site Admin
  • A4000T
  • ******
  • Karma: 307
  • Offline Offline
  • Gender: Male
  • Posts: 3,364
  • Don't forget... Ameboid's need love too!
    • AUW
Re: Hacking: A Guide to the Data-Structure of Bloodwych
« Reply #30 on: June 28, 2015, 10:44:48 AM »

Hacking : Graphics: Large Monsters

NOTE: ALL FILE OFFSETS ARE USING THE AMIGA BINARY FROM SPS436
ALL MEMORY LOCATIONS ARE HAVING LOADED THE AMIGA BINARY FROM SPS436


The intention of this section is to provide an understanding of how the larger non-humanoid monsters (crabs, dragons etc) are coloured within the game. This is defined by four particular items of data:


-The “Grade” Offset Value
-The “Grade” Limit
- The Master Monster Palette
- The "Grade" Colour Selections

Definition of "Grade"

The documentation will refer to a "grade" of each monster type - this is a unique colour for each monster type,  which changes with each higher level of the monster. This differs from a level because several levels (beyond the lower/upper bounds) will not result in a change of colour.


The Grade Offset Value

Each type of Monster has a unique value defined within the game code, to ensure the colour grades start at a particular level, and acting as a lower bound. E.g. if this value is set to "4"  then the first colour-grade occurs at Level 4, the second at level 5, the third as level 6. All values lower (1-3) will use the same first colour grade as a level 4 monster.

Default values are as follows;

Summon ($64/$65): TBC
Beholder ($66): TBC
Behemoth ($67): TBC
Crab ($68): TBC
Large Dragon ($69): TBC
Small Dragon ($6A): TBC


The “Grade” Limit

The grade 'limit' value is also contained directly within the game code, along with a 'maximum grade number' (equal to the limit value, minus 1) which the code re-sets the grade to.

These number determine the number of grades for *all* large monster types, as this is non-monster specific. By default, the game has 8 colour grades available for each monster, and a "reset" value of 7 is used. (Since 'zero' is classed as one of the 8 grades)

These value may be lowered without any problem, but if raised, will require the  "Grade" Colour Selections (see below) to be relocated, and changes made to the code which locates that data.

The locations of the necessary instructions containing this single-byte value are given below, and the + value should be added if you wish to edit the single byte containing the value only.

Memory Location:
CMPI.B Instruction located at ($9EA0) + 3    (limit value)
File Location: [$9B1F]

Memory Location:
MOVEQ Instruction located at ($9EA6) + 1   (limit value minus 1)   
File Location: [$9B23]


The Master Monster Palettes:

The main monster palette is a list of colour-sets available to us. Each set is comprised of 4 palette numbers as bytes. There are 13 normally available, although the final value appears to be unused. For each monster type, 8 of these are selected. With each level raised for the monster, the next colour set is used. It should be noted that each monster has an ‘offset’ value however, so grading may not be started until a particular level is reached.

The colour-set “-1” is used to define an illusion, but is has to be address-seeked separately.


Regular Large Monsters

Memory Location:
LEA @ ($9EAE)  + 2
File Location: [$9B2C]

Illusions

Memory Location:
LEA @ ($9CE6) + 2     
File Location: [$9962]



Set         Original Values     Description
-01:        00 00 07 08  … Illusions / Blue-Black
 00:        00 03 04 0E … Grey
 01:        00 08 04 0E  … Light Blue
 02:        00 05 06 0E … Light Green
 03:        00 09 0A 0B … Brownish Red
 04:        00 09 0C 0B … Red
 05:        00 0A 0B 0D  … Light Orange
 06:        00 0B 0D 0E  … Yellowy White
 07:        00 0C 0B 0D …. Golden Orange
 08:        00 02 03 04  … Darker grey
 09:        00 08 04 0D   …. Light blue /yellow
 0A:        00 05 06 0D  … Green/Yellow
 0B:        00 07 08 04  … Darker blue/grey
 0C:        00 07 08 0D …  Blue/Yellow ?? 


((BOS New palette Location: $5C438))



The "Grade" Colour Selections

A set of 8 bytes is kept for each monster, which selects the colour-set to be used for each grade.


((BOS selections Location: $5C3E4))


Summon 
Colour selection File location: [$9A34]
Colour selection Memory location: ($9Db8) 
LEA @ … ($9CF2) + 2
File Location:  [$9970]

Beholder
Colour selection File location: [$9E28]
Colour selection memory location: ($A1AC)
LEA @ … ($A18C) + 2
File Location: [$9E0A

Behemoth   
Colour selection File location: [$A1AA]
Colour selection memory location: ($A52E)
LEA @ … ($A512) + 2
File Location: [$A190]

Crab 
Colour selection File location: [$9B9C]
Colour selection memory location: ($9F20)
LEA @ … ($9F02) + 2
File Location: [$9B80]

Dragon 
Colour selection File location: [$A022]
Colour selection memory location: ($A3A6)
LEA @ … ($A37C) + 2
File Location: [$9FFA]




Logged
Quote from: KillerGorilla
because winuae is made of code and your amiga is made of stuff

Pages: 1 2 [3]   Go Up
 

TinyPortal 2.2.2 © 2005-2022