Skip to content

Instantly share code, notes, and snippets.

@LiEnby
Last active August 15, 2024 10:58
Show Gist options
  • Save LiEnby/60715bc3f0ad344ed5bcd8af8bd543b6 to your computer and use it in GitHub Desktop.
Save LiEnby/60715bc3f0ad344ed5bcd8af8bd543b6 to your computer and use it in GitHub Desktop.
Mysteries of the Bedrock PS4 "Editions" Button

Hey i decided to investigate the mysterious "Editions" button on minecraft bedrock, and specifically wanted to figure out the exact conditions for it to appear/disappear. and/or if theres a way to make it appear

i saw lots of videos online that made no sense, claiming you had to play LCE on v1.00 for 5 hours, but this apparnetly "only sometimes works" also apparently for some just getting the 1.00 disc and putting it in just works

use the original 1.00 DISC version and play the LCE, or like strangley de-activating your ps4 as primary and then playing on another user and suddenly editions appears ???

it all made little sense, based on what i knew about how playstation stuff worked,

so i wanted to look into it in a bit less of a throwing shit at the wall and figuring out what works. i wanted to figure out the EXACT conditions for the "Editions" button to show up-

== inital research ==

so first thing i did was just downloaded a fPKG copy of minecraft from somewhere, extracted the path PKG file and immediately noticed there were some familiar LCE files

