How do I bring back this old Blu-ray game’s leaderboard back?
Posted by Effective_Bee_6661@reddit | learnprogramming | View on Reddit | 6 comments
Hello,
I have the original Blu-ray release of the Pixar movie Up, and on Disc 2 there is a Wilderness Explorer game. The online leaderboards for the game were on Disney’s BD Live Network server, unfortunately the server is long gone. However a few days ago I was looking through a network analyzer and I saw that whenever you clicked the Ranking Menu it sent a POST request to “disneyscores.com/API” and I decided to spoof that by using a proxy server to redirect the old disneyscores.com server to my server (which has an API folder), to my surprise instead of only showing the Local Rankings it now showed the BD Live rankings too so it was actually grabbing from my server. However I tried to play the game and when it was done it was sending a XML request:
Password=qy5m2aux&DiscID=00000000000000001&APIMethod=SubmitScore&GameID=4&Score=7855&DisplayName=AAA&UserName=
and I wasn’t sure how to translate that. Whenever the leaderboards load it sends this:
Password=qy5m2aux&DiscID=00000000000000001&APIMethod=GetScores&GameID=4&Mode=HighestToLowest&StartValue=0&EndValue=9
I tried making a Python script that could read from a txt file and translate it to that but it still ends up showing blank.
How do I go about doing this?
peterlinddk@reddit
Maybe the game uses some standard engine - like Unity, or GameKit or similar, which have their own standardized ways of submitting scores and getting them back.
I don't know much more about it, only that I've seen the SubmitScore and GetScores names before.
So maybe look into how those engines would structure a leaderboard API - and spoof that!
Just an idea - I have never done it myself.
Effective_Bee_6661@reddit (OP)
Actually the game is built on BD-J, which is a special version of Java that runs on Blu-ray Players
abrahamguo@reddit
The key thing is the “Method” parameter. In the first query string, it is “SubmitScore”, so we can see that it is attempting to submit a score.
In the second query string, it is “GetScores”, so it is asking for a list of the scores.
Your question is kind of vague, so I’m not clear exactly what you’re asking.
Ill_Professor_6288@reddit
The API is expecting specific response format when you send back the scores data. When it calls GetScores, your server needs to return XML in whatever format the game expects - probably something with score entries, usernames, and rankings structured how the original Disney server did it
You might want to capture what format the original responses were supposed to be in, or try reverse engineering by looking at how the game processes the data when it receives it
Effective_Bee_6661@reddit (OP)
I’m trying to basically rebuild the online leaderboard system used for this game since it closed down long ago
abrahamguo@reddit
Well, for the GetScores method, you’d need to do a ton of experimentation to see whether you can guess the format that the game is expecting to receive the response in. Seems quite unlikely that you’ll be able to guess that, but you can try.