PDA

Просмотр полной версии : Перенос игр с ZX Spectrum на Специалист и другие советские компьютеры



5VHappi
21.04.2020, 00:04
Вообще, тема переноса игр на специалист со спектрума, и не только, интересная. Нужны соответствующие инструменты. Так как делать это удобнее на PC, то и инструменты нужны для PC. И информации, как мне кажется маловато.

CityAceE
21.04.2020, 03:16
Нужны соответствующие инструменты.
Тут самые главные инструменты - голова, желание и мотивация. Процесс переноса - это не автоматический процесс, а практически полностью ручной. Я специально в первом посте ещё раз привёл ссылку (https://zx-pk.ru/threads/11067-igra-quot-exolon-quot.html?p=194983&viewfull=1#post194983) на рассказ автора, как он переносил в своё время эту игру на Вектор-06Ц. А так ассортимент инструментария (ассемблеры, дизассемблеры и т.д.) уже давно есть.

5VHappi
21.04.2020, 21:44
Тут самые главные инструменты - голова, желание и мотивация. Процесс переноса - это не автоматический процесс, а практически полностью ручной. Я специально в первом посте ещё раз привёл ссылку (https://zx-pk.ru/threads/11067-igra-quot-exolon-quot.html?p=194983&viewfull=1#post194983) на рассказ автора, как он переносил в своё время эту игру на Вектор-06Ц. А так ассортимент инструментария (ассемблеры, дизассемблеры и т.д.) уже давно есть.


Ну, рас инструментарий есть, тогда посоветуйте. Для начала, мне нужен инструмент, при помощи которого, я из файла "tap", в котором спектрумовская игра записана, вытащу бинарник игры, и узнаю точку старта?

jerri
21.04.2020, 21:48
5VHappi, берешь эмулятор unreal (как самый удобный)
загружаешь игру
выходишь в дебуггер
записываешь всю память (в идеале с 0 до ffff)
и смотришь где в данный момент находится PC
и вот с этого адреса уже и ковыряешь например Гидрой или Идой
чем удобнее

готовый текст можно собрать с помощью sjasm или еще какой пасмой
а как будет собираться можно адаптировать под i8080

5VHappi
21.04.2020, 23:16
5VHappi, берешь эмулятор unreal (как самый удобный)
загружаешь игру
выходишь в дебуггер
записываешь всю память (в идеале с 0 до ffff)
и смотришь где в данный момент находится PC
и вот с этого адреса уже и ковыряешь например Гидрой или Идой
чем удобнее

готовый текст можно собрать с помощью sjasm или еще какой пасмой
а как будет собираться можно адаптировать под i8080

Спасибо. Для начала сойдет. Наверное. Только вопрос, если игрушка 10 Kb весит, всеравно надо с 0000H по FFFFH ?

jerri
22.04.2020, 00:28
5VHappi, если она весит 10кб а использует ПЗУ и остальную память, то лучше взять все.
чо за игруха то?

CityAceE
22.04.2020, 01:35
Только вопрос, если игрушка 10 Kb весит, всеравно надо с 0000H по FFFFH ?
1. Она может быть запакованной и весить 10 Кб, а после распаковываться занять всю память.
2. Она после запуска может раскидать свои блоки по всей памяти.
Так что для изучения необходимо иметь дамп всей памяти.

CityAceE
22.04.2020, 08:10
Для простого в реализации варианта нужно 8 Кб дополнительной памяти одним куском
Сейчас, конечно, всё зависит только от твоего желания, ибо никто кроме тебя не сможет сделать цветную версию. Но в любом случае я бы предпочёл иметь полноценную версию с ограничениями, чем не иметь её вовсе.


эксолон ждет новых героев, которые смогут сделать быстрый и влезающий в стандарт цветной вариант.
К сожалению, время таких героев безвозвратно ушло вместе с эпохой домашних ПК.

ivagor
22.04.2020, 10:07
Тема дискуссии несколько расширилась и затронула адаптацию игр для Специалиста (ну или для 8080) в целом. Если с точки зрения потребителя, то я за ручную работу и выделку каждого байта, но если с точки зрения портировщика, то чем больше утилит, спецэмуляторов, конвертеров, рекомпиляторов и других средств облегчающих жизнь и сокращающих затраты времени - тем лучше.
Что касается "с чего начать". Не обязательно начинать с дизассемблирования, есть уже дизассемблированные исходники некоторых игр (хотя они могут не вполне устроить) и, что наверное лучше, выложенные авторами исходники. Тут все зависит от личных предпочтений, но вот например Yazzie (http://www.retrosouls.net/zx/yazzieSrc.zip)

5VHappi
22.04.2020, 13:17
5VHappi, если она весит 10кб а использует ПЗУ и остальную память, то лучше взять все.
чо за игруха то?

Тетрис

jerri
22.04.2020, 13:19
Тетрис

Пзу полюбому использует. с 0000 по #4000 сохранять надо. ну а дальше смотреть надо.

zx_
22.04.2020, 13:34
тут игрушков много , с исходниками
принц персии и уфо, допустим, отлично на специалисте бы смотрелись
http://opensourcezx.untergrund.net/a_games.html

:v2_dizzy_army:

jerri
22.04.2020, 14:21
тут игрушков много , с исходниками
принц персии и уфо, допустим, отлично на специалисте бы смотрелись
http://opensourcezx.untergrund.net/a_games.html

:v2_dizzy_army:

большинство этих исходников слабочитаемы.

NEO SPECTRUMAN
23.04.2020, 00:43
большинство этих исходников слабочитаемы.
+в форматах доисторических вымерших асмов

CityAceE
23.04.2020, 03:38
в форматах доисторических вымерших асмов
Это легко исправляется самонаписанным конвертором.

ivagor
09.06.2020, 17:51
CityAceE в теме про эксолон писал, что хорошо бы и batty портануть на специалист. Я бы обратил внимание на krakout, там в отличие от batty, arkanoid, arkanoid 2
1. Не используются по две градации одного цвета в игровом поле, или я не заметил (хотя для MX это не проблема).
2. Не используются прерывания или чтение порта FF для синхронизации с разверткой. Тоже не смертельная проблема, но все же так сразу проще.

ivagor
20.06.2020, 08:10
Посмотрел немного арканоид и он понравился мне своей простотой, на первый взгляд код незамысловатый (по крайней мере связанный с выводом графики). Есть пара неудобных моментов:
1. Cинхронизация по порту FF - переделывается на синхронизацию по прерыванию с как минимум удовлетворительным результатом. Если прерываний привязанных к кадру нет, то можно попробовать тормозить по таймеру для поддержания постоянной скорости (про мигание см. п.2).
2. Рисование спрайтов сразу на экран, без синхронизации с выводом изображения будет мигать. Но на советских компах миганием спрайтов мало кого испугаешь.

Rus
22.09.2020, 10:23
Переношу Exolon с со спектрума на IBM PC/XT(4,7 Мгц)+CGA, давно хотел видеть на этой платформе, интересно что получится. Изначальная цель - чтобы "просто работало" :). Потом оптимизировать.
Использую дизассемблированную zx-версию esl методом практически прямой трансляции, за исключением вывода графики. Сперва перенес музыку из начальной заставки, далее меню, рисование уровней

проигрывание музыки из заставки

https://www.youtube.com/watch?v=YgDp_b-IbKU

проверка формирования спрайтов, замедлил для отображения процесса рисования

https://www.youtube.com/watch?v=7VObTt98IVw

запуск на реальном железе IBM PC 5150 уже показал необходимость оптимизаций :) На "Поиске" все это работает практически в два раза медленней

https://www.youtube.com/watch?v=zQ9wKeJy-gw

goodboy
22.09.2020, 10:56
Cинхронизация по порту FF
его позже сами авторы переделали (на +3 нельзя так прочесть аттрибуты), там просто пауза после halt