JA2 Game Hexing¶
Hex-Cheats for Objects – Instructions¶
Hex-Cheats for Objects – Instructions v1.0-beta
To edit an object using CHEATFIND, first start JA2, then switch back to the desktop with ALT+TAB and launch CHEATFIND. From the list of active files (you'll be surprised what junk is sitting in RAM…), select JA2.EXE.
After completing this preparation, a click on "Edit Memory" takes you directly into RAM.
By double-clicking one of the memory fields shown in the lower box, you can open it for editing in the upper window.
Double-click the line you want to edit, press Return to confirm, or Esc to cancel.
Caution: If you click too far to the right in the window, the editor switches into the ASCII area. Every keystroke there—including Return or Escape—is treated as input and will alter the data.
Also note: there is no UNDO command, since the program writes directly into memory. Mistakes will cause JA2 to crash mercilessly—so always save before editing!
Examples:
- Wrong ammunition type (after all, what assault rifle can fire shotgun shells?).
- Too many items in a slot.
- A value outside the programmed limits (usually above 100, or above 25 for action points).
…and so on.
I therefore recommend editing only the primary hand slot of a mercenary, as this appears to be much more stable when it comes to handling items.
Now to the specific values:
The first mercenary offset is 0077C540, which corresponds to the slot for the item in the mercenary's primary hand.
All further mercenary offsets are obtained by adding 918 (hex) to the previous mercenary's offset. For example:
0077C540
0077CE58
0077D770
0077E088 usw.
The arrangement of the slots is as follows:
First come the two hands, then the three large inventory pockets (from top to bottom), followed by the middle pockets, then the front pockets, then the equipment worn on the body, and finally a large block containing the mercenary's attributes.
Listing the exact offsets for each slot seems unnecessary, since you can simply compare with the object list to see what belongs in which pocket (for example, you're unlikely to find a LAW rocket in the helmet slot!). By converting health values, you can also locate them easily.
Editing attributes is mostly pointless—except perhaps for current health—since the data is stored elsewhere. Any change (for example, displaying a skill) will cause the values to revert back to the real ones.
The format of a slot is as follows:
For example, the entry for an H&K G3A3 looks like this:
1D 00 01 00 64 02 14 00 65 00 64 00 00 00 00 00 D0 00 F1 00 D1 00 36 01 64 64 64 64
The following positions are relevant:
1D 00 01 00 64 02 14 00 65 00 64 00 00 00 00 00 D0 00 F1 00 D1 00 36 01 64 64 64 64
1D 00 – Object type (here G3A3)
01 – Quantity of objects
64 – Condition of the object (64 hex = 100 dec = 100% OK)
02 – Ammo type (00 = SMP, 01 = HP, 02 = AP, 04 = Shotgun)
14 – Number of rounds in the magazine (14 hex = 20 dec = 20 rounds, i.e. full magazine)
65 – Ammo ID (65 = 7.62 NATO AP magazine with 20 rounds)
64 – Jam chance (64 hex = 100% = flawless function)
D0 00 – Modification type 1 (scope)
F1 00 – Modification type 2 (laser sight)
D1 00 – Modification type 3 (bipod)
36 01 – Modification type 4 (barrel extension)
64 – Condition of modification 1
64 – Condition of modification 2
64 – Condition of modification 3
64 – Condition of modification 4
For two First Aid Kits, the entry looks a bit different:
C9 00 02 00 32 64
This means:
C9 00 – Object type
02 – Quantity
32 – Condition of object 1 (here 50%)
64 – Condition of object 2 (here 100%)
In this way, up to six objects can be placed into a single slot, even though normally fewer would fit. These objects can also be modified! However, only one modification can be applied, and it will affect all objects in the slot (since only identical items can be stacked in one pocket).
An example would be explosives, which can accept either a timed or remote detonator as a modification.
The entry for your mercenary's current health can be found in the large block of data after the appearance settings (BROWN HEAD, RED VEST, …), just like the time units.
Locate the value (if there are multiple possibilities, simply move around and check again), enter it under "Search Value" → "Add" in the profile, and freeze the value at 25.
Note: CHEATFIND displays values as decimal numbers, not in hex code!
Voilà! With this, a single mercenary can conquer all of Arulco in no time flat—or even less.
Regarding vehicles:
I've already experimented with vehicles, but modifications here always and inevitably lead to errors, most likely because vehicles are too tightly bound to the quests.
You can edit vehicles and even race across the terrain with the Humvee from the very beginning, but later in the plot Jagged Alliance repeatedly crashes, since the altered values apparently break the quest logic.
So: Sorry, but it doesn't work.
Enjoy nonetheless!
Hex-Cheats for Objects – List¶
Hex-Cheats for Objects – List v1.0-beta
Since the save-games are encrypted, you must use CHEATFIND to edit the game state directly in memory.
| Hex Code | Object (English) | Hex Code | Object (English) |
|---|---|---|---|
| 00F6 | UV Goggles | 6100 | 7.62 WP AP Magazine (30) |
| 0100 | Glock 17 | 6200 | 7.62 WP HP Magazine (10) |
| 0101 | Porn Magazine | 6300 | 7.62 WP HP Magazine (30) |
| 0200 | Glock 18 | 6400 | 7.62 NATO AP Magazine (5) |
| 0201 | Video Camera | 6500 | 7.62 NATO AP Magazine (20) |
| 0300 | Beretta 92F | 6600 | 7.62 NATO HP Magazine (5) |
| 0301 | Robot Remote | 6700 | 7.62 NATO HP Magazine (20) |
| 0400 | Beretta 93R | 6800 | 4.7mm Caseless Magazine |
| 0401 | Monster Claw | 6900 | 5.7mm AP Magazine |
| 0500 | .38 Special | 6A00 | 5.7mm HP Magazine |
| 0501 | Monster Meat | 6B00 | 12 Gauge Shells |
| 0600 | Barracuda | 6C00 | 12 Gauge Buckshot |
| 0601 | Monster Organ | 6D00 | CAWS Magazine |
| 0700 | Desert Eagle | 6E00 | CAWS Buckshot Magazine |
| 0701 | Locksmith Kit | 6F00 | Mini-Rockets AP |
| 0800 | Colt .45 | 7000 | Mini-Rockets HE |
| 0801 | Platinum Watch | 7100 | Mini-Rockets HEAP |
| 0900 | H&K MP5K | 7200 | Tranquilizer Dart |
| 0901 | Golf Club | 8300 | Vacuum Grenade |
| 0A00 | Ingram MAC-10 | 8400 | Tear Gas Grenade |
| 0A01 | Walkman | 8500 | Mustard Gas Grenade |
| 0B00 | Thompson M1A1 | 8600 | Mini Hand Grenade |
| 0B01 | Television | 8700 | Standard Hand Grenade |
| 0C00 | Colt Commando | 8800 | Jar with Cyclonite Crystals |
| 0D00 | H&K MP53 | 8900 | TNT |
| 0D01 | Cigars | 8A00 | HMX |
| 0E00 | AKSU-74 | 8B00 | C1 Explosive |
| 0F00 | FN-P90 | 8C00 | Mortar Shell |
| 0F01 | Small Key | 8D00 | Landmine |
| 1000 | Type-85 | 8E00 | C4 Explosive |
| 1001 | Prison Key | 8F00 | Flare Mine |
| 1100 | SKS Carbine | 9000 | Flare Alarm Mine |
| 1101 | Simple Key | 9100 | Plastic Explosive |
| 1200 | Dragunov | 9200 | Glow Stick |
| 1201 | Dull Key | 9300 | 40mm Fragmentation Grenade |
| 1300 | M24 | 9400 | 40mm Vacuum Grenade |
| 1301 | Shiny Key | 9500 | 40mm Stun Grenade |
| 1400 | Steyr AUG | 9600 | 40mm Smoke Grenade |
| 1401 | Padlock Key | 9700 | Smoke Grenade |
| 1500 | H&K G41 | A100 | Flak Jacket |
| 1501 | Electronic Key | A200 | Flak Jacket + Comp.18 |
| 1600 | Ruger Mini-14 | A300 | Coated Flak Jacket |
| 1601 | Code Card | A400 | Kevlar Vest |
| 1700 | C7 / M16A2 | A500 | Kevlar Vest + Comp.18 |
| 1800 | FA-MAS | A600 | Coated Kevlar Vest |
| 1900 | AK-74 | A700 | Spectra Vest |
| 1A00 | AKM | A800 | Spectra Vest + Comp.18 |
| 1B00 | M14 | A900 | Coated Spectra Vest |
| 1C00 | FN-FAL | AA00 | Kevlar Leggings |
| 1D00 | H&K G3A3 | AB00 | Kevlar Leggings + Comp.18 |
| 1E00 | H&K G11 | AC00 | Coated Kevlar Leggings |
| 1F00 | Remington 870 | AD00 | Spectra Leggings |
| 2000 | SPAS-15 | AE00 | Spectra Leggings + Comp.18 |
| 2100 | H&K CAWS | AF00 | Coated Spectra Leggings |
| 2200 | FN Minimi | B000 | Steel Helmet |
| 2300 | RPK-74 | B100 | Kevlar Helmet |
| 2400 | H&K 21 | B200 | Kevlar Helmet + Comp.18 |
| 2500 | Combat Knife | B300 | Coated Kevlar Helmet |