RPCS3

From Sinden Lightgun
Jump to navigation Jump to search



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

  • Follow the AutoHotkey wiki if you do not have AutoHotkey already installed.

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:

  • The Circle, Triangle, and Start buttons will be handled by an AutoHotKey script.
  • The Cross (X) button is the middle mouse button and should have been mapped in the Sinden software as shown above.
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.
  • Note: Deadstorm Pirates may also require this option enabled.
RPCS3 Config menu on GPU tab, "Write Color Buffers" option is enabled

Calibration

  • To accurately calibrate your lightgun, aim just outside of the targets and pull the trigger as shown below, otherwise your aim will be off during the game.
RPCS3 Calibration.png
  • When you are satisfied with the calibration, press the Triangle button to confirm.
  • Next, press the Circle button to exit the calibration screen.
  • Note: The Triangle and Circle buttons can be remapped in an ahk script. See the example below.

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 remap the Triangle and Circle buttons and 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.

  • This AHK script will set the game to fullscreen and allow the Sinden border to show on top.
  • For Time Crisis Razing Storm, use razingstorm.self in the launch script.
  • For Deadstorm Pirates, use pirates_PS3.ppu.self in the launch script.
  • Note: Having spaces in your AHK script will cause issues.
#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        ;Hides mouse cursor with nomousy

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         ; 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
}
 
;Circle Button
$Space::                   ;Sets your Circle Button to Space keyboard key
Send {XButton1 down}
sleep, 60
Send {XButton1 up}
Return
 
;Triangle Button
$Enter::                   ;Sets your Triangle Button to Enter keyboard key
Send {RButton down}
Sleep, 60
Send {MButton down}
sleep, 60
Send {MButton up}
Send {RButton up}
Return

;Start Button
$1::                   ;Sets your Start Button to keyboard key 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         ;Restores mouse cursor
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