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

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

Moderator: Moderators

User avatar
Belldandu
Posts: 30
Joined: Fri Apr 24, 2015 9:33 am

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

Post by Belldandu » Sat Aug 15, 2015 7:24 pm

Xu Yuan wrote:While it's true I was originally working off of savestates I eventually moved to the ISO itself and made the necessary changes there, but maybe I took it one step too far... maybe the placement of the labels serve a dual purpose. I noticed if I tried to change Kite's voice pointer for say Mia or Orca it worked perfectly fine once I changed both portions of data in VoiceDataE and spcVoiceDataE to match that of the other character, But originally I was trying to run it in a different manner which may have been the cause for problems. I literally switched the symbolcode tags from say SPC00_E to SPC15_E and that seemed to cause effects identical, but I recall in older testing that I tried that with other characters where I learned it *should* have worked and it didn't function 100% correctly (though that may be because I did not know of this secondary pointer)...

And that seems to not be the case. Changing just the symbolcode causes more problems than fixes them, that may be where my confusion lay alright then... I'll try it in the ISO then, but as savestates and Cheat Engine worked for showing that most other characters could replace Kite's pointers without issue, I can't see it working.

It did not, I changed every voice pointer and secondary pointers to BlackRose's... no dice. I think it is just some sort of size expectancy that I haven't found or it is specially coded around it. That throws a wrench in matters...

Also i was wondering if you may have had a //Fragment dungeon file? I would set up my own server and do it myself if I could but this hunk of junk I call a computer has had a broken ethernet input since I got it apparently so i can't actually use the Area Server tool. I am curious however to know if the Edit_Dungeon hex is similar to how dungeons are built in //Fragment.
area servers can be on wifi

its pcsx2 that cant (yet)

Xu Yuan
Posts: 1201
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 » Sat Aug 15, 2015 7:42 pm

Ah, so it's PCSX2 which is the culprit, fair enough. Since you say "yet" are there plans in the work to make it somehow work with it?

NCDyson
Posts: 28
Joined: Mon Jul 01, 2013 2:17 pm

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

Post by NCDyson » Sun Aug 16, 2015 2:22 am

I thought you could have pcsx2 on Wi-Fi, but it was a pain to set up and was sometimes unreliable

Xu Yuan
Posts: 1201
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 » Sun Aug 16, 2015 2:25 am

The game works fine on Wi-Fi no doubt on that, even with my pathetic internet and laughable computer specs I can still play //Fragment at a solid 45-55 FPS, so Wi-Fi doesn't seem to be the issue... or are you referring to the Area Server issue? I searched for a way and the only one I found implied that a wired connection was needed at one point to copy that onto the wireless... or something like that, I didn't pay that much attention when I read it still at one point required a wired connection.

User avatar
Belldandu
Posts: 30
Joined: Fri Apr 24, 2015 9:33 am

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

Post by Belldandu » Sun Aug 16, 2015 3:38 pm

Xu Yuan wrote:The game works fine on Wi-Fi no doubt on that, even with my pathetic internet and laughable computer specs I can still play //Fragment at a solid 45-55 FPS, so Wi-Fi doesn't seem to be the issue... or are you referring to the Area Server issue? I searched for a way and the only one I found implied that a wired connection was needed at one point to copy that onto the wireless... or something like that, I didn't pay that much attention when I read it still at one point required a wired connection.
Pretty sure you got that backwards dude

I use the area server all the time on wifi

Image

and yes pcsx2 is unrealiable on wifi via tap (if your wifi is shoddy) ( not to mention bridging in windows is broken somewhat which is the main reason i refuse to tap cause i got tired of the bluescreen every time i resumed)

(would be nice if someone forced pcsx2 to treat wifi as ethernet via dev 9)

actually i'm working on that ^ and i might ask a few people to help me with that

also dev9 needs to load faster as i'm tired of how long it takes just to get the configuration menu open :|

NCDyson
Posts: 28
Joined: Mon Jul 01, 2013 2:17 pm

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

Post by NCDyson » Sun Aug 16, 2015 5:30 pm

