Skip to content
Snippets Groups Projects
emufan's avatar
Geo Ster authored
* Implementing IOP components is probably the hardest task in a PS2
emulator, even compared to complex chips like the VUs. That is because
almost every single component in the IOP is completetly undocumented
so emulators have to make assumptions and reverse engineer them to
figure out what they do. This commit adds support three new IOP components.

* The DVD drive is quite simple in concept. It accepts two types of
commands, S commands (synchronous) and N commands (asynchronous).
Async commands are used mainly for seeks and reads, so the CPU
doesn't have to wait for the drive to fetch the data. On the other
hand S commands complete instantly and are used for more misc
operations.

* Both types of commands contain three registers; one stores
the current command, the other acts as the status register and
the third register either gives the current command output
(read) or stores the parameters of the command (write).

* SIO2 is very peculiar since very little is actually known about it.
It is responsible for managing peripherals like the memory card or
the DualShock controller. The CPU first sends a peripheral byte that
informs about the target peripheral, then a command and waits for
a reply. The SEND3 array contains the command size for each SIO2 command.

* Since in this case the gamepad gets accessed, that needs to be implemented.
To prevent this commit message from getting extermely long, because the
gamepad is very complex in its operation, I will talk about it in another
time. Check out the new txt file in the docs folder for more info
5a39532b
History
Name Last commit Last update