Friendly tip: if you report something, DON'T quote it, otherwise the infringing content will also be in YOUR post.Lol, all I know is that posting links to such sights is a no no gbatemp, might want to edit it out. Just warning you.
Lol, all I know is that posting links to such sights is a no no gbatemp, might want to edit it out. Just warning you.
So where can we find a 3DS rom trimmer? I don't want these huge untrimmed files, I like them small. (I trimmed my DS roms myself, keeping the Wi-Fi functionality in all of them.) My R4i 3DS Gold loads any trimmed DS rom I throw at it.
Maybe emulators and rom loaders will eventually add support for 7zip. But nah, that wouldmake too much senserequire them to add in another library which increases the size and complexity of the compile which means more time spent each test build, and then they'd also have to deal with block versus individual compression and if a file has been compressed as a delta difference they would need to uncompress multiple files at once to load a single version of the ROM from the archive, and then they'd have to abide by both the GPL and the unRAR licenses/restrictions in order to distribute the libraries within the program anyways.
7-zip is used a lot cpu usage and memory .... than zip or rar.Something common, relatively-simple, and non-restricting like ZIP works.
7-zip is an archive and compression format and unsuitable for storing resources.
And as far as I know, is used to a lesser extent compared to .zip and .rar. And you have to remember that some people are ....er... not that tech-savvy. Yea, I do know people who do not know what .rar is.7-zip is used a lot cpu usage and memory .... than zip or rar.
but sometimes 7-zip is suitable for storing resources on limited space than rar or zip. and is opensource.
ROMs contain a lot of non-repeating data so the best compress comes from storing multiple versions of a RAM via delta differences, but that's a more complex operation to extract. They need to extract the base file and the changes, then apply them in RAM (opposed to a single extract).but sometimes 7-zip is suitable for storing resources on limited space than rar or zip.
Doesn't mean "free to do whatever with", still gotta' abide by the licensing.and is opensource.
Oh thanks XD Good thing to remember XDFriendly tip: if you report something, DON'T quote it, otherwise the infringing content will also be in YOUR post.
Thanks.
From what I read, the streaming ability is just container-ability for multiple files, and doesn't actually do compression (since good compression needs to analyze the whole file/collection to discern the best patterns). In addition you don't actually run files inside of archives, they need to be extracted into RAM (or onto disk) anyways.7zip has the advantage of streaming...so it might be easier to run a rom from inside a 7z file than from inside a zip file.
If that would have been the case then there was no benefit on using any of the compressions over the others and just use uncompression before play. 7z files can start reading chunks from a file inside the archive without decompressing all of it (as I did in 3dsexplorer... I can open the header of a rom file inside a 7z file, doing that on a zip file is more difficult).From what I read, the streaming ability is just container-ability for multiple files, and doesn't actually do compression (since good compression needs to analyze the whole file/collection to discern the best patterns). In addition you don't actually run files inside of archives, they need to be extracted into RAM (or onto disk) anyways.
From what I read the 7z format does use solid/block compression.If that would have been the case then there was no benefit on using any of the compressions over the others and just use uncompression before play. 7z files can start reading chunks from a file inside the archive without decompressing all of it (as I did in 3dsexplorer... I can open the header of a rom file inside a 7z file, doing that on a zip file is more difficult).
EDIT: i think gz is even better.
You are right, and that's the emulators makers' job to decide wisely. I suggest packing each in its own archive (as 3dsexplorer reads them today).From what I read the 7z format does use solid/block compression.
I guess the concern is if the user has a collection of 7z ROMs (each archive containing the various versions of a single game release), or if they have their whole collection in one archive.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, io, struct
print "trimming {} Bytes".format(sys.argv[1]),
rom = io.open(sys.argv[1], "rb+")
rom.seek(0x100)
assert rom.read(4).decode("ascii") == "NCSD"
fullsize = struct.unpack("<I",rom.read(4))[0] << 9
rom.seek(0x300)
trimsize = struct.unpack("<I",rom.read(4))[0]
rom.seek(trimsize)
while rom.tell() < fullsize:
data = rom.read1(1<<16)
if data == "": break
assert min(data) == "\xff"
assert rom.read1(1<<8) == ""
assert rom.tell() <= fullsize
rom.truncate(trimsize)
rom.close()
print "to {} Bytes".format(trimsize)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, io, struct
print "untrimming {}".format(sys.argv[1]),
rom = io.open(sys.argv[1], "rb+")
rom.seek(0x100)
assert rom.read(4).decode("ascii") == "NCSD"
fullsize = struct.unpack("<I",rom.read(4))[0] << 9
rom.seek(0x300)
trimsize = struct.unpack("<I",rom.read(4))[0]
rom.seek(trimsize)
assert rom.read1(1<<8) == ""
assert rom.tell() == trimsize
while rom.tell() < fullsize:
rom.write("\xff"*min(1<<16,fullsize-rom.tell()))
rom.close()
print "to {} Bytes".format(fullsize)
if trimming removes fucntionnality i hope you rot in hell !!!(I trimmed my DS roms myself, keeping the Wi-Fi functionality in all of them.)