Hacking .hack//Infection (How to make Skeith spawn anywhere)

Discuss the original .hack video games: Vol. 1 and 2

Moderator: Moderators

Xu Yuan
Posts: 1203
Joined: Tue Feb 28, 2006 1:32 am
Location: Harald in the R:2!

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Xu Yuan »

You may be onto something... it's something I never considered, but in effect I can't see why PCs and Enemies would be too terribly different, especially considering it''s what Charm basically does.

As mentioned previously Events are based around a Chain. If that Chain is broken the event will play out as if it had no condition or the game will consider it's chain unreachable and the event will never progress.

You can test this quite easily. If you go to 20318810 and change the 01000400 to 01000100 the after Skeith events will begin if you go back to the Desktop (or were on the Desktop). Don't worry too much about event length. There's a pointer table which is easy to locate through the SLUS to give it any variable length.
User avatar
Slip
Posts: 28
Joined: Thu Jul 23, 2015 11:09 am

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Slip »

Xu Yuan wrote:You may be onto something... it's something I never considered, but in effect I can't see why PCs and Enemies would be too terribly different, especially considering it''s what Charm basically does.

As mentioned previously Events are based around a Chain. If that Chain is broken the event will play out as if it had no condition or the game will consider it's chain unreachable and the event will never progress.

You can test this quite easily. If you go to 20318810 and change the 01000400 to 01000100 the after Skeith events will begin if you go back to the Desktop (or were on the Desktop). Don't worry too much about event length. There's a pointer table which is easy to locate through the SLUS to give it any variable length.
I'll look more into the Chain of Events and get a definite list of events later (but after a long painful process of decoding the events).

So, the chain events, are you saying the chain events are checked each time you switch game modes? Like every single event regardless of their position in the timeline?
Xu Yuan
Posts: 1203
Joined: Tue Feb 28, 2006 1:32 am
Location: Harald in the R:2!

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Xu Yuan »

