Project Lighthouse requires a MySQL database. For Linux users running docker, one can be set up using
the docker-compose.yml
file in the root of the project folder.
Next, make sure the LIGHTHOUSE_DB_CONNECTION_STRING
environment variable is set correctly. By default, it
is server=127.0.0.1;uid=root;pwd=lighthouse;database=lighthouse
. If you are running the database via the
above docker-compose.yml
you shouldn't need to change this. For other development/especially production environments
you will need to change this.
Once you've gotten MySQL running you can run Lighthouse. It will take care of the rest.
You can use the Remote Patch utility in UnionPatcher to manually patch your EBOOT.BIN; it works over the network and automatically downloads, decrypts, patches, encrypts, and uploads your PSN and Disc EBOOTs.
If you are not using a PS3, see the RPCS3 section.
Start by getting a copy of LittleBigPlanet 1/2/3 installed. (Check the LittleBigPlanet 1 section, since you'll need to do extra steps for your game to not crash upon entering the pod computer).
The game can be a digital copy (NPUA80472/NPUA80662/NPUA81116) or a disc copy (BCUS98148/BCUS98245/BCUS98362).
Next, download UnionPatcher. Binaries can be found by reading the README.md
file.
You should have everything you need now, so open up RPCS3 and go to Utilities -> Decrypt PS3 Binaries. Point this
to rpcs3/dev_hdd0/game/(title id)/USRDIR/EBOOT.BIN
. You can grab your title ID by right clicking the game in RPCS3 and
clicking Copy Info -> Copy Serial.
This should give you a file named EBOOT.elf
in the same folder. This is your decrypted EBOOT.
Now that you have your decrypted EBOOT, open UnionPatcher and select the EBOOT.elf
you got earlier in the top box,
enter http://localhost:10060/LITTLEBIGPLANETPS3_XML
in the second, and the output filename in the third. For this
guide we'll use EBOOTlocalhost.elf
.
Now, copy the EBOOTlocalhost.elf
file to where you got your EBOOT.elf
file from, and you're now good to go.
To launch the game with the patched EBOOT, open up RPCS3, go to File, Boot S(Elf), and open up EBOOTlocalhost.elf
.
Assuming you patched the file correctly, the database is migrated, and Project Lighthouse is running, the game should now connect, and you may begin contributing!
For LittleBigPlanet 1 to work with RPCS3, follow the steps above normally.
First, open your favourite hex editor. We recommend HxD.
Once you have a hex editor open, open your EBOOTlocalhost.elf
file and search for the hex
values 73 63 65 4E 70 43 6F 6D 6D 65 72 63 65 32
. In HxD, this would be done by clicking on Search -> Replace,
clicking on the Hex-values
tab, and entering the hex there.
Then, you can zero it out by replacing it with 00 00 00 00 00 00 00 00 00 00 00 00 00 00
.
What this does is remove all the references to the sceNpCommerce2
function. The function is used for purchasing DLC,
which at this moment in time crashes RPCS3.
After saving the file your LBP1 EBOOT can be used with RPCS3.
Some modifications may require updates to the database schema. You can automatically create a migration file by:
- Making sure the tools are installed. You can do this by running
dotnet tool restore
. - Making sure
LIGHTHOUSE_DB_CONNECTION_STRING
is set correctly. See theRunning
section for more details. - Modifying the database schema via the C# portion of the code. Do not modify the actual SQL database.
- Running
dotnet ef migrations add <NameOfMigrationInPascalCase> --project ProjectLighthouse
.
This process will create a migration file from the changes made in the C# code.
The new migrations will automatically be applied upon starting Lighthouse.
You can run tests either through your IDE or by running dotnet tests
.
Keep in mind while running database tests (which most tests are) you need to have LIGHTHOUSE_DB_CONNECTION_STRING
set.
- You can skip CI runs for a commit if you specify
[skip ci]
at the beginning of the commit name. This is useful for formatting changes, etc. - When creating your first pull request, CI will not run initially. A team member will have to approve you for use of running CI on a pull request. This is because of GitHub policy.
You can access API documentation by looking at the XMLDoc in the controllers under ProjectLighthouse.Controllers.Api
You can also access an interactive version by starting Lighthouse and accessing Swagger
at http://localhost:10060/swagger/index.html
.