News/release from Nherve:

Hi,

I've written a DEV9 plugin that emulates HDD.

DEV9 is a part of the PS2 that handles USB, HDD and Ethernet.
In PCSX2, USB is handled by a USB plugin, HDD and Ethernet are handled by a DEV9 plugin.

To get it working :

1- Put MegaDev9.dll in the plugins folder of PCSX2 (NOT THE ROOT FOLDER), otherwise it won't
show up in the plugins list. The plugin doesn't require any external DLL to work.

2- Make sure you've a DEV9-capable PS2 BIOS. Slim PS2 BIOSes aren't compatible, your HDD
programs will always think the HDD isn't formatted (Thanks to Suloku for this info), and BIOSes
from old PS2s with PCMCIA may cause problems too. You must also have the EROM, ROM1 and ROM2
files with your BIOS. In other words, you must have a complete BIOS dump from your PS2. Don't
complain that the plugin doesn't work if you're using a downloaded (illegal) BIOS.

3- Configure the plugin. For that you must launch PCSX2, select MegaDev9 in the DEV9 plugins
list and click on the Configure button. A GUI will show up, here's its description :
-Enable logging : this is only for debugging purposes. The plugin will write all events
to a file.
-HDD file : enter the path and the name of the HDD image (see below for more info about
HDD image). If you leave it, the image will be created in the PCSX2 root folder.
-HDD size : select the size you want for the emulated HDD (HDD image). You can choose
from 1 GB to 127 GBs. I recommend selecting at least 8 GBs, lewer sizes could cause problems.

4- Launch your program. The first time, the HDD image will be created in the path that you
previously configured. Then your program will ask for formatting if it's able to do this. If
you followed the previous steps right, your program won't ask for formatting anymore, nor other
programs will do.

The HDD image is a file that will be used as a HDD, ie. when your program writes data in the
HDD, the plugin will write these data in this file. Don't delete or move it without
reconfiguring the HDD file path in the plugin, or you may cause problems.



Troubleshooting
Note : if your problem persists or if it's not described here, tell it to me. Attach a log file
if possible.

My program always asks for formatting.
If you've this problem, make sure you've a complete BIOS dump from a DEV9-capable PS2. The
first models with PCMCIA aren't DEV9-capable, and the slim PS2s aren't too. Make sure the
console doesn't tell it couldn't find rom1, rom2 or erom, these files are needed.

My program fails writing to the HDD.
Make sure you've enough space on your real HDD and also that the HDD image is big enough. Make
sure the HDD image doesn't have read-only attribute.

When I use savestates, I've problems with HDD funcs in my program.
That's normal, savestates aren't supported yet.

When I use the HDD command X, it doesn't work, it reports an error.
The command you're trying to use isn't implemented, or you're passing invalid args.

How can I copy games with HDLoader ?
You can't do this for the moment, except if GiGaHeRz's CDVD plugin works for you (it supports
changing DVD on the fly).



Note :
I designed the plugin to be as many portable as possible. The only Win32-only thing is the GUI.
If somebody is interested in porting the plugin for Linux, he's free to do it. Isolate all the
Win32-specific code snippets with #ifdef / #endif tags.

Changelog :

Version 1.0.0
First version, support for HDD emulation.

Download the plugin and its sources in the attachments.

Credits to :
- Sources of PS2SDK and DEV9Linuz, without them I think I couldn't have figured out how DEV9 works.
- Various documents explaining how PC IDE controllers work, the DEV9 one works identically
- Suloku for pointing the compatibility problems with slim PS2 BIOSes.

http://forums.ngemu.com/ps2-plugin-q...v9-plugin.html