Overseas UK Blu-Ray List / Australian Blu-ray List / USA Region B and Geolocked List

Kiss X Sis The Complete OAD Series Blu ray​

Does anyone know/can check if this works in region b players?
On the box it's clearly written that it's a region A disc, but I already have a few "region A" blu-rays that actually works fine in region B players without any problem. (Yosuga no sora, School Days, Aki Sora, ect. ect. ect.) I just hoping it's the same case here as well, since this blu ray also never officially came out in the UK... :(
Sorry it is A only.
Discotek are sticklers for region coding.
Media blasters/kitty are all Region B compatible as far as I know.
 
Sorry it is A only.
Discotek are sticklers for region coding.
Media blasters/kitty are all Region B compatible as far as I know.
Thank you for your confirmation. I was just hoping that maybe it's the same as Discotek's school days blu ray. :( That works perfectly fine on my region b player, even though it writes A only on the cover :O

Well, another blu ray that's not avalaible in EU... Maybe it's time to get multi region player :)
Or do you think we have a chance for a region B edition in the future?
 
I've finally got my hands on the US UHD release of Weathering With You, so I dug into it to see how it achieved the region locking. Apologies in advance for the long technical post, but I hope some of you will enjoy :)

Quick Overview
So the US UHD only plays in region A players and refuses to play in other regions. This is surprising as one would assume all UHDs to be region free. In fact, Justin Sevakis stated that a region locked UHD disc wouldn't pass verification. So either this one slipped through or it somehow achieves this 'region locking' through other means. My first thought was that it would be 'geo-locking' like Sentai applies on their BDs, as this strictly speaking isn't region locking and might therefore be allowed.

Any form of region-/geo-locking must be programmed onto the disc. A (UHD) Blu-ray disc doesn't have a region code, instead it can run code to check the region code of the player. This is an important distinction compared to DVDs. Instead of the player reading the region code of the disc and preventing playback, it is the disc that has the logic to read the region code of the player and determine what to do based on it.

There are two ways this logic can be implemented on a (UHD) BD: either through HDMV instructions or BD-J (Java code). HDMV is very simple, but also limited. BD-J on the other hand allows for a lot more flexibility, but also comes with more complexity. The WWY UHD disc uses both. But the HDMV code is trivial and doesn't contain any logic. So what we're looking for must be in the BD-J code.

Files on the disc
Before we actually dive into the code, it never hurts to take a look at the files on the disc. In particular there are some resources next to the BD-J jar (file that contains the code). This includes some fonts, some images and some metadata. Most intriguing is the startup.properties file with the following contents:
Code:
disc.regions=a
disc.regions.rental=a
disc.episode.count=-1
disc.episode.commentary=-1
disc.parental=-1
disc.is_uhd=false
disc.title.region_error=11
disc.title.feature=5
disc.title.vam=6
disc.title.top_menu_disabled=7
disc.title.top_menu_enabled=8
First of all we see that it proclaims the disc to be region A and that it isn't an UHD(?) A startup.properties file is by no means standard, so these values don't necessarily mean they are actually enforced. What the disc does with this file and it's properties is also entirely up to the code on the disc.

The UK UHD is a clone of the US one, so it's no surprise that it also has a startup.properties file in the same location. One would expect the values to be different, and since we know the UK UHD isn't region locked, either it lists all regions, or is properly marked as disc.is_uhd=true which could disable region locking. But the truth is even more peculiar, the file is completely identical. Even the UK disc has disc.regions=a and disc.is_uhd=false😲

The BD-J code responsible
I had to decompile the compiled BD-J code and reverse engineer the names. Code samples below are thus not exactly the code as it was written by the original developer(s). I was able to recover some of the names, but some I had to 'invent' myself. The original code most likely also had a different formatting, comments. But functionally it is the same.
When writing code for a BD, there are many things that most BDs would need to do. These operations are part of an interface that all BDs must use. Reading the region code of the player is one such operation. This means that it's very easy to look for the piece of code that makes use of this interface. As a matter of fact, the BD does contain code to read the region code of the player, and after some more searching it's clear that this is being used. Here's the code in question:
Java:
@Override
public void startXlet() throws XletStateChangeException {
    try {
        this.getServiceContext().addListener(this);
        if(this.getServiceContext().getService() != null) {
            this.field_758 = true;
        }
    } catch(SecurityException var2) {
    } catch(ServiceContextException var3) {
    }

    if(!StartupAndMenuProperties.regionCheckAgainstConfiguredDiscRegions()) {
        TitleChanging.changeTitle(this.getXletContext(), StartupAndMenuProperties.regionErrorTitleNumber);
    } else {
        Thread thread = new Thread(this);
        thread.setName("MenuXlet");
        thread.start();
    }
}
This is part of the MenuXlet that starts up, and right from the start checks the region of the player against the value in the startup.properties file. If it doesn't match, it changes the title to the region error title number. Mystery solved!

But how does the UK UHD work?
Since it is a clone, and it also has a startup.properties file with the same (=wrong) values, why doesn't it have the same behaviour? Well, turns out the code on the UK UHD is slightly different. Namely the following:
Java:
@Override
public void startXlet() throws XletStateChangeException {
    try {
        this.getServiceContext().addListener(this);
        if(this.getServiceContext().getService() != null) {
            this.field_758 = true;
        }
    } catch(SecurityException var2) {
    } catch(ServiceContextException var3) {
    }

    Thread thread = new Thread(this);
    thread.setName("MenuXlet");
    thread.start();
}
They've just removed the region code check. In fact, I've double checked and this is literally the only code that is different between the two releases!

How did it pass verification?
I'm afraid we'll never know. Sadly I'm not familiar with the verification process and what it entails, but I wouldn't be surprised if it isn't really thorough. Perhaps they even just tried it on a region A player? Or they tested with a different startup.properties file and allowed it to be changed afterwards without reverification?

For some reason I really hoped to find some Volkswagen-esque code that would detect that it was running in the verification process and skip the region checking. And I looked hard for it, because there's a lot of code on there that could almost do it. Not sure how to say this, but the code was a big mess. I know it isn't fair to judge code that has been compiled, obfuscated and then decompiled again, but it really wasn't pretty. There is so much unused code and a good chunk of it is just for development or debugging purposes. Personally I would not like that code to end up on the discs shipped to consumers, even if the code is unused and therefore harmless.

Here are some mechanisms that I thought could've been used to cheat the verification process:
  • There's live update code, which checks an online server to see if there's an update. This update can even update the code itself. Perhaps they deployed a region free patch/update during the verification process and retracted it again. While I'm not sure, it seems that this logic is not active on the WWY UHDs.
    • I really dislike this kind of code, but since I couldn't find any triggers, I don't know when this normally would run. But if I had to guess it would be on disc 'startup', meaning their servers could get an idea of when someone watches their discs (when, which disc, on which device, from where).
    • I hope they keep their domain name up to date. If they let it expire and someone else buys the domain they could change or brick all BDs that use this update logic.
    • Thus far they've only seem to use it for two UHDs (one of which seems to be a test): Directory /7fff7827
  • There is debug code that redirects the calls to retrieve a player specific register (e.g. region code) to an in-memory set of values. The in-memory values default to region code A, which would allow the disc to play regardless of the actual region code of the player. Again, this logic does not seem active. I did my best, but there doesn't seem to be a way to enter this debug mode.
So it was all an honest mistake?
It's clear that their code is meant to be a generic basis for many (UHD) BDs. I can imagine that they forgot to properly update the startup.properties leading to the region locking. For the UK version they fixed it by removing the offending code. Which is interesting since they could've also updated the properties file, which seems like the cleaner approach, but alas.

I did find something in the code that could hint towards other approaches they've tried. As I mentioned at the start, I expected geo-locking instead of straight-up region locking. While it turned out to be region locking, there is actually code for geo-locking present as well. This logic was never used on the disc itself, but was used in the debug code that they've presumably used during development/testing (not during verification). Here's the code in question:
Java:
    public static boolean shouldUseParentalControls() {
        if((PlayerPropertiesInterface.getPlayerRegion() != 1 || !PlayerPropertiesInterface.getPlayerCountryCode().equalsIgnoreCase("US"))
                && (PlayerPropertiesInterface.getPlayerRegion() != 1 || !PlayerPropertiesInterface.getPlayerCountryCode().equalsIgnoreCase("CA"))
                && (PlayerPropertiesInterface.getPlayerRegion() != 1 || PlayerPropertiesInterface.getPlayerCountryCodeRaw() != 65535)) {
            Debug.log("DO NOT Use Parental Controls!");
            Debug.log("Region Code = " + PlayerPropertiesInterface.getPlayerRegion());
            Debug.log("Country Code = " + PlayerPropertiesInterface.getPlayerCountryCode());
            return false;
        } else {
            Debug.log("Use Parental Controls!");
            Debug.log("Region Code = " + PlayerPropertiesInterface.getPlayerRegion());
            Debug.log("Country Code as String = " + PlayerPropertiesInterface.getPlayerCountryCode());
            Debug.log("Country Code as int = " + PlayerPropertiesInterface.getPlayerCountryCodeRaw());
            return true;
        }
    }
