Editing PS1DRV

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 26: Line 26:
Note: Beside this specific set, PS1DRV use standard VIF/GIF/TIMER/ETC. registers for transfers to GS, and other tasks.<br>
Note: Beside this specific set, PS1DRV use standard VIF/GIF/TIMER/ETC. registers for transfers to GS, and other tasks.<br>
( * ) are made up names.
( * ) are made up names.
==GP1 commands handling==
PS1DRV 1.1.0 handle GP1 (0x00,0x01,0x03,0x05-0x08) on software side, while commands 0x02, 0x04, and 0x10 are completely ignored by PS1DRV. This imply some kind of hardware behavior on PGIF side that take care of mentioned CMDs.
GP1 parser function is at 0x201D1C, a0 is command from buffer (0x70000060) which is previously read from sfifo.<br>
Function which read GP1 from sfifo is located at 0x204F08, and is set as pgif handler using syscall 114. Function additionally check if command is 0/1, if yes then flag indicating gp0 fifo flush in near future is set. This shorten time where pgif wait for gfifo, and eventually give up since flush is in the plan anyway.


==Hardcoded Settings==
==Hardcoded Settings==
Line 45: Line 40:
| sprt    || || Render Rectangle Delay by X multiplier.
| sprt    || || Render Rectangle Delay by X multiplier.
|-
|-
| mecha    || || Write values to 0x1F402014.
| mecha    || || Set 0x1F402014 to value (When greater than 2, this overwrites the speed setting set in OSDSYS.)
|-
|-
| null    || PARAM_CPU_DELAY || GP0 Increased Sync: Makes the emulator spend more time polling the GP0 FIFO directly,
| null    || PARAM_CPU_DELAY || GP0 Increased Sync: Makes the emulator spend more time polling the GP0 FIFO directly,
Line 84: Line 79:
|-
|-
|}
|}
*Configs which write to 0x1CB404XX write directly to 0x00B40400 400KB segment on Deckard PPC side.
*Configs which write to 0x1CB404XX write directly to 0x00B40400 400KB segment on Deckard PPC side.
*Source for non Deckard commands: https://psi-rockin.github.io/ps2tek/
*Source for non Deckard commands: https://psi-rockin.github.io/ps2tek/
*For Deckard commands see: [[IOP/Deckard#Per_game_configuration]]
*For Deckard commands see: [[IOP/Deckard#Per_game_configuration]]
====Mecha====
{| class="wikitable"
! Name !! Hex !! Description
|-
| || 0x11 || Delay every PS1 drive cmd by 79 units
|-
| || 0x12 || Allow Stop command even if disc is not valid CD media.
|-
| || 0x14 || Delay Getstat command by 79 units
|-
| || 0x17 || Some kind of timing for Pause command (70 units), same as 0x1A
|-
| || 0x18 || Some kind of timing for ReadS command (400 units)
|-
| || 0x19 || Skip seeking status check on cmd Pause
|-
| || 0x1A || Some kind of timing for Pause command (70 units), same as 0x17
|-
| || 0x1B || Some kind of timing for Pause command (100 units)
|-
| || 0x1C || Delay every PS1 drive cmd by 53 units
|-
| || 0x1D || Some kind of timing for SeekL/SeekP command (50 units)
|-
| || 0x1E || Change speed immediately if cdda is playing during Setmode, and new value differ from old.
|-
| || 0x1F || Some kind of timing for Pause command (40 units), combined with 0x1C setting
|-
| || 0xFE || Fast CD
|-                               
|}
Note: Some commands are missing from the list. "Unit" seems to be ms, but this need more work. Generally this table need more work, and should be considered as w.i.p.


===PS1DRV 1.1.0===
===PS1DRV 1.1.0===
Please note that all contributions to PS2 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS2 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)