WiiPower wrote:I have a request for a GC .iso shrinker/aligner/defragger/checker:
First of all, some shrinkers break games with audio streams because audio streams need a 32KB alignment within the .iso and most shrinkers ignore that. So we need a shrinker that keeps this in mind. Is there already one that does this? (i'm not counting shrink + "fstfix t", that's 2 tools, i want a tool that at least does all the shrinking in one)
Nope, no such tool exists that does all that in one. Maybe it's time for a new project for me to take on after sd-boot.
Then when loading GC games from disc(on Wii with NeoGamma), the reads are slowed down if the regular files don't have a 2KB alignment. With 2KB alignment, it can read the sectors directly, without it needs to read sector by sector and copy to a buffer. Is this the same when loading GC games on a GC? Is there a tool that grants this 2KB alignment(again i'm not counting "fstfix t", also it wastes a lot of space, because it only needs a 2KB aligment for regular files not 32KB).
2KB alignment makes sense for all data files, but then for audio streaming titles I'd suggest just putting all files to go on 32kb alignment (it would ensure 2kb + 32kb).
Does the alignment affect the read speed on SD-Boot as well? What's the best alignment for loading from sd card?
I'm not sure if SD-Boot requires the files to be in one single fragment, but i see some advantages in this:
- The code from SD-Boot that's running while the game is running doesn't need code from fragment handling, or even code for the file system(FAT).
- If all data is in one chunk the reads are faster
SD-Boot requires all files to be on the same fragment on a SD card (all reads are based on a file start offset), and alignment would affect read speeds but not by much if anything (few ms, maybe 10ms maximum).
The way reads are done in SD-Boot from the SD card are that I send a single command to read multiple bytes of data from block (or offset) X. if I'm not on a aligned sector boundary (512bytes), I just read and throw away those bytes until I arrive at the byte I want, the worst case is that 511 bytes are thrown away, which is quite fast
To sum up my answer here, it won't matter much because I don't have to send a separate request for each "chunk", read speeds do not differ much based on alignment.
So it would be nice if there was a tool that checks if a file is fragmented, and even better if it could defrag the file directly itself.
Oh, and when loading from disc, it matters where the games are put on the disc, (on Wii with NeoGamma) the reading is faster the more the game is near the outer edge of the disc. I think that's why the "Baten Kaitos" fix works, the Baten Kaitos fix(for discs on Wii with NeoGamma) is: 1st disc: fstfix t s g, 2nd disc: fstfix t s f, both on a multi game disc. fstfix g makes a 3 GB .iso from the game and puts the data near the end of the .iso. And fstfix t gets 32KB alignment(see above). If that's not done, the game freezes randomly with a buzzing noise. (i couldn't get an error message out of it with my usb gecko, but when i slowed down the reads, the freezes got more frequently).
Yes, as the data on the edge of the disc is read faster because it's going past the laser at a faster rate there.
Anyways, my point is, a tool that allows to move the data near the end of the disc like "fstfix g" does would be nice. But with more option like 1GB/2GB/3GB .iso, (4.37 - GC .iso size), (4,37 - 2xGC .iso size).
All in all i would love a program that does the following:
"coolapp check game.iso new.iso" returns the minimum alignment of reguar files and audio streams seperately, the amount of unused space within the .iso, and the fragmentation of the .iso
"coolapp shrink game.iso new.iso" removes the unused data and aligns regular files at 2KB, and audio streams at 32KB
"coolapp defrag game.iso" defrags the .iso
"coolapp shrink defrag C:\game.iso F:\new.iso" shrinks and defrags directly(if both is on seperate drives the defragmentation is easier/faster/has a higher success rate)
Oh and the defragger shouldn't break defragmentation of other .iso files.
I think it should all be easy apart from the defrag option.. I wouldn't have a clue how to do this and i'm not sure how efficient it would be (just faster to format the sd card and start again).
I know that i'm asking for a lot, but i want to start a discussion and want to see what's there already and if there's any need at all for a new app or not etc.
PS: Is a .adp file always an audio stream and is an audio stream always a .adp file?
No worries, always appreciate discussion on interesting topics like these, there aren't that many people who actively work/know about GC backup launchers and how to make them proficient. .ADP files are generally audio streaming, but i've seen some .trk or .snd which were also audio streaming files.