Correct. The game seems to run a continual check through all events (possibly even subevents, but I've never tested it) and sees if it is at the proper link in the Chain to start it, after that it checks the conditions in which the event is to start. It's a very unorthodox way to go about it. Most games would use Event Flags but dot hack seems to use a literal Event Chain.

I've been redoing the Orca Tutorial in Town event and I noticed that you have the 2800 Camera Command at only 12 bytes, but as far as I can make out it appears to be 18 bytes. Though what you have decoded of that portion is very impressive. Visuals are not my forte either and the terms you use are much easier understood than anything I could say about it.
User avatar
Slip
Posts: 28
Joined: Thu Jul 23, 2015 11:09 am

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Slip »

Xu Yuan wrote:Correct. The game seems to run a continual check through all events (possibly even subevents, but I've never tested it) and sees if it is at the proper link in the Chain to start it, after that it checks the conditions in which the event is to start. It's a very unorthodox way to go about it. Most games would use Event Flags but dot hack seems to use a literal Event Chain.

I've been redoing the Orca Tutorial in Town event and I noticed that you have the 2800 Camera Command at only 12 bytes, but as far as I can make out it appears to be 18 bytes. Though what you have decoded of that portion is very impressive. Visuals are not my forte either and the terms you use are much easier understood than anything I could say about it.
Honestly, it does make sense considering the game's structure. It allows multiple events to run side by side with no interference.
And, to be fair about the Orca Tutorial, most of it is speculation. That was my first go around viewing the data there.

I'll take a Fair amount of time decoding that event in particular, as it seems to have the most complex event structure in the game (as it has several commands built in JUST for it.) I made mistakes in my decoding of it, I'm certain, so if you found something that doesn't match up with my data, it could be either one of us until we go through and sweep it byte by byte xD (which takes an incredibly large amount of patience.)

Once everything is definite, I plan on making an Event Decoder (software) to make things 100x easier and faster, so I want to make sure everything I get is Correct before starting.
Xu Yuan
Posts: 1203
Joined: Tue Feb 28, 2006 1:32 am
Location: Harald in the R:2!

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Xu Yuan »

And that is admirable. Sometimes people go at programming with too much fervor and not enough data, failing to realize that they don't Actually have the right information down in the first place. Utility of Time for Ocarina of Time was a bit like this. The fellow who was working on it went beyond his means of understanding and later verstions were extraordinarily unstable.

I should have that event decoded sometime tomorrow (or at least a version of it... with a lot of "??" and a lot of "2800 Camera Commands" )It does slightly annoy me. I did have events finished all the way up until Expansive Haunted Sea of Sand at one point, but when that laptop died I lost those notes.

Here is the town parts of Orca's Tutorial, probably not much you didn't have but every bit helps, I suppose.

Code: Select all


Orca's Tutorial in Town - 3180E0 - eventTblM102


0100 - Game where event takes place
0100 - Second chain in the main line.
04050000 - Root Town is where this must take place (possibly another 0000 in there may be server)
FEFF070000 - ??
FEFF0300000000 - ?? (Maybe the server where the event should start?)
0B000200020003000500 - Spawning Orca
100002000200 - ??
59000E00 - Add Bursting Passed Over Aqua Field to the menu covertly.
5B000E00 - Puts a checkmark next to Bursting Passed OVer Aqua Field
00000000 - ??
4100 - ?Handles Sound Loading?
FDFF0600 - ??
FEFF0300040001000000 - ??
1200 - ?Set GUI mode?
480002000200000000000 - Command to make Kite and Orca focus on one another.
2800 (Camera Command 18 Bytes?)
2A00 - 
2900 - Delta Camera? (18 Bytes?)
05005000 - Amount of time it takes for Kite to Warp in
3C0000000300 - Actor to Warp-in. (Kite in this case)
05007800 - No idea why it is called again, changing it does not change the time alloted to warp in.
3000 Focused Camera (14 Bytes)
06000000 - "Hey. You made it!"
4800 - (10 Bytes, makes Actors focus on one another)
2A0002000200 - ??
2900 (Camera Command 18 Bytes)
06000100 - "Uh..."
06000200 - "Hey, it's me. Orca..."
06000300 - "Whoa! You look so different..."
06000400 - "Hey, in this game I'm Orca!"
06000500 - "What...?"
06000600 - "No, you look great."
2800 (Camera Command 18 Bytes)
06000700 - "Anyway, take this."
50000200 - Orca's Member Address
06000800 - "Member Address is the Flash Mail..."
06000900 - "With Flash Mail, you can exchange..."
06000A00 - "It's mostly used by newbies..."
06000B00 - "Try it out by inviting me..."
2800 (Camera Command 18 Bytes)
96004B00 - Tutorial - Adding Orca to Party
06001500 - "See? My name appears under your screen."
06001600 - "By the way, Flash Mail is only available..."
06001700 - "Oh, and you can't contact people when..."
06001800 - "People do have a life, you know..."
06001900 - "In other words, you can't always count on the same..."
06001A00 - "So, try to get as many member addresses..."
06001B00 - "Well, how you play is up to you..."
06001C00 - "- you really don't benefit if you go solo."
05000A00 - Slight pause? (Actually the definition of Yield seems fitting)
06001D00 - "OK. Well, why don't we head off?"
91000A008000 - Blackout Transition Screen
05000A00 - Pause
4700000000800000 - Looks to tell Kite where to turn (Actor defined)
4700020000700000 - Looks to tell Orca where to turn
2800 (Camera Command 18 Bytes)
05001E00 - Pause
96004E00 - Tutorial - Chaos Gate
76000E00 - Field that Event Warps Kite to.
6400010000000E00 - Warp to Bursting Passed Over Aqua Field - Designated as such.
User avatar
Slip
Posts: 28
Joined: Thu Jul 23, 2015 11:09 am

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Slip »

Xu Yuan wrote:And that is admirable. Sometimes people go at programming with too much fervor and not enough data, failing to realize that they don't Actually have the right information down in the first place. Utility of Time for Ocarina of Time was a bit like this. The fellow who was working on it went beyond his means of understanding and later verstions were extraordinarily unstable.

I should have that event decoded sometime tomorrow (or at least a version of it... with a lot of "??" and a lot of "2800 Camera Commands" )It does slightly annoy me. I did have events finished all the way up until Expansive Haunted Sea of Sand at one point, but when that laptop died I lost those notes.

Here is the town parts of Orca's Tutorial, probably not much you didn't have but every bit helps, I suppose.

Code: Select all


Orca's Tutorial in Town - 3180E0 - eventTblM102


0100 - Game where event takes place
0100 - Second chain in the main line.
04050000 - Root Town is where this must take place (possibly another 0000 in there may be server)
FEFF070000 - ??
FEFF0300000000 - ?? (Maybe the server where the event should start?)
0B000200020003000500 - Spawning Orca
100002000200 - ??
59000E00 - Add Bursting Passed Over Aqua Field to the menu covertly.
5B000E00 - Puts a checkmark next to Bursting Passed OVer Aqua Field
00000000 - ??
4100 - ?Handles Sound Loading?
FDFF0600 - ??
FEFF0300040001000000 - ??
1200 - ?Set GUI mode?
480002000200000000000 - Command to make Kite and Orca focus on one another.
2800 (Camera Command 18 Bytes?)
2A00 - 
2900 - Delta Camera? (18 Bytes?)
05005000 - Amount of time it takes for Kite to Warp in
3C0000000300 - Actor to Warp-in. (Kite in this case)
05007800 - No idea why it is called again, changing it does not change the time alloted to warp in.
3000 Focused Camera (14 Bytes)
06000000 - "Hey. You made it!"
4800 - (10 Bytes, makes Actors focus on one another)
2A0002000200 - ??
2900 (Camera Command 18 Bytes)
06000100 - "Uh..."
06000200 - "Hey, it's me. Orca..."
06000300 - "Whoa! You look so different..."
06000400 - "Hey, in this game I'm Orca!"
06000500 - "What...?"
06000600 - "No, you look great."
2800 (Camera Command 18 Bytes)
06000700 - "Anyway, take this."
50000200 - Orca's Member Address
06000800 - "Member Address is the Flash Mail..."
06000900 - "With Flash Mail, you can exchange..."
06000A00 - "It's mostly used by newbies..."
06000B00 - "Try it out by inviting me..."
2800 (Camera Command 18 Bytes)
96004B00 - Tutorial - Adding Orca to Party
06001500 - "See? My name appears under your screen."
06001600 - "By the way, Flash Mail is only available..."
06001700 - "Oh, and you can't contact people when..."
06001800 - "People do have a life, you know..."
06001900 - "In other words, you can't always count on the same..."
06001A00 - "So, try to get as many member addresses..."
06001B00 - "Well, how you play is up to you..."
06001C00 - "- you really don't benefit if you go solo."
05000A00 - Slight pause? (Actually the definition of Yield seems fitting)
06001D00 - "OK. Well, why don't we head off?"
91000A008000 - Blackout Transition Screen
05000A00 - Pause
4700000000800000 - Looks to tell Kite where to turn (Actor defined)
4700020000700000 - Looks to tell Orca where to turn
2800 (Camera Command 18 Bytes)
05001E00 - Pause
96004E00 - Tutorial - Chaos Gate
76000E00 - Field that Event Warps Kite to.
6400010000000E00 - Warp to Bursting Passed Over Aqua Field - Designated as such.
Thank you for the information, and I'm glad someone understands the mistakes programmers can make when they rush things.
Since my plans for today were cancelled, I guess I have all day to sit and stare at this event until it makes sense xD so I'll spend a large amount of time doing so. The 28 Camera Command may have something that makes a tid bit of since though. In the other commands I found for Cameras, there were 4 bytes at the end which controlled the speed in which to pan the camera.

Do you know anything about how the game finds out which sound file to use when playing dialogue? I can find the dialogue text bytes but I have no idea where to look for the sound.

Edit: Testing shows that 28 00 has 14 Bytes, the 05 00 01 00 is actually a Yield. Probably something to allow the game to think. 28 00 Sets the camera to: X-Rotation (2 bytes), Z-Rotation (2 bytes) , Y-Rotation (2 bytes), X-Position (2 Bytes), Z-Position (2 Bytes), Y-Position (2 Bytes). In testing, you can prove this, if you set the Z-Position to 00 00, it will start the camera at the center of the Z position in the town, which is at the bridge.
Xu Yuan
Posts: 1203
Joined: Tue Feb 28, 2006 1:32 am
Location: Harald in the R:2!

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Xu Yuan »

Ah hah! I was sick to death of camera commands so I guess i ignored the 05 00 01 00 at the end of them in search of the next actual instruction, good catch!

Sound files when playing Dialogue... I know that the text command is obviously both a text check with the accompanying sound file, but as for how it knows what part of the file to call, I've never seen anything like it unfortunately.

Well, let's get started on Orca's Tutorial - Field then. I remember a lot of this off hand. There's some pretty unique stuff in here like placing Magic Portals and deciding what is inside of them, normally only used in data bug or boss events, but never used on the Field, so some neat dealings.

I'll post this now but edit it as I finish the tutorial sections.
User avatar
Slip
Posts: 28
Joined: Thu Jul 23, 2015 11:09 am

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Slip »

Xu Yuan wrote:Ah hah! I was sick to death of camera commands so I guess i ignored the 05 00 01 00 at the end of them in search of the next actual instruction, good catch!

Sound files when playing Dialogue... I know that the text command is obviously both a text check with the accompanying sound file, but as for how it knows what part of the file to call, I've never seen anything like it unfortunately.

Well, let's get started on Orca's Tutorial - Field then. I remember a lot of this off hand. There's some pretty unique stuff in here like placing Magic Portals and deciding what is inside of them, normally only used in data bug or boss events, but never used on the Field, so some neat dealings.

I'll post this now but edit it as I finish the tutorial sections.
Camera Events really aren't fun to mess with.

Code: Select all

ΔCamera 		[29 00] (θX F4 FF) (θZ 48 02) (θY 48 02) (X 00 00) (Z 18 02) (Y 4D 00) (τY 14 00) (τX 14 00)
So much time wasted on these events it isn't even funny.

My data is coming along slowly, but I'm getting there. I'll try to catch up with you to Bursting Passed Over Aqua Field as soon as I can, I'm a bit behind because I'm spending a lot of time testing each thing to Double/Triple-Check, because there are some commands that seem.... inconsistent (and usually end up telling me I labelled them wrongly in the first place.)

I'm glad you already went and swept through quite a bit of event data, your labels allow me to stay on track without losing my position.

And alright, I'll do the same with my findings.
By the way, there are 2 events during the root town, one is called during Preloading the root town, and one is called after it is done preloading it. The preloader loads the objects (such as Orca) and gives the keywords (according to your notes), the second event deals mainly with Camera angles and dialogue.

Edit: Completed.

Code: Select all

-- Orca Tutorial - Root Town

Start: 0x203180E0
* = Speculation
|> = Global Event executions, they do not appear in the event data, and are standalone.

Some Camera / Object Positioning Information:
	θ = Angle, Angles are measured in this sense:
		00 00 = 0 degrees
		FF 7F = 179.999999 degrees
		00 80 = 180 degrees
		FF FF = -0.0000001 degrees.
		
		00 80 = 32768 = 180 degrees or 1π radian
		Conversion Method: 182.04- = 1 Degree. 1 = 0.000030517578125π Radians.
		

Preload Event - 0x203180E0
01 00 (01 00 04 00 05 00 00 00 FE FF 07 00 00 00 FE FF 03 00 00 00 00 00 00 00) - Set Event Chain
0B 00 (02 00 02 00) (03 00) (05 00) - Spawn Object ( Object , Orientation , Behavior )
10 00 (02 00 02 00) - *Preload Object ( Object )
59 00 (0E 00) - Give Keywords "Bursting Passed Over Aqua Field" in Word List
5B 00 (0E 00) - Set Quest Flag for "Bursting Passed Over Aqua Field"
00 00 (00 00) - End Event

Town Event - 0x20318116
41 00 (FD FF 06 00 00 00 FE FF 03 00 04 00 01 00 00 00) - *Set Conditions for execution

* 0x20318128 *
12 00 - ???
48 00 (02 00 02 00) (00 00 00 00) - Turn Object
28 00 (θX FE FF) (θZ 3E 02) (θY 66 00) (X FD FF) (Z 19 02) (Y 44 00) - Set Camera
05 00 01 00 - Yield 1 Frame. (Buffer)
2A 00 (02 00 02 00) - ??? Deals with Orca in some way.
29 00 (θX 00 00) (θZ 30 02) (θY 46 00) (X 08 00) (Z 09 02) (Y: 4A 00) (τY 78 00) (τX 78 00) - ΔCamera
05 00 (50 00) - Yield 1 1/3 seconds (80 Frames).
3C 00 (00 00 03 00) - *Warp In
05 00 (78 00) - Yield 2 seconds (120 Frames).
30 00 (Object: 02 00 02 00) (Y-Offset: 0A 00) (θY 00 04) (θX 00 88) (Dist: 28 00) - Focus Camera

* 0x2031817A *
06 00 (00 00) - Play Dialogue "Hey. You made it!"
48 00 (00 00) (02 00 02 00) (40 00) - Rotate Object (Turn Kite)
2A 00 (02 00 02 00) - ??? (Deals with Orca somehow.)
29 00 (θX F4 FF) (θZ 48 02) (θY 48 02) (X 00 00) (Z 18 02) (Y 4D 00) (τY 14 00) (τX 14 00) - ΔCamera
05 00 28 00 - Yield 2/3 Seconds (40 Frames)

* 0x203181A4 *
06 00 (01 00) - Play Dialogue "Uh..."
06 00 (02 00) - Play Dialogue "Hey, it's me. Orca, the Blademaster."
06 00 (03 00) - Play Dialogue "Whoa! You look so different from the real Yasuhiko. Nothing like the real you."
06 00 (04 00) - Play Dialogue "Hey, in this game I'm Orca! Regardless of what I am in reality. I'm pretty well known here."
06 00 (05 00) - Play Dialogue "What...?"
06 00 (06 00) - Play Dialogue "No, you look great. :-)"
28 00 (θX DF FF) (θZ 7B 02) (θY 47 00) (X E3 FF) (Z 49 02) (Y 48 00) - Set Camera


* 0x203181CA *
06 00 (07 00) - Play Dialogue "Anyway, take this."
50 00 (02 00) - Give Member Address: Orca
06 00 (08 00) - Play Dialogue "#YMember Address#W is the Flash Mail address you can only access in \"The World.\""
06 00 (09 00) - Play Dialogue "With Flash Mail, you can exchange messages with others in real time as long as you are in \"The World.\""
06 00 (0A 00) - Play Dialogue "It's mostly used by newbies to contact other players to form a party."
06 00 (0B 00) - Play Dialogue "Try it out by inviting me to join your party."
28 00 (θX F5 FF) (θZ 4A 02) (θY 48 00) (X 01 00) (Z 16 02) (Y 44 00) - Set Camera
0E 00 (FF FF 00 00) - ???
96 00 (4B 00) - Switch Subscene to Tutorial Menu: Select Party.
|> 96 00 (4C 00) - Select Add.
|> 96 00 (4D 00) - Select Orca.
|> 96 00 (4E 00) - Add Orca to your party.

* 0x203181FA *
12 00 - ???
06 00 (15 00) - Play Dialogue "See? My name appears under your screen."
06 00 (16 00) - Play Dialogue "By the way, Flash mail is only available when you're in a town."
06 00 (17 00) - Play Dialogue "Oh, and you can't contact people when they're not logged into \"The World.\""
06 00 (18 00) - Play Dialogue "People do have a life, you know. We're not online 24/7!"
06 00 (19 00) - Play Dialogue "In other words, you can't always count on the same members to form a party."
06 00 (1A 00) - Play Dialogue "So, try to get as many member addresses as you can. You'll have more fun that way."
06 00 (1B 00) - Play Dialogue "Well, how you play is up to you, but since EXP and stuff isn't divided among party members - "
06 00 (1C 00) - Play Dialogue "- you really don't benefit if you go solo. ;-)"
05 00 (0A 00) - Yield 1/6 Seconds.
06 00 (1D 00) - Play Dialogue "OK. Well, why don't we head off?"
91 00 (Yield: 0A 00 (1/6 seconds)) (Opacity: 80 00) - Fade (Yield must be over 0 otherwise an error will occur in the thread causing the game to freeze.)
05 00 (0A 00) - Yield 1/6 Seconds.
47 00 (Who: 00 00) (θX 00 80) (τX 00 00) - Turn Actor 00 to θ180° in 0 Frames (0 Seconds)
47 00 (Who: 02 00) (θX 00 70) (τX 00 00) - Turn Actor 02 to θ157.5° in 0 Frames (0 Seconds)
28 00 (θX F9 FF) (θZ 41 02) (θY 45 00) (X F3 FF) (Z 0F 02) (Y 40 00) - Set Camera
92 00 (ΔFade: 0F 00 (0.267 seconds)) (Destination Opacity: 00 00) - ΔFade
05 00 (1E 00) - Yield 1/2 seconds.
96 00 (4E 00) - Switch Subscene: Tutorial - Chaos Gate
76 00 (0E 00) - Set Destination Field: 0E (Bursting Passed Over Aqua Field)
64 00 (Room Type: 01 00) (Server: 00 00) (Special Field: 0E 00) - Warp to Field (01) 0E (Bursting Passed Over Aqua Field) in Server 00 (Delta)
FF FF (FF FF) (FF FF) - ???
01 00 FF FF - Set Story +1
00 - End of Event
Tabs don't appear to work well with the Code tag.
Edit: Fixed formatting. Placed more data in there.
Last edited by Slip on Sun Jul 26, 2015 6:10 pm, edited 3 times in total.
Xu Yuan
Posts: 1203
Joined: Tue Feb 28, 2006 1:32 am
Location: Harald in the R:2!

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Xu Yuan »

That is a beautiful start you have there! It is infinitely more readable than looking at the native instructions.

I think once we get out of this starting area it will be relatively smooth sailing. Past the Hidden Forbidden Holy Ground events our work should be much simpler. To separate the events in that measure is probably a smart idea. I know the actual files don't do that, but it increases readability to do so.

I am banging my head against the wall proverbially on this seemingly single instruction which looks to be over 30 bytes, no 0600 command inside of it has activated and it may be related to Orca's never-ending Camera Tutorial.

FE FF 03 00 04 00 01 00 0D 00 02 00 02 00 00 00 12 00 06 00 00 00 13 00 04 00 00 00 0E 00 0E 00 00 00 00 00 12 00 05 00 0A 00 06 00 01 00 13 00 04 00 00 00 00 00

I thought there was Something in there that was familiar, but I could not pinpoint a single actual function of that.
User avatar
Slip
Posts: 28
Joined: Thu Jul 23, 2015 11:09 am

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Slip »

Xu Yuan wrote:That is a beautiful start you have there! It is infinitely more readable than looking at the native instructions.

I think once we get out of this starting area it will be relatively smooth sailing. Past the Hidden Forbidden Holy Ground events our work should be much simpler. To separate the events in that measure is probably a smart idea. I know the actual files don't do that, but it increases readability to do so.

I am banging my head against the wall proverbially on this seemingly single instruction which looks to be over 30 bytes, no 0600 command inside of it has activated and it may be related to Orca's never-ending Camera Tutorial.

FE FF 03 00 04 00 01 00 0D 00 02 00 02 00 00 00 12 00 06 00 00 00 13 00 04 00 00 00 0E 00 0E 00 00 00 00 00 12 00 05 00 0A 00 06 00 01 00 13 00 04 00 00 00 00 00

I thought there was Something in there that was familiar, but I could not pinpoint a single actual function of that.
Yeah, the normal quest events seem to run much simpler just based on what happens in them. Even some of the quests seem like Copy Paste on CC2's end (The Natsume and Sanjuro side-quests are strikingly similar in design and just Scream copy-paste.)

Are you sure it is the FE FF command that is being ran? During testing I found that the Event Chain on Orca's Tutorial in Root Town is 26 bytes in length and contained FE FF 2 times. Editing it seemingly broke the entire event unless it was something tiny (as the event no longer filled the conditions to be ran).

It'll make everything 2 times difficult I feel if we find out that Event Chains are of dynamic length, it'd suck.
Xu Yuan
Posts: 1203
Joined: Tue Feb 28, 2006 1:32 am
Location: Harald in the R:2!

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Xu Yuan »

...You were right... it's not FEFF that's acting as a Command. It's even stranger than that...

It's the 0000 right before it which is being ran... when a 0600 is put into that data the game will not load the field, but will load the tutorial. I don't know what this means... perhaps it is something later? I just really want to find out what's happening with this tutorial.
User avatar
Slip
Posts: 28
Joined: Thu Jul 23, 2015 11:09 am

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Slip »

Xu Yuan wrote:...You were right... it's not FEFF that's acting as a Command. It's even stranger than that...

It's the 0000 right before it which is being ran... when a 0600 is put into that data the game will not load the field, but will load the tutorial. I don't know what this means... perhaps it is something later? I just really want to find out what's happening with this tutorial.
00 00 ends an event until the next condition is met.
When replaced with 06 00, it no longer yields until the next condition is met.

Here is some information about the Fade Out command (91) and (92)

Code: Select all

91 00 (Yield: 0A 00 (1/6 seconds)) (Opacity: 80 00) - Fade (Yield must be over 0 otherwise an error will occur in the thread causing the game to freeze.)

92 00 (ΔFade: 0F 00 (0.267 seconds)) (Destination Opacity: 00 00) - ΔFade
Last edited by Slip on Sun Jul 26, 2015 5:00 pm, edited 2 times in total.
Xu Yuan
Posts: 1203
Joined: Tue Feb 28, 2006 1:32 am
Location: Harald in the R:2!

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Xu Yuan »

Ah, got it. So... that means that FEFF should be acting as the go-between, but putting a text command in there doesn't actually display the text meaning that it's not being ran in the normal manner and the tutorial goes fine, except the field never loads.
Xu Yuan
Posts: 1203
Joined: Tue Feb 28, 2006 1:32 am
Location: Harald in the R:2!

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Xu Yuan »

Ah hah! I think I might know what's going on here! This amount of code probably needs to be this long, why is that? Because it's the only time in the game where depending on your control setup a character's lines change. I noticed this when I noticed the event skipped right to the 8th event message and I wondered what the 7th was, it was the alternate instruction for how to move the camera with the other control setups.

Good on CCCorp for catching something that some other game makers may miss, but it means that a lot of the conditionals that went into it are probably high-level gobbledygook which have little practical purpose outside of that specific event.

EDIT: Actually, I'm an idiot, at least partially. All of that Cannot be one instruction, let's take a closer look at that again...

FE FF 03 00 04 00 01 00 0D 00 02 00 02 00 00 00 12 00 06 00 00 00 13 00 04 00 00 00 0E 00 0E 00 00 00 00 00 12 00 05 00 0A 00 06 00 01 00 13 00 04 00 00 00 00 00

This is a conditional revolving around Orca. One instance is for trying to Gate Out, and the other is when you speak to him normally. It takes place only in Bursting Passed Over Aqua Field. I'll investigate it further, but I feel I once knew this...
Last edited by Xu Yuan on Sun Jul 26, 2015 5:51 pm, edited 1 time in total.
User avatar
Slip
Posts: 28
Joined: Thu Jul 23, 2015 11:09 am

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Slip »

Xu Yuan wrote:Ah, got it. So... that means that FEFF should be acting as the go-between, but putting a text command in there doesn't actually display the text meaning that it's not being ran in the normal manner and the tutorial goes fine, except the field never loads.
Something quite interesting happened when I changed a value in the prior commands,
FF FF FF FF FF FF FF 01 00 FF FF
When you switch to:
FF FF FF FF FF FF FF 01 00 08 00
Orca's Tutorial stops after warping, but when you return to Root Town, Piros talks to you. "He of fair eyes"

So, possibly, this bit here determines the next event in the chain that will happen, and under What conditions it will happen, or maybe 01 is actually a command? (When editing the beginning of an event, there is the 01, when modding that, it doesn't execute it as a command though.)

So perhaps FF FF is a command that sets the Event Chain, 00 exits the event until next condition is met...
Though, I don't under what 01 00 FF FF is, maybe it just means Next event..? Or is Orca's tutorial FF FF?...

Just did some testing: It really does set the block chain. FF FF means increment by 1, meaning if you're at 01 00 01 00, then it increments to 01 00 02 00, the same result can be produced when you change the 01 00 FF FF to 01 00 02 00, it sets the next Event to event 02, and is ran after loading the field. Any other value will cause the game to no longer think it's at that part of the game.
Xu Yuan
Posts: 1203
Joined: Tue Feb 28, 2006 1:32 am
Location: Harald in the R:2!

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Xu Yuan »

FFFF means increment by 1 on the event chain, eh? Well that is fantastic to know! I never figured out how to properly manipulate the chain, but how bizarre. FFFF ordinarily means minus 1, why would CCCorp make it +1? Flies in the face of everything I've learned, haha!
User avatar
Slip
Posts: 28
Joined: Thu Jul 23, 2015 11:09 am

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Slip »

Xu Yuan wrote:Ah hah! I think I might know what's going on here! This amount of code probably needs to be this long, why is that? Because it's the only time in the game where depending on your control setup a character's lines change. I noticed this when I noticed the event skipped right to the 8th event message and I wondered what the 7th was, it was the alternate instruction for how to move the camera with the other control setups.

Good on CCCorp for catching something that some other game makers may miss, but it means that a lot of the conditionals that went into it are probably high-level gobbledygook which have little practical purpose outside of that specific event.

EDIT: Actually, I'm an idiot, at least partially. All of that Cannot be one instruction, let's take a closer look at that again...

FE FF 03 00 04 00 01 00 0D 00 02 00 02 00 00 00 12 00 06 00 00 00 13 00 04 00 00 00 0E 00 0E 00 00 00 00 00 12 00 05 00 0A 00 06 00 01 00 13 00 04 00 00 00 00 00

This is a conditional revolving around Orca. One instance is for trying to Gate Out, and the other is when you speak to him normally. It takes place only in Bursting Passed Over Aqua Field. I'll investigate it further, but I feel I once knew this...
Ahh, I see. Thank you for the information and good catch! I was wondering why nothing was seemingly changing in there, so they're conditions.
I just finished the entire Root Town event for the tutorial, felt like it took forever to figure everything out, but I guess once more commands are documented there will be less need for excessive testing measures (i.e., my loading a save state repeatedly and testing each individual byte until something happens)

I have no idea why they made it an increment 1, but I guess utilizing the negative numbers (since they won't be needing them anyways) is resourceful.

Edit: 01 is a command, and has only 1 argument, 01 00 02 00 <- sets story to event 2. Also, posted all of the event information for the Root Town stuff.
Xu Yuan
Posts: 1203
Joined: Tue Feb 28, 2006 1:32 am
Location: Harald in the R:2!

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Xu Yuan »

Oh man, that formatting is a thing of beauty. I cannot wait to see how easy it will be to manipulate it! Incredible job!

As for my side, I can only grasp the text parts of these strange conditionals. I can't quite tell What is making the conditions, any attempt to alter it causes the event to end. I'm now wondering if maybe there is some sort of index elsewhere independent of events which tells the conditionals for a given event, but I know from other notes and the like that which emails must be read and posts read and all of that fall under specific matters of event instructions... so maybe not.

I know this behavior is used twice in the game. Well the Gate Out one is used only here, but the "special party chat" is used in Hidden Forbidden Holy Ground when you talk to BlackRose before reaching the Cathedral.
User avatar
Slip
Posts: 28
Joined: Thu Jul 23, 2015 11:09 am

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Slip »

I'm running a large array of tests on that conditional piece, it'd be pretty important when setting up events if we do some serious modding.
FE FF 03 00 04 00 01 00 0D 00 02 00 02 00 00 00 12 00 06 00 00 00 13 00 04 00 00 00 0E 00 0E 00 00 00 00 00 12 00 05 00 0A 00 06 00 01 00 13 00 04 00 00 00 00 00

06 00 00 00 - Is for when you talk to him, you can make it open a menu instead by switching it out with 96 00 00 00.
06 00 01 00 - Must then be for Gate Out message.

P.S. wtf did I just do:
Image
It is running a cutscene... while I'm... on the map? (Happens when changing 12 00 05 00 0A 00 06 00 01 00 -> 03 00 05 00 0A 00 06 00 01 00)

Edit: During testing, I found you can edit the conditions Live, meaning no need for save states (unless you accidentally make the event repeat itself, which can happen.)

96 00 XX 00 List:

Code: Select all

Events:
00 - Open Menu (Town)
01 - Open Menu (Area)
02 - Open Menu (No Gate Out option)
03 - Chat Menu
04 - Skills Menu
05 - Items Menu
06 - Key Items Menu
07 - Discard Menu
08 - Status Menu
09 - Party Menu
0A - Gate Out (Can crash game.)
0B - Log Out (Can crash game.)
0C - Start Menu
0D - Controller Settings
0E - Vibration Setting
0F - Screen Adjust
10 - Volume Settings
11 - Return to Title Screen
12 - Run Demo during Data Drain
13 - Voiceover
14 - Subtitles
15 - ???
16 - ???
17 - ???
18 - ???
19 - ?
1A - ?
1B - ?
1C - Randomly combine to form keyword.
Warning! Causes EE error!
(EE pc:00526150) TLB Miss, addr=0x6 [load]
(EE pc:00526150) TLB Miss, addr=0x8 [load]

1D - You now have !
Warning! Causes EE error!
(EE pc:00134638) TLB Miss, addr=0x0 [load]

1E - Discard Item for ___ ? Give up ?
1F - ?
20 - "You now have The Hanged Man!" Rank 1 Chest.
21 - "You now have Fortune Wire!" Rank 1 Trapped Chest.
22 - "You now have Holy Sap!" Rank 1 Barrel?
23 - ? Opens some menu that doesn't display and freezes the game.
24 - "Received effects of !"
25 - "You now have Virus Core A! It is added to Key Items."
26 - "You now have Mountain Helm!" - Gott Statue Chest.
27 - "Current time: 00:16:17. Outside the Ranking" + "You now have Speed Charm!"
28 - "This spring has a strange feel. Maybe I should throw in a weapon or a piece of armor."
Warning! Can freeze game.

29 - Give Spring of Myst Menu
2A - Throw in Confirmation Menu
2B - "You now have Golden Egg!"
2C - ?
2D - ?
2E - ?
2F - ?
30 - Please select an item from the item list presented by the trader.
31 - Select item(s) to trade with. You can trade if the word "Approve" lights up.
32 - Give Menu.
33 - Sell Menu.
34 - Buy Menu.
35 - Save Menu.
36 - Elf Haven - Store
37 - Elf Haven - Withdraw
38 - Raise Grunty - Surprisingly, doesn't freeze or crash game, but causes the menu to be unopenable.
39 - Warp Menu
3A - Gate Menu
3B - Word List
3C - No area codes are registered.
3D - No servers have been registered.
3E - Gate Hacking
Warning! Can freeze game.

3F - Status?
40 - Equipment?
41 - No target in range. - Strange behavior happens during debug after this point.
42 - Data Drain.
43 - ??
44 - Add Member
Warning! Can freeze game.

45 - Remove Member
46 - Remove all members.
47 - ???
48 - ???
49 - No target in range. ???
4A - Unknown Event, causes game freeze.
4B - Select "Party"
4C - Select "Add"
4D - Select "Orca"
4E - ???
4F - Chaos Gate Tutorial - "Keyword Screen"
50 - Select Skills
51 - Select Repth
52 - Some error occurs during testing, displays message "when the target cursor appears, select the target and press the #Yx button#W to execute."
53 - "OK, then press the #YSquare button#W to open the menu."
Warning! Can cause graphical errors.

54 - "This one's normal. Hit the x button to open it."
|> 96 00 (20 00) "You now have Green Gale!"

55 - "See, now it's safe to open. Press the x button to open it."
|> 96 00 (20 00) "You now have Green Gale!"

56 - ??? Causes a yield.
57 - Area Information
58 - ???
Warning! Will freeze game.
59 - ???
Warning! Will freeze game.
5A - ???
Warning! Will freeze game.

May be end of all special events?
Edit 2: I was testing the 13 00 command again, and something new happened.
Image
I was able to play normally while the event was running.

Edit 3: So many camera events it makes me want to puke... but I'm getting close to the end of the first Field event.

Also, here is the most I could get out of the conditionals part.

Code: Select all

FE FF (03 00 04 00) (01 00 0D 00) (Obj: 02 00 02 00) (00 00 Talk-Event Switch GUI Mode, Play Message 00, Return Game Control to player: 12 00 06 00 00 00 13 00 04 00) ( Scene Condition: 00 00 ) ( Subscene Condition: 0E 00) (Variable Condition (Gate-Out Button *See condition reference*): 0E 00) (Play-mode?: 00 00) (?: 00 00) (Gate-Out Event: Flip off GUI, Yield 1/6 seconds, play message 01, return control to player, then return to subroutine: 12 00 05 00 0A 00 06 00 01 00 13 00 04 00) (00 00 00 00) - Conditions
Edit 4: Took like 4 hours (with interruptions) to do this.

Code: Select all

-- Orca Tutorial - Bursting Passed Over Aqua Field

Start: 0x20318280
* = Speculation
|> = Global Event executions, they do not appear in the event data, and are standalone.

01 00 (Event ID: 02 00) (04 00 05 00, 00 00 00 00 , 8A 00 00 00 , 00 00 00 00 , FE FF 08 00 , 00 00) - Quest Header
0E 00 - ???... fails to execute event when changed.

* 0x2031832E *
FE FF (03 00 04 00) (01 00 0D 00) (Obj: 02 00 02 00) (00 00 Talk-Event Switch GUI Mode, Play Message 00, Return Game Control to player: 12 00 06 00 00 00 13 00 04 00) ( Scene Condition: 00 00 ) ( Subscene Condition: 0E 00) (Variable Condition (Gate-Out Button *See condition reference*): 0E 00) (Play-mode?: 00 00) (?: 00 00) (Gate-Out Event: Flip off GUI, Yield 1/6 seconds, play message 01, return control to player, then return to subroutine: 12 00 05 00 0A 00 06 00 01 00 13 00 04 00) (00 00 00 00) - Conditions

* 0x20318364 *
12 00 - Toggle HUD
28 00 (θX AA 09) (θZ 99 09) (θY 0B 00) (X C1 09) (Z 6D 09) (Y 15 00) - Set Camera
47 00 (ACT 00 00) (θX 00 00) (τX 00 00) - Turn Actor (ACT)
47 00 (ACT 02 00) (θX 00 00) (τX 00 00) - Turn Actor (ACT)
05 00 (78 00 (2 seconds)) - Yield

* 0x20318388 *
06 00 (02 00) - Play Dialogue (Offset)
06 00 (03 00) - Play Dialogue (Offset)
06 00 (04 00) - Play Dialogue (Offset)
06 00 (05 00) - Play Dialogue (Offset)
06 00 (06 00) - Play Dialogue (Offset)

91 00 (Yield 0A 00) (Opac 80 00) - Fade Out
05 00 (0A 00 (1/6 Seconds)) - Yield
30 00 (OBJ 02 00 00 00) (Y-Off 0F 00) (θY E8 05) (θX 00 00) (Dist 61 00) - Focus Camera
92 00 (Yield 0F 00) (Opac 00 00) - ΔFade Out
05 00 (0F 00 (0.267 Seconds)) - Yield

25 00 - Camera Tutorial - A (Yields until complete, like 96)
24 00 - Restrict Camera Movement
06 00 (08 00) - Play Dialogue (Offset)

26 00 - Camera Tutorial - B (Yields until complete, like 96)
24 00 - Restrict Camera Movement
06 00 (0A 00) - Play Dialogue (Offset)

27 00 - Camera Tutorial - C
24 00 - Restrict Camera Movement
06 00 (0A 00) - Play Dialogue (Offset)

* 0x20318D6 *
92 00 (Yield 0A 00) (Opac 80 00) - ΔFade Out
05 00 (0A 00) - Yield
30 00 (OBJ 02 00 00 00) (Y-Off 0A 00) (θY 00 04) (θX 00 80) (Dist 41 00) - Focus Camera
1B 00 (OBJ 02 00 02 00) (Y-Off 0A 00) - Set Focus Object
23 00 (θX 00 FB) (θZ 00 30) (Dist 32 00) (ΔX 20 00) - Rotate Camera on Focus
92 00 (Yield 00 00) (Opac 00 00) - ΔFade Out
05 00 (0F 00) (Yield 0F 00)

* 0x2031840A *
06 00 (0D 00) - Play Dialogue (Offset)
06 00 (0E 00) - Play Dialogue (Offset)
06 00 (0F 00) - Play Dialogue (Offset)
06 00 (10 00) - Play Dialogue (Offset)
06 00 (11 00) - Play Dialogue (Offset)
06 00 (12 00) - Play Dialogue (Offset)
06 00 (13 00) - Play Dialogue (Offset)
30 00 (OBJ 02 00 00 00) (Y-Off 0F 00) (θY E8 05) (θX 00 00) (Dist 61 00) - Focus Camera (on Kite)
05 00 (05 00) - Yield

* 0x20318438 *
79 00 - Display Map

06 00 (14 00) - Play Dialogue (Offset)
06 00 (15 00) - Play Dialogue (Offset)
06 00 (16 00) - Play Dialogue (Offset)
06 00 (17 00) - Play Dialogue (Offset)
06 00 (18 00) - Play Dialogue (Offset)
06 00 (19 00) - Play Dialogue (Offset)

05 00 (0F 00) - Yield
7A 00 - Toggle Map Icons (Fairy Orb)
08 00 (1A 00) - Centered Message

06 00 (1B 00) - Play Dialogue (Offset)
06 00 (1C 00) - Play Dialogue (Offset)
06 00 (1D 00) - Play Dialogue (Offset)

92 00 (Yield 0A 00) (Opac 80 00) - ΔFade Out
05 00 (0A 00) - Yield
18 00 (OBJ 02 00 00 00) (Y-Off 0A 00) - Set Camera on Focus
21 00 (θY 80 08) (θX 00 10) (Dist 50 00) - Set Camera (from Player viewpoint)
92 00 (Yield 0F 00) (Opac 00 00) - ΔFade Out
05 00 (14 00) - Yield
42 00 (00 00 01 00) - ???
42 00 (02 00 01 00) - ???
3E 00 (OBJ 00 00 00 00) - Move Kite
8C 00 (05 00 05 00) - ???
3E 00 (OBJ 02 00 00 00) - Move Orca
8C 00 (84 00 05 00) - ???
82 00 - ???
05 00 (50 00) - ???
9A 00 (00 00) - Set Party NPC Behaviors
05 00 (1E 00) - Yield

* 0x203184BE *
06 00 (1E 00) - Play Dialogue (Offset)
06 00 (1F 00) - Play Dialogue (Offset)
06 00 (20 00) - Play Dialogue (Offset)
99 00 - Special Event: Allow Kite to Attack and yield until target is dead.
05 00 (3C 00) - Yield

* 0x203184D0 *
06 00 (21 00) - Play Dialogue (Offset)
96 00 (50 00) - Tutorial: Cast Repth
9A 00 (01 00) - Set Party NPC Behaviors
05 00 (1E 00) - Yield

06 00 (25 00) - Play Dialogue (Offset)
06 00 (26 00) - Play Dialogue (Offset)
06 00 (27 00) - Play Dialogue (Offset)
06 00 (28 00) - Play Dialogue (Offset)
06 00 (29 00) - Play Dialogue (Offset)
06 00 (2A 00) - Play Dialogue (Offset)
06 00 (2B 00) - Play Dialogue (Offset)
96 00 (53 00) - Tutorial: Chat Commands
9A 00 (01 00) - Set Party NPC Behaviors

05 00 78 00
06 00 32 00) - Play Dialogue (Offset)
06 00 33 00) - Play Dialogue (Offset)
06 00 34 00) - Play Dialogue (Offset)
06 00 35 00) - Play Dialogue (Offset)
06 00 36 00) - Play Dialogue (Offset)

