Giter Club home page Giter Club logo

ps4macro's Introduction

PS4 Macro

Twitter Donate

Automation utility for PS4 Remote Play written in C# using PS4RemotePlayInterceptor.

🔔 Download latest version here!

Screenshot

Screenshot

Usage

⚠️ To use WITHOUT a controller plugged in, see EmulateController in Settings section below.

Easy Way (shortcut)

Press the touch button on your controller (touchpad) to start recording and press it again to stop.

NOTE: If you're using the touch button in the macro then disable it by going to Playback->Record On Touch

Manual Way

To record, click on RECORD button (Ctrl+R) to arm recording then press PLAY to start recording controls. The red text on the bottom right indicates the number of frames recorded. You can stop recording by clicking on RECORD button (Ctrl+R) again. The macro will then play the controls in a loop.

Settings

You can create settings.xml using a text editor and place it in the same folder as PS4Macro.exe to override default settings.

Setting Description Default
AutoInject Automatically poll for PS4 Remote Play and inject whenever possible false
BypassInjection Bypass the injection for debugging purposes false
EmulateController Run with controller emulation (use without a controller) false
ShowConsole Open debugging console on launch false
StartupFile Absolute or relative path to the file to load on launch (can be xml or dll) null
Example settings.xml
<?xml version="1.0" encoding="utf-8"?>
<Settings>
  <AutoInject>true</AutoInject>
  <BypassInjection>false</BypassInjection>
  <EmulateController>true</EmulateController>
  <ShowConsole>true</ShowConsole>
  <StartupFile>MyMacro.xml</StartupFile>
</Settings>

Command Line Arguments

As of version 0.5.0, you can pass command line arguments to PS4Macro.exe and override the values in settings.xml. This also allows you to create multiple shortcuts to PS4Macro.exe and have each of them override the settings when switching between games (recommended for advanced users).

Arguments

Argument Description Default
SettingsFile Absolute or relative path to the settings file (will take priority) null

Examples

Override settings using arguments
C:\> PS4Macro.exe --AutoInject --EmulateController --ShowConsole=false --StartupFile="C:\macro.xml"
Override default settings file (highest priority)
C:\> PS4Macro.exe --SettingsFile="C:\custom-settings.xml"
Using Windows shortcut

Right-click on PS4Macro.exe and click on Create shortcut to create a new shortcut. Right-click on the newly created shortcut and select Properties and append your command line arguments after the existing text in the Target field.

Command Line Shortcut

Remapper

Remapper allows you to use your keyboard to control PS4 games with customizable key bindings. To use Remapper, go to Tools->Remapper and focus on PS4 Remote Play to control the game. Simply close the window to return to marco or script mode.

To map a key to a button or a macro, edit the Key cell and enter your desire key. You can find the key from the Member name column in this table (eg. Delete, NumPad4, PageDown). Use key None to completely disable the key.

To add a recorded macro, click on ... to browse and select an xml macro file.

Remapper

Scripting

C# scripting support has been introduced in version 0.3.0 and later. This allows us to create custom behaviors beyond repeating macros with an easy-to-use API. The API also includes wrapped convenience functions such as pressing buttons, timing, and taking a screenshot from PS4 Remote Play.

See the scripting video tutorial to get started or see the wiki for full documentation, examples, and other information.

NOTE: The script have to include a reference to PS4MacroAPI.dll to interface with PS4Macro. At the moment the scripts has to be compiled into a DLL file to be able to open with PS4 Macro.

Basic Example Script

This example script will press DPad up and wait one second, follow by pressing square. The loop repeats every 800ms.

using PS4MacroAPI;

public class Script : ScriptBase
{
    /* Constructor */
    public Script()
    {
        Config.Name = "Example Script";
        Config.LoopDelay = 800;
    }

    // Called when the user pressed play
    public override void Start()
    {
        base.Start();
    }

    // Called every interval set by LoopDelay
    public override void Update()
    {
        Press(new DualShockState() { DPad_Up = true });
        Sleep(1000);
        Press(new DualShockState() { Square = true });
    }
}

List of Scripts


Troubleshoot

Macro not playing/recording

=> Disable AutoInject in settings.xml since some machines does not support AutoInject.

EmulateController does not work

=> Make sure you unplug every DualShock 4 controllers from your computer (otherwise the real controller will take priority over the emulated one). Start PS4 Remote Play, follow by PS4 Macro and wait for this screen. If you see the text Press the OPTIONS button on the controller to start. then it means that the emulated controller is working correctly. You can then press the Start button.

Emulate Controller Troubleshoot

Visual Studio Build Error

=> Reinstall NuGet Package.

Update-Package –reinstall PS4RemotePlayInterceptor

To-Do List

  • Improve scripting API docs
  • Playback timeline UI
  • Macro editor tool
  • Mouse support for Remapper
  • ...

Resources

Credits

ps4macro's People

Contributors

komefai avatar

Stargazers

laura avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.