If you guys think the dev9 plugin sucks now, you should have seen it before coldbird worked his magic on it. I used to have to load a savestate at a certain point after loading the game, but before the title screen appeared, just to get to the connect screen and get it to actually connect. And if the game disconnected, you had to restart the entire emulator.

A lot of the issues with the dev9 plugin would be solved if we could get a winsock based plugin, but I hear that would be a massive pain.

Xu Yuan
Posts: 1201
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 » Sun Aug 16, 2015 5:45 pm

Oh I don't blame the plugin, what coldbird accomplished with it is more than impressive! I blame my poor excuse for a computer and rather shoddy internet.

However whenever I try to connect to the Area Server the game tells me that the connection failed despite the Area Server screen looking to authenticate the Fragment ISO, is there some other step I'm missing to this whole matter?

Also I did a bit of data searching yesterday and today, but it's not been as helpful as I would hope... having played online for a while I have not seen one event (a scripted cutscene with forced animation and text) are there any events online? I'll send you both my notes to see if they will be of any help.

NCDyson
Posts: 28
Joined: Mon Jul 01, 2013 2:17 pm

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

Post by NCDyson » Sun Aug 16, 2015 6:33 pm

If you're trying to run the Area Server and PCSX2 on the same machine, it won't work. Something about winPCAP not knowing where to actually send the packets since the source and destination are the same, or something like that.

There's a couple of online events that we know of, but they only appear on certain dates(christmas, new years, and some other things, I never got around to looking for the code that makes the events activate), and as far as I know, it's pretty much just a random NPC shows up in an area server and enables a keyword combination for a Super High Level area.

When I first started the project, my ps2's date and time was stuck on midnight, January 1st, so the new years NPC appeared all the time. After I fixed it, I never could get him to appear again.

User avatar
Belldandu
Posts: 30
Joined: Fri Apr 24, 2015 9:33 am

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

Post by Belldandu » Sun Aug 16, 2015 6:53 pm

NCDyson wrote:If you're trying to run the Area Server and PCSX2 on the same machine, it won't work. Something about winPCAP not knowing where to actually send the packets since the source and destination are the same, or something like that.

There's a couple of online events that we know of, but they only appear on certain dates(christmas, new years, and some other things, I never got around to looking for the code that makes the events activate), and as far as I know, it's pretty much just a random NPC shows up in an area server and enables a keyword combination for a Super High Level area.

When I first started the project, my ps2's date and time was stuck on midnight, January 1st, so the new years NPC appeared all the time. After I fixed it, I never could get him to appear again.
actually if you've got both wifi and ethernet connected then it "should" work as the area server defaults to wifi (also the problem is that winpcap uses the entire adapter for itself and disconnects all other software when its running :|) ( it might actually be pcsx2 doing that though)

i use the above method all the time and have no problem connecting to an area server ran on the same machine as pcsx2 in fact i used to run 8 of them at the same time as pcsx2 >.>

Xu Yuan
Posts: 1201
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 » Sun Aug 16, 2015 9:53 pm

NCDyson wrote:If you're trying to run the Area Server and PCSX2 on the same machine, it won't work. Something about winPCAP not knowing where to actually send the packets since the source and destination are the same, or something like that.

There's a couple of online events that we know of, but they only appear on certain dates(christmas, new years, and some other things, I never got around to looking for the code that makes the events activate), and as far as I know, it's pretty much just a random NPC shows up in an area server and enables a keyword combination for a Super High Level area.

When I first started the project, my ps2's date and time was stuck on midnight, January 1st, so the new years NPC appeared all the time. After I fixed it, I never could get him to appear again.
Now that is interesting. If there's not special ASM that means it should be a simple "Spawn NPC" and "Give Keywords" this does give me hope that there might be some online component for events... Also I heard something about Phases needing to be defeated to reach "the next level" of Server Functionality? Or were those all just rumors?
ToumaKamijou wrote: actually if you've got both wifi and ethernet connected then it "should" work as the area server defaults to wifi (also the problem is that winpcap uses the entire adapter for itself and disconnects all other software when its running :|) ( it might actually be pcsx2 doing that though)

