Да и опросить сколько кнопок одновременно было нажато. Это ближе к методу который Вы в соседней теме предложили с нажатием цифры изображенной на экране.
А если серьезно -- а может, пускай юзер сам в сетупе выбирает модель из полусотни вариантов, а тест только на тонкие различия смотрит?
надо уходить от четкой логики к нечеткой:) там можно и пзу применить, и все что хочешь. и даже отмазаться, что вот 99%, что у вас скорпион, а не 100%:)
И крайне желательно предусмотреть ручной выбор, на случай если неправильно определит автоматом или попадется неизвестный зверь. Тем более что:
1) уже писали (хотя можно попытаться определять не CRC или не только его, а отдельные куски кода или например надписи)
2) длительность инта на многих клонах пытались (доработками или настройками)
3) Многи порты (особенно память) на разных клонах могут пересекаться или дублироваться
---------- Post added at 16:45 ---------- Previous post was at 16:30 ----------
Если не бОльшая часть, то очень многие такие ПЗУ давно заменены на стандартные
---------- Post added at 16:51 ---------- Previous post was at 16:45 ----------
А вообще, imho, задача сильно упрощается если определиться для чего это определение нужно. Для многих задач достаточно не достоверно определить модель, а определить определенные параметры модели или их совокупность.
Лично меня в первую очередь интересуют точные временные параметры кадра (бордер и/или мультиколор). К сожалению, варианты с ручным выбором далеко не всегда реалистичны, просто в силу усложнения итогового кода и ограниченных возможностей спектрума как машины. Более реалистично, с моей т.зр. оказывается поддержать фиксированный набор хорошо изученных и распространённых моделей.
1. Тесты ПЗУ я не считаю элегантными и, по возможности, стараюсь их избегать, т.к. они, в каком-то смысле, косвенные. Т.е. если мы видим ПЗУ как у оригинального Спектрума, это не означает, что это Спектрум оригинальный. Если мы видим ПЗУ отличное от оригинального Спектрума, это не значит, что интересующие меня времянки не совпадут с оригиналом. Не очень ясно в таком случае, как относиться к любым итоговым результатам таких тестов - в любом случае, решение придётся принять на основании чего-то ещё, так зачем плодить сущности? Примерно по тому же принципу, определение TR-DOS по системным переменным - возможно, но не очень-то и надёжно.
2. Длительность инта. Кстати, неудачное название теста, т.к. под этим некоторые люди понимают число тактов между кадровыми прерываниями, а некоторые - собственно, саму продолжительность сигнала кадрового прерывания поступающего на процессор. В моём понимании, это отличный тест, т.к. его легко сделать компактным по памяти, и т.к. этот тест позволяет чётко отличить некоторые модели спектрумов, в частности пентагон и зелёный скорпион, а также спектрумы от Amstrad.
3. Именно из-за того, что порты пересекаются, дублируются и, зачастую, из-за неполной дешифрации, ещё и откликаются на чужие имена, я и просил людей поделиться своми наработками в этом плане.
4. У себя в программе я остановился на 2 основных тестах: кол-во тактов на фрейм + вариант кол-ва тактов на фрейм завязанный на медленной памяти, так что можно отличать компьютеры с вейтами от компьютеров без вейтов, а ещё и сортировать по видам вейтов. Кроме этого, я написал дополнительный определитель по портам, но им я совершенно недоволен, т.к. он далеко не всегда отлавливает то, что мне хотелось бы отловить.
Если временные параметры, то что мешает запилить сетуп, в котором юзер курсорными клавишами подгоняет простенький бордюрный эффект под метку на экране?
Согласен, кроме ПЗУ, по причинам изложенным выше. Проверять ПЗУ по-настоящему есть смысл только в том случае, если планируется именно что использование ПЗУ. По-настоящему, я надеялся услышать какие-то идеи относительно 3, т.е. о проверенных в деле последовательностях для тестирования моделей по портам.
---------- Post added at 15:44 ---------- Previous post was at 15:40 ----------
Мешает то, что есть очень много различных подводных камней, которые можно обойти в случае знания конкретной модели спектрума, и которые нельзя обойти "простеньким бордюрным эффектом". Разные виды задержек памяти и процессора. Разное положение int относительно экрана.
А что тут сложного? Пауза больше -- пауза меньше.Цитата:
Разное положение int относительно экрана.
Мда, согласен.Цитата:
Разные виды задержек памяти и процессора
Ко мне больше подходит вот это. Я не кодер.Цитата:
Ммм... давай сделаем так, запрограммируюй что-нибудь