1. javilobo8

    OP javilobo8 Advanced Member
    Newcomer

    Joined:
    May 10, 2018
    Messages:
    90
    Country:
    Spain
    Hello! I have just created a tool to create a title folder from a XCI file.

    Hactool and your own Switch keys (all of them) are required.

    [​IMG]

    Hope this is useful for you.

    https://github.com/javilobo8/XCI2TitleConverter

    Releases:

    1.0.0
    • Initial release
    1.1.0
    • Add NPDM patching (thanks to @Falo )
    • Add more target titles
    1.2.0
    • Some refactor
    • Add more target titles
    1.3.0
    • Refactor process
    • Add threads
    • Show version info
    • Fix bug that entering title id manually doesn't count xD
    1.4.0
    • Improove Threads
    • Block form while processing
    • Launch console and redirect hactool output to there.
    • Fix npdm bug

    TODO

    Thanks to @jmmc for developing a xci-to-title in java for Mac/Linux users!
     
    Last edited by javilobo8, Jun 21, 2018
  2. swabbo

    swabbo Wot u doin readin dis m8?
    Member

    Joined:
    Mar 9, 2011
    Messages:
    791
    Country:
    Nice!
     
    javilobo8 likes this.
  3. einfachGaer

    einfachGaer Member
    Newcomer

    Joined:
    Feb 1, 2018
    Messages:
    25
    Country:
    Germany
    It seems to get streamlined quite good! Keep it going!
     
    javilobo8 likes this.
  4. peteruk

    peteruk GBAtemp Addict
    Member

    Joined:
    Jun 26, 2015
    Messages:
    2,669
    Country:
    United Kingdom
    Very promising start, well done !
     
    kop365, Citrus-Hombre and javilobo8 like this.
  5. KiiWii

    KiiWii Reporter
    Reviewer

    Joined:
    Nov 17, 2008
    Messages:
    12,057
    Country:
    United Kingdom
    Awesome Thanks!
     
    javilobo8 likes this.
  6. tomGER

    tomGER GBAtemp Fan
    Member

    Joined:
    Feb 6, 2017
    Messages:
    347
    Country:
    Germany
    Very streamlined and clean program, amazing work!
     
    javilobo8 likes this.
  7. Thetoto

    Thetoto GBAtemp Advanced Fan
    Member

    Joined:
    May 10, 2018
    Messages:
    529
    Country:
    France
    javilobo8 likes this.
  8. tomGER

    tomGER GBAtemp Fan
    Member

    Joined:
    Feb 6, 2017
    Messages:
    347
    Country:
    Germany
    javilobo8 and Thetoto like this.
  9. javilobo8

    OP javilobo8 Advanced Member
    Newcomer

    Joined:
    May 10, 2018
    Messages:
    90
    Country:
    Spain
    I want to translate it, but I'm not so experienced with C#.
     
    Thetoto and tomGER like this.
  10. thomasnet

    thomasnet GBAtemp Regular
    Member

    Joined:
    Mar 6, 2016
    Messages:
    175
    Country:
    France
    To modify the title id in the NPDM, just search the title id in little-endian (0100f8 becomes f80001) and replace it with the new game's title id.
     
    javilobo8 likes this.
  11. javilobo8

    OP javilobo8 Advanced Member
    Newcomer

    Joined:
    May 10, 2018
    Messages:
    90
    Country:
    Spain
    Working on it :D
     
    gamemasteru03 and tomGER like this.
  12. Thetoto

    Thetoto GBAtemp Advanced Fan
    Member

    Joined:
    May 10, 2018
    Messages:
    529
    Country:
    France
    Works very good, thanks.
     
    javilobo8 likes this.
  13. levihacks19

    levihacks19 Member
    Newcomer

    Joined:
    May 29, 2015
    Messages:
    14
    Country:
    gooood work friend
     
  14. Falo

    Falo GBAtemp Advanced Fan
    Member

    Joined:
    Jul 22, 2012
    Messages:
    630
    Country:
    Germany
    Code:
            public static void patchNPDM(string fPath, ulong targetTitleId)
            {
                byte[] data = File.ReadAllBytes(fPath);
    
                int aci0RawOffset = BitConverter.ToInt32(data, 0x70);
    
                if (data[aci0RawOffset] != 0x41 || data[aci0RawOffset + 1] != 0x43 || data[aci0RawOffset + 2] != 0x49 || data[aci0RawOffset + 3] != 0x30)
                    throw new Exception("ACI0 magic bytes not found. did you select the right file (main.npdm)?");
    
                byte[] TitleIdBytes = BitConverter.GetBytes(targetTitleId);
    
                Array.Copy(TitleIdBytes, 0, data, aci0RawOffset + 0x10, TitleIdBytes.Length);
    
                File.WriteAllBytes(fPath + "_patched.npdm", data);
            }
    call it like this: "patchNPDM("main.npdm", 0x010079F00671C000);"
     
  15. shabbypenguin

    shabbypenguin Advanced Member
    Newcomer

    Joined:
    Apr 29, 2015
    Messages:
    84
    Country:
    United States
  16. javilobo8

    OP javilobo8 Advanced Member
    Newcomer

    Joined:
    May 10, 2018
    Messages:
    90
    Country:
    Spain
    Awesome, thank you so much. I was doing other way (potato), but yours is better.
     
    DigitalJosee and tomGER like this.
  17. gameboy
    This message by gameboy has been removed from public view by porkiewpyne, Jun 16, 2018, Reason: Come on now. Play nice.
    Jun 16, 2018
  18. H1B1Esquire

    H1B1Esquire RxTools, the ultimate CFW machine.
    Member

    Joined:
    Nov 2, 2016
    Messages:
    3,556
    Country:
    United States
    Very good--you even learned something new by working with others; thank you, as well.
     
  19. javilobo8

    OP javilobo8 Advanced Member
    Newcomer

    Joined:
    May 10, 2018
    Messages:
    90
    Country:
    Spain
    Last edited by porkiewpyne, Jun 16, 2018
  20. annson24

    annson24 The Patient One
    Member

    Joined:
    May 5, 2016
    Messages:
    1,182
    Country:
    Philippines
    This doesn't need hactool anymore does it?

    Sent from my SM-G950F using Tapatalk
     
  21. Thetoto

    Thetoto GBAtemp Advanced Fan
    Member

    Joined:
    May 10, 2018
    Messages:
    529
    Country:
    France
    You need hactool.
     
    javilobo8 likes this.
Draft saved Draft deleted
Loading...

Hide similar threads Similar threads with keywords - XCI2TitleConverter, Automated, process