Login |  Register |  FAQ
   
Post new topic Reply to topic  [ 7 posts ] 

Battletech: Crescent Hawks Revenge hack

 Post subject: Battletech: Crescent Hawks Revenge hack
PostPosted: Sat May 15, 2004 10:38 am 
Brood Brother
Brood Brother

Joined: Wed Apr 30, 2003 12:35 pm
Posts: 1259
90% done, attached to this post. Took me circe three days to do, but I have not figured out some stuff yet.

Most work is done, tho and you can use it to modify most of the units as you want to.

CHR download at The Underdogs

Keyboard command list on Sarna.net

DosBox - a DOS emulator for those with too fast computers

Oh, ande can somebody help me out on the things I am not sure about? THX.

_________________
The Fifth Horseman.
Quality over quantity.

Realm of the Horseman ? ?The mirror site.


Top
 Profile Send private message  
 
 Post subject: Battletech: Crescent Hawks Revenge hack
PostPosted: Sat May 15, 2004 10:41 am 
Brood Brother
Brood Brother

Joined: Wed Apr 30, 2003 12:35 pm
Posts: 1259
Oops... cant attach a file to the message.

Oh, well, then here it goes in plain text form:
Over the entire Internet there is only a single tutorial concerning savegame and mech edition for Crescent Hawks Revenge, and it does give only the briefest hint of into on the actual mech stats, telling people to "go and find it out themselves". Well, it's about time somebody not only did this but told all the folk out there how to do it.

