С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
да фиг его знает... дело в том, что не известно как там что исправлено. Игрухи же тестили, значит они проходимые. В любых играх есть баги, возьмите того же Брайде оф франкинштейн, там , когда в верхнюю комнату заходишь экран заглючивает... Ну и что?
---------- Post added at 22:55 ---------- Previous post was at 22:55 ----------
в моем понимании это левак...
Клон, обратись в фирму Codemasters, что-бы они тебе продали оригиналы всех Диззелей. А то они уже замучили весь мир про то, что за их игры надо платить деньги, хотя эти игры уже несколько десятков лет не выпускаются. Вот пускай откроют архивы, и вышлют тебе фирменные кассеты или диски. Правда для дисков тебе надо вернуть родной дисковод в свой +3.
Просто не понимаю смысла плодить корявые хоть и фирменные версии для +3. И вообще, неужели этого никто не сделал за такой промежуток времени? Или ты там решил отгрузку игры сделать?
Может, мы обидели кого-то зря,
Сбросив пару лишних мегатонн,
И горит зелёным пламенем земля,
Там, где был когда-то Пентагон!..
Profi-576 v3.2/AY-3-8912A GI/FDD-5.25'
Slider, видно будет! Адаптирую, тогда сяду все версии сам пройду, если замечу глюки спрошу у тебя как их залечить, ОК?
goodboy, ну картинка, по крайней мере, совпадает с тем что на WOS выдают за оригинал, плюс при загрузке и при просмотре кодовых блоков не видно всякого левака. Я не люблю когда какие-то вставки налеплены...
Адаптировал тут Dizzy1 и нашел очень изящный способ решить проблему незапуска в режиме 128к.
На самом деле проблема ни сколько в системных переменных, сколько в корректном выходе из режима 128к!
Ведь самой игрушке эти переменные не нужны, она не юзает их, также эти переменные не нужны и лодеру, который их затирает совместно со стеком!
И тут возникает вопрос: "ТАК КАКОГО же фига НЕ ПАШЕТ?"
А вот такого , не пашет и все тут...
Давайте зададим еще один вопрос: "А чем отличается режим 128к от 48к, когда Спектрум уже работает в машинном коде?" Думаю не сильно ошибусь, если скажу, что не закрыта защелка банков памяти и есть доступ к АУ (или он есть всегда? ну, это, короче, к знатокам). Но ведь тогда получается, что нет никакой проблемы запустить DIZZY1 из под режима 128к, при этом не нужны даже уловки типа сжатия, загрузки в экранную область и т.п. То есть, возможен вариант абсолютно качественной переделки игры с сохранением оригинальных неизмененный файлов экрана, блока данных, причем с загрузкой их в те же (родные) адреса!
Все что для этого нужно - это сделать всего лишь один изящный ход - я его назвал "Рокировкой" .
Суть этого хода заключается в том, что лодер загружается сначала в нормальное адресное пространство, например, 25017, затем осуществляется корректный переход в машинный код по Randomize usr 25000. Именно этот корректный переход и выправляет ситуацию, после его осуществления работа ОС корректно завершается, и порча системных переменных уже никак не может нарушить работу компьютера, так как вы переходите под управление лодера, а потом самой игры. Вы уже догадались, что после перехода в код по 25000 отрабатывает процедура переброски стандартного лодера по штатному адресу 23296 и осуществляется его старт!
В общем проблема, если кратко, заключалась в том, что испортив системные переменные ОС, вы не могли потом корректно завершить с ней работу и перейти в машинный код, поэтому рокировка - завершение работы с ОС, а потом загрузка лодера в системные переменные спокойно вылечивает проблему с минимальными доработками оригинала.
Считаю этот вариант наиболее оптимальным с точки зрения адаптации к 128к с сохранением по максимуму оригинальности версии.
Аналогично сделаю и на +3DOS, там просто лодер будет другой, а файлы, адреса - все сохранятся!
Вот тапка для режима 128к, отличается от оригинала на 16 байт лодера, в которых реализуется его переброска из верхних адресов ОЗУ в начало системных переменных.
Последний раз редактировалось Addison; 06.12.2009 в 17:49.
Slider, у меня к тебе вопрос, как к опытному кодеру DIZZY .
Я вот тут перегнал на +3 DOS две версии DIZZY1 и DIZZY2 c вроде как фирменных тапок. Заставил их работать без всякого изменения кодовых блоков, немножко подстроил ОС+3 для DIZZY2, но об этом я потом напишу в другой теме...
Вопрос вот в чем. Можешь рассказать или дать ссылку на стандартные баги (глюки) DIZZY2?
Дело в том, что игруха работает, но вскрылся один глюк! Если разбежаться со всей дури в первом экране и прыгнуть вправо, в море где рыбка плавает иногда происходит РЕСЕТ !
Раскрутить в чем проблема так до конца и не удалось, а может и проблемы вовсе нет. Я вот подумал, может ты уже что-то подобное замечал?
Что удалось локализовать:
6204h Call 7269h, удалось установить, что эта процедура выполняется после попадания Диззика в воду. При переключении банка ОЗУ на 6 и воспроизведении музыки при отработке данной процедуры и происходит глюк. Точно его место установить не удалось, сложилось впечатление, что происходит прерывание, которое, естественно, проходит каждый раз по-разному. В момент отработки процедуры включено прерывание второго рода, адрес перехода FDFDh. Я хотел было на него грешить, но Спектрум во время глюка переходит на E5E5h! Так что дело не в IM2! Возможно, это просто некорректная эмуляция SPIN! Однако за твоим диззиком это замечено не было, хотя я все-таки его включал режиме в ПЕНТПГОН128...
В РеалСпектрум эмулятор, воссоздать этот баг не удалось, там эта версия четко работает, не знаю может просто не могу создать условия для глюка или это все же глюк эмулятора SPIN.
Последний раз редактировалось Addison; 06.12.2009 в 21:48.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)