From 8edee622ccc4e9c49f6eb526aaa529d183649cec Mon Sep 17 00:00:00 2001 From: JetSetIlly Date: Tue, 16 Apr 2024 17:49:24 +0100 Subject: [PATCH] peripheral fingerprinting only considers the first 64k of cartridge data --- hardware/peripherals/fingerprint.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hardware/peripherals/fingerprint.go b/hardware/peripherals/fingerprint.go index 9cda3d82..ae922969 100644 --- a/hardware/peripherals/fingerprint.go +++ b/hardware/peripherals/fingerprint.go @@ -75,7 +75,9 @@ func Fingerprint(port plugging.PortID, loader cartridgeloader.Loader) ports.NewP func matchPattern(patterns [][]byte, loader cartridgeloader.Loader) bool { for _, p := range patterns { - if loader.Contains(p) { + // limit check to the first 64k of data. any data beyond that is likely + // to be non-program data and only likely to return false-positives + if loader.ContainsLimit(65536, p) { return true } }