Difference between revisions of "RPCS3"

From Sinden Lightgun
Jump to navigation Jump to search
Line 46: Line 46:
  
 
* Click on the '''Pads icon''' button.
 
* Click on the '''Pads icon''' button.
** Make sure that the button assignments of the controller do not conflict with the AHK script file or the Sinden software button assignments.
+
** Make sure that the button assignments of the controller do not conflict with the Sinden software button assignments or your AHK script.
  
 
[[File:RPCS3 Pads.png|none|thumb]]
 
[[File:RPCS3 Pads.png|none|thumb]]

Revision as of 05:10, 25 April 2023



Emulator
Emulates: PlayStation 3
Download: RPCS3 website
License: Free (GNU GPLv2)
Rpcs3 gameplay.jpg

RPCS3 is an open-source PlayStation 3 emulator/debugger written in C++ for Windows and Linux. It is the only emulator that can run commercial games, with over 2,000 considered playable. It also supports the PS3's internal PlayStation 1 emulator through the PlayStation Classics digital re-releases.

Expectations

  • Not every game works with the PS Move Mouse Handler. Be sure to check RPCS3's forums and Github's Issues to be absolutely sure the game you want to play is compatible.
  • RPCS3 currently only supports 1 lightgun.

Downloads

RPCS3

Download from the official site

Nomousy

Download from Google Drive

Daemon Tools Lite

Download from the Daemon Tools website

AHK

Download from the AutoHotkey website

How to configure RPCS3 to work with Sinden Lightgun

  • Download the latest PS3 firmware and place the PS3UPDAT.PUP file inside of the RPCS3 folder.
    • Start the RPCS3 emulator and then click on File > Install Firmware and select the PS3UPDAT.PUP file.
    • Wait for the firmware update to install.
  • Next, click on the Config icon button.
Screenshot of RPCS3 main window with Config button highlighted
  • Click on the I/O tab and change all the related settings following this picture:
RPCS3 IO.png.png
  • Click on the Advance tab and set Exclusive Fullscreen ModePrefer borderless fullscreen
RPCS3 Advanced.png.png
  • Click on the Emulator tab and set the following:
RPCS3 Emulator.png.png
  • Click on the Apply and Save buttons.
  • Click on the Pads icon button.
    • Make sure that the button assignments of the controller do not conflict with the Sinden software button assignments or your AHK script.
RPCS3 Pads.png


Sinden Software:

  • You must assign a button to the Mouse's Middle Button.
RPCS3 Sinden.png.png

These are the actual RPCS3 mouse mappings:

Move Motion Controller Mouse Button Mapping
T Button Left Mouse Button
Move Button (~) Right Mouse Button
Cross Button (X) Middle Mouse Button
Square Button (◻) Mouse Forward Button (Button 5)
Circle Button (O) Mouse Back Button (Button 4)
Triangle Button (△) Middle + Right Mouse Buttons
Start Left + Middle Mouse Buttons
Select Left + Right Mouse Buttons

Time Crisis Razing Storm (BLUS30528)

This section will show you how to set up Time Crisis Razing Storm (BLUS30528), which also includes the games Time Crisis 4 and Deadstorm Pirates.

  • Create a folder named "BLUS30528" inside of the dev_hdd0\disc folder => D:\RPCS3\dev_hdd0\disc\BLUS30528
    • Create a "disc" folder if it does not exist inside of the dev_hdd0 folder.
  • Place the three Time Crisis Razing Storm files (PS3_GAME, PS3_UPDATE, PS3_DIDC.SFB) into the BLUS30528 folder.
RazingStorm 1.png
  • Navigate to the BLUS30528\PS3_GAME\USRDIR folder and copy & paste the self files for Deadstorm Pirates (pirates_PS3.ppu.self), Razing Storm (razingstorm.self), and TC4 (timecrisis4.self) into the USRDIR folder.
    • The self files are located inside of the DSP, game1, and game2 folders.
RazingStorm 2.png

NOTE: DO NOT UPDATE the game. Leave it at version 01.00.

