mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-16 08:23:28 -05:00
fix: check altirra happy 810 roms as it detects them
This commit is contained in:
1 parent
276588485a
commit
ee377d2f57
2 files changed
+30
-13
No files matched your search
+16
-13
@@ -378,31 +378,34 @@ files:
|
||||
description: "Happy 810 pre-v7 firmware, 4K original (serial $4490)"
|
||||
system: atari-400-800
|
||||
required: false
|
||||
size: 4096
|
||||
crc32: "942ec3d5"
|
||||
validation: [size, crc32]
|
||||
source_ref: "src/Altirra/source/uifirmware.cpp:528"
|
||||
size: [4096, 8192]
|
||||
validation: [size]
|
||||
on_mismatch: warn
|
||||
source_ref: "src/Altirra/source/uifirmware.cpp:528, src/Altirra/source/firmwaredetect.cpp:186-231"
|
||||
|
||||
- name: happy-810-prev7-4k-nonoriginal.rom
|
||||
description: "Happy 810 pre-v7 firmware, 4K non-original (serial $1704)"
|
||||
system: atari-400-800
|
||||
required: false
|
||||
size: 4096
|
||||
crc32: "143b8538"
|
||||
validation: [size, crc32]
|
||||
source_ref: "src/Altirra/source/uifirmware.cpp:528"
|
||||
size: [4096, 8192]
|
||||
validation: [size]
|
||||
on_mismatch: warn
|
||||
source_ref: "src/Altirra/source/uifirmware.cpp:528, src/Altirra/source/firmwaredetect.cpp:186-231"
|
||||
|
||||
- name: happy-810-prev7-3k.rom
|
||||
description: "Happy 810 pre-v7 firmware, functional 3K inside a 6K image (serial $4B9B)"
|
||||
note: >
|
||||
The image is 6144 bytes; Altirra identifies it by a checksum taken over
|
||||
the functional 3K, which its firmware list reports as the size.
|
||||
the functional 3K, which its firmware list reports as the size. The
|
||||
checksum skips the hidden 1K of a 4K image and the 2-byte serial, so any
|
||||
serial is recognised; a file it does not recognise can still be given
|
||||
the Happy 810 type by hand.
|
||||
system: atari-400-800
|
||||
required: false
|
||||
size: 6144
|
||||
crc32: "f81b69cb"
|
||||
validation: [size, crc32]
|
||||
source_ref: "src/Altirra/source/uifirmware.cpp:528"
|
||||
size: [3072, 6144]
|
||||
validation: [size]
|
||||
on_mismatch: warn
|
||||
source_ref: "src/Altirra/source/uifirmware.cpp:528, src/Altirra/source/firmwaredetect.cpp:186-231"
|
||||
|
||||
- name: happy-810-v7-6k-modified.rom
|
||||
description: "Happy 810 firmware (v7, 6K functional ROM, modified)"
|
||||
|
||||
@@ -315,5 +315,19 @@ class AppleIIgsRomSizes(_Probe):
|
||||
self.assertFalse(self.accepts(emulator, "ROM", b"\0" * 65536))
|
||||
|
||||
|
||||
class AltirraHappy810(_Probe):
|
||||
"""ATFirmwareDetection recognises the pre-v7 Happy 810 ROM by its size
|
||||
(3K, 4K or a doubled overdump) and a CRC32 that skips the hidden 1K and
|
||||
the serial; the whole-file CRC32 the profile checked is never computed,
|
||||
so a dump with another serial was refused (firmwaredetect.cpp:186-231 in
|
||||
the 4.40 source)."""
|
||||
|
||||
def test_any_serial_passes_and_size_only_warns(self):
|
||||
self.assertTrue(self.accepts("altirra", "happy-810-prev7-4k.rom", b"\5" * 4096, strict=True))
|
||||
self.assertTrue(self.accepts("altirra", "happy-810-prev7-3k.rom", b"\5" * 3072, strict=True))
|
||||
self.assertFalse(self.accepts("altirra", "happy-810-prev7-4k.rom", b"\5" * 5000, strict=True))
|
||||
self.assertTrue(self.accepts("altirra", "happy-810-prev7-4k.rom", b"\5" * 5000))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user