Xu Yuan wrote: ↑Mon Jul 18, 2011 10:36 pm
While watching NakaTeleeli on youtube, one of the best .hack// LPer's I've ever seen, I started to get nostalgic for the old games. But after thinking on it for a while I couldn't just play a normal playthrough this time. I wanted to try something new. When I was younger I used to fantasize about playing as any other class but Twin Blade in the original games and now that I'm older and a fair amount smarter I set about making my dream a reality.
After a few hours of scrounging through the data I found what I had been looking for all of these years. And to my grand surprise it was held in one, single, byte. To put that in perspective in an absolute sea of data, classes are controlled by 00-05 with Twin Blade normally being 00. Each character has their own Stat table in the data, as one would guess and the last byte of their separate tables is their class. I was overjoyed when I found this. The way the game handles classes and weapons is strange though
.. to say the least.
As this is a PS2 game there is a lot of dynamic loading that you can check on while in the middle of testing. Say you have Amateur Blades equipped as a Twin Blade, while when you change your class to 02 (Heavy Blade) your equipped weapon will automatically change to the corresponding weapon type, in this case Amateur Blade turns into Adventurer. In addition your Armor Class will automatically change when you change your class, as you may have guessed. My greatest surprise however was seeing that Kite can support using every type of weapon, so nothing ever really looks off or funny, the only thing though is that when using the more Physical Classes, Kite will call out the wrong names for the attacks and likely do the animation of one of his Twin Blade attacks. Also the Level Up data is also the same, so even if you are a WaveMaster you will have a natural 99 Evade and 99 Accuracy by the end game.
Now I also happened upon a "Character Identifier" byte, which does gives you their corresponding level ups and equipment, but you can't change your equipment unless they're in the party and their skills are imprinted over yours. It is a real shame, but alas.
I wish I could have found the model pointer, but unlike G.U. I do not think that the original games take kindly to a change of leader.
So for those that want to enjoy an old game in a new way, There are five saves prepared, one for each different class (excluding Twin Blade, obviously)
Also here are a few notes if anyone wants to try and make sense of my pretty pathetic note taking (It's not up to Master ZED's talent, that's for sure.)
One set is for ARMAX, another for CodeBreakers, and the third is for an emulator.
It would be great to see these old games get some life again. Hopefully this foray will be just the beginning.
1 -
CodeBreaker Save
2 -
Action Replay Max Save
3 -
PS2 Memory Card
http://imageshack.us/photo/my-images/143/axee.png
http://img143.imageshack.us/img143/1875/axee.png
http://imageshack.us/photo/my-images/834/bladedm.png
http://img834.imageshack.us/img834/1640/bladedm.png
http://imageshack.us/photo/my-images/269/spearu.png
http://img269.imageshack.us/img269/1095/spearu.png
http://imageshack.us/photo/my-images/534/staffls.png
http://img534.imageshack.us/img534/7618/staffls.png
http://imageshack.us/photo/my-images/692/swordcaq.png
http://img692.imageshack.us/img692/5076/swordcaq.png
Code: Select all
20A3F668 - Level of Field - (will not change in hex)
2072F756 - Amount of Keywords in Word List
20A2FA24 - Second Item in the Weapons Category.
20A2FA20 - Kite's Reserve Weapon.
20A4F628 - The name and model of Kite's weapon.
20A46F30 - Kite's Class! (With weapon and armor changes et al!!) 00 00 00 00 00 DC 41 02
20A46E66 - Kite's Level
218F85D0 - Kite's Current HP
218F85D2 - Kite's Current SP
218F85D4 - Kite's Max HP Bar?
218F85D6 - Kite's Max SP Bar?
20A3FA03 - Amount of Healing Potions
20A3FA0C - What is in the item slot?
Four Bytes -
XXXX - Weapon XX
YY - Weapon Identification.
ZZ - Amount
00- Twin Blade
01- Blades
02- HeavyBlades
03- Heavy Axes
04- Spears
05- Staves
06- Helms
07- Armor
08- Gloves
09- Shoes
0A-FF- Erased Item
To find Phantom
02 00 00 XX-Held Amount in Hex
---------------------
Four Bytes -
XXXX - Item XX
0A - If the item is present, it will have this byte, any other number makes the item vanish.- This is used Special case items like Sprite Ocarina and Fortune Wire, if this byte is changed to a 0A they will turn into Health Drinks.
YY - Item Amount
*0A Item Classification*
00 - Health Drink
01 - Health Potion
02 - Healing Elixir
03 - Antidote
04 - Restorative
05 - Resurrect
06 - Warrior Blood
07 - Knight Blood
08 - Hunter Blood
09 - Hermit Blood
0A - Beast Blood
0B - Wizard Blood
0C - Well Water
0D - Pure Water
0E - Burning Oil
0F - Holy Sap
10 - Sports Drink
11 - Cooked Bile
12 - Mage's Soul
13 - Artisan's Soul
14 - Emperor's Soul
15 - Noble Wine
16 - Risky Coffee
17 - Recovery Drink
18 - Raining Rocks (Sidenote - Curiously enough when these are in the Item category they will target teammates, interesting how one size fits all.)
19 - Raging Earth
1A - Stone Storm
1B - Gaia's Spell
1C - Meteor Strike
1D - Cosmic Truth
1E - Ice Storm
1F - Ice Floe
20 - Ice Strike
21 - Cygnus
22 - Absolute Zero
23 - Permafrost
24 - Fire Tempest
25 - Meteor Swarm
26 - Flame Blast
27 - Fireball Storm
28 - Hellstorm
29 - Inferno Strike
2A - Green Gale
2B - Gale Breath
2C - Leafblight
2D - Wood Sprite
2E - Jungle Rage
2F - Forest of Fear
30 - Lightning Bolt
31 - Plasma Storm
32 - Ion Strike
33 - Raging Plasma
34 - Thunderbolt
35 - Plasma Gale
36 - Nightblight
37 - Dark Night
38 - Dark Traitor
39 - Chaos Spell
3A - Nightfear
3B - Nightshade
3C - The Death
3D - The Hanged Man
3E - The Lovers
3F - The Moon
40 - The Fool
41 - The Devil
42 - Warrior's Bane
43 - Knight's Bane
44 - Hunter's Bane
45 - Hermit's Bane
46 - Beast's Bane
47 - Wizard's Bane
48 - Stonebane
49 - Waterbane
4A - Firebane
4B - Treebane
4C - Lightbane
4D - Nightbane
4E - Health Charm
4F - Soul Charm
50 - Speed Charm
51 - Light Cross
52 - Hale Cross
53 - Divine Cross
54 - Summon Earth
55 - Summon Water
56 - Summon Fire
57 - Summon Wood
58 - Summon Thunder
59 - Summon Night
5A - Stonecall
5B - Aquacall
5C - Infernocall
5D - Greencall
5E - Thundercall
5F - Nightcall
60 - Power Book (Sidenote: The books do not raise stats when used in the Items slot.)
61 - Tolerance Book
62 - Insight Book
63 - Spiritual Book
64 - Graceful Book
65 - Swift Book
66 - Feng Shui
67 - Water Magic
68 - Fire Magic
69 - Wood Magic
6A - Thunder Magic
6B - Black Magic
6C - Secret: Might
6D - Secret: Rigid
6E - Secret: Awaken
6F - Secret: Reason
70 - Secret: Divine
71 - Secret: Thief
72 - Earthlore
73 - Sealore
74 - Firelore
75 - Forestlore
76 - Stormlore
77 - Darklore
78 - Piros' Diary
79 - BL Yokohama
7A - Book of Ideals
7B - Book of Ideas
7C - Secret: Sage
7D - Secret: Dreams
7E - Golden Grunty
7F - Silver Grunty
80 - Energy Sutras
81 - Spirit Sutras
82-9B - (Blank)
9C - Virus Core A
9D - Virus Core B
9E - Virus Core C
9F - Virus Core D
A0 - Virus Core E
A1 - Virus Core F
A2 - Virus Core G
A3 - Virus Core H
A4 - Virus Core I
A5 - Virus Core J
A6 - Virus Core K
A7 - Virus Core L
A8 - Virus Core M
A9 - Virus Core N
AA - Virus Core O
AB - Virus Core P
AC - Virus Core Q
AD - Virus Core R
AE - Virus Core S
AF - Virus Core T
B0 - Virus Core U
B1 - Virus Core V
B2 - Virus Core W
B3 - Virus Core X
B4 - Virus Core Y
B5 - Virus Core Z
B6 - Golden Egg
B7 - Grunt Mints
B8 - Twilight Onion
B9 - Snaky Cactus
BA - Oh No Melon
BB - Cordyceps
BC - White Cherry
BD - Root Vegetable
BE - La Pumpkin
BF - Mushroom
C0 - Mandragora
C1 - Piney Apple
C2 - Immature Egg
C3 - Bear Cat Egg
C4 - Invisible Egg
C5 - Bloody Egg
C6 - Epitaph 00
C7 - Epitaph 01
C8 - Epitaph 02
C9 - Epitaph 03
CA - Epitaph 04
CB - Epitaph ?
CC - Harald's Note
CD - Grunty Flute
CE - Imp's Pin
CF - Imp's Praises
D0 - Imp's Cross
D1 - Imp's Crown
D2 - Remedy
D3 - Custom Remedy
D4 - True Remedy
D5 - First Remedy
D6 - Love Letter
D7 - The Twilight
D8 - Book of Law
D9 - Book of Iron
DA - Spark Blade
DB - Paper cloak
DC - Mad Opener
DD - Basin Shield
DE - Love Archery
DF - Plastic Sword
E0 - Harald's Note 2
E1 - Absolute Book
E2 - Segment 1
E3 - Red Sword
E4 - Blue Boots
E5 - Yellow Cap
E6-117 - Image 01-50 (Desktop Backgrounds)
118-149 - BGM@01-50
14A-1AC - Movie 01-99
1AD-1B4 - Ryu BookI-VIII
1B5 - Marine Spear
1B6 - Demonic Sword
1B7 - Tonosama Sword
1B8 - Moon Knives
1B9 - Segment 2
1BA - Segment 3
1BC - M:Wavemaster
1BD - M:Heavy Axeman
1BE - M:Long Arm
1BF-FFFF - (Blank) or Gibberish
*0D Item Classification*
00 - Fortune Wire
01 - Sprite Ocarina
02 - Fairy's Orb
03 - Nothing
04-1A - "Cannot be used." (Does nothing when used)
1A-FF - (Blank)
*Weapons Classification*
00 - Amateur Blades
01 - Steel Blades
02 - Phantom
Class Data
Code: Select all
Kite's Second Class Change Byte?! - 20A46E64
(Not only does this allow you to effortlessly use skills of other members, it also gives you their level
up data! Now unfortunately the problem is that your equipment menu will still believe your Kite and though
your skills may at first glance look like those of the class changed one, it is only the names imprinted
on top of your actual skills.
00 - Kite
01 - Mia
02 - Orca
03 - Marlo
04 - Sanjuro
05 - Nuke
06 - Balmung
07 - Moonstone
08 - Piros
09 - Wiseman
0A - Elk
0B - Natsume
0C - Rachel
0D - Gardenia
0E - Terajima Ryoko
0F - BlackRose
10 - Mistral
11 - Helba
12 -
Party Member's Class, Equipment,
00- Twin Blade
01- Blademaster
02- Heavy Blade
03- Heavy Axeman
04- Long Arm
05- Wavemaster
Kite - 00
Mia - 01
Orca - 02
Marlo - 03
Sanjuro - 04
Nuke - 05
Balmung - 06
Moonstone - 07
Piros - 08
Wiseman - 09
Elk - 0A
Natsume - 0B
Rachel 0C
Gardenia - 0D
Terajima Ryoko - 0E
BlackRose - 0F
Mistral - 10
Helba - 11
Incorrect File Start - Kite
(1400 1400 1400 1400)*3 (0200)*2 (0000 0000)*6 (DC)*5 (41)*4 (0400)*1 (00 00)*7 (40 78 38 00 20 76 38)*8
00 06 00 00 00 01 00 05 00 00 00 00 00 9A 02 00 00 00 00 3E 43 00 00 34 42 F0 77 63 00 96 00 19 00 28 00
28 00 4B 00 4B 00 19 00 19 00 32 00 32 00 00 00 19 00 00 00 00 00 00 00 00 00 36 00 5A 00 5A 00 82 00 73
00 1D 01 19 00 37 00 32 00 78 00 28 00 41 00 28 00 28 00 28 00 28 00 68 00 F0 00 32 00 5A 00 28 00 D2 00
00 00 1E 00 00 00 46 00 28 00 28 00 28 00 28 00 28 00 28 00 32 00 96 01
1 - Class - Long Arm - Kite
2 - Weapon
3 - Equipment
4 - Something Crucial! Do Not Change!
5 - Running Speed
6 - Unused?
7 - Unused?
8 - ??????
9
00 00 D0 F9 A3 00 00 76 38 00 07 00 00 00 00 00 (02 00)*1 (6C 02)*2 00 00 23 52 98 00 00 00 20 43 00 00 34
42 00 00 00 00 51 00 10 00 14 00 12 00 2E 00 2E 00 12 00 12 00 20 00 20 00 02 00 02 00 02 00 02 00 02 00
02 00 0A 00 0A 00 64 00 3A 00 4C 00 56 00 12 00 3A 00 20 00 48 00 2A 00 2A 00 2A 00 2A 00 2A 00 2A 00 0A
00 0A 00 50 00 28 00 1E 00 28 00 00 00 28 00 00 00
Level Up Data for the various members?
1- Kite's Level Up Data
2- Kite's Exp
BlackRose's Actual Data?
00 00 00 90 79 38 00 E0 77 38 00 06 00 00 00 0F 00 01 00 B0 01 00 00 E8 03 00 00 00 00 25 43 00 00 0C 42
30 7D 63 00 46 00 0D 00 11 00 0F 00 20 00 1E 00 0D 00 0D 00 1A 00 1A 00 00 00 00 00 0C 00 00 00 00 00 00
00 01 00 32 00 2F 00 5F 00 2A 00 0E 01 0D 00 0D 00 1A 00 1A 00 28 00 28 00 34 00 28 00 28 00 28 00 01 00
D2 00 1E 00 50 00 0A 00 F0 00 00 00 00 00 00 00 00 00 28 00 28 00 28 00 28 00 28 00 28 00 00 00 A0 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 28 00 28 00 28 00 28
00 55 00 00 00 00 00 DC 41 02
0F - Skill Designation
Kite's Actual Data
00 00 00 D0 F9 A3 00 00 76 38 00 07 00 00 00 00 00 01 00 84 03 00 00 23 52 98 00 00 00 20 43 00 00 34 42
00 00 00 00 3F 00 0D 00 0F 00 0E 00 21 00 21 00 0E 00 0E 00 1A 00 1A 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 5F 00 36 00 3F 00 49 00 0E 00 36 00 1A 00 42 00 28 00 28 00 28 00 28 00 28 00 28 00 00 00
00 00 50 00 28 00 1E 00 28 00 00 00 28 00 00 00 28 00 28 00 28 00 28 00 28 00 28 00 28 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 00 14 00 14 00 14
00 02 00 00 00 00 00 FF 41 04
1 -Graphical data? Any attempt at swapping, changing, or nulling ends with the character failing to load
when another area is accessed or "File=None" to appear on screen.
2 - Character Identifier
3 - Level
4 - Exp
5 - Money
6 - Porting in Height?
7 - Conversation Pointers?
8 - Max HP and SP
9 - Uncertain, but they seem to control 5F 00 and 36 00, increasing their amounts, something to do with
leveling maybe? Or perhaps regen effects?
A - That which is controlled by 9.
B - Logical Exclusive Or (42) 66.
C - A lot dealing with stats. I'm not exactly certain how stats are calculated yet.
(Classification) Kite
(00 00 00 D0 F9 A3 00 00 76 38 00)*1 07 00 00 00 (00 00)*2 (01 00)*3 (84 03)*4 00 00 (23 52 98 00)*5 00 00
(20 43)*6 00 00 (34 42)*B (00 00 00 00)*7 (3F 00 0D 00)*8 (0F 00 0E 00)*9 (21 00 21 00) 0E 00 0E 00 1A 00
1A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (5F 00 36)*A 00 3F 00 49 00 0E 00 36 00 1A 00 42 00
(28 00 28 00 28 00 28 00 28 00 28 00 00 00 00 00 50 00 28 00 1E 00 28 00 00 00 28 00 00 00 28 00 28 00 28
00 28 00 28 00 28 00 28)*C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 14 00 14 00 14 00 14 00 02 00 00 00 00 00 FF 41 04
BlackRose
(00 00 00 90 79 38 00 E0 77 38 00) 06 00 00 00 (0F 00)*2 (01 00)*3 (B0 01)*4 00 00 (E8 03 00 00)*5 00 00
(25 43)*6 00 00 0C 42 (30 7D 63 00)*7 (46 00 0D 00)*8 (11 00 0F 00) (20 00 1E 00) 0D 00 0D 00 1A 00 1A 00
00 00 00 00 0C 00 00 00 00 00 00 00 01 00 32 00 2F 00 (5F 00 2A)*A 00 0E 01 0D 00 0D 00 (1A 00 1A 00 28 00
28 00 34 00 28 00 28 00 28 00 01 00 D2 00 1E 00 50 00 0A 00 F0 00 00 00 00 00 00 00 00 00 28 00 28 00 28
00 28 00 28 00 28 00 00 00 A0)*C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 28 00 28 00 28 00 28 00 55 00 00 00 00 00 DC 41 02
---------------------------------------------------------------------------------------------------------
Creating Custom Monsters!
Phew, it's been a long time without an update, but I hit a bit of a standstill, events are very... hefty and draining, especially when you're dealing with dozens of camera commands which take up most of the event... so I put that on hiatus for a while.
I've searched, and searched, and searched for models, but every little lead was a dead end. So I turned my attention to finding Monster Data, the official last piece until a mod could be worked on... and failed for the longest time! Despite the many searches and leads I seem to have found, nothing came of it.
Then while browsing through the SLUS data, I noticed something called EnemyTbl, I literally slapped myself in the head when I went there and it turned out to be the vaunted Monster Data I had been searching for so long. As I suspected enemies work very much like PC's in terms of battle data, without equipment, of course. But I discovered a few other things which I was very glad to come across. Namely the amount of hits it would take to get a Protect Break and the Data Drain Items. I expected the Virus Cores to be hardcoded into the game, that "this Type yields This Virus Core!" But I was pleasantly surprised to see that wasn't the case. Each monster just has a Virus Core as their first attainable Data Drain Item, so you could even make enemies that don't have a chance to drop Virus Cores, or choose to remove Virus Cores entirely. Of course that would be a lot of data searching to accomplish that.
Here's the info. I managed to find on the Monster Data.
Code: Select all
Monster Data
Bytes 0-3 - Name Pointer
Bytes 4-7 - ???
Bytes 8-11 - NPC Type Designation
Bytes 12-13 - Enemy Designation
Bytes 14-15 - Level
Bytes 16-23 - ???
Bytes 24-27 - Height of Life Bar
Bytes 28-33 - ???
Bytes 34-35 - HP
Bytes 36-37 - SP
Bytes 38-39 - Attack
Bytes 40-41 - Defense
Bytes 42-43 - Accuracy
Bytes 44-45 - Evade
Bytes 46-47 - M. Attack
Bytes 48-49 - M. Defense
Bytes 50-51 - M. Accuracy
Bytes 52-53 - M. Evade
Bytes 54-55 - Earth Element
Bytes 56-57 - Water Element
Bytes 58-59 - Fire Element
Bytes 60-61 - Wood Element
Bytes 62-63 - Light Element
Bytes 64-65 - Dark Element
Bytes 66-81 - ???
Bytes 82-85 - Data Drain Item 1
Bytes 86-89 - Data Drain Item 2
Bytes 90-93 - Data Drain Item 3
Bytes 94-117 - ???
Bytes 118-121 - Protect Break Hit Requirement?
Bytes 122-161 - ???
Bytes 162-165 - Monster Type Designation?
Bytes 166-169 - ???
Bytes 170-205 - Monster Behaviors
Bytes 206-331 - ???
Bytes 332-335 - Enemy Skill 1
Bytes 336-339 - Enemy Skill 2
Bytes 340-448 - ???
Also as theorized the Phases are right after the normal monsters, but they seem to run on a completely different specialization, unfortunately due to this you can't load a Phase into a normal enemy, as far as I can tell.
Phase Data is also, surprisingly enough, or unsurprisingly, much smaller than the normal monster files, they only have their basic stats and pointers in there. There are surprisingly 48 Phase enemies in all which may, or may not include Cubia, I couldn't quite tell. The majority of Phase dealings are in Phase specific files, so altering them beyond their basic stats is pretty much out of the question.
If it's not already known, all the Phases are officially level 100, which is likely why Skeith hurts so much, I've learned that there is a slight damage increase and slight damage decrease when fighting monsters higher level than you, this isn't really noticeable unless you're fighting one of the Phases though, nothing else has that high of levels on you.
Here are a couple of pictures to demonstrate monster control...
http://imageshack.us/photo/my-images/81 ... aindro.jpg
http://img812.imageshack.us/img812/2242 ... aindro.jpg
Uploaded with
ImageShack.us
http://imageshack.us/photo/my-images/41 ... gainis.jpg
http://img41.imageshack.us/img41/3082/l ... gainis.jpg
So I was recently going through the code of .hack//Infection for a larger modding project I have planned. I really wanted to change how many monster types could be loaded in a field or a dungeon to give some more variety (by default its set to three!) After a bit of data scrounging I found where the values were being written, where they were being written from, and how to change them. It turned out it was a single byte.
I always had thought that the .hack// games were lacking some real model capacity behind the scenes, but it turns out that is far from the case. It was a choice, not a limitation, to set monster types to three for each field/dungeon floor. I've been playing around with it a bit, but you can really see a difference if you change this 03 to 18 (24 monster types). Fields suddenly become alive with a rich array of foes, instead of just three kinds. This also has the effect of making things more difficult as well, as high level monster types you weren't expecting could show up and surprise you.
If you are using PCSX2 it is as simple as going to 0042E8B4 - and changing 03 to any number you want up to 18.
If you want to make the change to an ISO it's at 014648B4.
I hope someone finds it useful as a way to give their next //Infection playthrough a bit greater variety.