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,
XCI_Trimmer.py -t ittledew2.xci


edit: Do you not have another thread for this? I'm not trying to hijack this one.
Although I do wish it supported a straight cut without copy (in batch), so the tool above will work better for me.
you could use xci explorer only takes couple seconds to trim
 
I just pushed a fix to break the checks into smaller parts. Try again.

That worked. Thank you.

edit:
@AnalogMan
XCI_Trimmer.py -t monsterhunterxx.xci

ROM Size: 16 GiB
Trim Size: 10.17 GiB

Checking for data in padding...
Traceback (most recent call last):
File "S:\switch\extracted\XCI_Trimmer.py", line 171, in <module>
main()
File "S:\switch\extracted\XCI_Trimmer.py", line 164, in main
trim()
File "S:\switch\extracted\XCI_Trimmer.py", line 69, in trim
pad = f.read(j)
MemoryError
 
Last edited by datahoarder,
Due to multiple requests, i've added a "fast mode".
I will upload the release later today.

With fast mode, the tool will disable safety checks and process the source-files directly.
It will even trim files with garbage data after the game partition (Like that bad snippecrlips dump).

That way it could process hundreds of files within a few seconds.

But: I still strongly advise not to use it.
If something goes wrong, it could break the dumps!


EDIT:
New release is online https://github.com/Destiny1984/XCI-Cutter/releases/tag/v2.4
 
Last edited by MHDestination, , Reason: upload of v2.4
Hey I tried splitting Mario Odyssey because my sd card is fat32 but when i select split to 4gb parts and start the process it doesnt change anything it only trims it.
 
Thanks for you hard work!
Idk after the process was done i only got one .xc0 file that is 5,58GB.
 
Thanks for you hard work!
Idk after the process was done i only got one .xc0 file that is 5,58GB.

I'm using the new XCI Cutter and I'm only getting one .xc0 file also. Just tried with Skyrim and Breath of the Wild

Thank you for your reports!

It's a bug in v2.4. I've fixed it in v2.4.1:
https://github.com/Destiny1984/XCI-Cutter/releases/tag/v2.4.1
https://github.com/Destiny1984/XCI-Cutter/releases/tag/v2.4.1
Please download the fixed build.
Sorry for the inconvenience.
 
  • Like
Reactions: Paiuand
Split 4Gb works but it generates sometimes files that are too big for FAT32 filesystem : 4 294 967 296 bytes on ExFAT drive instead of 4 294 963 200 bytes for other backups, only one extra byte!
Is it normal?
 
Last edited by olive069,
Yo just tried the new build and everything works perfectly, thank you so damn much for making this tool because its gonna help me a LOT.
 
Split 4Gb works but it generates sometimes files that are too big for FAT32 filesystem : 4 294 967 296 bytes on ExFAT drive instead of 4 294 963 200 bytes for other backups, only one extra byte!
Is it normal?

Thats normal!
I've hardcoded the part-size to 4 294 967 295 bytes (maximum for fat32).
But windows is displaying the sizes wrong, as long as the files are in use.

Wait for the process to finish and refresh your folder afterwards.
Then it should display the correct value.
 
Last edited by MHDestination,
I've just tested with bbb-h-afwta dump. It creates a 4,00 Go (4 294 967 296 bytes) on disk but even if i quit xci-cutter, i can't copy this file on my FAT32 formated SD card.
 
I've just tested with bbb-h-afwta dump. It creates a 4,00 Go (4 294 967 296 bytes) on disk but even if i quit xci-cutter, i can't copy this file on my FAT32 formated SD card.

I have no idea why that happens on your machine.
I've tested it again and for me all parts are exactly 4 294 967 295 Bytes
(Actual filesize / not to be confused with occupied space on disk):

screenshot.jpg

I can copy these parts to FAT32 without any issue.
I've formatted the card with guiformat (clustersize 32kb)

Here's a different build for you to try.
I've decreased the partsize for you sligthly (4gb -64kb)
https://drive.google.com/file/d/1LCnjEszC1NOWdR0mR2M9lUnrZwNV2MpW
 
Last edited by MHDestination,
Does this tool only split/trim when nessecary? Or will it always process the file?

Edit: From 654 GB to 531 GB
 
Last edited by straumli,

Site & Scene News

Popular threads in this forum