| Subject: | Atari 8-bit City hex junk |
| Author: | Brent <bstocking--gmail.com> |
| Date: | 10-Dec-2004 00:53:40 |
For no particular reason I've been goofing around with the values in
the City with Atari++, my new favorite 8-bit emulator.
(http://www.math.tu-berlin.de/~thor/atari++/) Partially out of
curiosity to see just what some of the item properties actually were,
I guess. Anyway, some initial findings for anyone who might be
interested:
Weapons: Your weapon inventory starts in the neighborhood of 0x8d60.
The first part of an individual weapon record is the weapon name in
ATASCII, padded with 0x20's. The rest goes like this: what I call
byte A, B, C, a lot of dead space (six 0x00's), then bytes Y and Z.
Values for items are: (these are all hex, even if only one differs
from its decimal value)
A B C Y Z name
------------------------
1 1 3 0 0 Bare Hands
1 2 2 2 1 War Net
2 1 2 0 1 Stiletto
2 2 2 0 0 Whip
2 2 2 0 1 Dagger
2 3 2 1 1 Shortsword
2 4 2 2 1 Sword
3 2 2 1 1 Flail
3 3 2 2 1 Longsword
3 3 3 1 1 Battle Hammer
5 5 26 0 5 Magical Flamesword
0 0 2 1 1 Small Shield
0 0 2 2 1 Shield
1 1 2 3 1 Spiked Shield
0 0 2 4 1 Tower Shield
You may note the Flamesword has a 26 for C: this is hex 26 (00100110).
Magical items give +1 to A, +4 to C for weapons and change Y and Z in
apparently random ways, e.g. a Magical Battle Hammer is 4 3 7 0 1, a
Magical Stiletto is 3 1 6 0 0.
Magical items give +1 to Y and +2 to Z for shields, e.g. a Magical
Tower Shield is 0 0 2 5 3 and a Magical Spiked Shield is 2 1 6 4 3
(with the +1/+4 A/C too).
Cursed weapons seem to be uniformly 1 0 6 0 0 no matter what kind they are.
Based on these numbers, I assume A is damage rank, B is to-hit rank,
and C is probably a special-property flag depending on which bits are
on. My guesses:
C bit 1: 2-handed? (only battle hammer and bare hands are 1)
C bit 2: normal weapon (always is 1)
C bit 3: magical? (only magical/cursed items are 1)
C bit 4: unknown
C bit 5: unknown
C bit 6: unknown, but probably good.. flame-element type, perhaps?
(only Flamesword)
Y seems to be defense rank, Z perhaps a parry factor? It's hard to
tell at this point with the inconsistent modifiers magical weapons
get.
Armor hangs out at 0x8ad0 and is the name in ATASCII, followed by 11
bytes, which I name A, B, C7, Y, and Z. C7 is 7 consecutive bytes that
always seem to share the same value.
Y is not listed because it is usually a random value between 61 and 7f
(except Skin, which has ff) -- I figure this is the condition of the
armor. I don't have save states farther enough apart to check if this
deteriorates over time, but I suspect it does (except for Skin,
obviously).
Z is potentially a flagged byte, but the only variation I have seen is
that it is 01 for cursed items and 00 for all others.
A B C7 name
---------------------------
00 00 00 Skin
43 72 79 Padded Armor
01 00 00 Leather Armor
01 01 00 Studded Leather
02 01 00 Ring Mail
02 02 00 Scale Mail
03 03 00 Chain Mail
04 04 00 Banded Armor
05 05 00 Plate Mail
03 07 00 Crystal Plate
01 01 01 M! Leather Armor
02 01 01 M! Studded Leather
03 07 05 M! Crystal Plate
10 10 10 C! Leather Armor
12 11 11 C! Splint Mail
13 15 13 C! Elfin Chain
I tend to think that each byte corresponds to a damage type, i.e. A =
blunt defense, B = sharp defense, C7 = various magical type defenses
(power, air, etc?) but I'm not sure how to resolve the padded armor
values. It doesn't even really look like a two's compliment negative
over a subset of the bit range (and even if it was I wouldn't think
padded would be _worse_ than skin).
Anyway, this is just some stuff to play with if you're interested.
If nothing else it is possible to name a character "Bruce Lee", wait
to jump on a good SKL at the gate screen, then once you're in-game hop
in the monitor mode and edit your Bare Hands to give yourself Fists of
Fury. ;>
-brent
--
"It's embarrassing to the whole Steve organization!" --Tom Jackson
|