Granted, I have no idea if there are legitimate reasons to distinguish between US/CA and the rest of the world when it comes to parental controls. But seeing as this code also takes the region code into account, makes it IMO weird. I mean, wouldn't it make sense to only use the country code in that case?

Obviously just conjecture, so I'm not saying there was any malice. It's just interesting to see logic that is very similar to Sentai's geo-locking.

Conclusion
The US UHD disc contains a region code check. For the UK disc this check has been removed, and nothing else was changed. Either the verification process doesn't check if the disc is region-free, or it was changed after verification. There is code that could circumvent this region check, but to my knowledge this is inactive and would've been inactive at the time of verification as well. Geo-locking logic is also present, but again in unused/inactive code.
 
Unsure. There probably region B as is most of sentai titles from 2015 onward.
I just can't confirm this, as it is very difficult to tell the difference between a Geo-locked title and a region B title these days

That's stopped me buying Sentai discs these past few years. I just don't know if they play on UK Region B. Listing them as Geolocked doesn't help me at all.
 
That's stopped me buying Sentai discs these past few years. I just don't know if they play on UK Region B. Listing them as Geolocked doesn't help me at all.
That's the thing the only player I ever had issues with was the old Panasonic ones. My friend has a Panasonic one and plays fine.
I've have a Sony, Samsung, and PS4 with no issues. None of the forum members have flagged up new players either.
 
That's the thing the only player I ever had issues with was the old Panasonic ones. My friend has a Panasonic one and plays fine.
I've have a Sony, Samsung, and PS4 with no issues. None of the forum members have flagged up new players either.

That's me done then. I only have Panasonic players, old and new. The old ones played the old NISA Blu-rays of Hanasku Iroha with the topmenu trick, the new ones don't, so I had to get the MVM release as well.
 
Well if you have any sentai titles then it would be a good opportunity to check. If they work it means there region B

I've seen them all actually, bought them after they had been confirmed Region B. I just don't take chances on Region A or Geolocked discs. It's too much of a gamble. Last ones I got were Flowers of Evil, Shirobako, Love Lab and Tamako Love Story, which gives some idea of how long it's been since I've imported Sentai discs...
 
I've seen them all actually, bought them after they had been confirmed Region B. I just don't take chances on Region A or Geolocked discs. It's too much of a gamble. Last ones I got were Flowers of Evil, Shirobako, Love Lab and Tamako Love Story, which gives some idea of how long it's been since I've imported Sentai discs...
The problem is I would confirmed them all as Geo-locked as I am unable to tell the difference.
 
Got some releases from Sentai and can confirm they are, at least, Geo-locked:
Made in Abyss Movie Trilogy (I got the normal plastic case one, but I assume it uses the same discs as the Steelbook)
Heaven's Memo Pad (the new release from this year. Mentioning it because the old one is bypass method)
Girls und Panzer Das Finale Part 1

And from Funimation, comfirmed region B:
Smile Down the Runway
 
November's Australian blu ray releases added

Black Clover Season 3 Part 5
Deca-Dence
Golden Kamuy Complete Season 3
Hunter X Hunter Complete Series
Kakushigoto
My Hero Academia Complete Season 2
Show by Rock!! Mashumairesh
Vinland Saga

November's UK blu ray releases added

Black Clover: Season 3, Part 5
Fire Force: Season 2, Part 2
My Hero Academia: Season 4, Part 2
On-Gaku: Our Sound
Plunderer: Season 1, Part 1
Sword Art Online Alicization: War of Underworld: Part 1
 
Back
Top