Is it possible to tell if an app is from the eShop via exheader/FSs

Discussion in '3DS - ROM Hacking, Translations and Utilities' started by Hiccup, Nov 25, 2015.

  1. Hiccup
    OP

    Hiccup GBAtemp Advanced Fan

    Member
    913
    276
    Nov 21, 2009
    Is it possible to tell if an app is the eShop version via the exheader, ExeFS or RomFS? Or via some homebrew app?

    Bump.

    Bump.
     
    Last edited by Hiccup, Nov 29, 2015
  2. GalladeGuy

    GalladeGuy Freeze Kirby :3

    Member
    2,588
    2,652
    Oct 28, 2015
    United States
    Bumping won't help. Bump.
     
  3. blujay

    blujay GBATemp's Official Warthog

    Member
    GBAtemp Patron
    blujay is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    2,208
    2,060
    Nov 2, 2015
    United States
    Gilbert, Arizona
    If you are asking if you can tell if you have extracted the eshop contents then yes. If you want to know if you can do that with regular games I am not sure if it is from exHeader or exefs
     
    ZoNtendo likes this.
  4. Hiccup
    OP

    Hiccup GBAtemp Advanced Fan

    Member
    913
    276
    Nov 21, 2009
    How do find out the version of "eShop extracted contents"?
     
  5. GalladeGuy
    This message by GalladeGuy has been removed from public view by Sicklyboy, Nov 29, 2015, Reason: Pointless.
    Nov 29, 2015
  6. blujay
    This message by blujay has been removed from public view by Sicklyboy, Nov 29, 2015, Reason: Pointless.
    Nov 29, 2015
  7. Hiccup
    This message by Hiccup has been removed from public view by Sicklyboy, Nov 29, 2015, Reason: Pointless.
    Nov 29, 2015
  8. blujay
    This message by blujay has been removed from public view by Sicklyboy, Nov 29, 2015, Reason: Pointless.
    Nov 29, 2015
  9. Friendsxix

    Friendsxix Introspective Potato

    Member
    224
    157
    May 6, 2008
    United States
    Best Hemisphere
    For any 3DS game, the retail and digital versions usually differ in exactly one way: the ExHeader -- specifically at offset 0xD. At offset 0xD of the ExHeader, info is stored that tells the console whether the ExeFS is compressed or not, as well as whether or not the application is to be loaded from the SD card. According to http://3dbrew.org/wiki/NCCH/Extended_Header#System_Control_Info, Bit0 is the bit which determines if the ExeFS is compressed, and Bit1 determines SD loading. So, if 0xD is set to 0x01, then the application has a compressed ExeFS, but is not allowed to load from SD. If 0xD is set to 0x03, then the application has a compressed ExeFS, and is allowed to load from SD. Attempting to load a game that does not have this bit correctly set from the SD card will result in a hang.

    But otherwise, the game's decrypted data is generally 1:1. For example, with New Super Mario Brothers 2, the ExeFS and RomFS are 1:1 between the digital and retail releases. The only differing byte is that single byte in the ExHeader.

    ... I'm not sure if that answers your question, but I hope so. ^^
     
    Hiccup likes this.
  10. Hiccup
    OP

    Hiccup GBAtemp Advanced Fan

    Member
    913
    276
    Nov 21, 2009
    Thanks, that is very helpful.