mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-16 08:23:28 -05:00
fix: let beebem system roms warn on size
This commit is contained in:
1 parent
012913720c
commit
e6960121d7
2 files changed
+42
-10
No files matched your search
+16
-8
@@ -81,10 +81,11 @@ files:
|
||||
system: bbc-micro-b
|
||||
required: true
|
||||
bundled: true
|
||||
size: 16384
|
||||
min_size: 16384
|
||||
md5: 0a59a5ba15fe8557b5f7fee32bbd393a
|
||||
sha1: 0d9bcaf6a393c9ce2359ed700ddb53c232c2c45d
|
||||
validation: [size]
|
||||
on_mismatch: warn
|
||||
note: "OS ROM slot. Read into 0xc000; an error is reported unless 16384 bytes are read."
|
||||
source_ref: "Src/BeebMem.cpp:1291-1308, Src/RomConfigFile.cpp:43"
|
||||
|
||||
@@ -133,10 +134,11 @@ files:
|
||||
system: bbc-micro-b
|
||||
required: true
|
||||
bundled: true
|
||||
size: 16384
|
||||
min_size: 16384
|
||||
md5: 0a59a5ba15fe8557b5f7fee32bbd393a
|
||||
sha1: 0d9bcaf6a393c9ce2359ed700ddb53c232c2c45d
|
||||
validation: [size]
|
||||
on_mismatch: warn
|
||||
note: "OS ROM slot for Model::IntegraB. Same dump as BeebFile/BBC/OS12.rom."
|
||||
source_ref: "Src/RomConfigFile.cpp:63, Src/BeebMem.cpp:1291-1308"
|
||||
|
||||
@@ -223,10 +225,11 @@ files:
|
||||
system: bbc-micro-bplus
|
||||
required: true
|
||||
bundled: true
|
||||
size: 16384
|
||||
min_size: 16384
|
||||
md5: 978370cc7ab8589a137ada34388a6e32
|
||||
sha1: d9426dd7454ca199cdef9435daa332cdf405c965
|
||||
validation: [size]
|
||||
on_mismatch: warn
|
||||
note: "OS ROM slot for Model::BPlus."
|
||||
source_ref: "Src/RomConfigFile.cpp:83, Src/BeebMem.cpp:1291-1308"
|
||||
|
||||
@@ -290,10 +293,11 @@ files:
|
||||
system: bbc-master-128
|
||||
required: true
|
||||
bundled: true
|
||||
size: 16384
|
||||
min_size: 16384
|
||||
md5: 9087f772447038a00178488b3591347b
|
||||
sha1: 04d5876999f93fc61a18f172b1fbb3b75db733ac
|
||||
validation: [size]
|
||||
on_mismatch: warn
|
||||
note: "OS ROM slot for Model::Master128, read into 0xC000 by BeebReadRoms (Src/BeebMem.cpp:1291-1308)."
|
||||
source_ref: "Src/RomConfigFile.cpp:103"
|
||||
|
||||
@@ -415,10 +419,11 @@ files:
|
||||
system: bbc-master-et
|
||||
required: true
|
||||
bundled: true
|
||||
size: 16384
|
||||
min_size: 16384
|
||||
md5: 4d4afbf220abaa702026f42f98eb5807
|
||||
sha1: c9483ef3ebd66930e635674a3776d171785ae959
|
||||
validation: [size]
|
||||
on_mismatch: warn
|
||||
note: "OS ROM slot for Model::MasterET."
|
||||
source_ref: "Src/RomConfigFile.cpp:123, Src/BeebMem.cpp:1291-1308"
|
||||
|
||||
@@ -468,10 +473,11 @@ files:
|
||||
system: bbc-micro-b
|
||||
required: false
|
||||
bundled: true
|
||||
size: 2048
|
||||
min_size: 2048
|
||||
md5: cd6ba85e22adec70b6d863de4c053db7
|
||||
sha1: 05980c296e1a7800c4aa21d6bed16323b6d859d5
|
||||
validation: [size]
|
||||
on_mismatch: warn
|
||||
note: >
|
||||
Copied into tube RAM at 0xf800 on every 65C02 reset. An error is reported
|
||||
unless 2048 bytes are read.
|
||||
@@ -483,10 +489,11 @@ files:
|
||||
system: bbc-micro-b
|
||||
required: false
|
||||
bundled: true
|
||||
size: 4096
|
||||
min_size: 4096
|
||||
md5: c4c72ceb73300253dc69c865af32f5ac
|
||||
sha1: d05de861922fed73041cc8ac2666886d95bae15b
|
||||
validation: [size]
|
||||
on_mismatch: warn
|
||||
note: >
|
||||
Loaded for TubeDevice::AcornZ80. An error is reported unless 4096 bytes are
|
||||
read. Jonathan Harston's v1.21; the Acorn v1.20 ships as Z80-1.20.rom and is
|
||||
@@ -514,10 +521,11 @@ files:
|
||||
system: bbc-master-128
|
||||
required: false
|
||||
bundled: true
|
||||
size: 16384
|
||||
min_size: 16384
|
||||
md5: de72efe184f74f1cb98f92b1fbf532bb
|
||||
sha1: eb2a043d139ae0f3d512b4f1afa32286510c886c
|
||||
validation: [size]
|
||||
on_mismatch: warn
|
||||
note: >
|
||||
Loaded at 0xf0000 and mirrored three times to fill the top of the 1 MB space.
|
||||
An error is reported unless 0x4000 bytes are read.
|
||||
|
||||
@@ -34,11 +34,14 @@ class _Probe(unittest.TestCase):
|
||||
self._tmp = tempfile.TemporaryDirectory()
|
||||
self.addCleanup(self._tmp.cleanup)
|
||||
|
||||
def accepts(self, emulator: str, name: str, data: bytes) -> bool:
|
||||
def accepts(self, emulator: str, name: str, data: bytes, strict: bool = False) -> bool:
|
||||
"""strict counts a check the code only warns about."""
|
||||
index = _build_validation_index({emulator: _profile(emulator)})
|
||||
path = Path(self._tmp.name) / name
|
||||
path.write_bytes(data)
|
||||
return check_file_validation(str(path), name, index, emulators={emulator}) is None
|
||||
return check_file_validation(
|
||||
str(path), name, index, emulators={emulator}, strict=strict
|
||||
) is None
|
||||
|
||||
|
||||
class BeebEmTeletextFont(_Probe):
|
||||
@@ -52,5 +55,26 @@ class BeebEmTeletextFont(_Probe):
|
||||
self.assertTrue(self.accepts("beebem", "Teletext.fnt", b"\0" * 4000))
|
||||
|
||||
|
||||
class BeebEmSystemRoms(_Probe):
|
||||
"""The OS, Tube, Z80 and Master 512 ROMs are read with one fread of the
|
||||
slot's size. A short read reports an error and BeebEm runs with what it
|
||||
read; bytes past the slot are never read (Src/BeebMem.cpp:1291-1308,
|
||||
Src/Tube.cpp:1540-1553, Src/Z80Support.cpp:247-261,
|
||||
Src/Master512CoPro.cpp:3777-3790 at a982ba6)."""
|
||||
|
||||
CASES = (("OS12.rom", 16384), ("B+MOS.rom", 16384), ("MOS.rom", 16384),
|
||||
("MOS400.rom", 16384), ("6502Tube.rom", 2048), ("Z80.rom", 4096),
|
||||
("BIOS.rom", 16384))
|
||||
|
||||
def test_longer_is_read_and_shorter_only_warns(self):
|
||||
for name, size in self.CASES:
|
||||
with self.subTest(name=name):
|
||||
self.assertTrue(self.accepts("beebem", name, b"\0" * (size * 2)))
|
||||
self.assertTrue(self.accepts("beebem", name, b"\0" * (size // 2)))
|
||||
self.assertFalse(
|
||||
self.accepts("beebem", name, b"\0" * (size // 2), strict=True)
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user