lbpunion / unionpatcher Goto Github PK
View Code? Open in Web Editor NEWA tool for LittleBigPlanet that patches the server urls to a custom url.
License: GNU General Public License v3.0
A tool for LittleBigPlanet that patches the server urls to a custom url.
License: GNU General Public License v3.0
Use of this tool requires knowledge of decrypting SELF files, which are then scanned for text to be replaced. It is then up to the user to encrypt them again and place them onto their system. This doesn't seem to be very well conveyed. The instructions will differ for both of the PS3/PSV platforms and not likely be an entirely automatic process, so will both need written instructions
In the program, it may also be useful to:
As soon as my PR: #6 is merged, I will be more than happy to help with this
Cheers
Essentially the problem is that RPCS3 doesn't have some certain function implemented that LBP1 calls on boot, which crashes RPCS3. Personally I think this is more of an RPCS3 issue but if we are adding this I would like to have the patcher automatically check for the presence of this function call and remove it if present so we don't have an extra UI element to mess with (which makes things even more complicated in the context of UnionRemotePatcher).
To get HTTPS working with a custom gameserver, we need to patch the root certificate with our own, specifically the one used to sign the certificate used by the gameserver itself
I can't remember which of the games I pulled this out of, but this is one of them anyways, and it's in PEM format in the EBOOT as shown below
-----BEGIN CERTIFICATE-----
MIIDujCCAqKgAwIBAgIUAQAAAAAAAAAAAAAAAAAAAAAAAAAwDQYJKoZIhvcNAQEF
BQAwgZYxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTESMBAGA1UEBxMJU2FuIERp
ZWdvMTEwLwYDVQQKEyhTT05ZIENvbXB1dGVyIEVudGVydGFpbm1lbnQgQW1lcmlj
YSBJbmMuMRQwEgYDVQQLEwtTQ0VSVCBHcm91cDEdMBsGA1UEAxMUU0NFUlQgUm9v
dCBBdXRob3JpdHkwHhcNMDUwMTAxMTIwMDAwWhcNMzQxMjMxMjM1OTU5WjCBljEL
MAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlTYW4gRGllZ28xMTAv
BgNVBAoTKFNPTlkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBBbWVyaWNhIEluYy4x
FDASBgNVBAsTC1NDRVJUIEdyb3VwMR0wGwYDVQQDExRTQ0VSVCBSb290IEF1dGhv
cml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALKc0nZ71kfvzujJ
UeegRB6ZIK64dwY4HXm6b8q0i7YQWeCPT5uOPoQUC2gLtyUxn2vwhNWv4Zf/Dn/R
RSz7AbqD2KlcbwryIbQMBx6lOnG80baC0pCRFWCpxYRgrndxXYeotSceGD4t0+xc
T7qaR4X+z8s2M3zfpLtXiCQ6L9Fqzy+ZV3mEokkO26nG5LicnwSiPGO7yrkHFZGn
x30oLv7rhTh18iUUgd0Wzp7t+39OkcUo2mJnG9yMEtphA0JW0/LFZTsuIGWy4H6P
Ll9fvX/+ZZzx2+cTeGym6y7bIxorRAr246payX2v0ZmNyzz/SD4XC/ui0QNzuL0r
joG48o0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAOgopH+NM7SJTvVDS90pS0vKY
AgMNi0o5wp8VKAvqFusZULN/dz+gXSwfwydzCJteZfTw8Xs+iYIRgGqqAuTaV1xT
TGDaHYgCw1EUF4chNKtQ8PjFb7nOFJOGd25Aedr4W09g2sTAtz7htsED0703odZM
FTk9g6Q1wrP/ZWRIYKHSXYMSwssmMpgMeb7v0z7tgqizbppnu9BC/BcaST2yliLO
rrlrBCNoL34oHSz9Wd9JexamZ4JQkiU8ViIyRfaey9/qGZRdVv/sJkxFv4zqGk/t
iRmeyTsNzoS+i+Fk3qbajbJcAd3TesHckyWcODi46+jf4VZxqIZLNXRqvJmanw==
-----END CERTIFICATE-----
Positives
Negatives:
Thoughts?
Currently, in my opinion, Union Patcher is in a state where, yes, it can do it's job, however people who are less experienced may have more trouble with it, and some of the errors that it throws up can be confusing to a novice computer user. The goal of this issue is to try and suggest ways to make the application more user friendly to as many users as possible, especially with Public Beta rapidly approaching. Here's what I propose:
Below is a checklist of things that I think can help improve the application and also make it easier for a more novice computer user who just wants to play LBP online again to use:
The patch could not be complete due to ...
with an option to see the area where it went wrong in a dropdown menu, similar to some errors I've seen on Windows)FTP Username/Password
as well as things like the ability to change the working directory for Union Patcher in the event it tries to work in, say, System32That's all I can think of currently. I feel like making the application more user friendly can help out not only more people with being able to connect to Beacon, but also any private server without too much hassle. Hopefully.
Of course, there are more things that can be done, like making a PS3/PS Vita homebrew application that can directly patch the eboot without having to use FTP at all (which eliminates some network-related errors), however that'll have to come at a later point in time.
...i should probably learn how to code
UnionPatcher scans our EBOOT for the URLs we're trying to overwrite - this leads to a state where, if the original SCE URLs don't exist, the app will throw a success message even though no changes were made to the file.
#8 partially fixes this issue by checking for valid ELF headers, but we could improve this further by throwing another verbose error to notify the user of a problem with the input file (this file may be corrupt or has already been patched, please decrypt EBOOT again).
By building UnionPatcher as an executable, it becomes more difficult to integrate its patching functionality into another tool such as UnionRemotePatcher. I think we should build UnionPatcher as a class library. If that weren't obvious enough.
UnionRemotePatcher seems to be capable of patching (and most importantly, signing) game EBOOTs for use on CFW such as EVILNAT 4,88.2, but it's essential to ensure compatibility across the board if we're going to get as many people as possible to connect.
The most basic requirements for running UnionRemotePatcher should be, in theory, a PS3 console with HEN and WebMan/MOD installed, and for a network copy, PS3MAPI enabled in WebMan's settings. We would appreciate it if you could test UnionRemotePatcher on HFW and let us know how it goes down in the comments on this issue.
on MacOS, I'm being told to set a staging folder and that it has to be the same directory as the UnionPatcher app, however after selecting the same folder that it's in, it's still telling me that it's an invalid directory.
There should be a way to patch an already patched eboot if you enter the ip address the eboot's patched to.
It would be helpful to check if the user put the same path in for both the EBOOT.ELF input and output in the UI - of course, if this happens, best-case scenario, we successfully overwrite the input file with our patched output, and worst case scenario we're trying to write to a file that is opened for reading which is Not Ideal.
We should force the user to ensure that the output path is different than the input path so they can have a backup of their original EBOOT.ELF on hand.
UnionPatcher also doesn't care if the URL that we hand it is valid in any way - which obviously doesn't help us when we're trying to figure out why people can't connect. This is obviously problematic, we should ensure that all input is valid before we apply it to the EBOOT.ELF.
From the website 'https://www.lbpunion.com/post/how-to-patch-littlebigplanet-ps3-for-project-lighthouse/'
It states that BCES01086 [ LittleBigPlanet 2 (UK) ]is compatible, and using the remote patcher It will successfully patch. When you launch the game, It will immediately crash on a black screen.
I have a feeling this is a recent issue stemming from the latest firmware, 4.91 but I can't confirm it. BCES00141 [ LittleBigPlanet ] works flawlessly without issues.
For reference, I'm booting up from the original disc copy and using PS3Hen 3.3.0, via HFW 4.91.1. I have verified that my storage drive is free of errors also.
Any help would be appreciated,
Thank you,
CC
An error occured while patching:System.Net.WebException: Could not download fileatLBPUnion.UnionPatcher.Communication.FTP.DownloadFile(String source, String destination, String user, String pass) inC:\Users\daggi\Downloads\UnionPatcher\UnionPatcher\Communication\FTP.cs:line 117atLBPUnion.UnionPatcher.RemotePatch.DiscEBOOTRemotePatch(String ps3ip, String gameID, String serverURL, String user,String pass) inC:\Users\daggi\Downloads\UnionPatcher\UnionPatcher\RemotePatch.cs:line 213atLBPUnion.UnionPatcher.Gui.Forms.RemotePatchForm .< CreatePatchButton>b_7_0(Object , EventArgs ) inC:\Users\daggi\Downloads\UnionPatcher\UnionPatcher.Gui\Forms\RemotePatchForm.cs:line 63
Issue
In order to make LittleBigPlanet 1 playable on RPCS3 you need to replace the following hex value 73 63 65 4E 70 43 6F 6D 6D 65 72 63 65 32 with 00 00 00 00 00 00 00 00 00 00 00 00 00 00 in the EBOOT.ELF file.
This is done to remove any of the references to the sceNpCommerce2 function which is used for DLC which at the same time causes a crash/freeze with the game on RPCS3.
To fix
Add a checbox for file patcher option in the tool to make the tool do this patch for you, so you don't have to use an additional tool like HxD or similar to patch your EBOOT.ELF file.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.