(psvita has "Common", "music", "PSVita" and the module_name for it's EBOOT.BIN is "Minecraft.Client", on PS4 theres "Common", "music" "Orbis" and "Minecraft.Client.elf" ..)

image

so .. the actual "Minecraft.Client.elf" is a SELF executable for LCE, eboot.bin is the executable for bedrock all the "editions" button actually does is, sceSystemServiceLoadExec the "Minecraft.Client.elf" file

this can be confirmed by just searching for the string "minecraftpe" in the LCE executable with a hex editor. you get no results but you get craploads on bedrocks one :D

this means that all copies of minecraft from all regions regardless of how or when their obtained, contain the data for playing Legacy Console Edition,

(funny note; if you have a hacked ps4 you could probably rename Minecraft.Client.elf to eboot.bin, change the title id and just have it as a seperate app..)

The first thing i tried was look at the bedrock's data folder, in resource packs. because alot of minecraft's game logic is defined in resource/behaviour packs, and sure enough inside "Image0/data/resource_packs/vanilla/ui/start_screen.json" you can find definitions for the "Editions" button,

it shows up as long as its not a trial version or the variable $supports_launching_legacy_version is set. image i dunno what sets "supports_launching_legacy_version" but my first thought when seeing this was actually maybe i could just make a resource pack to force enable this,

So i found one of my friends who has a hacked PS4 to test with, because installing a resource pack on OFW is .. tricky .. this was mostly just to test if it was viable at all.

it took a few attempts to actually create the pack properly. and trading savefiles back and forth. well like the editions button shows up image

.. unfortunately though, that's kind of all it does, it just appears. that's it. the game is coded such that the button doesn't do anything if your not supposed to use it, so this doesn't actually do anything besides look cool

after it became apparent that wouldn't work i then went and unfself'd the eboot.bin, and went and loaded it up in IDA image

... just kidding, the ida ps4 module loader plugin i was using broke when trying to load minecraft bedrocks executable. it could load the LCE onem just not bedrock.

i couldn't find any other plugins that could do this for IDA. so i eventually i gave up and just used Ghidra instead.

the file is massive and takes forever to anaylize on my computer, after leaving it running all day it's honestly still not done but i did eventually get tired of waiting and just started using it while it was anaylizing. first thing i did was look for strings, specifically relating to "$supports_launching_legacy_version", "editions", "Minecraft.Client.elf", "legacy" etc.

bedrock's codebase is an absolute mess and hellish to find anything in, but i eventually found a reference to the string "_checkIsLegacyPlayer" which sounds alot like what im looking for. image

looking at the xref, it's being passed as an argument to a function, along with some other class. image

looking at the classes vtables; most of them don't do much just some stuff relating to atomics or whatever but one of them, actually seemed to do something. image

it checks for an add-on content with the ID of "BEDROCKSECRET000"
i checked on serialstation, and there actually is a DLC with this ID. its "Minecraft full entitlement" image

i then checked my services list (requires a ps3/vita to do, they removed the option on ps4 for some reason) to see if i actually have this DLC or not, and sure enough i apparently do image

my theroy at this point, is that the game checks for the presnece of this DLC. if its there then it will not enable the "Editions" button, which is kind of backwards like a DLC that actually removes content? but it makes sense. they wanted everyone before a certain point to have it,

Minecraft is listed as a "Bundle" on the PS Store, you can only get it as a trial or as "Deluxe Edition" you cannot buy it standalone anymore. perhaps this was done as a way to ensure new users get the "BEDROCKSECRET" DLC?

but i had not confirmed this yet. so i went to try do that next.

currently the editions button DOES show up on my friends hacked PS4. got them to check their DLC list and sure enough, "Full Entitlement" was not there. i do have it on my hacked PS4. but strangely i also seemingly have littearlly no way to remove it

my friedn with a hacked PS4 also owns a 1.00 minecraft disc, and does not have "BEDROCKSECRET" dlc. and the "Entitlements" button does show up. so i wanted to try install that DLC and see what happens

at first i tired editing entitlements.db, this uh, did nothing,. then i tried to find a fPKG version of the DLC. but no one had one

so then i had a very good idea, just like.. create an empty add-on PKG. with the content id "EP4433-CUSA00265_00-BEDROCKSECRET000" install it, and see what happens? image

installed it and poof editions was gone!.. also turns out, the only way to delete a PS4 addon, is via Debug Settings so that's cool. we did that and.. uh editions was still gone? deleted savedata. still missing.

this took us a bit to figure out, but as it turns out, when we installed the BEDROCKSECRET pkg file... the RIF file for the game that was generated by the PS4 had appended an entry for the "BEDROCKSECRET000" DLC too.. upon removing this from the RIF .. and then removing the games own "System" savedata. the "Editions" button showed up again.

== tl;dr ==

  • minecraft checks for a specific add-on "Minecraft full entitlement" (BEDROCKSECRET000)
  • if found, then the editions button will NEVER show up, and a option will be saved into your savedata too to disable it,
  • the DLC is bundled with the minecraft full version and you cannot purchase either seperately.

So, what does this mean? well for once it explains why deactivating as primary and playing on an alt, suddenly makes editions appear. this will only ever work with the disc version of the game.

because when its not primary PS4.. then your ps4 has no way of knowing you own the BEDROCKSECRET000 DLC on an alt account. so editions shows up, this is also often followed up with some advice to delete all the saves with the alex and the gear, (which is the system savedata.)

these people were actually just 4000iq without even understanding why what their doing does fucking anything. some claimed this 'doesn't work' but they likely either have a digital version, in which case, you also cant start that. have the later updated disc, which (needs confirmation) probably comes with this DLC included somehow. or have more than one account set as primary, that owns minecraft.

but hey, since we know how it works now. i can give some insight :

== how to get its ==

first; if you already have the editions button, do NOT .. EVER .. purchase a digital copy of minecraft, on any account set as 'primary' on your ps4

if you already own minecraft digitally, after the change over to bedrock

option 1. Aquire a v1.00 minecraft disc from.. OUTSIDE your PSN region you see, minecraft has different title ids in each region. and so. you might own EP4433-CUSA00265_00-BEDROCKSECRET000 (EU) but probably not UP4433-CUSA00744_00-BEDROCKSECRET000 (USA) or JP0127-CUSA00283_00-BEDROCKSECRET000 (JP) and so the editions button will always show up. when using this (downsides: can't use any other owned DLC either, such as mash up or other packs, costs money if you don't have it already)

possible workaround?: (you might be able to get aruond this by buying DLC for vita/ps3 edition on a PSN account for the same region, since that gives you the ps4 version of that DLC automatically, but i don't know)

option 2. Aquire a v1.00 minecraft disc (it can be your own region) Deactivate all accounts that own minecraft, and load it up on an alt account with fresh savedata, and then swtich accounts to your main after the game is started. (downsides: trophies aren't for your account. missing all worlds, no previous DLC can't play any of your digital psn games offline, costs money if you don't have it already)

If you do not own minecraft digitally,

option 1. Get a v1.00 minecraft disc from any region, and delete your system savefile. (its the 2 with alex and the gears) (downsides: dependant on luck, consts money)

if you don't care about online? / don't want to buy anything

option 1. Downgrade your ps4 edition to v1.95, see https://gist.github.com/LiEnby/c23a819de6d481a67a34e6cedbc2f04e (downsides; cant run bedrock and lce at the same time, unless you own multiple regions or use preview. ps4 constantly tries to update it, no online play due to outdated version) (upsides: free)

hacked ps4? test/dev kit?

  1. use a hex editor to remove BEDROCKSECRET from your minecraft RIF file, and delete the DLC in debug settings, & delete systme savedata

== other thoughts ==

also this kind of explains those 'it just worked for me when i got the disc' and 'play for 5 hours' ones too playing for 5 hours does nothing, but maybe the reason it sometimes works is when the disc is from another region than their PSN account.

also wondered if its maybe possible to use the PS4 DRM against itself here, maybe somehow install an fPKG of the BEDROCKSECRET000 DLC on a retail ps4, which an unmodified not-devkit PS4 will always reject as invalid, but then you see. you don't own that DLC :d but that's just purely speculation i have no idea if that'd work or is even possible to do

@ImPlasmaTbh
Copy link

so I had a question: If I had a PSN account in Asia (registered in India) and had an EU version of the disc, would I still be able to get the editions button if I had Minecraft purchased on another account set as Primary (registered in UAE)? having a little bit of trouble understanding all of this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment