Editing a .CIA game's 3DS loading screen?

Discussion in '3DS - ROM Hacking, Translations and Utilities' started by HelpTheWretched, Dec 6, 2017.

  1. HelpTheWretched
    OP

    HelpTheWretched GBAtemp Regular

    Member
    3
    Feb 4, 2010
    Canada
    [Edit] See current status at this post.

    Original post:

    I tried searching for topics on this, but I'm not quite sure what it's called. "Banner" seems to refer to the image or objects you see on the 3DS HOME Menu, and "Splash" is commonly used for Luma3DS splash screens. What I'm looking for is the file(s) to edit in a decrypted .CIA game to change the loading screen when you first launch it; it typically says "Nintendo 3DS" on a black background, with some red rectangles floating around. FBI and some other Homebrew software have custom loading screens, so I figured it's possible.

    In case anyone reading this is actually well-versed in editing these, then maybe you could point me in the right direction for something. For the edit I had in mind, all I really wanted to do was change the red colour in the "3" and the background rectangles to a different colour.
     
    Last edited by HelpTheWretched, May 3, 2018
  2. Shadow#1

    Shadow#1 Wii & 3DS Softmod Expert

    Member
    9
    Nov 21, 2005
    United States
    That screen is not in the 3ds game that's in the 3ds fw
     
  3. Ryccardo

    Ryccardo WiiUaboo

    Member
    10
    Feb 13, 2015
    Italy
    Imola
    Nah, a copy is embedded in every title (copied in there by makerom, both the official and the project_ctr one)
     
    akira123 and HelpTheWretched like this.
  4. KazoWAR

    KazoWAR GBAtemp Advanced Maniac

    Member
    6
    Aug 12, 2008
    United States
    Winter Haven
    I don't think so... since homebrew can use a homebrewed loading screen since the "Nintendo 3DS" screen is technically copyrighted code.

    example can be seen at 2:51
     
    Last edited by KazoWAR, Dec 7, 2017
    adilucky3 likes this.
  5. HelpTheWretched
    OP

    HelpTheWretched GBAtemp Regular

    Member
    3
    Feb 4, 2010
    Canada
    I'm not familiar with makerom but I can check it out. I've been using 3DSHackingToolkit to extract/rebuild CIA files. I figure the loading screen is somewhere in DecryptedExeFS.bin or DecryptedExHeader.bin.
     
  6. Ryccardo

    Ryccardo WiiUaboo

    Member
    10
    Feb 13, 2015
    Italy
    Imola
    Old titles (compatible with less than 5.x iirc) have the logo inside the exefs, for newer ones it's their own dedicated partition
     
  7. HelpTheWretched
    OP

    HelpTheWretched GBAtemp Regular

    Member
    3
    Feb 4, 2010
    Canada
    Interesting, I'll try dumping an older title and see what differences there are.

    The game I'm looking at now is from 2015, and of the non-"Decrypted" partitions dumped, only LogoLZ.bin and PlainRGN.bin are larger than half a kilobyte. The ExtractedExeFS folder has 3 files: banner.bin, code.bin, and icon.bin. I don't expect to find it in code or icon...
     
  8. Ryccardo

    Ryccardo WiiUaboo

    Member
    10
    Feb 13, 2015
    Italy
    Imola
    All there in the name, it's the logo, and that file is LZ compressed... but I don't know any editors (wasn't interested)
     
    HelpTheWretched likes this.
  9. HelpTheWretched
    OP

    HelpTheWretched GBAtemp Regular

    Member
    3
    Feb 4, 2010
    Canada
    Thanks again... I took a look into the wonderful world of LZ compression but after a few hours and barely understanding, I'm going to leave it alone. :wink:
     
  10. SkyQueen

    SkyQueen Arch3DS Developer || B0MBrHax

    Member
    3
    Apr 23, 2016
    Japan
    Seteguya-ku, Tokyo, Japan
    Try my tool i made. It has a different purpose but it decompresses all LZ files https://github.com/Arch9SK7/MenuDump/releases/tag/4.1

    Just maybe read the read me a bit to set your file structure up just right so it doesn't mess with the other files in the folder.
     
    HelpTheWretched likes this.
  11. HelpTheWretched
    OP

    HelpTheWretched GBAtemp Regular

    Member
    3
    Feb 4, 2010
    Canada
    Interesting tool! Thanks for your help. :shy:
     
    SkyQueen likes this.
  12. HelpTheWretched
    OP

    HelpTheWretched GBAtemp Regular

    Member
    3
    Feb 4, 2010
    Canada
    Okay so! Here's what I've done, which crashes on load every time.

    1. Started with a small .CIA file for quick (un)installation.
    2. Extracted its contents with HackingToolkit3DS.
    3. Taken the file LogoLZ.bin and decompressed it with Home Menu Tool.bat
    4. In a hex editor, I found RGBA8 colour values at 0x26A8 (the "3" in "3DS") and 0x28FC (the red "waves" in the background). I'm not certain these are the correct values, but I found the locations based on 3 factors: Documentation of BCLYT files, comparing to other properly-edited BCLYT files, and checking the colour values in a screenshot of the loading screen.
    5. Changed the RGB values from AA0000 to AA006E, and FF0000 to FF00AA, respectively. Red to purple.
    6. Recompressed the file using Home Menu Tool.bat, then padded it with 00's to exactly 8 KB, like it originally was.
    7. Rebuilt the .CIA with HackingToolkit3DS and installed.

    I've attached the modified LogoLZ.bin for anyone who would like to check it out. I can't see anything obvious that would cause a crash.

    Thanks in advance!
     

    Attached Files:

  13. HelpTheWretched
    OP

    HelpTheWretched GBAtemp Regular

    Member
    3
    Feb 4, 2010
    Canada
    In case anyone's reading this and curious as to what's wrong, I found a couple discussions about editing LogoLZ.bin, and both of them mentioned that the file's hash is stored in ExeFS. I don't know exactly how to calculate the hash, but apparently that's what it needs, so I'll figure it out.
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice