Homebrew Install multiple game ID CIA's

  • Thread starter Thread starter HS2005
  • Start date Start date
  • Views Views 9,676
  • Replies Replies 16

HS2005

The destroyer of worlds
Member
GBAtemp Patron
Joined
Feb 22, 2009
Messages
1,109
Reaction score
3,275
Trophies
3
Location
Earth
XP
5,403
Country
Netherlands
I can't for the sake of it find the answer (yet). Hopefully someone has the solution.

What I want to accomplish is running multiple same game CIA's next to each other. For example:

- Pokemon X 1.5 (Regular)
- Pokemon Eternal X v2.62 Rebalanced
- Pokemon Neo X v1.4 Full

However if I install one of these .cia's they keep overwriting the installed original. If I install Pokemon Y it's fine, perhaps because it has a different Game ID? What triggers this so that I can play 3 different versions of pokemon X in this example?
 
You cannot install more than one copy of a title with the same titleID.
Normally you could just change the titleID of the title you're installing so they don't conflict with this guide, but the Pokemon titles are notably some of the few titles that will not boot at all if you change their titleID.
 
You cannot install more than one copy of a title with the same titleID.
Normally you could just change the titleID of the title you're installing so they don't conflict with this guide, but the Pokemon titles are notably some of the few titles that will not boot at all if you change their titleID.

So what you are saying is that it is possible, however in order to accomplish this I have to alter the titleID of the 3 games? Well 2 games, if you coun't the original one.
 
I see. So it's pointless unless there is an alternate methode besides installing cia's to use on Luma 3DS?

Seems so, unless someone else has any idea's on other ways to do it, but I don't know if any even exist. It looks like you're most likely just going to have to settle for one of them installed at a time.
 
Seems so, unless someone else has any idea's on other ways to do it, but I don't know if any even exist. It looks like you're most likely just going to have to settle for one of them installed at a time.
Yeah most of the thread are from 2015/2016. Now years later in 2020 I was hoping there was some development on this. :)
This is also the reason why I found Gateway 3DS so easy for Pokemon to use. You just had to place an encrypted .3ds file on the SD card and you were done. Was hoping B9S or Luma could do the same.
 
Seems so, unless someone else has any idea's on other ways to do it, but I don't know if any even exist. It looks like you're most likely just going to have to settle for one of them installed at a time.

EDIT: Do you know how to get the Unique ID of a game? What does the Unique ID mean? Also reffering to: https://wololo.net/talk/viewtopic.php?t=45625
For example Pokemon X would be:

Region: Europe
Titleid: 0004000000055D00
Serial: CTR-P-EKJA
Crc32: EU: C93C6D44 for US: 2C7CE4A1

EDIT 2: Found this website: https://github.com/hax0kartik/3dsdb/blob/master/jsons/list_US.json
Where the UID = 50010000014807. < Is this the Unique ID?
 
Last edited by HS2005,
I can't for the sake of it find the answer (yet). Hopefully someone has the solution.

What I want to accomplish is running multiple same game CIA's next to each other. For example:

- Pokemon X 1.5 (Regular)
- Pokemon Eternal X v2.62 Rebalanced
- Pokemon Neo X v1.4 Full

However if I install one of these .cia's they keep overwriting the installed original. If I install Pokemon Y it's fine, perhaps because it has a different Game ID? What triggers this so that I can play 3 different versions of pokemon X in this example?
You could load the mods as LayeredFS files instead of patching the ROM directly, and use this tool to switch between them:
https://gbatemp.net/threads/release-lasagna-a-layeredfs-patch-manager-to-use-with-luma3ds.494635/
Obviously the save data will be shared between the different mods, you can use Checkpoint to manage and backup/restore save data when you want to switch mods.
It's a bit more complicated than having them installed side by side, but it's the only way to accomplish what you want to do (have multiple mods on the same system at the same time) other than just installing the X version of one mod, and the Y version of another.
 
  • Like
Reactions: HS2005
Have them installed in separate Nintendo 3DS folders.

Thanks, was not aware of 3DSbank. I have looked at 3DSBank and tested it. However this would work, you would need to create different folders for different games which isn't that convenient in my case.

My fav. method goes out like this (see image below). However like every method mentioned thus far it's not possible this way unless I (we/community) figures out to change the Game/Title ID in a way it installs and boots. A option via FBI would be ideal (Creat differnet Title/GameID? Yes/No) :)
jsRRvIK.jpg


The best (available option) for me to use "thus far" is to use the save manager of JKSV > https://github.com/J-D-K/JKSM/releases

What I basically do is the following:
1) Install a clean copy of pokemon {version}
2) Start game, save via (in)game directly > export via JKSM (So the startpoint will always be the same)
3) Install a different pokemon {version} .cia via FBI
4) Start new game and import (Restore via JKSM) starting point save and play that version of pokemon.
5* Optional - Make a new folder save of that game you are playing.

How would that look:
Folder: \JKSV\Saves\Pokémon X\
Save #1 - Pokemon X v1.0 < (Original Save from starting position)
Save #2 - Pokemon Eternal X 2 62 Rebalanced
Save #3 - Pokemon Neo X v1 4 Full
Save #4 - Pokemon Neo X v1 4 Lite
etc. etc.
 
Last edited by HS2005,
You could load the mods as LayeredFS files instead of patching the ROM directly, and use this tool to switch between them:

So what I understand is that you install the original .cia Pokemon version. For example Pokemon Y. And drop the files into the lasagna folder as instructed so you would have:

1) Wilting Y 2.63 - Insanity Mode - Legal
2) Wilting Y 2.63 - Insanity Mode - Rebalanced
3) Wilting Y 2.63 - Legal version
4) Wilting Y 2.63 - Rebalanced version
5) Neo Y 1.4 - Lite
6) Neo Y 1.4 - Full

I would have 7 versions of Pokemon Y (including the original) Depending on what version I load via Lasagna and create a save of. Do I need to use checkpoint for this or can I also use the save manager of JKSV?

This is what it looks like now:
FpNMjfY.jpg


In some cases there's also a folder called ExtractedExeFS that contains banner.bin & icon.bin. Do you what this does or does it has to be included for extra visual options? Most luma related folders contain the romfs folder that also contains various folders. So after a bit of testing I believe the romfs folder is the most important folder.

Take for example Nova Sun. There is a romfs folder. But for extra files a exefs and romfs folder is present. If I would like those addtional files I can merge them with the original romfs folder and load it via Lasagna? (See image below)
n6wIFR3.jpg



If somebody has addtional info on this let me know. :)
 
Last edited by HS2005,
So what I understand is that you install the original .cia Pokemon version. For example Pokemon Y. And drop the files into the lasagna folder as instructed so you would have:

1) Wilting Y 2.63 - Insanity Mode - Legal
2) Wilting Y 2.63 - Insanity Mode - Rebalanced
3) Wilting Y 2.63 - Legal version
4) Wilting Y 2.63 - Rebalanced version
5) Neo Y 1.4 - Lite
6) Neo Y 1.4 - Full

I would have 7 versions of Pokemon Y (including the original) Depending on what version I load via Lasagna and create a save of. Do I need to use checkpoint for this or can I also use the save manager of JKSV?

This is what it looks like now:
FpNMjfY.jpg


In some cases there's also a folder called ExtractedExeFS that contains banner.bin & icon.bin. Do you what this does or does it has to be included for extra visual options? Most luma related folders contain the romfs folder that also contains various folders. So after a bit of testing I believe the romfs folder is the most important folder.

Take for example Nova Sun. There is a romfs folder. But for extra files a exefs and romfs folder is present. If I would like those addtional files I can merge them with the original romfs folder and load it via Lasagna? (See image below)
n6wIFR3.jpg



If somebody has addtional info on this let me know. :)
JKSM works too, people just generally recommend Checkpoint these days.

The only important part of the ExtractedExeFS is code.bin, if the game modifies it it must be included in the LayeredFS folder. In the case of Nova Sun, it doesn't look like code.bin is even included, which means it's not modified from the original. Sometimes there might be a code.ips instead which is a patch that Luma can apply automatically.

It looks like the Shop.cro file is already in the luma\titles\...\romfs folder. banner.bin and icon.bin are used for a custom logo and icon on the modified cia. Lasagna may be able to display the custom icons in the menus if placed in the correct location, but it's not important. Also, the "Drag and Drop Installation (Recommended!)" section of the install instructions, which makes use of LayeredFS, makes no mention of those files. Only the contents of the luma folder are needed.
 
JKSM works too, people just generally recommend Checkpoint these days.

That is good to know. Because I have experience in the UI and functions of JKSM. :)

The only important part of the ExtractedExeFS is code.bin, if the game modifies it it must be included in the LayeredFS folder. In the case of Nova Sun, it doesn't look like code.bin is even included, which means it's not modified from the original. Sometimes there might be a code.ips instead which is a patch that Luma can apply automatically.

Yeah there is no code.bin included in any of the hacks for Nova Sun. However, there is a code.bin file in Star_Sapphire_Legit for example. 1) Is a code.bin always necessary for all modifications? 2) If it's needed how can it be added/extracted and 3) what does it do? 4) If code.bin is needed I would assume that it would be plaved into the exefs folder, next to the romfs folder. So you would have 2 folders:

1) romsfs
2) exefs


It looks like the Shop.cro file is already in the luma\titles\...\romfs folder. banner.bin and icon.bin are used for a custom logo and icon on the modified cia. Lasagna may be able to display the custom icons in the menus if placed in the correct location, but it's not important. Also, the "Drag and Drop Installation (Recommended!)" section of the install instructions, which makes use of LayeredFS, makes no mention of those files. Only the contents of the luma folder are needed.

Thanks for explaining. The custom logo and icon is a big visual welcome in my opinion. So far every luma folder is seen by Lasagna. That does not mean it work though (I will have to test it)
ks25XnR.jpg


But installing .cia files via FBI is a long and tedious process since the average speed is like 1.40 MiB/s. :( I'm using a Sandisk Extreme Pro SDHC/XC UHS-I (170MB/s) 256GB card. Transferring files from Windows onto the card is on avarage 95 Mbp/s. Which is like going a lot faster :)

DhJi6t5.jpg


If you have more info / suggestions please add. I'm doing all the testing I can and distribute knowledge gathered thus far.
 
Last edited by HS2005,
Sometimes there might be a code.ips instead which is a patch that Luma can apply automatically.
Well that's good to read. I might have misread it yesterday. In most cases the code.ips is present. It's a small file of not even 1kb. What does it do?
WrzCa5s.jpg


Can / must you add more folders besides the romfs folder to do more crazy things / update. Can Lasagna handle that?
 
After a bit of testing I came to the conclusion the Lasagna patches did not work at all. The original thread mentions that you should explicitly put your romfs content in /3ds/Lasagna/LayeredFS/<titleid> <gamename>/<patch name>/romfs.

Yes, well that’s great and all but not everybody understands what the patch name or other id’s names etc. are and means. Giving examples would help a lot.
What did I do wrong:

\3ds\Lasagna\LayeredFS\0x0055D Pokémon X\Eternal X 2.63 - Rebalanced\luma\titles\0004000000055D00\romfs = no, does not work
\3ds\Lasagna\LayeredFS\0x0055D Pokémon X\Eternal X 2.63 - Rebalanced\romfs = yes, works

The Pokemon {version} luma edited files are structured this way if you download them, so that’s the mistake I made.

What works (for Pokemon X):

\3ds\Lasagna\LayeredFS\0x0055D Pokémon X\Eternal X 2.63 - Legal\romfs
\3ds\Lasagna\LayeredFS\0x0055D Pokémon X\Eternal X 2.63 - Rebalanced\romfs
\3ds\Lasagna\LayeredFS\0x0055D Pokémon X\Neo X 1.4 - Full\romfs
\3ds\Lasagna\LayeredFS\0x0055D Pokémon X\Neo X 1.4 - Lite\romfs

NOTES:
I patched the hacks after I installed the Installed Pokemon X v1.0.cia.
Eternal X 2.63 does not boot if you install the 1.5 update. For example, Pokemon X v1.5.cia.
Neo X does work on update 1.5

If you are using cheats with Rosalina you will have to stay on v1.0 if you don't want to have 2 files so a v1.0 and v1.5 text file. That could be annoying.
 
Last edited by HS2005,
  • Like
Reactions: TurdPooCharger
That is good to know. Because I have experience in the UI and functions of JKSM. :)



Yeah there is no code.bin included in any of the hacks for Nova Sun. However, there is a code.bin file in Star_Sapphire_Legit for example. 1) Is a code.bin always necessary for all modifications? 2) If it's needed how can it be added/extracted and 3) what does it do? 4) If code.bin is needed I would assume that it would be plaved into the exefs folder, next to the romfs folder. So you would have 2 folders:

1) romsfs
2) exefs




Thanks for explaining. The custom logo and icon is a big visual welcome in my opinion. So far every luma folder is seen by Lasagna. That does not mean it work though (I will have to test it)
ks25XnR.jpg


But installing .cia files via FBI is a long and tedious process since the average speed is like 1.40 MiB/s. :( I'm using a Sandisk Extreme Pro SDHC/XC UHS-I (170MB/s) 256GB card. Transferring files from Windows onto the card is on avarage 95 Mbp/s. Which is like going a lot faster :)

DhJi6t5.jpg


If you have more info / suggestions please add. I'm doing all the testing I can and distribute knowledge gathered thus far.
As said, if there is no code.bin or code.ips the mod creators didn't modify it. More in depth modifications such as editing game mechanics would require modifying code.bin. If a code.bin is not included in the mod the official one from the game is used.
Well that's good to read. I might have misread it yesterday. In most cases the code.ips is present. It's a small file of not even 1kb. What does it do?
WrzCa5s.jpg


Can / must you add more folders besides the romfs folder to do more crazy things / update. Can Lasagna handle that?
I think code.bin/code.ips goes directly in the titles\TITLEID folder, not in exefs. Use either or, don't use both. If the mod provides a code.ips, just use that. IPS is a patch format from way back commonly used for people to distribute romhacks without distributing the entire modified ROM. In this case it's just being used to patch that one file. Most emulators can apply ips patches on the fly if they're named the same as the ROM file, Luma3DS took inspiration from that and implemented its own on the fly patching. Since technically distributing the full code.bin is illegal since it contains copyrighted code, this allows mods to be released that modify code.bin while keeping it legal.
Lasagna should just copy the entire contents of the title ID folder.
 

Site & Scene News

Popular threads in this forum