i use the above method all the time and have no problem connecting to an area server ran on the same machine as pcsx2 in fact i used to run 8 of them at the same time as pcsx2 >.>
My Ethernet port seems to be busted, was likely this way since I got this hunk of junk computer so though I have a plain working Ethernet cord it refuses to acknowledge it is attached to the modem. So it's as I thought, you do need Ethernet to make it work, bah.

User avatar
Belldandu
Posts: 30
Joined: Fri Apr 24, 2015 9:33 am

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

Post by Belldandu » Mon Aug 17, 2015 4:50 pm

Xu Yuan wrote:
NCDyson wrote:If you're trying to run the Area Server and PCSX2 on the same machine, it won't work. Something about winPCAP not knowing where to actually send the packets since the source and destination are the same, or something like that.

There's a couple of online events that we know of, but they only appear on certain dates(christmas, new years, and some other things, I never got around to looking for the code that makes the events activate), and as far as I know, it's pretty much just a random NPC shows up in an area server and enables a keyword combination for a Super High Level area.

When I first started the project, my ps2's date and time was stuck on midnight, January 1st, so the new years NPC appeared all the time. After I fixed it, I never could get him to appear again.
Now that is interesting. If there's not special ASM that means it should be a simple "Spawn NPC" and "Give Keywords" this does give me hope that there might be some online component for events... Also I heard something about Phases needing to be defeated to reach "the next level" of Server Functionality? Or were those all just rumors?
ToumaKamijou wrote: actually if you've got both wifi and ethernet connected then it "should" work as the area server defaults to wifi (also the problem is that winpcap uses the entire adapter for itself and disconnects all other software when its running :|) ( it might actually be pcsx2 doing that though)

i use the above method all the time and have no problem connecting to an area server ran on the same machine as pcsx2 in fact i used to run 8 of them at the same time as pcsx2 >.>
My Ethernet port seems to be busted, was likely this way since I got this hunk of junk computer so though I have a plain working Ethernet cord it refuses to acknowledge it is attached to the modem. So it's as I thought, you do need Ethernet to make it work, bah.
did you install the ethernet driver?

Xu Yuan
Posts: 1201
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 » Mon Aug 17, 2015 7:18 pm

Yes, it's something called Atheros AR8152 PCI-E Fast Ethernet Controller (NDIS6.20) it... doesn't appear to work and no matter how many times I try to run updates on it, it refuses to acknowledge the existence of an Ethernet cable.

NCDyson
Posts: 28
Joined: Mon Jul 01, 2013 2:17 pm

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

Post by NCDyson » Mon Aug 17, 2015 8:43 pm

Xu Yuan wrote: Now that is interesting. If there's not special ASM that means it should be a simple "Spawn NPC" and "Give Keywords" this does give me hope that there might be some online component for events... Also I heard something about Phases needing to be defeated to reach "the next level" of Server Functionality? Or were those all just rumors?
I've never gotten to the NPCs to appear after I had the tools to look at the packets going between the game and area server, and I've never really gotten a clear answer on if the NPC is visible to everyone on the server at the same time, but yeah, I'm hoping that there's a command the area server can send the game to tell it that there's an NPC in the town. I know the NPCs dialog is hardcoded into the game, but there's ways around that. Not sure about the phases thing though. Don't think you can really get them to appear in online mode, not sure if anyone has gotten that far in offline mode either.

ToumaKamijou wrote: also the problem is that winpcap uses the entire adapter for itself and disconnects all other software when its running :|) ( it might actually be pcsx2 doing that though)
Never used wifi and ethernet at the same time, but I know that pcap/pcsx2 doesn't hog the adapter if you're just using ethernet. When I'm working on the servers I routinely have 2 instances of PCSX2 running and music or movies streaming without any issues.

User avatar
Belldandu
Posts: 30
Joined: Fri Apr 24, 2015 9:33 am

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

Post by Belldandu » Wed Aug 19, 2015 6:23 pm

Xu Yuan wrote:Yes, it's something called Atheros AR8152 PCI-E Fast Ethernet Controller (NDIS6.20) it... doesn't appear to work and no matter how many times I try to run updates on it, it refuses to acknowledge the existence of an Ethernet cable.
If you wish i can take a look i do tech support for my school as a FWS and i know a lot about troubleshooting.

Shoot me a pm if you interested.

User avatar
Belldandu
Posts: 30
Joined: Fri Apr 24, 2015 9:33 am

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

Post by Belldandu » Thu Aug 27, 2015 11:16 pm

NCDyson wrote:
Xu Yuan wrote: Now that is interesting. If there's not special ASM that means it should be a simple "Spawn NPC" and "Give Keywords" this does give me hope that there might be some online component for events... Also I heard something about Phases needing to be defeated to reach "the next level" of Server Functionality? Or were those all just rumors?
I've never gotten to the NPCs to appear after I had the tools to look at the packets going between the game and area server, and I've never really gotten a clear answer on if the NPC is visible to everyone on the server at the same time, but yeah, I'm hoping that there's a command the area server can send the game to tell it that there's an NPC in the town. I know the NPCs dialog is hardcoded into the game, but there's ways around that. Not sure about the phases thing though. Don't think you can really get them to appear in online mode, not sure if anyone has gotten that far in offline mode either.

ToumaKamijou wrote: also the problem is that winpcap uses the entire adapter for itself and disconnects all other software when its running :|) ( it might actually be pcsx2 doing that though)
Never used wifi and ethernet at the same time, but I know that pcap/pcsx2 doesn't hog the adapter if you're just using ethernet. When I'm working on the servers I routinely have 2 instances of PCSX2 running and music or movies streaming without any issues.
Odd all software disconnects when i use strictly ethernet and try to run anything with pcsx2. Probably a win 8 bug (hopefully was fixed in win 10)

Xu Yuan
Posts: 1201
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 » Fri Aug 28, 2015 7:10 am

Well I have a bit of an exciting update! Before I had spoken of breaking the event chains, but I never really wandered beyond the first game, except in one innocuous test, but I've now been able to accomplish it fully and consciously! I tricked the game into thinking that I was starting from //Quarantine in //Infection.

Here are the steps I took...

First! Change the link in the chain at 2032D690 to 0000 - this will trick the game into starting in //Infection

Second! Change the pointer in EventTblM1 (2031D780) to that of Quarantine's starting event. 32D690 (90D632)

Third! Change the message pointer of EvMsgTbl1 to 0000. This will make it so that the game will display only blank boxes. for its text. (since there are no text pointers for //Quarantine). I managed to make it to the bottom of Bigoted Snowflake's Capsule (which is only Level 18 in //Infection. It's 68 in //Quarantine, likely owing to //Infection server limits) but I think I went about setting the chains too late because I could get the purple mist to eventually appear, but couldn't spawn the Data Bug.

Fourth! Disable any cutscenes (0A XX commands) by changing them to an applicable amount, since they'll try to play //Quarantine cutscenes and crash in the process.

As for changes from normal //Quarantine... it would seem that the Version Update email wasn't made yet as you don't get that at the game start. Also the real Lia Fail server doesn't seem to have been made yet as you are warped first to an unstable normal Net Slum/Lia Fail (without any of the camera angles associated with the real Lia Fail, nor does Kite move forward) server and then to normal Lia Fail. I'll need to try later and fix the Data Bug issue and see if I can't play through more of //Quarantine in //Infection. (granted any Phase fight is going to stop me in my tracks because their cutscenes would be non-existent) to find any other significant changes.

Xu Yuan
Posts: 1201
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 » Mon Aug 31, 2015 1:14 pm

I've been delving a little bit into R5900 ASM, with the help of the PCSX-2 debugger and have started to make some strides towards a minor hacking project. I was thinking of ways to change classes on the fly without memory editing thereby making it look legitimate...ish. After some false starts I realized I could probably use the Power-Up items to create a Class Change system. Initial tests looked to be working pretty good. I turned the Power Book into Twin Blade Book which well does what it says on the tin. Turns that character's class to Twin Blade. Now this is less than perfected. You will still be shown to be equipped with whatever weapon you had before Class Change until you switch weapons, also the weapon you do currently have equipped would change to its Twin Blade counterpart in all but graphics and skills. Skills as well is another faulty portion of it, weapons are loaded in a dynamic fashion so when you trick the game into changing class or weapon you will have the skills of the previous weapon still until you equip and dequip a weapon with that same skill.

As I mentioned it is less than perfect and is just a proof of concept. Something I could do is set up some sort of "dummy equipment" that have no skills. Have the game check if they're currently equipped. If they are not equipped with them trying to use the book would fail. Well, maybe that would be a bit tricky, but no matter it was just a proof of concept after all.

Xu Yuan
Posts: 1201
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 » Wed Sep 02, 2015 12:05 am

I've found a pretty important part for Armor hacking! It turns out that the byte right before the Skills in Armor is what classification of weight what Armor falls under. 01 - All, 02 - Medium, 03 - Heavy. This solves the mystery of how various Rare Armors of different weights could exist at the end of their respective lists without custom coding and allows us to change them at will (even the default listings, but they're pretty balanced though). Unfortunately while these values exist for weapons, they obviously won't have any effect because a character that is not of that class cannot equip that classes weapon.

NCDyson
Posts: 28
Joined: Mon Jul 01, 2013 2:17 pm

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

Post by NCDyson » Wed Sep 02, 2015 6:48 pm

I'm assuming your code hacks are relatively simple ones since major code hacks are, well, a pain, though, now that I think of it, most of the code for actual in-game stuff is in the gcmn overlay, so theoretically it shouldn't be too hard to expand that to make room for more code...

I was just now looking at the function that displays the weapons in the equipment screen, it might be possible to re-write it to display all the weapons, and then when you go to equip one of a different class just change the character's class on the fly then, but with all that work, it seems like it'd just be easier to just write an entirely new game...

Also, my server machine died (RIP you old, single core bastard. you served me well for a freebie.), so I'm waiting for another machine to come in the mail, and hopefully I can get back to work on fragment.

Xu Yuan
Posts: 1201
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 » Wed Sep 02, 2015 7:22 pm

NCDyson wrote:I'm assuming your code hacks are relatively simple ones since major code hacks are, well, a pain, though, now that I think of it, most of the code for actual in-game stuff is in the gcmn overlay, so theoretically it shouldn't be too hard to expand that to make room for more code...

I was just now looking at the function that displays the weapons in the equipment screen, it might be possible to re-write it to display all the weapons, and then when you go to equip one of a different class just change the character's class on the fly then, but with all that work, it seems like it'd just be easier to just write an entirely new game...

Also, my server machine died (RIP you old, single core bastard. you served me well for a freebie.), so I'm waiting for another machine to come in the mail, and hopefully I can get back to work on fragment.
Glad to see you back NCDyson! Yes, my hacks are simple as simple can be. I'm a data scrounger mostly but I know a little bit about ASM.

PS2 ASM seems infinitely more complicated than SNES that's for certain. I did manage to find the power-up items data though, and that uses older, simpler methods that I can easily understand (reference to address, load value in address add X amount to value, done) but though //Infection is labelled beautifully I'm still having a bit of trouble with things that should be relatively straight forward. This is actually the first reference I've heard to the gcmn overlay, should I pay more attention to it? Honestly from what I've searched of the PS2 data, at least as far as dot hack is concerned, seems next to none. I can find no reference outside of dot hack to .ccs or the term "Stream" for FMV's.

I am curious to know what you saw in the equipment screen data? I've seen lots of people say "might as well write a new game" when it comes to hacking. but dot hack's template seems so basic that it would make a great stepping stone and let's face it, making a new game is a massive undertaking.

There are a couple of questions that maybe you could answer though... I have tried time and time again to load NPC's and Enemies as PC's but each time has ended up failing. I wrote the animation's correctly and I hit the references that I know of, but each time it has ended up failing. I was thinking that it may deal something with what graphics are loaded at any given time, but I can't see that as the case... any thoughts on what that might be? And since you've looked at the equipment data, did you see anything that looks to be defining a certain weapon type as a certain address? That would seem to be the basic sense, but looking in plain data I saw no such pointer. Maybe I should look at the data again though.

EDIT: Thanks for the pointers! I finally found how the game draws the appropriate addresses!

Instead of explaining it... I'll post the picture.

Image

I'll hopefully have more updates soon.

Post Reply