Fix for Time Crisis 4 white screen

  • In GPU tab, enable "Write Color Buffers" option.
RPCS3 Config menu on GPU tab, "Write Color Buffers" option is enabled

Troubleshooting

  • If your lightgun is not working in-game, make sure Controller 1 has been set to Motion Controller No. 7
Motion Controller No. 7

AHK Example for Time Crisis 4

To get past the calibration screen for Time Crisis 4, Razing Storm and Dead Storm Pirates, use this example AHK (thanks to ActionOnion for providing this). Update the paths for your setup. When calibrating and you're happy with it press Return, then Space to go back to the menu and start the actual game.

  • For Time Crisis Razing Storm, use razingstorm.self in the launch script.
  • For Deadstorm Pirates, use pirates_PS3.ppu.self in the launch script.
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

#SingleInstance Force

SetWorkingDir D:\RPCS3
 
Run, D:\RPCS3\rpcs3.exe D:\RPCS3\dev_hdd0\disc\BLUS30528\PS3_GAME\USRDIR\timecrisis4.self

sleep, 1000
Run, D:\nomousy\nomousy.exe /hide

sleep, 1000
CoordMode, Mouse, Screen
SysGet, PriMon, Monitor, %MonitorPrimary%
MX := (PriMonLeft + PriMonRight)//2
MY := (PriMonTop + PriMonBottom)//2
MouseMove, MX, MY

MouseGetPos, , , win
    maxWindow("ahk_id" win)
return

maxWindow(title) 
{
    WinMove, % title, , 0, 0, % A_ScreenWidth + 1, % A_ScreenHeight
    WinActivate, % title
    WinSet, Style, -0xC00000, % title
    WinSet, Style, -0x40000, % title
    WinSet, AlwaysOnTop, Off, % title
}
 
;Circle Button
$Space::
Send {XButton1 down}
sleep, 60
Send {XButton1 up}
Return
 
;Triangle Button
$Enter::
Send {RButton down}
Sleep, 60
Send {MButton down}
sleep, 60
Send {MButton up}
Send {RButton up}
Return

;Start Button
$1::
Send {LButton Down}
sleep, 60
Send {MButton Down}
sleep, 60
Send {MButton Up}
Send {LButton Up}
Return

$Esc::
Process,Close,rpcs3.exe
Run,taskkill /im "rpcs3.exe" /F
Run D:\nomousy\nomousy.exe
sleep, 500
ExitApp
Return

AHK with savestates example (skip calibration)

This AHK has been provided by Prof_gLX and is used to load Deadstorm Pirates or Time Crisis Razing Storm from a previously saved state to bypass calibrating each time a game is loaded. It does not work with Time Crisis 4 and will result in a black screen at each point of the game where a video would be loaded. It also integrates code for a pedal that sends a keyboard input. You will need to modify it to suit your needs and settings. This guide works for the game serial BLUS30528 only.

Required steps before using the AHK:

  • Start Razing Storm, calibrate your gun properly, reach the main menu of Time Crisis : Razing Storm and then press CTRL-S to make a savestate.
  • Go in the savestates subfolder. Rename BLUS30528.SAVESTAT to BLUS30528 - TimeCrisis Razing Storm.SAVESTAT
  • Start Deadstorm Pirates, calibrate your gun properly, reach the main menu of Deadstorm Pirates and then press CTRL-S to make a savestate.
  • Go in the savestates subfolder. Rename BLUS30528.SAVESTAT to BLUS30528 - DeadStorm Pirates.SAVESTAT.
  • Make the appropriate changes to the following AHK, one for Razing Storm and one for Deadstorm Pirates.
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
#SingleInstance Force
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

