PDA

View Full Version : Feature request: HDD access mode


yabla
04-06-2006, 08:05 PM
Several games, like Soul Calibur 3 work better (they don't crash ;)) with hdloader when a slower DMA mode is used for HDD access. This mode is set the first time the HDD is accessed, when it is initialized.

So far this can only be done by hexediting the hdloader binary, but it would be really nice if this could be integrated into LaunchELF. It would also allow me to put the hdloader binary on the HDD while still using slower HDD access.

dlanor
04-06-2006, 08:26 PM
Several games, like Soul Calibur 3 work better (they don't crash ;)) with hdloader when a slower DMA mode is used for HDD access. This mode is set the first time the HDD is accessed, when it is initialized.
That is how the standard driver does it, though in fact it would have been possible to write it so that the driver changed this whenever requested. The HDD itself just obeys the commands sent to it. A new driver could be made that allowed switching modes on the fly, by some new command from a program such as LaunchELF. And then what you describe would work well, but at present it could not work at all.

Changing this behaviour for an existing driver is not possible, so the only way to patch them is by patching a constant in the program file, which will then be used just once, when the driver is initialized. And that is the big problem, because most likely the HDD module will already have been initialized, for browsing in uLaunchELF, when you decide you want another speed.

So far this can only be done by hexediting the hdloader binary, but it would be really nice if this could be integrated into LaunchELF. It would also allow me to put the hdloader binary on the HDD while still using slower HDD access.
Like I said, after the driver has been initialized it no longer matters how we patch the copy of the driver we have inside uLaunchELF. That driver is already loaded and initialized, and that can't be done twice. The only way to do it would be to make a complete IOP reset, and many of the ps2dev functions for the EE processor, that interface to the modules of the IOP processor, have no capability of restarting after an IOP reset. We have already fixed that for a few modules, but not for all, so it just won't work right.

Best regards: dlanor