From e34eeeb2580529b1f0af6166e9897f27b25118b1 Mon Sep 17 00:00:00 2001 From: rawdatafeel <108900299+rawdatafeel@users.noreply.github.com> Date: Fri, 2 Jun 2023 20:03:07 -0400 Subject: [PATCH] Migrate to RPCS3 AppImage --- .../rpcs3/GuiConfigs/CurrentSettings.ini | 2 +- configs/rpcs3/GuiConfigs/CurrentSettings.ini | 59 ++ configs/rpcs3/config.yml | 230 ++++++++ .../rpcs3/input_configs/active_profiles.yml | 2 + .../rpcs3/input_configs/global/Default.yml | 539 ++++++++++++++++++ configs/rpcs3/vfs.yml | 10 + .../sony-ps3-rpcs3-extracted_iso_psn.json | 2 +- .../parsers/emudeck/sony-ps3-rpcs3-pkg.json | 2 +- functions/EmuScripts/emuDeckRPCS3.sh | 97 +++- icons/RPCS3.svg | 88 +++ tools/binupdate/binupdate.sh | 10 + tools/launchers/rpcs3.sh | 30 +- 12 files changed, 1045 insertions(+), 26 deletions(-) create mode 100644 configs/rpcs3/GuiConfigs/CurrentSettings.ini create mode 100644 configs/rpcs3/config.yml create mode 100644 configs/rpcs3/input_configs/active_profiles.yml create mode 100644 configs/rpcs3/input_configs/global/Default.yml create mode 100644 configs/rpcs3/vfs.yml create mode 100644 icons/RPCS3.svg diff --git a/configs/net.rpcs3.RPCS3/config/rpcs3/GuiConfigs/CurrentSettings.ini b/configs/net.rpcs3.RPCS3/config/rpcs3/GuiConfigs/CurrentSettings.ini index bf77f73b..8df3047f 100644 --- a/configs/net.rpcs3.RPCS3/config/rpcs3/GuiConfigs/CurrentSettings.ini +++ b/configs/net.rpcs3.RPCS3/config/rpcs3/GuiConfigs/CurrentSettings.ini @@ -36,7 +36,7 @@ level=4 stack=true [Meta] -currentStylesheet=Darker Style by TheMitoSan +currentStylesheet=none discordState= showDebugTab=true useRichPresence=true diff --git a/configs/rpcs3/GuiConfigs/CurrentSettings.ini b/configs/rpcs3/GuiConfigs/CurrentSettings.ini new file mode 100644 index 00000000..2fcec557 --- /dev/null +++ b/configs/rpcs3/GuiConfigs/CurrentSettings.ini @@ -0,0 +1,59 @@ +[Config] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\xca\0\0\0\x1\0\0\x4!\0\0\x2\xcd\0\0\0\xca\0\0\0\x1e\0\0\x4!\0\0\x2\xcd\0\0\0\0\0\0\0\0\x5\0\0\0\0\xca\0\0\0\x1e\0\0\x4!\0\0\x2\xcd) + +[Debugger] +splitterState=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\xff\xff\xff\xff\xff\xff\xff\xff\x1\xff\xff\xff\xff\x1\0\0\0\x1\0) + +[GSFrame] +screen=0 + +[GameList] +hidden_list=@Invalid() +iconColor=@Variant(\0\0\0\x43\x1\xff\xff\xf0\xf0\xf0\xf0\xf0\xf0\0\0) +marginFactor=0.09 +sortAsc=true +sortCol=1 +state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x1\x1\0\0\0\0\0\0\0\0\0\0\0\xfH\x6\0\0\0\x4\0\0\0\x3\0\0\0\0\0\0\0\x6\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\n\0\0\0\0\0\0\x6\x15\0\0\0\xf\0\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x96\xff\xff\xff\xff\0\0\0\x1\0\0\0\0\0\0\0\xf\0\0\0U\0\0\0\x1\0\0\0\x2\0\0\0i\0\0\0\x1\0\0\0\0\0\0\0g\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0u\0\0\0\x1\0\0\0\0\0\0\0\x81\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\xbe\0\0\0\x1\0\0\0\0\0\0\0\xe6\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x92\0\0\0\x1\0\0\0\0\0\0\0\x97\0\0\0\x1\0\0\0\0\0\0\0\xa2\0\0\0\x1\0\0\0\0\0\0\0\x8b\0\0\0\x1\0\0\0\0\0\0\x3\xe8\x1\0\0\0\x8b) +textFactor=2 +visibility_column_category=true +visibility_column_compat=true +visibility_column_dir_size=true +visibility_column_firmware=false +visibility_column_icon=true +visibility_column_last_play=true +visibility_column_move=true +visibility_column_name=true +visibility_column_parental=false +visibility_column_path=false +visibility_column_playtime=true +visibility_column_resolution=true +visibility_column_serial=true +visibility_column_sound=false +visibility_column_version=true + +[Localization] +language=en + +[Logger] +ANSI_code=true +ERR_stack=true +level=4 +stack=true + +[Meta] +checkUpdateStart=true +currentStylesheet=none +discordState= +enableUIColors=false +showDebugTab=false +useRichPresence=true + +[PadSettings] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0~\0\0\0\0\0\0\x4m\0\0\x3\x1f\0\0\0~\0\0\0\x1d\0\0\x4m\0\0\x3\x1f\0\0\0\0\0\0\0\0\x5\0\0\0\0~\0\0\0\x1d\0\0\x4m\0\0\x3\x1f) + +[main_window] +confirmationBoxExitGame=false +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x4\xff\0\0\x3\x1f\0\0\0\xc0\0\0\0\x86\0\0\x4?\0\0\x2\xb5\0\0\0\0\x2\0\0\0\x5\0\0\0\0\0\0\0\0\x1d\0\0\x4\xff\0\0\x3\x1f) +infoBoxEnabledWelcome=false +mwState=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\0\0\0\x5\0\0\0\x2\xa1\xfc\x2\0\0\0\x2\xfb\0\0\0\x10\0g\0\x61\0m\0\x65\0l\0i\0s\0t\x1\0\0\0\0\0\0\x1n\0\0\0^\0\xff\xff\xff\xfb\0\0\0\f\0l\0o\0g\0g\0\x65\0r\x1\0\0\x1t\0\0\x1-\0\0\0\xa8\0\xff\xff\xff\0\0\0\x1\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x10\0\x64\0\x65\0\x62\0u\0g\0g\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xd6\0\xff\xff\xff\0\0\0\0\0\0\x2\xa1\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0) +windowState=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\0\0\0\x5\0\0\0\x2\xa1\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x1\0\0\0\x14\0m\0w\0_\0t\0o\0o\0l\0\x62\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0) \ No newline at end of file diff --git a/configs/rpcs3/config.yml b/configs/rpcs3/config.yml new file mode 100644 index 00000000..c444a08d --- /dev/null +++ b/configs/rpcs3/config.yml @@ -0,0 +1,230 @@ +Core: + PPU Decoder: Recompiler (LLVM) + PPU Threads: 2 + PPU Debug: false + PPU Calling History: false + Save LLVM logs: false + Use LLVM CPU: "" + Max LLVM Compile Threads: 0 + PPU LLVM Greedy Mode: false + PPU LLVM Precompilation: true + Thread Scheduler Mode: Operating System + Set DAZ and FTZ: false + SPU Decoder: Recompiler (LLVM) + SPU Reservation Busy Waiting Percentage: 0 + SPU GETLLAR Busy Waiting Percentage: 100 + SPU Debug: false + MFC Debug: false + Preferred SPU Threads: 0 + SPU delay penalty: 3 + SPU loop detection: false + Max SPURS Threads: 6 + SPU Block Size: Safe + Accurate GETLLAR: false + Accurate SPU DMA: false + Accurate SPU Reservations: true + Accurate Cache Line Stores: false + Accurate RSX reservation access: false + RSX FIFO Accuracy: Fast + SPU Verification: true + SPU Cache: true + SPU Profiler: false + MFC Commands Shuffling Limit: 0 + MFC Commands Timeout: 0 + MFC Commands Shuffling In Steps: false + Enable TSX: Disabled + Accurate xfloat: false + Approximate xfloat: true + Relaxed xfloat: true + Accurate PPU 128-byte Reservation Op Max Length: 0 + Stub PPU Traps: 0 + Full Width AVX-512: false + PPU LLVM Java Mode Handling: true + Use Accurate DFMA: true + PPU Set Saturation Bit: false + PPU Accurate Non-Java Mode: false + PPU Fixup Vector NaN Values: false + PPU Accurate Vector NaN Values: false + PPU Set FPCC Bits: false + Debug Console Mode: false + Hook static functions: false + Libraries Control: + [] + HLE lwmutex: false + SPU LLVM Lower Bound: 0 + SPU LLVM Upper Bound: 18446744073709551615 + TSX Transaction First Limit: 800 + TSX Transaction Second Limit: 2000 + Clocks scale: 100 + SPU Wake-Up Delay: 0 + SPU Wake-Up Delay Thread Mask: 63 + Max CPU Preempt Count: 0 + Allow RSX CPU Preemptions: true + Sleep Timers Accuracy: As Host + Performance Report Threshold: 500 + Enable Performance Report: false + Assume External Debugger: false +VFS: + Enable /host_root/: false + Initialize Directories: true + Limit disk cache size: false + Disk cache maximum size (MB): 5120 + Empty /dev_hdd0/tmp/: true +Video: + Renderer: Vulkan + Resolution: 1280x720 + Aspect ratio: 16:9 + Frame limit: Auto + Second Frame Limit: 0 + MSAA: Auto + Shader Mode: Async Shader Recompiler + Shader Precision: High + Write Color Buffers: false + Write Depth Buffer: false + Read Color Buffers: false + Read Depth Buffer: false + Log shader programs: false + VSync: false + Debug output: false + Debug overlay: false + Renderdoc Compatibility Mode: false + Use GPU texture scaling: false + Stretch To Display Area: false + Force High Precision Z buffer: false + Strict Rendering Mode: false + Disable ZCull Occlusion Queries: false + Disable Video Output: false + Disable Vertex Cache: false + Disable FIFO Reordering: false + Enable Frame Skip: false + Force CPU Blit: false + Disable On-Disk Shader Cache: false + Disable Vulkan Memory Allocator: false + Use full RGB output range: true + Strict Texture Flushing: false + Multithreaded RSX: false + Relaxed ZCULL Sync: false + 3D Display Mode: Disabled + Debug Program Analyser: false + Accurate ZCULL stats: true + Consecutive Frames To Draw: 1 + Consecutive Frames To Skip: 1 + Resolution Scale: 100 + Anisotropic Filter Override: 0 + Texture LOD Bias Addend: 0 + Minimum Scalable Dimension: 16 + Shader Compiler Threads: 0 + Driver Recovery Timeout: 1000000 + Driver Wake-Up Delay: 1 + Vblank Rate: 60 + Vblank NTSC Fixup: false + DECR memory layout: false + Allow Host GPU Labels: false + Disable MSL Fast Math: false + Output Scaling Mode: Bilinear + Vulkan: + Adapter: AMD Custom GPU 0405 (RADV VANGOGH) + Force FIFO present mode: false + Force primitive restart flag: false + Exclusive Fullscreen Mode: Automatic + Asynchronous Texture Streaming 2: false + FidelityFX CAS Sharpening Intensity: 50 + Asynchronous Queue Scheduler: Safe + VRAM allocation limit (MB): 65536 + Performance Overlay: + Enabled: false + Enable Framerate Graph: false + Enable Frametime Graph: false + Framerate datapoints: 50 + Frametime datapoints: 170 + Detail level: Medium + Framerate graph detail level: All + Frametime graph detail level: All + Metrics update interval (ms): 350 + Font size (px): 10 + Position: Top Left + Font: n023055ms.ttf + Horizontal Margin (px): 50 + Vertical Margin (px): 50 + Center Horizontally: false + Center Vertically: false + Opacity (%): 70 + Body Color (hex): "#FFE138FF" + Body Background (hex): "#002339FF" + Title Color (hex): "#F26C24FF" + Title Background (hex): "#00000000" + Shader Loading Dialog: + Allow custom background: true + Darkening effect strength: 30 + Blur effect strength: 0 +Audio: + Renderer: Cubeb + Audio Provider: CellAudio + RSXAudio Avport: HDMI 0 + Dump to file: false + Convert to 16 bit: false + Audio Format: Stereo + Audio Formats: 0 + Audio Device: "@@@default@@@" + Master Volume: 100 + Enable Buffering: true + Desired Audio Buffer Duration: 100 + Enable Time Stretching: false + Disable Sampling Skip: false + Time Stretching Threshold: 75 + Microphone Type: "Null" + Microphone Devices: "@@@@@@@@@@@@" + Music Handler: Qt +Input/Output: + Keyboard: "Null" + Mouse: Basic + Camera: "Null" + Camera type: Unknown + Camera flip: None + Camera ID: Default + Move: "Null" + Buzz emulated controller: "Null" + Turntable emulated controller: "Null" + GHLtar emulated controller: "Null" + Pad handler mode: Single-threaded + Keep pads connected: false + Pad handler sleep (microseconds): 1000 + Background input enabled: true + Show move cursor: false + Emulated Midi devices: Keyboardßßß@@@Keyboardßßß@@@Keyboardßßß@@@ +System: + License Area: SCEA + Language: English (US) + Keyboard Type: English keyboard (US standard) + Enter button assignment: Enter with cross + Console time offset (s): 0 + PSID high: 0 + PSID low: 0 + HDD Model Name: "" + HDD Serial Number: "" +Net: + Internet enabled: Disconnected + IP address: 0.0.0.0 + Bind address: 0.0.0.0 + DNS address: 8.8.8.8 + IP swap list: "" + UPNP Enabled: false + PSN status: Disconnected +Savestate: + Start Paused: false + Suspend Emulation Savestate Mode: false + Inspection Mode Savestates: false + Save Disc Game Data: false +Miscellaneous: + Automatically start games after boot: true + Exit RPCS3 when process finishes: false + Start games in fullscreen mode: true + Prevent display sleep while running games: true + Show trophy popups: true + Show shader compilation hint: true + Use native user interface: true + GDB Server: 127.0.0.1:2345 + Silence All Logs: false + Window Title Format: "FPS: %F | %R | %V | %T [%t]" + Pause Emulation During Home Menu: false +Log: {} \ No newline at end of file diff --git a/configs/rpcs3/input_configs/active_profiles.yml b/configs/rpcs3/input_configs/active_profiles.yml new file mode 100644 index 00000000..4f8b6181 --- /dev/null +++ b/configs/rpcs3/input_configs/active_profiles.yml @@ -0,0 +1,2 @@ +Active Profiles: + global: Default \ No newline at end of file diff --git a/configs/rpcs3/input_configs/global/Default.yml b/configs/rpcs3/input_configs/global/Default.yml new file mode 100644 index 00000000..a3a2a1f0 --- /dev/null +++ b/configs/rpcs3/input_configs/global/Default.yml @@ -0,0 +1,539 @@ +Player 1 Input: + Handler: Evdev + Device: Microsoft X-Box 360 pad 0 + Config: + Left Stick Left: LX- + Left Stick Down: LY+ + Left Stick Right: LX+ + Left Stick Up: LY- + Right Stick Left: RX- + Right Stick Down: RY+ + Right Stick Right: RX+ + Right Stick Up: RY- + Start: Start + Select: Select + PS Button: Mode + Square: X + Cross: A + Circle: B + Triangle: Y + Left: Hat0 X- + Down: Hat0 Y+ + Right: Hat0 X+ + Up: Hat0 Y- + R1: TR + R2: RZ+ + R3: Thumb R + L1: TL + L2: LZ+ + L3: Thumb L + Motion Sensor X: + Axis: X + Mirrored: false + Shift: 0 + Motion Sensor Y: + Axis: Y + Mirrored: false + Shift: 0 + Motion Sensor Z: + Axis: Z + Mirrored: false + Shift: 0 + Motion Sensor G: + Axis: RX + Mirrored: false + Shift: 0 + Pressure Intensity Button: "" + Pressure Intensity Percent: 50 + Left Stick Multiplier: 100 + Right Stick Multiplier: 100 + Left Stick Deadzone: 30 + Right Stick Deadzone: 30 + Left Trigger Threshold: 0 + Right Trigger Threshold: 0 + Left Pad Squircling Factor: 5000 + Right Pad Squircling Factor: 5000 + Color Value R: 0 + Color Value G: 0 + Color Value B: 20 + Blink LED when battery is below 20%: true + Use LED as a battery indicator: false + LED battery indicator brightness: 10 + Enable Large Vibration Motor: true + Enable Small Vibration Motor: true + Switch Vibration Motors: false + Mouse Movement Mode: Relative + Mouse Deadzone X Axis: 60 + Mouse Deadzone Y Axis: 60 + Mouse Acceleration X Axis: 200 + Mouse Acceleration Y Axis: 250 + Left Stick Lerp Factor: 100 + Right Stick Lerp Factor: 100 + Analog Button Lerp Factor: 100 + Trigger Lerp Factor: 100 + Device Class Type: 0 + Vendor ID: 1356 + Product ID: 616 + Buddy Device: "Null" +Player 2 Input: + Handler: Evdev + Device: Microsoft X-Box 360 pad 1 + Config: + Left Stick Left: LX- + Left Stick Down: LY+ + Left Stick Right: LX+ + Left Stick Up: LY- + Right Stick Left: RX- + Right Stick Down: RY+ + Right Stick Right: RX+ + Right Stick Up: RY- + Start: Start + Select: Select + PS Button: Mode + Square: X + Cross: A + Circle: B + Triangle: Y + Left: Hat0 X- + Down: Hat0 Y+ + Right: Hat0 X+ + Up: Hat0 Y- + R1: TR + R2: RZ+ + R3: Thumb R + L1: TL + L2: LZ+ + L3: Thumb L + Motion Sensor X: + Axis: X + Mirrored: false + Shift: 0 + Motion Sensor Y: + Axis: Y + Mirrored: false + Shift: 0 + Motion Sensor Z: + Axis: Z + Mirrored: false + Shift: 0 + Motion Sensor G: + Axis: RX + Mirrored: false + Shift: 0 + Pressure Intensity Button: "" + Pressure Intensity Percent: 50 + Left Stick Multiplier: 100 + Right Stick Multiplier: 100 + Left Stick Deadzone: 30 + Right Stick Deadzone: 30 + Left Trigger Threshold: 0 + Right Trigger Threshold: 0 + Left Pad Squircling Factor: 5000 + Right Pad Squircling Factor: 5000 + Color Value R: 0 + Color Value G: 0 + Color Value B: 20 + Blink LED when battery is below 20%: true + Use LED as a battery indicator: false + LED battery indicator brightness: 10 + Enable Large Vibration Motor: true + Enable Small Vibration Motor: true + Switch Vibration Motors: false + Mouse Movement Mode: Relative + Mouse Deadzone X Axis: 60 + Mouse Deadzone Y Axis: 60 + Mouse Acceleration X Axis: 200 + Mouse Acceleration Y Axis: 250 + Left Stick Lerp Factor: 100 + Right Stick Lerp Factor: 100 + Analog Button Lerp Factor: 100 + Trigger Lerp Factor: 100 + Device Class Type: 0 + Vendor ID: 1356 + Product ID: 616 + Buddy Device: "Null" +Player 3 Input: + Handler: Evdev + Device: Microsoft X-Box 360 pad 2 + Config: + Left Stick Left: LX- + Left Stick Down: LY+ + Left Stick Right: LX+ + Left Stick Up: LY- + Right Stick Left: RX- + Right Stick Down: RY+ + Right Stick Right: RX+ + Right Stick Up: RY- + Start: Start + Select: Select + PS Button: Mode + Square: X + Cross: A + Circle: B + Triangle: Y + Left: Hat0 X- + Down: Hat0 Y+ + Right: Hat0 X+ + Up: Hat0 Y- + R1: TR + R2: RZ+ + R3: Thumb R + L1: TL + L2: LZ+ + L3: Thumb L + Motion Sensor X: + Axis: X + Mirrored: false + Shift: 0 + Motion Sensor Y: + Axis: Y + Mirrored: false + Shift: 0 + Motion Sensor Z: + Axis: Z + Mirrored: false + Shift: 0 + Motion Sensor G: + Axis: RX + Mirrored: false + Shift: 0 + Pressure Intensity Button: "" + Pressure Intensity Percent: 50 + Left Stick Multiplier: 100 + Right Stick Multiplier: 100 + Left Stick Deadzone: 30 + Right Stick Deadzone: 30 + Left Trigger Threshold: 0 + Right Trigger Threshold: 0 + Left Pad Squircling Factor: 5000 + Right Pad Squircling Factor: 5000 + Color Value R: 0 + Color Value G: 0 + Color Value B: 20 + Blink LED when battery is below 20%: true + Use LED as a battery indicator: false + LED battery indicator brightness: 10 + Enable Large Vibration Motor: true + Enable Small Vibration Motor: true + Switch Vibration Motors: false + Mouse Movement Mode: Relative + Mouse Deadzone X Axis: 60 + Mouse Deadzone Y Axis: 60 + Mouse Acceleration X Axis: 200 + Mouse Acceleration Y Axis: 250 + Left Stick Lerp Factor: 100 + Right Stick Lerp Factor: 100 + Analog Button Lerp Factor: 100 + Trigger Lerp Factor: 100 + Device Class Type: 0 + Vendor ID: 1356 + Product ID: 616 + Buddy Device: "Null" +Player 4 Input: + Handler: Evdev + Device: Microsoft X-Box 360 pad 3 + Config: + Left Stick Left: LX- + Left Stick Down: LY+ + Left Stick Right: LX+ + Left Stick Up: LY- + Right Stick Left: RX- + Right Stick Down: RY+ + Right Stick Right: RX+ + Right Stick Up: RY- + Start: Start + Select: Select + PS Button: Mode + Square: X + Cross: A + Circle: B + Triangle: Y + Left: Hat0 X- + Down: Hat0 Y+ + Right: Hat0 X+ + Up: Hat0 Y- + R1: TR + R2: RZ+ + R3: Thumb R + L1: TL + L2: LZ+ + L3: Thumb L + Motion Sensor X: + Axis: X + Mirrored: false + Shift: 0 + Motion Sensor Y: + Axis: Y + Mirrored: false + Shift: 0 + Motion Sensor Z: + Axis: Z + Mirrored: false + Shift: 0 + Motion Sensor G: + Axis: RX + Mirrored: false + Shift: 0 + Pressure Intensity Button: "" + Pressure Intensity Percent: 50 + Left Stick Multiplier: 100 + Right Stick Multiplier: 100 + Left Stick Deadzone: 30 + Right Stick Deadzone: 30 + Left Trigger Threshold: 0 + Right Trigger Threshold: 0 + Left Pad Squircling Factor: 5000 + Right Pad Squircling Factor: 5000 + Color Value R: 0 + Color Value G: 0 + Color Value B: 0 + Blink LED when battery is below 20%: true + Use LED as a battery indicator: false + LED battery indicator brightness: 50 + Enable Large Vibration Motor: true + Enable Small Vibration Motor: true + Switch Vibration Motors: false + Mouse Movement Mode: Relative + Mouse Deadzone X Axis: 60 + Mouse Deadzone Y Axis: 60 + Mouse Acceleration X Axis: 200 + Mouse Acceleration Y Axis: 250 + Left Stick Lerp Factor: 100 + Right Stick Lerp Factor: 100 + Analog Button Lerp Factor: 100 + Trigger Lerp Factor: 100 + Device Class Type: 0 + Vendor ID: 1356 + Product ID: 616 + Buddy Device: "Null" +Player 5 Input: + Handler: "Null" + Device: "Null" + Config: + Left Stick Left: "" + Left Stick Down: "" + Left Stick Right: "" + Left Stick Up: "" + Right Stick Left: "" + Right Stick Down: "" + Right Stick Right: "" + Right Stick Up: "" + Start: "" + Select: "" + PS Button: "" + Square: "" + Cross: "" + Circle: "" + Triangle: "" + Left: "" + Down: "" + Right: "" + Up: "" + R1: "" + R2: "" + R3: "" + L1: "" + L2: "" + L3: "" + Motion Sensor X: + Axis: "" + Mirrored: false + Shift: 0 + Motion Sensor Y: + Axis: "" + Mirrored: false + Shift: 0 + Motion Sensor Z: + Axis: "" + Mirrored: false + Shift: 0 + Motion Sensor G: + Axis: "" + Mirrored: false + Shift: 0 + Pressure Intensity Button: "" + Pressure Intensity Percent: 50 + Left Stick Multiplier: 100 + Right Stick Multiplier: 100 + Left Stick Deadzone: 0 + Right Stick Deadzone: 0 + Left Trigger Threshold: 0 + Right Trigger Threshold: 0 + Left Pad Squircling Factor: 0 + Right Pad Squircling Factor: 0 + Color Value R: 0 + Color Value G: 0 + Color Value B: 0 + Blink LED when battery is below 20%: true + Use LED as a battery indicator: false + LED battery indicator brightness: 50 + Enable Large Vibration Motor: true + Enable Small Vibration Motor: true + Switch Vibration Motors: false + Mouse Movement Mode: Relative + Mouse Deadzone X Axis: 60 + Mouse Deadzone Y Axis: 60 + Mouse Acceleration X Axis: 200 + Mouse Acceleration Y Axis: 250 + Left Stick Lerp Factor: 100 + Right Stick Lerp Factor: 100 + Analog Button Lerp Factor: 100 + Trigger Lerp Factor: 100 + Device Class Type: 0 + Vendor ID: 1356 + Product ID: 616 + Buddy Device: "Null" +Player 6 Input: + Handler: "Null" + Device: "Null" + Config: + Left Stick Left: "" + Left Stick Down: "" + Left Stick Right: "" + Left Stick Up: "" + Right Stick Left: "" + Right Stick Down: "" + Right Stick Right: "" + Right Stick Up: "" + Start: "" + Select: "" + PS Button: "" + Square: "" + Cross: "" + Circle: "" + Triangle: "" + Left: "" + Down: "" + Right: "" + Up: "" + R1: "" + R2: "" + R3: "" + L1: "" + L2: "" + L3: "" + Motion Sensor X: + Axis: "" + Mirrored: false + Shift: 0 + Motion Sensor Y: + Axis: "" + Mirrored: false + Shift: 0 + Motion Sensor Z: + Axis: "" + Mirrored: false + Shift: 0 + Motion Sensor G: + Axis: "" + Mirrored: false + Shift: 0 + Pressure Intensity Button: "" + Pressure Intensity Percent: 50 + Left Stick Multiplier: 100 + Right Stick Multiplier: 100 + Left Stick Deadzone: 0 + Right Stick Deadzone: 0 + Left Trigger Threshold: 0 + Right Trigger Threshold: 0 + Left Pad Squircling Factor: 0 + Right Pad Squircling Factor: 0 + Color Value R: 0 + Color Value G: 0 + Color Value B: 0 + Blink LED when battery is below 20%: true + Use LED as a battery indicator: false + LED battery indicator brightness: 50 + Enable Large Vibration Motor: true + Enable Small Vibration Motor: true + Switch Vibration Motors: false + Mouse Movement Mode: Relative + Mouse Deadzone X Axis: 60 + Mouse Deadzone Y Axis: 60 + Mouse Acceleration X Axis: 200 + Mouse Acceleration Y Axis: 250 + Left Stick Lerp Factor: 100 + Right Stick Lerp Factor: 100 + Analog Button Lerp Factor: 100 + Trigger Lerp Factor: 100 + Device Class Type: 0 + Vendor ID: 0 + Product ID: 0 + Buddy Device: "Null" +Player 7 Input: + Handler: "Null" + Device: "Null" + Config: + Left Stick Left: "" + Left Stick Down: "" + Left Stick Right: "" + Left Stick Up: "" + Right Stick Left: "" + Right Stick Down: "" + Right Stick Right: "" + Right Stick Up: "" + Start: "" + Select: "" + PS Button: "" + Square: "" + Cross: "" + Circle: "" + Triangle: "" + Left: "" + Down: "" + Right: "" + Up: "" + R1: "" + R2: "" + R3: "" + L1: "" + L2: "" + L3: "" + Motion Sensor X: + Axis: "" + Mirrored: false + Shift: 0 + Motion Sensor Y: + Axis: "" + Mirrored: false + Shift: 0 + Motion Sensor Z: + Axis: "" + Mirrored: false + Shift: 0 + Motion Sensor G: + Axis: "" + Mirrored: false + Shift: 0 + Pressure Intensity Button: "" + Pressure Intensity Percent: 50 + Left Stick Multiplier: 100 + Right Stick Multiplier: 100 + Left Stick Deadzone: 0 + Right Stick Deadzone: 0 + Left Trigger Threshold: 0 + Right Trigger Threshold: 0 + Left Pad Squircling Factor: 0 + Right Pad Squircling Factor: 0 + Color Value R: 0 + Color Value G: 0 + Color Value B: 0 + Blink LED when battery is below 20%: true + Use LED as a battery indicator: false + LED battery indicator brightness: 50 + Enable Large Vibration Motor: true + Enable Small Vibration Motor: true + Switch Vibration Motors: false + Mouse Movement Mode: Relative + Mouse Deadzone X Axis: 60 + Mouse Deadzone Y Axis: 60 + Mouse Acceleration X Axis: 200 + Mouse Acceleration Y Axis: 250 + Left Stick Lerp Factor: 100 + Right Stick Lerp Factor: 100 + Analog Button Lerp Factor: 100 + Trigger Lerp Factor: 100 + Device Class Type: 0 + Vendor ID: 0 + Product ID: 0 + Buddy Device: "Null" \ No newline at end of file diff --git a/configs/rpcs3/vfs.yml b/configs/rpcs3/vfs.yml new file mode 100644 index 00000000..172caab3 --- /dev/null +++ b/configs/rpcs3/vfs.yml @@ -0,0 +1,10 @@ +$(EmulatorDir): "" +/dev_hdd0/: $(EmulatorDir)dev_hdd0/ +/dev_hdd1/: $(EmulatorDir)dev_hdd1/ +/dev_flash/: $(EmulatorDir)dev_flash/ +/dev_flash2/: $(EmulatorDir)dev_flash2/ +/dev_flash3/: $(EmulatorDir)dev_flash3/ +/dev_usb000/: $(EmulatorDir)dev_usb000/ +/dev_bdvd/: "" +/app_home/: "" +/games/: $(EmulatorDir)games/ \ No newline at end of file diff --git a/configs/steam-rom-manager/userData/parsers/emudeck/sony-ps3-rpcs3-extracted_iso_psn.json b/configs/steam-rom-manager/userData/parsers/emudeck/sony-ps3-rpcs3-extracted_iso_psn.json index 99d56568..1bbe3fe7 100644 --- a/configs/steam-rom-manager/userData/parsers/emudeck/sony-ps3-rpcs3-extracted_iso_psn.json +++ b/configs/steam-rom-manager/userData/parsers/emudeck/sony-ps3-rpcs3-extracted_iso_psn.json @@ -7,7 +7,7 @@ "steamDirectory": "${steamdirglobal}", "startInDirectory": "", "titleModifier": "${fuzzyTitle}", - "executableArgs": "--no-gui \"${filePath}\"", + "executableArgs": "--no-gui \"'${filePath}'\"", "onlineImageQueries": "${${fuzzyTitle}}", "imagePool": "${fuzzyTitle}", "imageProviders": ["SteamGridDB"], diff --git a/configs/steam-rom-manager/userData/parsers/emudeck/sony-ps3-rpcs3-pkg.json b/configs/steam-rom-manager/userData/parsers/emudeck/sony-ps3-rpcs3-pkg.json index a9d5934d..f83b3183 100644 --- a/configs/steam-rom-manager/userData/parsers/emudeck/sony-ps3-rpcs3-pkg.json +++ b/configs/steam-rom-manager/userData/parsers/emudeck/sony-ps3-rpcs3-pkg.json @@ -4,7 +4,7 @@ "steamCategory": "${PlayStation 3}", "steamDirectory": "${steamdirglobal}", "romDirectory": "/run/media/mmcblk0p1/Emulation/storage/rpcs3/dev_hdd0/game", - "executableArgs": "--no-gui \"${filePath}\"", + "executableArgs": "--no-gui \"'${filePath}'\"", "executableModifier": "\"${exePath}\"", "startInDirectory": "", "titleModifier": "${fuzzyTitle}", diff --git a/functions/EmuScripts/emuDeckRPCS3.sh b/functions/EmuScripts/emuDeckRPCS3.sh index 5a7b3b5c..81d0cb5b 100644 --- a/functions/EmuScripts/emuDeckRPCS3.sh +++ b/functions/EmuScripts/emuDeckRPCS3.sh @@ -1,10 +1,10 @@ #!/bin/bash #variables RPCS3_remuName="RPCS3" -RPCS3_emuType="FlatPak" -RPCS3_emuPath="net.rpcs3.RPCS3" -RPCS3_releaseURL="" -RPCS3_VFSConf="$HOME/.var/app/${RPCS3_emuPath}/config/rpcs3/vfs.yml" +RPCS3_emuType="AppImage" +RPCS3_releaseURL="https://rpcs3.net/latest-appimage" +RPCS3_emuPath="$HOME/Applications/rpcs3.AppImage" +RPCS3_VFSConf="$HOME/.config/rpcs3/vfs.yml" #cleanupOlderThings RPCS3_cleanup(){ @@ -13,21 +13,49 @@ RPCS3_cleanup(){ #Install RPCS3_install(){ - installEmuFP "${RPCS3_remuName}" "${RPCS3_emuPath}" - flatpak override "${RPCS3_emuPath}" --filesystem=host --user + setMSG "Installing RPCS3" + + # RPCS3 does not have a "latest" tag on their GitHub repo. Open issue said to use the below URL instead. Modified from ES-DE script + RPCS3_releaseMD5="$(curl -sL https://rpcs3.net/latest-appimage | md5sum | cut -d ' ' -f 1)" + + local showProgress="$1" + + if [[ $RPCS3_releaseURL = "https://rpcs3.net/latest-appimage"* ]]; then + + if safeDownload "$RPCS3_remuName" "$RPCS3_releaseURL" "$RPCS3_emuPath" "$showProgress"; then + RPCS3_md5sum=($(md5sum $RPCS3_emuPath)) # get first element + if [ "$RPCS3_md5sum" == "$RPCS3_releaseMD5" ]; then + echo "RPCS3 PASSED HASH CHECK." + chmod +x "$RPCS3_emuPath" + else + echo "RPCS3 FAILED HASH CHECK. Expected $RPCS3_releaseMD5, got $RPCS3_md5sum" + fi + else + return 1 + fi + else + setMSG "$RPCS3_remuName not found" + return 1 + fi + + # Preserve flatpak permissions for old RPCS3 Install + flatpak override net.rpcs3.RPCS3 --filesystem=host --user + } #ApplyInitialSettings RPCS3_init(){ - configEmuFP "${RPCS3_remuName}" "${RPCS3_emuPath}" "true" + configEmuAI "$RPCS3_emuName" "config" "$HOME/.config/rpcs3" "$EMUDECKGIT/configs/rpcs3" "true" RPCS3_setupStorage RPCS3_setEmulationFolder RPCS3_setupSaves + RPCS3_createDesktopShortcut + } #update RPCS3_update(){ - configEmuFP "${RPCS3_remuName}" "${RPCS3_emuPath}" + configEmuAI "$RPCS3_emuName" "config" "$HOME/.config/rpcs3" "$EMUDECKGIT/configs/rpcs3" RPCS3_setupStorage RPCS3_setEmulationFolder RPCS3_setupSaves @@ -50,46 +78,73 @@ RPCS3_setupStorage(){ mkdir -p "$storagePath/rpcs3/" - if [ ! -d "$storagePath"/rpcs3/dev_hdd0 ] && [ -d "$HOME/.var/app/${RPCS3_emuPath}/" ];then - echo "rpcs3 hdd does not exist in storagepath." + if [ ! -d "$storagePath"/rpcs3/dev_hdd0 ] && [ -d "$HOME/.var/app/net.rpcs3.RPCS3/config/rpcs3/" -o -d "$HOME/.config/rpcs3/" ]; then + echo "RPCS3 HDD does not exist in storage path" echo -e "" - setMSG "Moving rpcs3 HDD to the Emulation/storage folder" + setMSG "Moving RPCS3 HDD to the Emulation/storage folder" echo -e "" - - mkdir -p "$storagePath/rpcs3" + + mkdir -p "$storagePath/rpcs3" if [ -d "$savesPath/rpcs3/dev_hdd0" ]; then mv -f "$savesPath"/rpcs3/dev_hdd0 "$storagePath"/rpcs3/ - elif [ -d "$HOME/.var/app/${RPCS3_emuPath}/config/rpcs3/dev_hdd0" ]; then - rsync -av "$HOME/.var/app/${RPCS3_emuPath}/config/rpcs3/dev_hdd0" "$storagePath"/rpcs3/ && rm -rf "$HOME/.var/app/${RPCS3_emuPath}/config/rpcs3/dev_hdd0" + elif [ -d "$HOME/.var/app/net.rpcs3.RPCS3/config/rpcs3/dev_hdd0" ]; then + rsync -av "$HOME/.var/app/net.rpcs3.RPCS3/config/rpcs3/dev_hdd0" "$storagePath"/rpcs3/ && rm -rf "$HOME/.var/app/net.rpcs3.RPCS3/config/rpcs3/dev_hdd0" + + elif [ -d "$HOME/.config/rpcs3/dev_hdd0" ]; then + rsync -av "$HOME/.config/rpcs3/dev_hdd0" "$storagePath"/rpcs3/ && rm -rf "$HOME/.config/rpcs3/dev_hdd0" fi fi } +# Create desktop shortcut +RPCS3_createDesktopShortcut(){ + +createDesktopShortcut "$HOME/.local/share/applications/$RPCS3_remuName.desktop" \ + "$RPCS3_remuName AppImage" \ + "${toolsPath}/launchers/rpcs3.sh" \ + "false" +} #WipeSettings RPCS3_wipe(){ - rm -rf "$HOME/.var/app/$RPCS3_emuPath" - # prob not cause roms are here + setMSG "Wiping $RPCS3_emuName settings." + rm -rf "$HOME/.config/rpcs3" + rm -rf "$HOME/.cache/rpcs3" + } #Uninstall RPCS3_uninstall(){ - flatpak uninstall "$RPCS3_emuPath" --user -y + setMSG "Uninstalling $RPCS3_emuName." + rm -rf "$RPCS3_emuPath" + RPCS3_wipe } #setABXYstyle RPCS3_setABXYstyle(){ - echo "NYI" + echo "NYI" } #Migrate RPCS3_migrate(){ - echo "NYI" + echo "Begin RPCS3 Migration" + emu="RPCS3" + migrationFlag="$HOME/emudeck/.${emu}MigrationCompleted" + #check if we have a nomigrateflag for $emu + if [ ! -f "$migrationFlag" ]; then + #RPCS3 flatpak to appimage + #From -- > to + migrationTable=() + migrationTable+=("$HOME/.var/app/net.rpcs3.RPCS3/config/rpcs3" "$HOME/.config/rpcs3") + + migrateAndLinkConfig "$emu" "$migrationTable" + fi + } #WideScreenOn @@ -123,4 +178,4 @@ RPCS3_IsInstalled(){ RPCS3_resetConfig(){ RPCS3_init &>/dev/null && echo "true" || echo "false" -} \ No newline at end of file +} diff --git a/icons/RPCS3.svg b/icons/RPCS3.svg new file mode 100644 index 00000000..8ee8b5e0 --- /dev/null +++ b/icons/RPCS3.svg @@ -0,0 +1,88 @@ + + + + +Created by potrace 1.16, written by Peter Selinger 2001-2019 + + + + + diff --git a/tools/binupdate/binupdate.sh b/tools/binupdate/binupdate.sh index 34dd39cc..cd762620 100644 --- a/tools/binupdate/binupdate.sh +++ b/tools/binupdate/binupdate.sh @@ -188,6 +188,16 @@ function runBinDownloads { messages+=("There was a problem updating Xenia") fi fi + if [[ "$binsToDL" == *"RPCS3"* ]]; then + ((progresspct += pct)) || true + echo "$progresspct" + echo "# Updating RPCS3" + if RPCS3_install "true" 2>&1; then + messages+=("RPCS3 Updated Successfully") + else + messages+=("There was a problem updating RPCS3") + fi + fi echo "100" echo "# Complete!" } diff --git a/tools/launchers/rpcs3.sh b/tools/launchers/rpcs3.sh index 758fc8bd..72a7e3bf 100644 --- a/tools/launchers/rpcs3.sh +++ b/tools/launchers/rpcs3.sh @@ -1,5 +1,31 @@ #!/bin/sh source $HOME/.config/EmuDeck/backend/functions/all.sh cloud_sync_downloadEmu rpcs3 -/usr/bin/flatpak run net.rpcs3.RPCS3 "${@}" -cloud_sync_uploadEmu rpcs3 \ No newline at end of file +cloud_sync_uploadEmu rpcs3 +emuName="rpcs3" #parameterize me +emufolder="$HOME/Applications" # has to be applications for ES-DE to find it + +#find full path to emu executable +exe=$(find $emufolder -iname "${emuName}*.AppImage" | sort -n | cut -d' ' -f 2- | tail -n 1 2>/dev/null) + +#if appimage doesn't exist fall back to flatpak. +if [[ $exe == '' ]]; then + #flatpak + flatpakApp=$(flatpak list --app --columns=application | grep $emuName) + exe="/usr/bin/flatpak run "$flatpakApp +else +#make sure that file is executable + chmod +x $exe +fi + +#run the executable with the params. +#Fix first ' +param="${@}" +substituteWith='"' +param=${param/\'/"$substituteWith"} +#Fix last ' on command +param=$(echo "$param" | sed 's/.$/"/') +eval "${exe} ${param}" + + +