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,)
and a Second Approach (unknown if it affects HDD_INIT functions.)Coldbird wrote:What exactly is DNAS and how does it work?How to disable DNAS inside your game?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.
.hack//Frägment (HACK_00.ELF) RoadmapCode: 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.
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
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