Open worthlesscog opened 4 years ago
I'd hazard a guess you're running out of RAM decompressing them, this is an issue on 32-bit at least, there's no real workaround, the ROMs are bigger than the maximum amount of RAM you can allocate.
This box has 32GB physical, 64 bit O/S and 64 bit mame according to file. I guess it could be process limits but I thought they were set to unlimited on this box. I will check. Flagging the data as bad because mame can't allocate enough memory to checksum is a bit poor. I'm not a C++ programmer but surely you get a warning if you try to allocate too much?
Interestingly Mame64 on Windows 10 will verify both 7z archives and extracted files for hapyfsh2 whereas the Linux version will only verify the archive version as correct. I thought these were the process limits, but I'm still trying to work out if there's another doohickey somewhere that's actually in charge of process limits -
/mame$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 127353
max locked memory (kbytes, -l) 65536
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 127353
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Neither runs correctly but this set is listed as preliminary I think so that's probably why. Running the Linux version with an archive doesn't complain that the set is broken or incorrect.
Mame 0.226 seems to fail to verify some roms despite checksums being correct.
Ubuntu 18.04.5 LTS, Mame 0.226 from Cesare Falco's PPA
Source -
Storing hapyfsh2.zip in roms makes verify pass :
This returns instantly - there isn't time to read the whole file so I assume it's just checking the CRC stored in the archive.
Extracting archive to create hapyfsh2 makes verify fail :
This check takes a long time so it must be reading the files but failing to calculate the checksum.