XCI-Cutter tool (Windows)

main.png


XCI-Cutter


Features:

- cuts off (trims) unused sectors
- optionally cuts in pieces (splits)
- batch processing


This tool reads the XCI-Header to determine the full cartridge-size and the actually used space.

By default, the tool checks if the sectors after the used space/gamedata are really unused (filled with FF).
It refuses to cut, if it finds any data in that area (this check can be bypassed by using "Fast Mode").

The tool can be used to restore these FF-sectors and expand XCI-files back to the full cartridge size.


@ChronoX_ compiled a list with actual datasizes over at:
https://wiki.gbatemp.net/wiki/XCI-Cutter


UPDATE 20.06.2018:
Trimmed and split games are now fully compatible with SX OS!

!!! Important Note: !!!
Dumps that were split with a version before v2.4.2,
have to be joined/uncut using that OLDER version.
And afterwards split again using the NEW version.
!!!


Download:
https://github.com/Destiny1984/XCI-Cutter/releases


Changelog:

v2.4.2:
- changed partsize to make split-dumps compatible with SX OS

v2.4.1:
- Bugfix release
fixed splitting which was broken in v2.4

v2.4:
- added "fast mode" to batch processing
(Direct trim of inputfiles / no safety checks)

v2.2:
Changes to batchprocessing:
- added recursive folder scanning (thanks to @RapidRaid aka getraid)
- add files and folders by Drag&Drop

v2.0:
- added batch processing with optional inputfile deletion

v1.5:
- fixed some exceptions
- implemented optional splitting

v1.0:
Initial Release
 
Last edited by MHDestination,

Joe88

[λ]
Global Moderator
Joined
Jan 6, 2008
Messages
12,736
Trophies
2
Age
36
XP
7,440
Country
United States
isnt it the same thing that any compression algorithm do? im pretty sure that putting it in 7z archive would give similar result
A backup loader wont run a 7z file, though I really dont know if they will load these files either
just have to wait and see
 
D

Deleted User

Guest
A backup loader wont run a 7z file, though I really dont know if they will load these files either
just have to wait and see
then... whats your point? it's only made for storing the files...

--------------------- MERGED ---------------------------

No it's not.

A compressed file would be even smaller, but you won't be able to
use an archive (zip/rar/7z ...) in a backuploader
you will probably not be able to use this im a backup loader too
 

Joe88

[λ]
Global Moderator
Joined
Jan 6, 2008
Messages
12,736
Trophies
2
Age
36
XP
7,440
Country
United States
then... whats your point? it's only made for storing the files...

--------------------- MERGED ---------------------------


you will probably not be able to use this im a backup loader too
to save space of the microsd card where you will play your xci backups on the switch, you can see the huge amount of space that was saved from thequickbrownfox's post
 
D

Deleted User

Guest
to save space of the microsd card where you will play your xci backups on the switch, you can see the huge amount of space that was saved from thequickbrownfox's post
...yes... exactly the reason why I always use 7z archieving
 

jfosheezy

Active Member
Newcomer
Joined
Feb 7, 2017
Messages
33
Trophies
0
Age
29
XP
273
Country
United States
Just opened and checked the files I had locally.

Unknown if working afterwards of course but here are some file names.

Lego.City.Undercover.USA.PROPER.NSW-BigBlueBox - 15,232.00MB -> 7,691.69MB

Cave.Story.plus.USA.PROPER.NSW-BigBlueBox - 1,904.00MB -> 519.59MB

Mario.plus.Rabbids.Kingdom.Battle.PROPER.NSW-BigBlueBox - 3808.00MB -> 2774.49MB

Pokken.Tournament.DX.PROPER.NSW-BigBlueBox - 3808.00MB -> 3708.13MB

Super.Bomberman.R.PROPER.NSW-BigBlueBox - 3808.00MB -> 2325.75MB

Kirby Star Allies - bbb-h-ah26a.xci - 3808.00MB -> 3324.01MB

Sonic Forces USA NSW-BigBlueBox - 7616.00MB -> 7078.05MB

The Elder Scrolls V Skyrim NSW-BigBlueBox - 15232.00MB -> 15032.16MB

Resident.Evil.Revelations.NSW-BigBlueBox - 15232.00MB -> 12714.82MB

I.Am.Setsuna.PROPER.NSW-BigBlueBox - 1904.00MB ->1720.79MB

DOOM.NSW-BigBlueBox - 15,232.00MB -> 14,363.42MB

GGUN2BY3DSPARADISE - 3808.00MB -> 3604.16MB

Batman.The.Telltale.Series.NSW-BigBlueBox - 7616.00MB -> 6641.70MB

1.2.Switch.PROPER.NSW-BigBlueBox - 1904.00MB -> 1796.99MB

Rayman.Legends.Definitive.Edition.PROPER.NSW-BigBlueBox - 3808.00MB -> 3365.59MB

Dragon.Ball.Xenoverse.2.PROPER.NSW-BigBlueBox - 7616.00MB -> 6944.24MB

Disgaea.5.Complete.EUR.PROPER.NSW-BigBlueBox - 7616.00MB -> 6798.58MB

Xenoblade.Chronicles.2.NSW-BigBlueBox - 15232.00MB -> 13698.64MB

Snipperclips.Plus.Cut.it.Out.Together.NSW-BigBlueBox - 1904.00MB -> 1573.36MB

Monopoly.NSW-BigBlueBox - 3808.00MB -> 3333.05MB

Nintendo.Labo.ToyCon.02.Robot.Kit.NSW-BigBlueBox - 1904.00MB -> 1434.69MB

South.Park.The.Fractured.But.Whole.NSW-BigBlueBox - 15232.00MB -> 14860.39MB

FIFA.18.NSW-BigBlueBox - 15232.00MB -> 14005.60MB

NBA.2K18.NSW-BigBlueBox - 7616.00MB -> 7384.67MB

Total Before trim = 180,880MB (180.88GB)

Total after trim = 156694.56MB (156.69GB)

Saved = 24.19GB

Impressive. Really hope trimming will be supported
 
Last edited by jfosheezy,
D

Deleted User

Guest
This program trims the blank area of the cartridge dump, which is usually all 0xFF bytes and is not read by the system.

I see no reason why a trimmed dump shouldn't work on Switch.
sometimes systems check if the file is trimmed. I read somewhere that some ds games checked the empty places im the rom as a way to prevent piracy. not that it will help in the long run, but in the short-term it might not (i'd even say won't) work with backup loaders.
 

MHDestination

Well-Known Member
OP
Member
Joined
Sep 12, 2009
Messages
392
Trophies
0
Location
Under your bed
XP
888
Country
Germany
then... whats your point? it's only made for storing the files...

--------------------- MERGED ---------------------------


you will probably not be able to use this im a backup loader too

We don't know yet.
But the chance that it'll work is quite high.

The filestructure isn't changed at all.
The only possibility that these files don't work is if nintendo implemented an
function to check the actual modulesize.

But i'm quite sure that they just read the size by checking the header.
 
D

Deleted User

Guest
We don't know yet.
But the chance that it'll work is quite high.

The filestructure isn't changed at all.
The only possibility that these files don't work is if nintendo implemented an
function to check the actual modulesize.

But i'm quite sure that they just read the size by checking the header.
I wouldnt say that the chances are high. we will need to implement some algorithm that returns ff each time the game tries to acess unused space. it might be simple but its code that would need to run besides the game itself. again, some games on previous consoles used the unused space as intended behavior or even just checked if some adresses are ff. its not that nintendo made them. its extremely simple to implement that in-game...
 

GerbilSoft

Well-Known Member
Member
Joined
Mar 8, 2012
Messages
2,395
Trophies
2
Age
35
XP
4,270
Country
United States
I wouldnt say that the chances are high. we will need to implement some algorithm that returns ff each time the game tries to acess unused space. it might be simple but its code that would need to run besides the game itself. again, some games on previous consoles used the unused space as intended behavior or even just checked if some adresses are ff. its not that nintendo made them. its extremely simple to implement that in-game...
Assuming it's like 3DS (and it probably is, given the reuse of the 3DS OS): Games can't access cartridges on a sector-by-sector level. They can only request access by filename.

This is part of the reason why you need ARM9 homebrew to dump DS/3DS cartridges on 3DS. The ARM11 can't access the cartridge directly; it can only request files.
 

MHDestination

Well-Known Member
OP
Member
Joined
Sep 12, 2009
Messages
392
Trophies
0
Location
Under your bed
XP
888
Country
Germany
I wouldnt say that the chances are high. we will need to implement some algorithm that returns ff each time the game tries to acess unused space. it might be simple but its code that would need to run besides the game itself. again, some games on previous consoles used the unused space as intended behavior or even just checked if some adresses are ff. its not that nintendo made them. its extremely simple to implement that in-game...

Again: we don't know (yet) if such a check exists.

If it does: No problem. Just restore the removed sectors.

If not: Profit!

Doesn't hurt anyone


And by using a cfw / backuploader, it won't be hard to patch out such checks.
 
Last edited by MHDestination,
D

Deleted User

Guest
Assuming it's like 3DS (and it probably is, given the reuse of the 3DS OS): Games can't access cartridges on a sector-by-sector level. They can only request access by filename.

This is part of the reason why you need ARM9 homebrew to dump DS/3DS cartridges on 3DS. The ARM11 can't access the cartridge directly; it can only request files.
oh I didnt know that... that sounds reasonable. but then it means on the cart itself theres a pretty complex processor to handle all that..?
 

SirNapkin1334

Renound Aritst
Member
Joined
Aug 20, 2017
Messages
1,665
Trophies
1
XP
975
Country
United States
Just opened and checked the files I had locally.

Unknown if working afterwards of course but here are some file names.

[snip]

Total Before trim = 180,880MB (180.88GB)

Total after trim = 156694.56MB (156.69GB)

Saved = 24.19GB

Impressive. Really hope trimming will be supported
Maybe put those in a spoiler?
 

jakkal

Well-Known Member
Member
Joined
Apr 27, 2018
Messages
2,303
Trophies
1
Age
44
XP
3,982
Country
United States
i hope this works
i have over 400gb worth of switch games. trimming those down will save me a whole lot of space
 

Zumoly

GBATemp Analyst
Member
Joined
Apr 27, 2018
Messages
1,820
Trophies
0
Location
Yorosso
XP
3,143
Country
Mali
I don't get the blank data part!?
Why require 10 GB if the actual game data is 5 GB?
Anyway great tool! I just hope trimming and getting rid of the original won't be an issue later.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    BakerMan @ BakerMan: +1