;FileCopy, %A_ScriptDir%\savestates\BLUS30528 - TimeCrisis4.SAVESTAT, %A_ScriptDir%\savestates\BLUS30528.SAVESTAT, 1                           ;Copies a previously saved state of Time Crisis 4 named exactly like this to the active savestate slot
FileCopy, %A_ScriptDir%\savestates\BLUS30528 - DeadStorm Pirates.SAVESTAT, %A_ScriptDir%\savestates\BLUS30528.SAVESTAT, 1                      ;Copies a previously saved state of Deadstorm Pirates named exactly like this to the active savestate slot
;FileCopy, %A_ScriptDir%\savestates\BLUS30528 - TimeCrisis Razing Storm.SAVESTAT, %A_ScriptDir%\savestates\BLUS30528.SAVESTAT, 1               ;Copies a previously saved state of Time Crisis Razing Storm named exactly like this to the active savestate slot

sleep,1000

run, %A_ScriptDir%\nonomousy.exe                                                            ;Hides mouse with noNOmousy, replace with regular nomousy if you prefer or disable by commenting with ;
sleep,500

;Run, rpcs3.exe --no-gui "dev_hdd0\disc\BLUS30528\PS3_GAME\USRDIR\timecrisis4.self"         ;Loads TC4 without savestate
;Run, rpcs3.exe --no-gui "dev_hdd0\disc\BLUS30528\PS3_GAME\USRDIR\pirates_PS3.ppu.self"     ;Loads DSP without savestate
;Run, rpcs3.exe --no-gui "dev_hdd0\disc\BLUS30528\PS3_GAME\USRDIR\razingstorm.self"         ;Loads Razing Storm without savestate
;Run, rpcs3.exe --no-gui --savestate "%A_ScriptDir%\savestates\BLUS30528.SAVESTAT" "dev_hdd0\disc\BLUS30528\PS3_GAME\USRDIR\timecrisis4.self"       ;Loads TC4 with savestate
Run, rpcs3.exe --no-gui --savestate "%A_ScriptDir%\savestates\BLUS30528.SAVESTAT" "dev_hdd0\disc\BLUS30528\PS3_GAME\USRDIR\pirates_PS3.ppu.self"    ;Loads DSP with savestate
;Run, rpcs3.exe --no-gui --savestate "%A_ScriptDir%\savestates\BLUS30528.SAVESTAT" "dev_hdd0\disc\BLUS30528\PS3_GAME\USRDIR\razingstorm.self"       ;Loads Razing Storm with savestate


sleep, 7000


CoordMode, Mouse, Screen                                            
SysGet, PriMon, Monitor, %MonitorPrimary%
MX := (PriMonLeft + PriMonRight)//2
MY := (PriMonTop + PriMonBottom)//2
MouseMove, MX, MY

MouseGetPos, , , win
    maxWindow("ahk_id" win)
return


maxWindow(title) 
{
    WinMove, % title, , 0, 0, % A_ScreenWidth + 1, % A_ScreenHeight         ; Makes window fit the screen, +1 needed for sinden border to be able to show on top of it
    WinActivate, % title
    WinSet, Style, -0xC00000, % title
    WinSet, Style, -0x40000, % title
    WinSet, AlwaysOnTop, Off, % title
}

;Triangle Button                                    
q::                     ;Set your triangle button to a keyboard key, I use Q
Send {RButton Down}
sleep, 60
Send {MButton Down}
sleep, 60
Send {MButton Up}
Send {RButton Up}
return

;Circle Button
e::                     ;Set your circle button to a keyboard key, I use E
Send {XButton1 Down}
sleep, 60
Send {XButton1 Up}
Return 

;Start Button
1::                     ;Set your circle button to a keyboard key, I use 1
Send {LButton Down}
sleep, 60
Send {MButton Down}
sleep, 60
Send {MButton Up}
Send {LButton Up}
Return      

v::                     ;Set your pedal keyboard key to Right Mouse button, I use V
    Send {RButton down}
    return

v up::
    Send {RButton up}
    return


Esc::
    Run, nonomousy.exe Restore          ;Restore mouse with noNOmousy, replace with regular nomousy if you prefer or disable by commenting with ;
    Process,Close,rpcs3.exe
    Run,taskkill /im "rpcs3.exe" /F
    ExitApp
return