Note: Altough I use the term "mech" here, the mentioned files and methods apply to the vehicles in the game as well. Yep, they are treated as mechs in all respect, including armor and hardpoints (that's critical slots for you, Battletech purists).

This file assumes that you treat the zero-byte just before the byte with the 'mech type signature as initial byte (00h).

Offsets listed apply to the mech 00 in mechtype.dat, which is Locust. To receive offsets for data of subsequent mechs, just add 96h x number of mech in the string. In mechtype.dat the mechs are listed in order determined by their ID numbers, while in savegame.dat it is determined by mechs present in each lance and the save slot that was used. Please remember that they are listed as hexadecimal, not decimal values, and therefore offset 20 means 32nd byte, offset 95 - 150th byte etc.

All Mech names are stored in the file revenge.exe as plain text data, beginning on the offset 03B056. (BTW: List of pilot names begins just after). You can change them, but it would be better to never exceed the length of the original name. If the desired name is shorter then the one replaced, then replace the obsolete letters with spaces.

The format presented here is used in the file savegame.dat with the mechs in your saved games as well as in mechtype.dat, where the game has all its mech data stored. Each data string contains EXACTLY 150 bytes (96 h), no more no less.

If you want to quickly find a Mech in the mechdata.dat, you can easily do it by applying the following data to the search field of your hex editor: 00[Mech ID][Mech speed walking][optionally Mech speed running] -this is practically a signature unique to each type of a Battlemech.

00 - Looks like this byte is Friend-or-Foe identification, where 00 means "enemy" and 01-"friendly" This is only my guess, though. Another guess might be that it is actually indicator of 'Mech functionality status (00-in repair, 01-functional).

01 - Mech ID number (explained later)
02 - Speed (Walking)
03 - Number of Jump Jets

04-0B - Current structure (as per Max Structure, below)
0C-16 - Current armor (as per Max Armor, below)

Max Structure
17 - Head
18 - Left Arm
19 - Left Torso
1A - Center Torso
1B - Right Torso
1C - Right Arm
1D - Left Leg
1E - Right Leg

Max Armor
1F - Head
20 - Left Arm
21 - Left Torso
22 - Center Torso
23 - Right Torso
24 - Right Arm
25 - Left Leg
26 - Right Leg
27 - Left Torso rear
28 - Center Torso rear
29 - Right Torso rear

2A-37 Data not deciphered! Seems that this part of the string is comprised mostly of zeros and changes along with the weapon outfit (and if it does not change this part of the data string does not change either). I don't know what it really does nor do I have any real clues on it.

Ammo
Ammo data are recorded on two bytes each. The first byte contains the amount of ammo remaining, whilst the second is always empty.

36-53 Weapon ammo (in rounds), as follows:
38-39 Autocannon/2 ammo
3A-3B Autocannon/5 ammo
3C-3D Autocannon/10 ammo
3E-3F LB 10-X Autocannon ammo
40-41 Gauss Rifle ammo
42-43 Autocannon/20 ammo
44-45 Machine Gun ammo
46-47 LRM-5 ammo
48-49 LRM-10 ammo
4A-4B LRM-15 ammo
4C-4D LRM-20 ammo
4E-4F SRM-2 ammo
50-51 SRM-4 ammo
52-53 SRM-6 ammo

54 - Number of Heat Sinks that are built into the engine. Normally in BT it is mech speed*tonnage/25, rounded down, unless the Mech has less heat sinks then this number. In CHR, however, this value does also never exceed 10.

Note: There is NO place where Mech's total number of Heat Sinks is recorded. It is a sum of the HS built into the engine and those mounted on the hardpoints.

Hardpoints
Each byte represents a single hardpoint. In case if some weapon takes up more then one hardpoint, appropriate number of subsequent slots should be left empty. You should also leave one free hardpoint for each of the Mech's Jump Jets.

55 - Head hardpoint
56-5D - Left Arm hardpoints
5E-69 - Left Torso hardpoints
6A-6B - Center Torso hardpoints
6C-77 - Right Torso hardpoints
78-7F - Right Arm hardpoints
80-81 - Left Leg hardpoints
82-83 - Right Leg hardpoints

84 - Mech tonnage

85 - Zero in all known cases.
86-87 - These bytes are "clean" in case of mechs stored in Mechtype.dat as well as those that have not seen combat. They might mean any of the following:
Some of Engine/Gyro/Sensor status
Warrior experience (slim possibility, cause Warrior stats are recorded elsewhere in the file)
Enemy Kills
Something else? (But what!!!??? Pretty much everything else is covered!!!)

88 - Sprite ID - determines the set of graphics used by the game to draw the Mech, in other words this makes Crusader look like Crusader and not a mobile HQ or a Locust. The game often uses same set of graphics for more then one Mech. List of sprite ID's is on the end of document. Please note that altough the ID's of the Mech and Vehicle sprites might be the same, but there seem to be separate lists for them, so nothing like Mech with vehicle graphics or vice versa does really happen.

89-8A - In mechtype.dat these bytes always have a value of 00 04. In savegame.dat their value can vary, but seems to never exceed 00 04. Don't really know, maybe this represents the unit state or something.

Extras
These bytes determine various upgrades installed, for example CASE, BAP, Double Heat Sinks etc. Most of them seems to work as if they were on/off switches, with value of 00 meaning not present and 01 - installed.
8B - Don't know.
8C - Most definitely it sets Listen-Kill missiles.
8D - This one sets the Beagle Active Probe.
8E - Unidentified.
8F - Also unidentified.
90 - This byte is responsible for Double Heat Sinks.
91 - Trigger for the CASE.

MechWarrior
92 - This determines the MechWarrior's name. List of Mechwarrior names is at the end of document.
93 - Experience. As follows:
 00 - Green
 01 - Regular
 02 - Veteran
 03 - Elite

94 - This value determines the MechWarriors allegiance. Can assume following values:
 00-Crescent Hawks
 01-Kell Hounds
 02-Fed. Suns Cav. Sword of Light

95 - For me it looks like identification of unit type or its movement mode. Always depends on unit type:
 00 - Mech
 01 - Hovercraft
 02 - Tank
 03 - Infantry
 04 - APC
 05 - Ammo Carrier
 06 - Mobile HQ

Hardpoint content list (*'s mean that number of subsequent hardpoints equal to number of *'s must be left empty - or at least it should be...)

 00 Empty Slot
 01 Small Laser
 02 Small Pulse Laser (Not used anywhere in game, but weapon name listing in the revenge.exe indicates its presence here)
 03 Medium Laser
 04 Medium Pulse Laser
 05 Large Laser *
 06 Large Pulse Laser *
 07 ER Large Laser *
 08 PPC **
 09 ERPPC **
 0A AC/2
 0B AC/5 ***
 0C AC/10 ******
 0D LB 10-X*****
 0E Gauss Rifle ***
 0F AC/20 *********
 10 Machine Gun
 11 LRM 5
 12 LRM 10 **
 13 LRM 15 ***
 14 LRM 20 ****
 15 SRM 2
 16 SRM 4
 17 SRM 6 *
 18 Heat Sink

List of Mech and vechicle ID's (the IS Mechs with + and * after the name are upgraded to Level 2 tech):
 00 LOCUST  
 01 WASP
 02 STINGER
 03 COMMANDO
 04 JAVELIN
 05 SPIDER  
 06 URBANMECH  
 07 VALKYRIE
 08 FIRESTARTER
 09 JENNER  
 0A OSTSCOUT
 0B PANTHER
 0C ASSASSIN
 0D CICADA
 0E CLINT
 0F HERMES II
 10 VULCAN  
 11 WHITWORTH  
 12 BLACKJACK  
 13 HATCHETMAN
 14 PHOENIX HAWK  
 15 VINDICATOR
 16 CENTURION  
 17 ENFORCER
 18 HUNCHBACK  
 19 TREBUCHET  
 1A DERVISH
 1B GRIFFIN
 1C SHADOW HAWK
 1D SCORPION
 1E WOLVERINE
 1F DRAGON
 20 OSTROC
 21 OSTOL
 22 QUICKDRAW
 23 RIFLEMAN
 24 CATAPULT
 25 CRUSADER
 26 JAGERMECH
 27 THUNDER BOLT
 28 ARCHER
 29 GRASSHOPPER
 2A WARHAMMER
 2B MARAUDER
 2C ORION
 2D AWESOME
 2E CHARGER
 2F GOLIATH
 30 VICTOR
 31 ZEUS
 32 BATTLEMASTER
 33 STALKER
 34 CYCLOPS
 35 BANSHEE
 36 ATLAS
 37 ROMMEL TANK
 38 PEGASUS
 39 DRILLSON
 3A MOBILE HQ
 3B APC
 3C AMMO CARRIER
 3D GALLEON
 3E SKULKER
 3F INFANTRY
 40 JUMP INFANTRY
 41 ELEMENTALS
 42 PUMA
 43 BLACKHAWK
 44 MAD CAT
 45 LOCUST+
 46 LOCUST*
 47 WASP+
 48 WASP*
 49 COMMANDO+
 4A COMMANDO*
 4B BLACKJACK+
 4C PHOENIX HAWK+
 4D PHOENIX HAWK*
 4E GRIFFIN+
 4F GRIFFIN*
 50 RIFLEMAN+
 51 RIFLEMAN*
 52 WARHAMMER+
 53 WARHAMMER*
 54 MARAUDER+
 55 JENNER+
 56 DRAGON+
 57 SHADOW HAWK+
 58 BATTLEMASTER+

List of MechWarrior names:
 00 Youngblood
 01 Pearce
 02 Graham
 03 Anderson
 04 Reilly
 05 Casey
 06 Corrigan
 07 Hall
 08 Hunter
 09 Barth
 0A Tatum
 0B Ledesma
 0C Bellamy
 0D Latham
 0E Louie
 0F Christman
 10 Townsend
 11 Stewart
 12 Bouy
 13 Hill
 14 Accardi
 15 Briggs
 16 Lebling
 17 Galley
 18 Blank
 19 Meretzky
 1A Moriarty
 1B O'Neill
 1C Berlyn
 1D Kirsch
 1E Berez
 1F Dornbrook
 20 Montague
 21 Sgt. Krall
 22 Youngblood
 23 Anderson
 24 Pearce
 25 Romero
 26 Carpenter
 27 Cronenberg
 28 DePalma
 29 Dante
 2A Raimi
 2B Hooper
 2C Cunningham
 2D Chiun
 2E Toranaga
 2F Yamashita
 30 Ichi
 31 Hosaka
 32 Higa
 33 Sanjuro
 34 Takagi
 35 Jackson
 36 Lewis
 37 Wylie
 38 Morton
 39 Vandenburg
 3A Trainee
 3B Jason
 3C Rex
 3D Kurt
 3E "Grease"

Sprite ID's:
Mechs:
00 COMMANDO, FIRESTARTER, SPIDER, STINGER, VALKYRIE, WASP
10 CICADA, JAVELIN, JENNER, LOCUST, OSTSCOUT
20 BLACKJACK, HATCHETMAN, HERMES II, WHITWORTH  
30 ARCHER, CRUSADER, GRASSHOPPER, JAGERMECH, ORION, THUNDER BOLT, WARHAMMER
40 DRAGON, OSTOL, OSTROC, QUICKDRAW, RIFLEMAN, URBANMECH  
50 CENTURION, ENFORCER, HUNCHBACK, PHOENIX HAWK, TREBUCHET, VINDICATOR
60 DERVISH, GRIFFIN, SCORPION, SHADOW HAWK, WOLVERINE
70 PUMA
80 BLACKHAWK
90 MAD CAT
A0 ASSASSIN, CATAPULT, CLINT, MARAUDER, PANTHER, STALKER, VULCAN  
B0 ATLAS, AWESOME, BANSHEE, BATTLEMASTER, CHARGER, CYCLOPS, GOLIATH, VICTOR, ZEUS
Vehicles:
50  MOBILE HQ
70  ROMMEL TANK
80  DRILLSON,  PEGASUS
90  GALLEON,  SKULKER
B0  APC
D0  AMMO CARRIER
Infantry:
D6  ELEMENTALS
D8  INFANTRY,  JUMP INFANTRY

List of advanced Inner Sphere Mechs and their equipment:
Key:
LRM/SRM - Long Range Missile / Short Range Missile
LPL/MPL/SPL - Large Pulse Laser / Medium Pulse Laser / Small Pulse Laser
ERLL - Extended Range Large Laser
ML/SL/LL - Medium Laser / Small Laser / Large Laser
PPC - Particle Projection Cannon
ERPPC - Extended Range Particle Projection Cannon
MG - Machine Gun
AC - Autocannon
LB - LB-X "Shotgun" Autocannon
Gauss - Gauss Rifle
DHS - Double Heat Sinks
BAP - Beagle Active Probe
() - Cellular Ammunition Storage Equipment

Crescent Hawk's Revenge Advanced Inner Sphere Mechs
---------------------------------------------------
20 Tons: Locust* : Undocumented [Guess: 2LRM5, same as 3050 LCT-3D]
        Locust+ : Undocumented [Guess: ML 4SL]
        Wasp* : 2SL MPL
        Wasp+ : MPL SRM2 () [Same as 3050 WSP-3M]
25 Tons: Commando* : 2SL SRM6 BAP
        Commando+ : 2ML SRM6 ()
35 Tons: Jenner+ : 4ML SRM4 () [Same as 3050 JR7-K]
45 Tons: Blackjack+ : 2ERLL 2SRM4 ()
        Phoenix Hawk* : 2MPL 2ERLL MG BAP ()
        Phoenix Hawk+ : 2MPL 2ERLL DHS [Same as 3050 PXH-3K]
55 Tons: Griffin* : SL LPL LRM20 DHS
        Griffin+ : SL ERPPC LRM20 () DHS [Same as 3050 GRF-3M]
        Shadow Hawk+ : 3ML LB10X LRM20 SRM2 () DHS
60 Tons: Dragon+ : 3ML ERPPC LRM10 () DHS
        Rifleman* : 2ML 2LL 2ERPPC DHS [Same as 3050 RFL-5D]
        Rifleman+ : 2ML 2LL 2AC10 () DHS
70 Tons: Warhammer* : 2MPL 2ERPPC SRM4 () DHS
        Warhammer+ : 2MPL 2ERPPC SRM6 DHS
75 Tons: Marauder+ : 2MPL 2ERPPC Gauss () DHS [Same as 3050 MAD-5S]
85 Tons: Battlemaster+ : 6ML ERPPC BAP SRM6()
The Locust* and Locust+ only appear in the Pacifica Training Ground Simulator that you get access to once you've completed the game.


Credits:
All number-crunching done by The Fifth Horseman (the_fifth_horseman@interia.pl).
Mech list entries 0A-0F by The Fifth Horseman.
Kudos to the author of the original article for list of Mech ID's and stats on advanced Inner Sphere Mechs.


Updated the instruction with Warrior data and sprite ID's

_________________
The Fifth Horseman.
Quality over quantity.

Realm of the Horseman ? ?The mirror site.


Top
 Profile Send private message  
 
 Post subject: Battletech: Crescent Hawks Revenge hack
PostPosted: Tue May 18, 2004 8:08 am 
Brood Brother
Brood Brother

Joined: Wed Apr 30, 2003 12:35 pm
Posts: 1259
It's me again.

For one simple program I wrote the script for editing mechtype.dat, but that prog is not in English.
I'll have to write a script for MSG tool, but that one is more complicated then the prev one. Also the script for editing the savegames will be a tough customer...

Some updates to the tutorial, after a little experimenting:

-Offset 01 identifies the name that the game uses for a Mech. It can be freely changed choosing one of the ID's from the Mech name list.

-Offset 8B does absolutely NOTHING.

-Offset 8E sets Arrow IV Target Acquisition Gear.

-Offset 8F enables Improved Accuracy.

_________________
The Fifth Horseman.
Quality over quantity.

Realm of the Horseman ? ?The mirror site.


Top
 Profile Send private message  
 
 Post subject: Battletech: Crescent Hawks Revenge hack
PostPosted: Wed May 19, 2004 3:43 pm 
Brood Brother
Brood Brother

Joined: Wed Apr 30, 2003 12:35 pm
Posts: 1259
Working on a plugin for Modify SaveGame program. Fortunately, it has an option to export a script to an exe file which does not need anything else to run, but this does not help in writing the script in any way.

_________________
The Fifth Horseman.
Quality over quantity.

Realm of the Horseman ? ?The mirror site.


Top
 Profile Send private message  
 
 Post subject: Battletech: Crescent Hawks Revenge hack
PostPosted: Thu May 20, 2004 8:37 am 
Brood Brother
Brood Brother

Joined: Wed Apr 30, 2003 12:35 pm
Posts: 1259
The script for MSG is progressing. Hopefully the main part (editing base stats in savegame.dat) will be done by tomorrow and I'll be able to release that version.

_________________
The Fifth Horseman.
Quality over quantity.

Realm of the Horseman ? ?The mirror site.


Top
 Profile Send private message  
 
 Post subject: Battletech: Crescent Hawks Revenge hack
PostPosted: Fri May 21, 2004 10:26 am 
Brood Brother
Brood Brother

Joined: Wed Apr 30, 2003 12:35 pm
Posts: 1259
As said before, this version can edit the base unit data:
Download site 1
Download site 2

_________________
The Fifth Horseman.
Quality over quantity.

Realm of the Horseman ? ?The mirror site.


Top
 Profile Send private message  
 
 Post subject: Battletech: Crescent Hawks Revenge hack
PostPosted: Mon May 24, 2004 1:41 pm 
Brood Brother
Brood Brother

Joined: Wed Apr 30, 2003 12:35 pm
Posts: 1259
DONE!!!

The new version is capable of editing savegames, plus is free of the annoying floating-base-offset bug present previously.

I think there is little I can do to improve the editor, apart from streamlining the script a bit ( and I know I can)

_________________
The Fifth Horseman.
Quality over quantity.

Realm of the Horseman ? ?The mirror site.


Top
 Profile Send private message  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 


Who is online

Users browsing this forum: No registered users and 40 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  


Powered by phpBB ® Forum Software © phpBB Group
CoDFaction Style by Daniel St. Jules of Gamexe.net