Важная информация

User Tag List

Страница 1 из 7 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 62

Тема: Ремейк Athletic Land by Konami

  1. #1
    Veteran
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Благодарностей: 575
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Ремейк Athletic Land by Konami

    создаю тут тему, для заинтересованных, что было место где обсуждать

    начало
    была такая игра на компьютерах MSX
    Athletic Land (1984) by Konami



    вот видео прохождения

    а вот видео Atletic Land для ПК8020 Корвет


    и вот однажды я увидел на форуме
    http://zx.pk.ru/showpost.php?p=527854&postcount=32
    прототип много уважаемых специалистов по портированию Ivagor/Tim0xA порта на Вектор

    что сподвигло меня взять в руки IDA и начать работы

    для того чтобы можно было портировать игру на другие платформы
    (способ рекомпиляции используемый ivagor & Tim0xA имхо подходит только для не очень сложных игр)

    в общем, что имеем
    репозиторий на bitbucket
    https://bitbucket.org/esl/park_dissassm

    там лежит разбираемая мной версия для MSX
    сейчас она собирается в играбильную версию для MSX
    там частично разобран код

    по крайней мере уже понятно как можно портировать игру
    без особой эмуляции (или с ее минимумом)

    записи думаю вести тут.

    что облегчит перенос
    думаю сделать порт z80->i8080
    это не очень сложно ибо код так написан

    сейчас четко есть продцедуры которые отрисовуют фоны на всех уровнях (т.е. можно рисовать самому)

    и понятно где обображаются спрайты, они только в 1м месте на экран пинаются

    понятно где реализована анимация элементов уровней

    в общем можно пробовать.

    я буду потихоньку двигаться, я в теории хочу сделать порт на Корвет

    в обчем задавайте вопросы если есть желание.
    кто хочет портировать на другие плафтормы - велкам

    там же есть вики, будем там дублировать ответы
    https://bitbucket.org/esl/park_dissa...SX_VDP_Screen2
    Последний раз редактировалось esl; 22.03.2013 в 01:53.

  2. Эти 8 пользователя(ей) поблагодарили esl за это полезное сообщение:
    Djoni (28.08.2012), Enigmatic (29.08.2012), Krautsov (02.10.2012), marinovsoft (15.09.2012), svofski (27.08.2012), Vadim (28.08.2012), Дмитрий (27.08.2012)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    2,747
    Благодарностей: 737
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Было бы здорово, если бы одним из побочных результатов проекта стал транслятор команд z80->i8080, работающий на уровне ассемблерного текста. Очень желательно, чтобы соответствие команд описывалось отдельным файлом (не было спрятано внутри exeшника).

  5. #3
    Veteran
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Благодарностей: 575
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Было бы здорово, если бы одним из побочных результатов проекта стал транслятор команд z80->i8080, работающий на уровне ассемблерного текста. .
    собственно только хотел написать
    на сейчас на битбакете версия
    где в коде игры все z80 заменил на 8080

    z80 остался в MSX specific частях
    типа инициализации,
    INT_Handler
    работа с vdp/клавиатурой/джойстиком
    муз плеере (как понимаю его можно взять из рекомпиляции парка для вектора)


    еще не трогал z80 в
    z80_mirror sprites
    z80_bitswap

    это в процедурах которые формируют знакогенератор
    можно тоже сделать но имхо нет смысла ибо эту часть имеет смысл осознанно переписывать


    у тех комманд что не изменил есть комент вида ;z80_(why)


    Цитата Сообщение от ivagor Посмотреть сообщение
    Очень желательно, чтобы соответствие команд описывалось отдельным файлом (не было спрятано внутри exeшника).
    совсем не понял этого

    у меня сейчас все мои изменения в исходнике
    выглядят так

    Код:
    ;esl
    ;		ld	a, r
    		call 	rand_8
    ;esl
    
    ;esl
    ;		bit	0, b
    		ld a,b
    		and 1<<0
    ;esl
    
    ;esl		
    ;		neg
    		cpl
    		add a,1
    ;esl
    
    ;		ld	hl, PlayerYPos
    ;		ld	de, (unk_E200)
    
    		ld	de, PlayerYPos
    		ld	hl, (unk_E200)
    		ex 	de,hl
    в общем при всех изменениях есть исходный код



    сейчас оно собирается в MSX ROM и там работает,

    попутно выяснил не очень приятный момент

    переменные у меня сейчас живут как и раньше на E000
    и они вообще байт в байт как и было

    надо было вствить новый байт с e000 (rnd seed)
    вылез глюк с прыжками на веревках
    видимо надо дальше копать их
    или не трогать

    я руками ходил по инструкциям и менял сам все кроме
    jr->jp
    call ldir

    в остальных местах вроде смотрел как можно не делать лишнего
    типа для BIT смотрел где можно не сохранять A
    в общем в репозитории можно посмотреть историю
    там последние именно про это пример


    было бы полезно чтоб кто-то свежим взглядом это пересмотрел
    с DIFF это делать легко

    ----

    как работает детектор z80 (z80opcodeDetector.rb)
    идея такая
    опкоды для комманд специфичных для z80 известны

    0x08,0x10,0x18,0x20,0x28,0x30,0x38,
    0xcb, 0xd9, 0xdd, 0xed, 0xfd,

    ассемблируем наш исходник в LST файл
    далее в каждой строчки LST находим опкоды
    и выводим если первый байт есть в списке z80only

    ваша критика метода ?

    ---------- Post added at 19:47 ---------- Previous post was at 19:38 ----------

    -----------------------
    и собственно, park_x2.rom из репозитория можно загрузить в эмулятор MSX и посмотреть что есть

    правда сейчас там для отладки
    переход на следующий уровень это ЛЮБОЙ выход с экрана
    т.е. сейчас если ходить лево право будет переключение экранов
    и можно их посмотреть/поиграть
    Последний раз редактировалось esl; 28.08.2012 в 18:43.

  6. #4
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    2,747
    Благодарностей: 737
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Детектор - это хорошо, но я подумал - вдруг транслятор будет.

  7. #5
    Veteran
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Благодарностей: 575
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Детектор - это хорошо, но я подумал - вдруг транслятор будет.
    не вижу смысла делать аналог "рекомпилинг систем"
    анализ все равно надо делать руками
    IDA все равно сделает ее по удобству

  8. #6
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    2,747
    Благодарностей: 737
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    IDA все равно сделает ее по удобству
    Дизассемблирующую часть recompillera - да, а для транслирующей то части автоматической полнофункциональной альтернативы нет. Тем более иногда исходники для z80 уже есть и дизассемблер не нужен (хотя и recompiller в этом случае не помогает, если им еще раз не дизассемблировать). Но я понял, что автоматическая трансляция - не Ваш метод и, по крайней мере в рамках парка, соответствующего инструмента ждать не стоит.
    Последний раз редактировалось ivagor; 29.08.2012 в 05:18.

  9. #7
    Veteran
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Благодарностей: 575
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    а для транслирующей то части автоматической полнофункциональной альтернативы нет.
    сделать на описанном выше принципе "авто трансляцию" вполне элементарно
    особенно если есть только один асм файл, а изначально так и есть
    и при простой замене это очень легко


    я просто не хотел ее делать, их в данном коде оказалось вменяемое кол-во
    можно сделать руками, и это оправданно

    ибо часто авто рекомпиляция делает много ненужных действий

    -----

    чего долго ходить, вот собственно набросок рекомпилятора

    на входе у него p2.asm
    на выходе p2-i8080.asm
    в начале у него статистики немного
    а дальше все z80 комманды в таком окружении
    Код:
    ;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ESL #36
    ;CB F2  	:: set	6, d		; 6=1 -	write
    		set	6, d		; 6=1 -	write
    ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ESL #36
    
    ;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ESL #4486
    ;ED 5B 72 E1  	:: ld	de, (unk_E162)
    		ld	de, (unk_E162)
    ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ESL #4486
    где после ESL стоит номер строки исходного ASM файла
    далее идет опкод и комманда на всяк случай

    собственно пример демонстрирует что детектор работает
    дописать "рекомпилятор" не сильно сложно
    есть и опкод и текстовая строка
    можно и сюда добавить
    (правда местный народ как-то скриптовые языки не сильно уважает, а зря)

    как работает, сначала компилим в LST файл
    дальше парсим LST, извлекаем номера строк и опкоды для z80only инструкций
    далее берем оригинальный asm и обрабатываем уже известные строки

  10. #8
    Veteran
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Благодарностей: 575
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    мини отчет,

    сегодня еще больше порезал на файлы
    и немного привел в порядок исходники

    добавил вывод на экран дебаг инфы в процессе

  11. Этот пользователь поблагодарил esl за это полезное сообщение:
    Дмитрий (29.08.2012)

  12. #9
    Veteran
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Благодарностей: 575
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    а для транслирующей то части автоматической полнофункциональной альтернативы нет.
    не обратил внимания на эту часть
    что имеется в виду ??

  13. #10
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    2,747
    Благодарностей: 737
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    Цитата:
    Сообщение от ivagor Посмотреть сообщение
    а для транслирующей то части автоматической полнофункциональной альтернативы нет.

    не обратил внимания на эту часть
    что имеется в виду ??
    А я воспринял вот этот фрагмент
    Цитата Сообщение от esl Посмотреть сообщение
    сделать на описанном выше принципе "авто трансляцию" вполне элементарно
    особенно если есть только один асм файл, а изначально так и есть
    и при простой замене это очень легко


    я просто не хотел ее делать, их в данном коде оказалось вменяемое кол-во
    можно сделать руками, и это оправданно

    ибо часто авто рекомпиляция делает много ненужных действий
    как ответ. Мне показалось, что мы оба поняли позицию друг друга.
    Последний раз редактировалось ivagor; 30.08.2012 в 05:09.

Страница 1 из 7 12345 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 45
    Последнее: 02.04.2016, 11:04
  2. Magicians Land
    от Shadow Maker в разделе Игры
    Ответов: 18
    Последнее: 01.05.2013, 16:27
  3. ZX Land и X-Magazine в trd
    от Rindex в разделе Пресса
    Ответов: 15
    Последнее: 13.04.2012, 17:55
  4. Magic Land Dizzy
    от jim в разделе Игры
    Ответов: 20
    Последнее: 09.03.2008, 22:43
  5. adventure land
    от tasman в разделе Игры
    Ответов: 4
    Последнее: 27.01.2005, 16:28

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •