Page 1 of 1

PS2 Support Once DNAS is Bypassed?

Posted: Sat Sep 24, 2016 8:58 am
by CaelThunderwing
its been done some time back over at the .hack//Fragment Project forums (coldbird.net) and last i heard a few years last i sat my fat duft behind in the IRC Channel, that a PS2 client Couldnt even be works on till something was done to get around DNAS.

They've managed to get around it (with it working on a Physical PS2 and in PCSX2).

if thier Devs Share how its been done, Could this open up the Potential for PS2 Connectivity Support for those w/ a Still Working XI-PS2 HDD Kit? (despite yea i know they dropped PS2 support before Seekers and finally sometime last year. )

edit: they documented it a bit back it seems,
(from thier Forums and Coldbird himself,)
Coldbird wrote:What exactly is DNAS and how does it work?

Code: Select all

DNAS is a online authentication system to check your hardware, harddrive and disc for legitimacy.

It reads Disc IDs out of the Sony Wobble Sector Lead-In and passes it, hashed together with a bunch of other hardware information to the Sony Gate Server which in turn returns a error code or success value, allowing or denying you network access.

DNAS itself, on the clientside, is implemented as a asynchronous polling utility, similiar to sceUtility modules on Playstation Portable.
How to disable DNAS inside your game?

Code: Select all

Basically we overwrite the DNAS2 functions Sony added to the games with dummies that always return expected success values.

This way the game will think it passed the DNAS checks and not bother with it anymore.
This workaround won't work for every game, especially not those that do DNAS challenge checks in their gaming servers, but those that don't will work.

The real difficulty is finding the DNAS functions inside the game, as they aren't always easy to find.

Thus... take this road-map to .hack//Frägment's main executable (HACK_00.ELF) and the replacement functions I've coded to make it work.
.hack//Frägment (HACK_00.ELF) Roadmap

Code: Select all

sceDNAS2InitNoHDD 0x0032E770
jr $ra
lui $v0, 0

sceDNAS2AuthGetUniqueID 0x0032E950
jr $ra
lui $v0, 0

sceDNAS2Shutdown 0x0032EB18
jr $ra
lui $v0, 0

sceDNAS2Abort 0x0032EE10
jr $ra
lui $v0, 0

sceDNAS2GetStatus 0x0032EF28
li $a1, 5
sw $a1, 0($a0)
li $a1, 0x4000004
sw $a1, 4($a0)
li $a1, 3
sw $a1, 8($a0)
jr $ra
lui $v0, 0

sceDNAS2SetProxy 0x0032EF88
jr $ra
lui $v0, 0

sceDNAS2GetProxy 0x0032F020
jr $ra
lui $v0, 0

sceDNAS2AuthNetStart 0x0032F280
jr $ra
lui $v0, 0
and a Second Approach (unknown if it affects HDD_INIT functions.)

Code: Select all

patch=1,EE,0032e770,word,03e00008
patch=1,EE,0032e774,word,3c020000
patch=1,EE,0032e950,word,03e00008
patch=1,EE,0032e954,word,3c020000
patch=1,EE,0032eb18,word,03e00008
patch=1,EE,0032eb1c,word,3c020000
patch=1,EE,0032ee10,word,03e00008
patch=1,EE,0032ee14,word,3c020000
patch=1,EE,0032ef28,word,24050005
patch=1,EE,0032ef2c,word,ac850000
patch=1,EE,0032ef30,word,3c054000
patch=1,EE,0032ef34,word,24a50004
patch=1,EE,0032ef38,word,ac850004
patch=1,EE,0032ef3c,word,24050003
patch=1,EE,0032ef40,word,ac850008
patch=1,EE,0032ef44,word,03e00008
patch=1,EE,0032ef48,word,3c020000
patch=1,EE,0032ef88,word,03e00008
patch=1,EE,0032ef8c,word,3c020000
patch=1,EE,0032f020,word,03e00008
patch=1,EE,0032f024,word,3c020000
patch=1,EE,0032f280,word,03e00008
patch=1,EE,0032f284,word,3c020000

Re: PS2 Support Once DNAS is Bypassed?

Posted: Sat Sep 24, 2016 3:16 pm
by kjLotus
since you already know that support was dropped at seekers, and we typically require the latest client version, that probably answers your question?

it could be possible to keep a server around for the ps2, but it wouldn't be something we'd support ourselves

Re: PS2 Support Once DNAS is Bypassed?

Posted: Sat Sep 24, 2016 7:48 pm
by TeoTwawki
Even if you take DNAS out of the picture, you still have to build a loader and version/update related issues to contend with. I think you'd really need a whole separate development branch (or fork) of the project devoted to that platform.