Item Data

!!! You can get Moonscraper to work through an item?!?!? Uber!!! I’ve tried giving it directly to characters, but none of them could use it, not even monsters. You just made my day!

[QUOTE=Zaraktheus;625753]!!! You can get Moonscraper to work through an item?!?!? [QUOTE]

SNIFF
Yes you can, son. Yes you can.

Carnage works too.

To clarify the offset between item data in .psv and item data in RAM: I did a RAM search for strings of known item byte values and determined that the offset is “.psv value -2b0 = RAM”, the same as the offset for ability data. I tested it with 3002A19E 000A to make the mech equip MachineVulcan removeable and it worked, so this is confirmed.

Now to put some abilities on items where they don’t belong…hehehe.

you have no idea how fun it is…

FireCrystal, IceCrystal, BoltCrystal, the RINGs, MysticWear, ShadeRobe, and Accelerator do something different from other items in bytes 10 & 11. I’d guess it has to do with making the ability useable for no WP/JP cost, but I haven’t found a stable pattern yet, other than that the referenced Abilities are always Dodge[x] or Kyon’sSmile.

FireCrystal: says 160 (DodgeDrain); actually does 0BB (FireBarrier). Difference of: -A5
IceCrystal: says 161 (DodgeTouch); actually does 0BC (IceBarrier). Difference of: -A5
BoltCrystal: says 162 (DodgeGale); actually does 0BD (BoltBarrier). Difference: -A5
MysticWear: says 163 (DodgeSmash); actually does 0E2 or 1B5 (both MagicHeal). Difference of: -81 or +52
ShadeRobe: as MysticWear

I don’t remember offhand what Abilites the RINGs or Accelerator use. Anybody know?

Sorry, I don’t know why but I have the worst habit of confusing 8 and B. ;x

yeah, that’s why i use phonetic alphabet when i’m talking to myself while typing hexes…
alpha, bravo, charlie, delta, echo. either that or i use lowercase letters.

i’m going to put the RAM addresses in the next update of the item data, so no need for a gameshark guide. at least for item and ability data.

EW: Don’t worry about it! 8 and B look almost exactly the same–what could possibly be confusing about that? I guess the smart thing to do would be to use lower-case letters, like Vimes says…but I have to admit I almost never do that myself. Besides which, this motivated me to learn how to do a RAM search, which is a handy thing to know. So, thanks!

Vimes: RAM addresses listed in the dump would be NICE! That would save me lots of calculator time.

that’ll take a few hours… i’ll do it tonight, then post it tommorow. cool?

i got lazy and EW did it instead.

EW!
*huzzah!
EW!
*huzzah!
EW!
*huzzah!

I haven’t tested this yet, but byte 08 looks like an item-based Accuracy modifier to me. MissilePod, BigMissile, and SuperMissile all have 64, the highest value found in byte 08 (except the BehemothRifle’s D8, but I’ll get to that in a minute), which could explain why they “Never Miss”. Other values seem appropriate, too–most rifles have a bonus, the two “really special” swords (RaySword and LightSword) both have a large bonus of 32, etc. The only oddball is BehemothRifle’s D8. This is by far the highest value, but in my experience, the BehemothRifle couldn’t hit a skyscraper at three paces. For this reason, I suspect that if bit 80 is set, the game subtracts 256 from the value in byte 08 so that it actually becomes a penalty.

Also, a minor correction for the item_dump: in the description of byte 03:
80 = hp (only shows up in battle, and values from byte 02 are multiplied by 4)

It should read “…multiplied by 5”. Same goes for the similar line in the description of byte 05.
A lot of people seem to have the misconception that the RaySword gives 200 HP (which is, I suspect, where the erroneous x4 came from), but it actually gives 250.

will do. i wasn’t sure what the mulitplier was when i was cleaning it up, so i guessed.

No worries!

One more little thing from the item_dump:

08 – Accuracy modifier. If bit 7 (80) is set, then the value is subtracted from 256.
00-7F = positive values, where $00 equals 0 and $7F equals 127.
80-FF = negative values, where $80 equals -127 and $FF equals 0. [am i getting this right?]

Almost. First, I would recommend describing the process as “256 is subtracted from the value”, aka “value -256” rather than “the value is subtracted from 256”, aka “256 - value.” The latter would require the additional step of changing the result to a negative in order to give the proper result, while the former gives the correct result immediately. This goes for the defense bytes, too.

Second, 80h(128d) -256d = -128, not -127, and FFh(255d) -256d = -1, not 0.

i’ll fix that next.