Jump to content

[Tutorial] A complete guide to remove Unity splash screen


kiraio
 Share

Recommended Posts

Remove Unity Splash Screen

Introduction

Unity Splash Screen

 

Updated version can be found here: https://github.com/kiraio-moe/remove-unity-splash-screen

 

Do you hate this logo appears when you are going to play games? Bother? For some people, yes. This time I will share one of the things I learned when I Reverse Engineering the Unity game, removing the Unity splash screen XD.

I haven't tried on some platforms because I haven't installed the dependencies needed to build games on those platforms in Unity, maybe I'll try them in the future.
But if you manage to remove the Unity splash screen using another version of Unity with different platforms, please make a Pull Request or contact me on my social media and let me know the details so I can get it straight away updating this article.

Without further ado, let's do it!

Prerequisite

Install the following tools before proceed to Step-by-step section:

General

Platform Specific

Install the following tools if you wanna work with another platform:

Android

WebGL

  • Coming soon... I guess?

Step-by-step

I don't know how games built with IL2CPP looks like on PC platforms. If you don't mind, please create a Dummy project and build with IL2CPP scripting backend and send the build to me via email: [email protected] . I'll try playing with it ;)

PC (Mono)

  • Prepare the Unity game that has been built.
    Target Unity game
  • Go to the Game Name_Data folder and backup the globalgamemanagers file in case of errors.
  • Open the globalgamemanagers file using Unity Asset Bundle Extractor (UABE).
  • Click globalgamemanagers (Assets) in Files and Components. Select Unnamed asset which is of type PlayerSettings then click View Data and...
    View Player Settings
  • BOOM! Error................
    View Player Setings Error
    This happens in games using Unity version >= 2020 where it seems Unity has encrypted (probably) the PlayerSettings part but not the other part. Whereas when I try to open the PlayerSettings section of the game built using Unity 2019, UABE can still access it.
  • We will fix the problems in the Unity 2020 version later. For now, let's focus on games built using Unity <= 2019. As you can see, we can access PlayerSettings. If we change the value of m_ShowUnitySplashScreen to false (by double clicking) then the Splash Screen will not appear when starting the game (the Made with Unity logo will also not appear automatically) and as you can guess, if we change the value of m_ShowUnitySplashLogo to false then the Made with Unity logo will not appear.
    Accessing PlayerSettings Unity 2019
    But, just removing the Made with Unity logo will not work if the Made with Unity splash logo is still listed in m_SplashScreenLogos. To fix this, we can simply delete the array item that contains the Made with Unity logo. Great!
    Removing Made with Unity logo from Splash Screen Logos array

 

  • Now let's move on to other settings. Move to Asset List and open BuildSettings:
    Viewing BuildSettings Unity 2019

  • Select hasPROVersion and change the value to true:
    Enabling Pro Version

  • Save your changes (IDK why Apply does nothing). UABE cannot overwrite the file being edited, so just save it as globalgamemanagers-mod.
    Save changes

  • Close globalgamemanagers on UABE or simply close UABE app, delete the original globalgamemanagers file (Remember! you have a backup, don't worry...) and rename globalgamemanagers-mod to globalgamemanagers.

  • Try running the game and be surprised!

Fix for Unity >= 2020

If you've read all the steps above, you should know what the problem is, UABE can't deserialize PlayerSettings on Unity >= 2020 because it's encrypted (probably). That's why the Hex Editor is coming for! Make sure you meet the prerequisite!

  • Open globalgamemanagers file using HxD.
  • Look for Decoded Text which contains Company Name and Product Name (in my case it's offset: 1060). Notice the first Question Mark (?) after the product name, right after that there's a hex value 01 01 (highlighted). If you change the hex value of the first 01 to 00 then the Splash Screen will be disabled, while the following 01 sets whether the Made with Unity logo will appear or not. If you don't want Made with Unity to appear, just change it to 00.
    Find Splash Screen boolean
  • Boolean Splash Screen (m_ShowUnitySplashScreen) was discovered by the YouTube channel Awesomegamergame in his video https://www.youtube.com/watch?v=xvh0AeZCX9E. But the way he just change the Splash Screen boolean value to false doesn't work in other versions of Unity. I think this article as a complement to the tutorial.
  • After changing the Splash Screen boolean, now change the m_hasPROVersion boolean exactly like the method above.

Android (Mono, IL2CPP)

  • Prepare a Unity Android game.
    Prepare a Unity game
  • Open APKToolGUI (Make sure you meet APKToolGUI requirements). Drag and Drop the APK file (which you guys think is the main APK, in my case base.apk) to the APK Files section. APKToolGUI will automatically decompile the APK.
    Decompile APK using APKToolGUI
  • Go to the decompiled APK folder and go to assets/bin/Data folder, you will find the globalgamemanagers file.
    Find globalgamemanagers file
  • Do the same as in PC (Mono) section.
  • After finish editing globalgamemanagers, go to APKToolGUI and re-compile the decompiled APK folder.
    Recompile APK
  • DONE!
  • For those who have uploaded the game to the App Store (such as Google Play), make sure to sign your APK consistently. If not, when you update your game that is already installed on Android, an error Signature is inconsistent with an existing application will appear. For new apps, it might be time for you to start signing APKs consistently. You can generate Keystore in Unity, go to Project Settings > Publishing Settings.
    Signing APK

Notes

  • There is no difference affecting the splash screen in the globalgamemanagers file between Development builds and Release builds.
  • Yep, that's my Android game I used as a test subject. You can see find it at Google Play Store XD (Pssttt... a remake is in the works).

Result

MOD Result

Tested and work on games built with the following versions of Unity:

Unity 2020.3.39.26224 (LTS)

  • PC/Windows x86_64 (Mono)
  • Android (Mono, IL2CPP)

Unity 2019.4.12f1 (LTS)

  • Android (Mono, IL2CPP)

Worked? Please give it a star ⭐ and tell everyone on Pull Request.
Something is missing? Make an Issue.

Huge Thanks

Many thanks to this fellas:

Disclaimer

By doing this, of course you violate the applicable terms of Unity. #DWYOR!

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

By using this site you agree to the Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.