85 00 - ???
0F 00 0D 00 00 00 - ???
31 00 - Reset Camera to Gameplay
13 00 - Enable Player Control
Current Event Command List:

Code: Select all

Event Command Reference:

Event Header:
01 00 (Event ID: 00 00) (00 00 00 00 , 00 00 00 00 , 00 00 00 00 , 00 00 00 00 , 00 00 00 00 , 00 00 ) - Set Basic Quest Information

Event Commands:
00 00 - Exit Event
01 00 (00 00) - Set Quest Chain
01 00 (FF FF) - Increment Quest Chain
05 00 (00 00) - Yield (Frames)
06 00 (00 00) - Play Dialogue (Offset)
0B 00 (00 00 00 00) (00 00) (00 00) - Spawn Object ( Object , Orientation , Behavior)
0E 00 (00 00 00 00) - ???
10 00 (00 00 00 00) - *Preload Object
12 00 - Toggle HUD
18 00 (OBJ 02 00 00 00) (Y-Off 0A 00) - Set Camera on Focus
1B 00 (OBJ 00 00 00 00) (Y-Off 00 00) - Set Focus Object
21 00 (θY 80 08) (θX 00 10) (Dist 50 00) - Set Camera (from Player viewpoint)
23 00 (θX 00 00) (θZ 00 00) (Dist 00 00) (ΔX 00 00)- Rotate Camera on Focus
24 00 - Restrict Camera Movement ?
25 00 - Camera Tutorial - A
26 00 - Camera Tutorial - B
27 00 - Camera Tutorial - C
28 00 (θX 00 00) (θZ 00 00) (θY 00 00) (X 00 00) (Z 00 00) (Y 00 00) - Set Camera
29 00 (θX 00 00) (θZ 00 00) (θY 00 00) (X 00 00) (Z 00 00) (Y 00 00) (τY 00 00) (τX 00 00) - ΔCamera
2A 00 (00 00 00 00) - ???
30 00 (OBJ 00 00 00 00) (Y-Off 00 00) (θY 00 00) (θX 00 00) (Dist 00 00) - Focus Camera
31 00 - Reset Camera to Gameplay
3C 00 (00 00 00 00) - *Warp In
41 00 (00 00 00 00 , 00 00 00 00 , 00 00 00 00 , 00 00 00 00) - *Set Condition for Execution
47 00 (ACT 00 00) (θX 00 00) (τX 00 00) - Turn Actor (ACT)
48 00 (00 00 00 00) (00 00 00 00) - Turn Object
50 00 (00 00) - Give Member Address
59 00 (00 00) - Give Keywords
5B 00 (00 00) - Set Quest Flag
64 00 (Type: 00 00) (Server: 00 00) (Field Preset: 00 00) - Warp to Field
76 00 (00 00) - Set Destination Field
7A 00 - Use Fairy Orb
82 00 - ???
91 00 (Yield 00 00) (Opac 00 00) - Fade Out
92 00 (Yield 00 00) (Opac 00 00) - ΔFade Out
96 00 (00 00) - Switch Subscene
99 00 - Special Event: Allow Kite to Attack and yield until target is dead.
9A 00 (00 00) - Set Party NPC Behaviors
FF FF - Do nothing. (Good for debugging)
Now I can sleep peacefully.
Xu Yuan3
Posts: 1
Joined: Mon Jul 27, 2015 5:53 pm

Re: Hacking .hack//Infection (How to make Skeith spawn anywhere)

Post by Xu Yuan3 »

Geez! I apologize for taking so long to get to you let me explain...

I wanted to subscribe to this topic because the project you and I have setup is really intriguing to me and I would love to see this through and be notified of your responses, but unfortunately when I went to subscribe it was using an email address which was shut down and when I went to change the email it kicked me out immediately and said I needed a validation email sent to my account. Well I tried this... at least 5 times and nothing was sent. At first I thought it was the forum Administration being paranoid about who is who so they personally looked at each of these validations before sending them... that wasn't the case. I waited patiently though, hoping for some response back to my query to Administration but 24 hours passed so I decided that I had enough, I looked for answers outside of the system and it turns out that my email address uses some really strict blocking mechanisms that can't be changed and unfortunately the validation emails I sent never received. So I made a new email account and a new account so I'll need to talk with the administration about recovering my account, but in the meantime...

That is some grade A work you have done! You won't know this but one of the now defunct pictures shows exactly what you have displayed there with the Book of Twilight cutscene. .hack// may be one of the oddest games in that its cutscenes are "objects" The reason that occurred was because you called a cutscene inadvertently during normal gameplay and that starts to happen... yeah, .hack// is a weird game.

1300 does indeed return to normal gameplay... I thought I had said this earlier? No matter, yes it is a great way to break free of an event.

Your formatting for the Orca Tutorial is easy to read and well accomplished!

And your Event Command List is looking good, if not slightly lacking in a few matters as there's a few things you found out that's not in that list.

All in all thought great work! I have not been sitting on my laurels doing nothing though either. I had this ready to go late last night, but better late than never. It is the remainder of the Bursting Passed Over Aqua Field event before the Skeith event.

And my previous post on the last page has been updated with my own findings on the Orca Tutorial, should be interesting to compare and contrast... is what I would like to say, but I don't have access to that account at the moment, hehe. So I'll put them here.

Code: Select all

Orca's Town Tutorial - 318280

0100 - Game it takes place in.
0200 - Third chain in the main line
04000500 - Maybe just gameplay type, not necessarily Root Town
00000000 - ??
8A000000 - ??
00000000 - ??
FEFF080000000E00 - Location where Event is Designated to occur (likely part of that is the Server)
FEFF03000000000000000E000E00 - ?? (Presumably something with the field)
0000 - ??
1000020002000400 - Looks to be related to unique party speech. (Not text though)
00000000 - ??
4100FDFF0400 - ??
0E000D00 - ??
00000000 - ??
7500 - Where to place a Spawned Object (15 Bytes)
7500 - Placing Spawned Object (15 bytes)
7500 - " " (15 Bytes)
7500 - " " (15 Bytes)
0C000000820000000100 - Spawns a Magic Portal with a designated foe (Goblin) and the number of foes within.
0C00 - " " (10 Bytes)
0C00 - " " (10 Bytes)
0C00 - " " (10 Bytes)

FEFF0300040001000200020000001200060000130004000000001200 - (Dealing with Orca's conditionals when Chatting and trying to Gate Out, unfortunately I can't figure out the specifics)


2800 - Camera Command (14 Bytes)
47000000 - Something with Kite presumably, but deleting or changing it makes no difference.
47000200 - Something with Orca presumably, but as above.
00000000 - Yield
05007800 - For 78 ticks.
06000200 - "Before we get going..."
06000300 - "During the game enemies..."
06000400 - "The idea is to adjust your view..."
06000500 - "I'll explain more later..."
06000600 - "Basically, if you don't use..."
91000A008000 - Blackout
05000A00 - Yield for that amount of time
3000 - (14 Bytes) Should be a camera focus command, but when changed the screen never returns from the blackout.
92000F00 - Lifting the blackout transition.
0000 - Yield
05000F00 - Yield for 0F Ticks
2500 - Camera Tutorial (Left and Right)
2400 - ??
06000800 "Good. Next, let's zoom in and zoom out."
2600 - Camera Tutorial (Zoom in and out)
2400 - ??
06000A00 - "Yeah. That's it."
2700 - Tutorial on Resetting Camera
2400 - ??
06000C00 - "There ya go."
92000A008000 - Blackout transition
05000A00 - Yield
3000 - Focus Camera Command (14 Bytes)
1B00020002000A002300FB00 - (Crossed the point by accident and didn't have a save to go back to)
92000F00 - Lifting blackout transition
0000 - Yield
05000F00 - Wait
06000D00 - "Okay, and this is the field..."
06000E00 - "When you want to return to the town..."
06000F00 - "Grassland, Wilderness, Jungle..."
06001000 - "The combination of field type and weather..."
06001100 - "For example, if it's a Grassland..."
06001200 - "The elements also effect the type of monsters..."
06001300 - "Don't worry about it now..."
3000 - Focus Camera Command (14 Bytes)
05000500 - Yield
7900 - Makes the Map Appear on Screen.
06001400 - "Now. Let's get going on our quest..."
06001500 - "You see the Red Down Arrow on it?"
06001600 - "In the dungeon's deepest level..."
06001700 - "Basically the goal is to reach this statue."
06001800 - "But enemies are often tougher..."
06001900 - "OK, wait a sec."
05000F00 - Wait
7A00 - Orca using Fairy's Orb
08001A00 - "Orca used Fairy's Orb."
06001B00 - "By using the Fairy's Orb..."
06001C00 - "Yellow areas on the map show Magic Portals..."
06001D00 - "All right! How about we go pick a fight?"
92000A00 - Blackout transition.
0080 - ??
05000A00 - Wait
1800020000000A00 - Something with actor focusing.
2100 - Camera Command (14 Bytes) looks to be a Camera command which focuses on an Actor who is moving.
0000 - Yield
05001400 - Wait
420000000100 - Something with activating Magic Portals?
420002000100 - " "
3E00000000008C00 - Telling Kite to run forward to those coordinates.
05000500 - Wait
3E00020000008C00 - Telling Orca to run forward to those coordinates.
840005008200 - Tells the Goblin(0082) not to attack (something dealing with that 0500, when changed he atacks)
05005000 - Wait 
9A000000 - Looks to force the "Attack" Target. 
05001E00 - (May be a wait command, but I can't see what it is waiting for, even at FFFF it is still immediate)
06001E00 - "For a basic attack, approach the target..."
06001F00 - "By the way, a cursor appears on the target..."
06002000 - "Try using a basic attack to defeat some monsters."
0099 - Defeat all monsters to proceed with event.
05003C00 - Wait
06002100 - "You've started to get the hang of it..."
96005000 - Orca's Skill Tutorial.
9A000100 - Suppresses the Target from appearing. 
05001E00 - Wait
06002500 - "That's it. Pretty easy, huh?"
06002600 - "You can target a party member for recovery..."
06002700 - "Remember, you can only apply skills..."
06002800 - "Before using a skill, adjust the camera..."
06002900 - "Well, you must be sick of me by this point."
06002A00 - "It's your turn to tell me what to do..."
06002B00 - "OK, I'll teach you the command..."
96005300 - Orca's First Aid Tutorial 
9A000100 - Suppresses the Target from appearing.
05007800 - Wait
06003200 - "Well? It's good to be the boss, isn't it?"
06003300 - "If you use it well, you can bunch up on the enemy..."
06003400 - "When you add new members to the party..."
06003500 - "That's it for now!"
06003600 - "When you think you're ready we'll head for the dungeon!"
8500 - ??
0F00 - Returns gameplay camera to normal.
0D00 - ??
0000 - Yield
31001300 - Return to normal gameplay
0000 - Yield
FFFF0000 - increment Game Chain by 1.
0000 - Padding






And the dungeon events...

Code: Select all

Bursting Passed Over Aqua Field Dungeon - 318530

0100 - Game where it takes place
0200 - Third Chain in main line (Odd, since I had thought that FFFF referred to a +1 in chain?)
0000 - Yield
FEFF04000500 - Gameplay type the event is taking place in?
FEFF090000000E000000 - Something with the field.
FEFF0300040000000000 - I believe area (dungeon or field) where event should take place.
100002000200 - Dealing with unique speech
04000000 - ??
---------------------------------------------------(End of Event)------------------------

Speaking with Orca.

FEFF030004000100 - Where event takes place?
0D00020002000000 - Something to deal with talking to Orca?
1200 - Stops all action.
06000D00 - "Whenever you want me to do something..."
13000400 - Return to normal gameplay (in this circumstance)
0000 - Yield
-------------------------------------------------(End of Event)----------------------------

Skeith chasing Aura cutscene

FEFF030002000000 - ?? (Has to be in dungeon?)
FEFF050001000000 - Room where the event will take place in the dungeon
0A000300 - Skeith chasing Aura cutscene
0000 - Yield

-------------------------------------------------(End of Event)------------------------------

Dead End Room

FEFF05000600 - Room where the event will take place in the dungeon.
FEFF030004000100 - ??
1200 - Stops all action.
06001500 - "It's a dead end. That girl..."
13000000 - Return to normal gameplay

------------------------------------------------(End of Event)

Orca's Treasure Chest Tutorial

FEFF05000400 - Room where the event will take place in the dungeon.
FEFF030004000100 - ??
1200 - Stop all action.
3000 - Camera Focus on Orca (14 Bytes)
06000000 - "Now we can start exploring the dungeon!"
06000100 - "One thing you need to remember..."
06000200 - "To Gate Out and return to the town..."
06000300 - "The Sprite Ocarina will warp you..."
91000A008000 - Blackout transition screen.
05000A00 - Wait
460000E5055908000 - Kite being warped.
4600 (10 Bytes) - Orca being warped.
4800 - Makes actors focus on one another. (10 Bytes)
3000 - Camera focusing on Orca and Kite (14 Bytes)
1B000200020000000A00 - ??
420000000100 - Deals something with the treasure chests in this case. 
9A000000 - Targets Treasure Boxes
92000F000000 - Blackout transition.
05000F00 - Wait
06000E00 - "This is the treasure box..."
06000F00 - "You should know that there are two types..."
96005400 - Opening Orca Tutorial Treasure Box.
05003C00 - Wait
92000A008000 - Blackout transition
05000A00 - Wait
4600 - Transport Kite (10 Bytes)
4600 - Transport Orca (10 Bytes)
4800 - Makes Actors focus (10 Bytes)
3000 - Camera focusing on Orca and Kite (14 Bytes)
1B00020002000A00 - ??
92000F00 - Blackout transition
0000 - Yield
05000F00 - Wait
06001100 - "This one's booby-trapped."
06001200 - "Just use the Fortune Wire on it..."
7B00 - Orca using a Fortune Wire
08001300 - "Orca used the Fortune Wire!"
96005500 - Opening Orca's Tutorial Trapped Treasure Box.
3100 - ??
1300 - Return to normal gameplay.

----------------------------(End of Event)----------------------------------

Battle Room Tutorial - Set up

FEFF05000200 - Room where the event will take place in the dungeon.
FEFF0300000000000 - ??
7500 - Places Magic Portal (14 bytes)
0C000000820064000100 - Spawn Goblin in Magic Portal
0000 - Yield

-------------------------------------------------------------------------------

Battle Room Tutorial 

FEFF05000200
FEFF0300040001000000
1200 - Stop all action.
9E00 - Seems to deal something with the gates that fall, but aren't Actually the gates that fall.
2800 - Camera Command (14 Bytes)
05000100 - Wait
9F00 - Also seems to deal with the gates.
2A0002000200 - ?? (Something with Orca clearly)
2900 - Camera Command (14 Bytes)
1E00 - Kill All enemies to proceed
1E00 - ...Kill all enemies to proceed. (There's no reason for two. Must have been a coding error, in fact there's no reason for one. Since it is a normal dungeon room it doesn't use anything special to end the event in the first place)
05001E00 - Wait
06000400 - "Better watch out, were trapped..."
06000500 - "In the dungeon, there are rooms..."
2A0002000200 - ??
2900 - Camera Command (14 Bytes) (Is this one 16 bytes?!)
06000600 - "The only way to get out of a trap..."
06000700 - "All right. Let's charge to that magic portal!"
3100 - Return camera
1300 - Return to gameplay.
0000 - Yield

-----------------------------------------(End of Event)--------------------------------

Gott Statue Tutorial

FEFF05000500 - Play in Gott Statue Room
0000 - Yield
8A00000100 - ??
1200 - Stop all action.
2800 - Camera Command (14 Bytes)
06000800 - "This is the room where the statue is."
2A000002000200 - Something with Orca
2900 - Camera Command (14 Bytes)
1E00 - Maybe... 1E00 means more than "kill all enemies" because this is in the Gott Statue room.
1E00 - " "
06000900 - "There's only one of 'em..."
2A0002000200
2900 - Camera Command (14 Bytes)
14001400 - Hmm... I'm starting to think Camera Commands can reach up to 16 Bytes.
06000A00 - "That's enough adventure for now..."
3000 - Focus Camera behind Kite (14 Bytes)
06000B00 - "If we had a Sprite Ocarina..."
06000C00 - "So we gotta go back the way we just came."
3100 - Return camera
1300 - Return to gameplay.
0000 - Yield

-------------------------------------------------------(End of Event)----------------------
Post Reply