[How-To] Playing Customs on PS4 (BETA)

Tagged: ,

Viewing 15 posts - 1 through 15 (of 55 total)
  • Author
    Posts
  • #396626
    Maxton
    Participant

      A word of warning: the tools used to build DLC for Rock Band 4 are still unfinished, so keep in mind that errors and bugs may abound. Until this changes consider this a BETA/PRERELEASE. Please report all the issues you run into either in this thread or on GitHub!

      1. Prerequisites

      • A PS4 with firmware 6.72 or lower (personally, I am on 6.72)
      • Rock Band 4, either already installed digitally on the PS4 or as a Blu-Ray copy (it is not possible to install RB4 digitally on 5.07 or lower anymore due to no PSN access)
      • A Windows PC or Mac/Linux with Mono installed

      2. Before You Begin

      The first thing that you must do is set up HEN on your PS4. There are many guides online on how to do this, but the general idea is that you visit a webpage, either in the web browser or by redirecting the user manual, and the webpage automatically jailbreaks your system and sets up a Homebrew ENabler (HEN). This is what allows you to install custom PKGs that the PS4 will accept as DLC.

      HEN Guides

      Currently HEN is only available for firmwares at or below 6.72, thus the prerequisite.

      3. Converting Customs

      Songs on Rock Band 4 use a number of new file formats which differ significantly from Rock Band 3 and prior games. Notably, rather than using a MIDI file for the chart, a new “RBMid” format is used which is a sort of pre-compiled chart. For this reason, I have been working on a project called LibForge which is software for converting RB3 format songs to RB4. It is written in C# so it will run on Windows natively or on Mac/Linux with Mono.

      LibForge is still considered beta software, and the conversions will not be perfect. Because the new file formats have been reverse engineered by essentially educated guessing, not everything is perfect. Notably, there are some bugs related to vocal harmonies. Guitar, Bass, and Drum tracks, as well as Solo Vocals should be mostly working, however. As more people test and report issues, the quality will improve.

       

      Using ForgeToolGUI (Recommended)

      The recommended way to go about converting CONs to PKGs for the PS4 is by using ForgeToolGUI.exe. Extract all the files from the ForgeToolGUI zip from here into a directory of your choosing, and open ForgeToolGUI (it’s the one with the little anvil icon). From there, just hit “Tools” -> “Convert CON to PKG” and follow the steps there:

      vwppcLi.png

      It will fill in a default ID and description for you, which you can change as long as the ID remains all-caps and 16 characters long. You can also check the “Build for SCEE” checkbox if you are using a European/SCEE version of RB4.

       

      Using ForgeTool (Advanced / Batch Use Only)
      If you prefer using the terminal or want to write a batch script, ForgeTool is a command-line program that has a very convenient feature: converting from CONs to PKGs in a single step. The following command will convert a single CON to PKG:


      ForgeTool.exe con2pkg C:CustomsCONsSong_rb3con C:CustomsPKGs

      You should replace “C:CustomsCONsSong_rb3con” with the path to the CON file you’d like to convert, and “C:CustomsPKGs” with the folder you’d like to put the PKG into. ForgeTool will automagically convert all the files for you and build a PS4 PKG into that folder.

      There are some other options you can use with ForgeTool which I’ll detail here:

      If you are using an SCEE (European) version of RB4, add the –scee option:


      ForgeTool.exe con2pkg --scee C:CustomsCONsSong_rb3con C:CustomsPKGs

      If you want to customise the PKG name, add the –id option (the ID must be 16 characters long)


      ForgeTool.exe con2pkg --id 16CHARIDENTIFIER C:CustomsCONsSong_rb3con C:CustomsPKGs

      If you want to customise the PKG title as displayed on the PS4, add the –desc option:


      ForgeTool.exe con2pkg --desc "Custom Song - Artist" C:CustomsCONsSong_rb3con C:CustomsPKGs

      You can use any combination of these 3 options, just make sure they are after “con2pkg” and before the CON filename.

       

      Finally, if you provide a folder full of CONs rather than a single CON, it will create a single PKG with multiple songs in it. In this case, you must provide the –id and –desc options.

      4. Installing Your PKG

      Copy your PKG files over to a USB drive, plug it into your PS4, and go to “Settings” -> “☆Debug Settings” -> “Game” -> “Package Installer” and select the .pkg. Then you should be able to start up RB4 and play it!

      That’s all for now, work is still ongoing to make this process more user-friendly and error-free. Please report your successes and failures here.

      Happy Holidays, everyone!

       

      https://youtu.be/c-jOm5RdE3Y

      #502600
      Sideshow
      Participant

        I’m so tempted to try this on my launch PS4 console. Thanks for providing this guide to the community. Would love to test how many customs RB4 can have in it’s setlist without worries of a limit cap as we know RB3 has. It’s great to see customs playable on current gen console hardware.

        #502602
        Rocker1999
        Participant

          Planning on making a video tutorial of this for people who prefer a video format tutorial over text-based. Will try to have out before the new year.

          #502603
          pumpkinpie
          Participant

            wow i wake up Christmas morning to see this ?

             

            Thanks so much guys – cant wait to try this out in the new year !!!!

             

            Merry Christmas to all !!

            #502615
            Nintendo113
            Participant

              Customs on PS4? Bah gawd…. It’s incredible to me that there are people passionate enough to make this kinda stuff possible. Thank you guys.

               

              Planning on making a video tutorial of this for people who prefer a video format tutorial over text-based. Will try to have out before the new year.

              As a no0b with this kinda stuff, video tutorials are a Godsend. Thank you for taking the time to make the tutorial in a video to follow. It’s alot easier to follow along when you can just copy exactly what’s being done right before your eyes step by step.

              #502616

              Thank you for your great work!!

               

              But for now on it doesnt seems to be working for me. Any video tutorials maybe? Im using powershell (x86) on x64 windows 7 and if I print just “start forgetool.exe” without any params it works for 0,5 seconds and then closes right away. If I add con2pkg it closes with IndexOutOfRangeException error. But if I put all as being told in your manual it wont start at all saying that “there is no param, that will accept agruement “my_path_to_CON_file”. line:1 symbol:6″ – this error is rougly translated form russian (cause my system is in russian d-uh). What can cause this problem? Path IS right I’ve triple-checked it already.

              #502617
              The Other Side
              Participant

                It’s a Christmas miracle!

                #502628
                Maxton
                Participant

                  I’ve just updated the OP with information on the new GUI for converting customs. Now there is no need to mess with a command line.

                  #502630

                  I’ve just updated the OP with information on the new GUI for converting customs. Now there is no need to mess with a command line.

                  Thanks! Going to try it right away when I come back home from work!

                  #502631

                  I’m still having troubles to make it work even with GUI version (maybe I’m just dumb, who knows?). Here is log when I’m trying to pick a CON file (dire straits sultans of swing rb3con downloaded from this site). Please note that russian parts of the log are roughly translated in english.

                   

                   

                  Full information about using operative

                  (JIT) debugging instead of this dialog window is shown at the end of this message.
                  ************** Exception text **************
                  System.NullReferenceException: Object reference does not indicate an object instance.
                  in LibForge.RBSong.Value.FromData(Type t, DataNode d)
                  in LibForge.RBSong.StructValue.FromData(StructType t, DataArray arr)
                  in LibForge.RBSong.Value.FromData(Type t, DataNode d)
                  in LibForge.RBSong.StructValue.FromData(StructType t, DataArray arr)
                  in LibForge.Util.PkgCreator.MakeRBSong(DataArray array)
                  in LibForge.Util.PkgCreator.ConvertDLCSong(DataArray songDta, IDirectory songRoot)
                  in LibForge.Util.PkgCreator.ConvertDLCPackage(IDirectory dlcRoot)
                  in ForgeToolGUI.Inspectors.ConversionInspector.LoadCon(String filename)
                  in ForgeToolGUI.Inspectors.ConversionInspector.pickFileButton_Click(Object sender, EventArgs e)
                  in System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
                  in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
                  in System.Windows.Forms.Control.WndProc(Message& m)
                  in System.Windows.Forms.ButtonBase.WndProc(Message& m)
                  in System.Windows.Forms.Button.WndProc(Message& m)
                  in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
                  ************** Loaded builds **************
                  mscorlib
                  Build version: 4.0.0.0
                  Version Win32: 4.0.30319.18408 built by: FX451RTMGREL
                  CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll

                  ForgeToolGUI
                  Build version: 0.1.132.0
                  Version Win32: 0.1.132.0
                  CodeBase: file:///E:/RB4SONGS/LibForge-0.1.132/ForgeToolGUI.exe

                  System.Windows.Forms
                  Build version: 4.0.0.0
                  Version Win32: 4.0.30319.18408 built by: FX451RTMGREL
                  CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

                  System.Drawing
                  Build version: 4.0.0.0
                  Version Win32: 4.0.30319.18408 built by: FX451RTMGREL
                  CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

                  System
                  Build version: 4.0.0.0
                  Version Win32: 4.0.30319.18408 built by: FX451RTMGREL
                  CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

                  System.Windows.Forms.resources
                  Build version: 4.0.0.0
                  Version Win32: 4.0.30319.1 built by: RTMRel
                  CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll

                  LibForge
                  Build version: 0.1.132.0
                  Version Win32: 0.1.132.0
                  CodeBase: file:///E:/RB4SONGS/LibForge-0.1.132/LibForge.DLL

                  GameArchives
                  Build version: 0.1.132.0
                  Version Win32: 0.1.132.0
                  CodeBase: file:///E:/RB4SONGS/LibForge-0.1.132/GameArchives.DLL

                  DtxCS
                  Build version: 1.0.0.0
                  Version Win32: 1.0.0.0
                  CodeBase: file:///E:/RB4SONGS/LibForge-0.1.132/DtxCS.DLL

                  System.Core
                  Build version: 4.0.0.0
                  Version Win32: 4.0.30319.18408 built by: FX451RTMGREL
                  CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

                  MidiCS
                  Build version: 0.1.6678.5394
                  Version Win32: 0.1.0.0
                  CodeBase: file:///E:/RB4SONGS/LibForge-0.1.132/MidiCS.DLL

                  mscorlib.resources
                  Build version: 4.0.0.0
                  Version Win32: 4.0.30319.1 (RTMRel.030319-0100)
                  CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll

                  ************** Оперативная отладка (JIT) **************
                  To turn on operative (JIT) debugging file .config of this app or machine (machine.config) must be set to jitDebugging, set in system.windows.forms.
                  The application must also be compiled with
                  debugging
                  Example:
                  With JIT debugging enabled, any unhandled exception
                  sent to the JIT debugger registered on this computer
                  instead of being processed by this dialog box.

                   

                   

                  #502632
                  Maxton
                  Participant

                    Interesting, I can’t reproduce it, but since you’re using a Russian locale my first guess is that it must be some weird issue with using a comma instead of a period as a decimal separator.

                    #502633

                    Will be waiting for future realises then. I’ll post here if I would be able to fing solution by myself.

                    #502634
                    Maxton
                    Participant

                      Ok, that problem should be fixed on the latest release. Thanks for reporting!

                      #502639

                      For version 0.1.134 Sultans of Swing works fine! Great! But here is another log (now I’ve tried to convert abba – money downloaded from here http://customscreators.com/index.php?/page/index.html/_/money-money-money-r252 )

                       

                      Hope it helps! I’ll test more songs tomorrow though

                       

                       

                       

                       

                      ************** Exception text **************
                      System.Exception: Element at index 1 is not an integer.
                      in DtxCS.DataTypes.DataArray.Int(Int32 idx)
                      in LibForge.Util.PkgCreator.MakeRBSong(DataArray array)
                      in LibForge.Util.PkgCreator.ConvertDLCSong(DataArray songDta, IDirectory songRoot)
                      in LibForge.Util.PkgCreator.ConvertDLCPackage(IDirectory dlcRoot)
                      in ForgeToolGUI.Inspectors.ConversionInspector.LoadCon(String filename)
                      in ForgeToolGUI.Inspectors.ConversionInspector.pickFileButton_Click(Object sender, EventArgs e)
                      in System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
                      in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
                      in System.Windows.Forms.Control.WndProc(Message& m)
                      in System.Windows.Forms.ButtonBase.WndProc(Message& m)
                      in System.Windows.Forms.Button.WndProc(Message& m)
                      in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
                      ************
                      rest of the log is same as previous time
                      #502640

                      This is the log for Arctic Monkeys – Whyd You Only Call Me When Youre High

                      Link

                       

                       

                       

                       

                      System.IO.EndOfStreamException: Attempted to seek past the end of the file.
                      in GameArchives.STFS.STFSFileStream.set_Position(Int64 value)
                      in LibForge.Texture.TextureConverter.MiloPngToTexture(Stream s)
                      in LibForge.Util.PkgCreator.ConvertDLCSong(DataArray songDta, IDirectory songRoot)
                      in LibForge.Util.PkgCreator.ConvertDLCPackage(IDirectory dlcRoot)
                      in ForgeToolGUI.Inspectors.ConversionInspector.LoadCon(String filename)
                      in ForgeToolGUI.Inspectors.ConversionInspector.pickFileButton_Click(Object sender, EventArgs e)
                      in System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
                      in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
                      in System.Windows.Forms.Control.WndProc(Message& m)
                      in System.Windows.Forms.ButtonBase.WndProc(Message& m)
                      in System.Windows.Forms.Button.WndProc(Message& m)
                      in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
                      And All American Rejects – Nightdrive gives this one
                      ************** Текст исключения **************
                      System.IndexOutOfRangeException: The index was outside the bounds of the array.
                      in LibForge.Texture.TextureConverter.MiloPngToTexture(Stream s)
                      in LibForge.Util.PkgCreator.ConvertDLCSong(DataArray songDta, IDirectory songRoot)
                      in LibForge.Util.PkgCreator.ConvertDLCPackage(IDirectory dlcRoot)
                      in ForgeToolGUI.Inspectors.ConversionInspector.LoadCon(String filename)
                      in ForgeToolGUI.Inspectors.ConversionInspector.pickFileButton_Click(Object sender, EventArgs e)
                      in System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
                      in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
                      in System.Windows.Forms.Control.WndProc(Message& m)
                      in System.Windows.Forms.ButtonBase.WndProc(Message& m)
                      in System.Windows.Forms.Button.WndProc(Message& m)
                      in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

                       

                       

                       

                       

                       

                      Note: I haven’t played any of successfully converted songs yet on my 5.05 ps4 cause I’m not at home at the time but I keep getting fine PKGs more then errors

                    Viewing 15 posts - 1 through 15 (of 55 total)
                    • You must be logged in to reply to this topic.
                    Back to top button