Просмотр полной версии : Портирование Desolate на Вектор-06Ц
Всем доброго дня.
Есть несколько вопросов по разработке под Вектор в 2020 году.
1. Ассемблер.
В примерах исходников что я нашёл везде используется tasm - есть ли версия tasm совместимая с Windows 10? или исходники чтобы её собрать?
Какой ещё ассемблер можно использовать?
2. Эмулятор.
Какие эмуляторы есть, есть ли эмулятор с отладчиком?
3. Перенос программ с процессора Z80.
Есть какое-то руководство?
Есть ли модификация Вектора с Z80 процессором? видимо, Вектор Турбо+ ? есть ли поддержка этого в эмуляторах?
Видел упоминания PROGRAM RECOMPILE SYSTEM - где почитать, посмотреть?
4. Загрузочные форматы.
Результат компиляции для загрузки - что это должно быть? где почитать про это?
marinovsoft
27.11.2020, 17:06
1. Ассемблер.... есть ли версия tasm совместимая с Windows 10?
http://old-dos.ru/dl.php?id=1926
Видел упоминания PROGRAM RECOMPILE SYSTEM - где почитать, посмотреть?
https://zx-pk.ru/threads/15302-korvet-igry.html?p=916878&viewfull=1#post916878
Результат компиляции для загрузки
ROM-файл, загрузка с адреса 100h.
Какой ещё ассемблер можно использовать?
Еще есть прекрасный ассемблер svofski и он даже где-то выкладывал оффлайн версию, ссылки лучше он сам приведет
Какие эмуляторы есть, есть ли эмулятор с отладчиком?
Emu (http://www.sensi.org/scalar/ware/550/) (b2m) - ссылка на краткое описание, там ссылка на страницу b2ma
Virtual Vector (http://www.sensi.org/scalar/ware/552/) (Ramiros)
Emu80 (https://zx-pk.ru/threads/27488-emu80-v-4.html) (Pyk)
Во всех перечисленных есть gui и отладчики, мне больше нравится отладчик emu, но и в других есть свои фишки, например профайлинг в VV.
Еще есть v06x svofski, правильную ссылку лучше даст он сам. Там тоже есть фишки, например непревзойденное качество эмуляции ШИМа
Есть ли модификация Вектора с Z80 процессором?
Вектор турбо+ вероятно был в одном экземпляре и он не поддерживается в эмуляторах. Три основные варианта установки z80: Кишинев (http://www.sensi.org/scalar/ware/571/) (с элементами эмуляции спека), Омск (http://www.sensi.org/scalar/ware/569/), Владимир (http://www.sensi.org/scalar/ware/570/). Про кишиневский еще есть тема (https://zx-pk.ru/threads/18798-emulyator-quot-zx-spectrum-48-quot-na-quot-vektore-06ts-quot.html) и он поддерживается в emu. В остальных можно сказать Омск/Владимир.
У меня есть желание перенести игру Desolate на Вектор-06Ц - я уже практически закончил перенос на ZX Spectrum.
https://zx-pk.ru/threads/32431-desolate-port-s-ti-83-plus.html
https://github.com/nzeemin/spectrum-desolate
Кода 7КБ, остальное это строки 5902 байт, шрифт 869 байт, описания комнат 7К, переменные + тайлы/спрайты 16300 байт, теневой экран 3312 байт, итого ~40515 байт под всё.
Текущий код компилируется под pasmo и sjasmplus.
Какой стратегии конвертации лучше придерживаться?
Предполагаю сначала скомпилировать как есть тем же pasmo, затем переделка вывода на экран, переделка ввода с клавиатуры, затем видимо перевод под мнемонику КР580ВМ80А и компиляция в tasm, переделка на код для этого процессора.
Еще есть прекрасный ассемблер svofski
Онлайн он прекрасен, хоть и не идеален. Но в оффлайновой форме прекрасм вряд ли может соперничать с TASM-ом, не стоит заморачиваться.
https://svofski.github.io/pretty-8080-assembler/
Для создания вавов:
https://github.com/svofski/bin2wav/
Мой эмулятор. В нем нет ни гуя, ни отладчика (хотя он может быть gdb сервером для gdb-z80). Зато он запускается из командной строки, скриптуется и все такое.
https://github.com/svofski/vector06sdl
- - - Добавлено - - -
перевод под мнемонику КР580ВМ80А
Многие предпочитают писать под 8080 в мнемониках Z80, ничего страшного (несмотря на сотни страниц брани на форуме о том, какие мнемоники единственно верные). Может быть лучше потратить эти силы на что-то более осязаемое. У Вектора будет с чем повозиться.
Порадую первым скриншотом.
Компилирую часть через tasm: код инициализации, прерывания итп., остальное через pasmo с опцией --w8080 - она даёт варнинги на команды недоступные для i8080.
Пока ещё не всё перелопатил под i8080, самая мякотка осталась.
Репозиторий кода: https://github.com/nzeemin/vector06c-desolate
https://pic.maxiol.com/thumbs2/1606564415.1845257576.202011273.png (https://pic.maxiol.com/?v=1606564415.1845257576.202011273.png&dp=2)
Есть пара вопросов:
1. Эффективный способ развернуть биты одного байта в обратную сторону? пока вижу только вариант все сдвиги делать через аккумулятор, обмениваясь с парой регистров, громоздкий код.
2. Нужен генератор случайных чисел, достаточно даже 8-битного. Для Спектрума использовал вариант с регистром R, тут его очевидно нет.
1. Эффективный способ развернуть биты одного байта в обратную сторону? пока вижу только вариант все сдвиги делать через аккумулятор, обмениваясь с парой регистров, громоздкий код.
Смотря насколько быстро нужно разворачивать.
Если максимально быстро, то по таблице на 256 байт.
Если достаточно умеренной скорости (или нужно сгенерить вышеупомянутую таблицу) - исходный байт в H, сдвигаем во флаг переноса по dad h, задвигаем в аккумулятор по rar (и так 8 раз)
2. Нужен генератор случайных чисел, достаточно даже 8-битного. Для Спектрума использовал вариант с регистром R, тут его очевидно нет.
Если устроит lfsr, то пример есть здесь (https://zx-pk.ru/threads/21907-demo-effekty-dlya-vektora.html?p=930543&viewfull=1#post930543). Если нужен именно 8 битный, то можно легко переделать, полиномы например здесь (https://users.ece.cmu.edu/~koopman/lfsr/8.txt) (а для 16 брал тут (https://users.ece.cmu.edu/~koopman/lfsr/16.txt))
ivagor, прекрасный ответ, исчёрпывающе. спасибо огромное! вообще, эта часть форума мне всё больше нравится :-)
А между тем, я получил скрин игрового экрана (над палитрой ещё буду работать конечно):
https://pic.maxiol.com/thumbs2/1606571611.1845257576.202011281.png (https://pic.maxiol.com/?v=1606571611.1845257576.202011281.png&dp=2)
Эффективный способ развернуть биты одного байта в обратную сторону
таблицей перекодировки (теряем 256 байт)
По поводу клавиатуры - какие клавиши лучше использовать?
Думаю сделать примерно так:
- Движение в четырёх направлениях - очевидно стрелки.
- Look/shoot - Пробел
- Переключатель Look/Shoot - ТАБ
- Инвентарь - 'I' / 'M'
- Закрыть диалог (Escape) - ??
- Выход в меню - 'P' / 'R'
Нужны ли ещё дублёры для этих клавиш?
Я бы пробел оставил в покое. УС/Ctrl лучше. ESC как всегда АР2. Хорошо бы предусмотреть возможность добавить дублирование на джойстиках.
Опрос клавиатуры + джойстиков из Рива рейда:
https://github.com/svofski/incursiondelrio/blob/master/input.inc
По поводу клавиатуры - какие клавиши лучше использовать?
...
- Look/shoot - Пробел
- Переключатель Look/Shoot - ТАБ
...
А обязательно нужен "Переключатель" ?
Может просто на разные кнопки назначить ?
Что-то из: "УС", "СС", "Рус/Lat".
Ещё у меня вопрос - можно ли проверить бит регистра, не меняя его?
То есть конкретно на Z80 это: bit 7,a / jp nz
А обязательно нужен "Переключатель" ?
Может просто на разные кнопки назначить ?
Что-то из: "УС", "СС", "Рус/Lat".
Тут нужно скорее уменьшать количество задействованных кнопок, а не увеличивать.
Ну и так реализовано в оригинале, не хотелось бы это сильно двигать.
То есть конкретно на Z80 это: bit 7,a / jp nz
В этом конкретном случае (старший бит аккумулятора) да. ora a или ana a, по результату изменится флаг знака и дальше соответствующий переход.
В аттаче положил первую драфт-версию.
https://pic.maxiol.com/thumbs2/1606655171.1845257576.202011292.png (https://pic.maxiol.com/?v=1606655171.1845257576.202011292.png&dp=2) https://pic.maxiol.com/thumbs2/1606655390.1845257576.202011293.png (https://pic.maxiol.com/?v=1606655390.1845257576.202011293.png&dp=2) https://pic.maxiol.com/thumbs2/1606655485.1845257576.202011294.png (https://pic.maxiol.com/?v=1606655485.1845257576.202011294.png&dp=2) https://pic.maxiol.com/thumbs2/1606655569.1845257576.202011295.png (https://pic.maxiol.com/?v=1606655569.1845257576.202011295.png&dp=2)
Текущий маппинг клавиатуры Вектора:
- Движение в четырёх направлениях - стрелки.
- Look/shoot - Пробел
- Переключатель Look/Shoot - ТАБ
- Инвентарь - 'I' / 'M'
- Закрыть диалог (Escape) - ПС / ЗБ
- Выход в меню - 'P' / 'R'
Собираюсь ещё доделать:
- Генератор случайных чисел
- Применение "тёмной темы" в режиме когда на экране печатается часть истории
- Исправления ошибок
- Может быть, какая-то оптимизация
Ребят, а можно ещё пример кода чтобы простейший пук на динамик выдать? хочу повесить на look/shoot, как и в ZX версии.
Только пожалуйста, ничего сложного, просто цикл или вызов в ROM.
А чем тут принято упаковывать результат? какой-нибудь консольный упаковщик + код распаковки?
(сорри туплю, вспомнил про LZSA - https://gitlab.com/ivagor/lzsa8080
Ребят, а можно ещё пример кода чтобы простейший пук на динамик выдать? хочу повесить на look/shoot, как и в ZX версии.
Только пожалуйста, ничего сложного, просто цикл или вызов в ROM.
...
Не знаю, можно-ли сделать компактный вывод "пук" через ВИ53.
Мне кажется можно попробовать вывести в динамик код самой программы. ;)
Прослушать всю программу, возможно кусок с какой-то картинкой может быть похож на "пук". :)
Это чтоб звук специально не хранить, место экономить... взять кусок того, что уже есть...
nzeemin, вопрос в том, как в принципе издать звук или в том как издать конкретный звук? Возможно есть пример такого звука для другого компа.
nzeemin, вопрос в том, как в принципе издать звук или в том как издать конкретный звук? Возможно есть пример такого звука для другого компа.
Думаю, нужна подпрограмма (для Вектора), вывода звука вообще, и образец конкретного звука в частности.
Improver
01.12.2020, 12:27
Если надо издать звук через ВИ53, то вот небольшой код, выдрал из теста техпрогона:
; Режим 3 - генератор прямоугольных сигналов
LXI H, 005DCh ; Значение делителя частоты
MVI A, 036h ; 0011 0110 -- [канал 0][чт/зп слова][режим 3][двоичный]
OUT 008h ; РУС м/с ВИ53
MOV A, L
OUT 00Bh ; Канал 0
MOV A, H
OUT 00Bh ; Канал 0
LXI H, 002EEh ; Значение делителя частоты
MVI A, 076h ; 0111 0110 -- [канал 1][чт/зп слова][режим 3][двоичный]
OUT 008h ; РУС м/с ВИ53
MOV A, L
OUT 00Ah ; Канал 1
MOV A, H
OUT 00Ah ; Канал 1
LXI H, 001F4h ; Значение делителя частоты
MVI A, 0B6h ; 1011 0110 -- [канал 2][чт/зп слова][режим 3][двоичный]
OUT 008h ; РУС м/с ВИ53
MOV A, L
OUT 009h ; Канал 2
MOV A, H
OUT 009h ; Канал 2
; выключение звука
; Режим 0 - выдача сигнала прерывания по конечному числу
MVI A, 030h ; 0011 0000 -- [канал 0][чт/зп слова][режим 0][двоичный]
OUT 008h ; РУС м/с ВИ53
MVI A, 070h ; 0111 0000 -- [канал 1][чт/зп слова][режим 0][двоичный]
OUT 008h ; РУС м/с ВИ53
MVI A, 0B0h ; 1011 0000 -- [канал 2][чт/зп слова][режим 0][двоичный]
OUT 008h ; РУС м/с ВИ53
Если не ошибаюсь в значениях, то там через канал 0 выдаётся частота 1кГц, канал 1 -- 2кГц и канал 2 -- 3кГц.
Самый простой пук наверное можно изобразить битом 0 порта 1. Что проще всего делать в режиме 8255 BSR (https://en.wikipedia.org/wiki/Intel_8255#Bit_Set/Reset_(BSR)_mode). Если я ничего не путаю, это будет примерно так:
Порт 0: Бит 7 = 0, биты 3:1 - номер бита, бит 0 = значение. То есть
mvi a, 1
out 0 ; 8255 CSR
; <какое-то время>
mvi a, 0
out 0
; <какое-то время>
Improver
01.12.2020, 15:08
Ну если нужен не просто щелчёк динамиком, а типа как звук нажатия клавиш в МДОСе, то там используется такой код (из МДОС Т-72):
; звук нажатия клавиши
L_F6F6: MVI H, 030h ; Счётчик 1
XRA A
L_F6F9: MVI L, 040h ; Счётчик 2
L_F6FB: DCR L
JNZ L_F6FB ; Задержка 40h циклов
XRI 001h ; А=0000 000х, режим оперирования битами, инверсия бита 0
OUT 000h
DCR H
JNZ L_F6F9 ; Цикл, повтор 30h раз
Ну если нужен не просто щелчёк динамиком, а типа как звук нажатия клавиш в МДОСе, то там используется такой код (из МДОС Т-72):
; звук нажатия клавиши
L_F6F6: MVI H, 030h ; Счётчик 1
XRA A
L_F6F9: MVI L, 040h ; Счётчик 2
L_F6FB: DCR L
JNZ L_F6FB ; Задержка 40h циклов
XRI 001h ; А=0000 000х, режим оперирования битами, инверсия бита 0
OUT 000h
DCR H
JNZ L_F6F9 ; Цикл, повтор 30h раз
Ну вот а я предлагаю не просто гнать туда 0 и 1 , а код самой программы... получится не просто "зззззз", а "хр-хр-хр" :)
Выбрать только нужный фрагмент, экспериментальным путём.
Если устроит lfsr, то пример есть здесь (https://zx-pk.ru/threads/21907-demo-effekty-dlya-vektora.html?p=930543&viewfull=1#post930543). Если нужен именно 8 битный, то можно легко переделать, полиномы например здесь (https://users.ece.cmu.edu/~koopman/lfsr/8.txt) (а для 16 брал тут (https://users.ece.cmu.edu/~koopman/lfsr/16.txt))
Опробовал этот вариант. Не сказать что прям блестяще, но использовать вполне можно.
rnd16:
lxi h,65535
dad h
shld rnd16+1
rnc
mvi a,00000001b ; flipped 80h - 10000000b
xra l
mov l,a
mvi a,01101000b ; flipped 16h - 00010110b
xra h
mov h,a
shld rnd16+1
ret
ld hl,$C000
ld bc,$1000
Start_A:
push bc
push hl
call rnd16
ex de,hl
pop hl
ld a,e
ld (hl),a
inc hl
ld a,d
ld (hl),a
inc hl
pop bc
dec bc
ld a,b
or c
jp nz,Start_A
https://pic.maxiol.com/images2/1606856686.1845257576.202012011.png
- - - Updated - - -
Но вот этот вариант выглядит получше: https://wikiti.brandonw.net/index.php?title=Z80_Routines:Math:Random#Combined_ LFSR.2FLCG.2C_16-bit_seeds
Random16:
ld hl,(seed1)
ld b,h
ld c,l
add hl,hl
add hl,hl
inc l
add hl,bc
ld (seed1),hl
ld hl,(seed2)
add hl,hl
sbc a,a
and %00101101
xor l
ld l,a
ld (seed2),hl
add hl,bc
ret
seed1: dw 12345
seed2: dw 54321
https://pic.maxiol.com/images2/1606857290.1845257576.202012012.png
- - - Updated - - -
В аттаче второй драфт.
Улучшения:
- Применять светлую/тёмную тему в зависимости от ситуации
- Уменьшить задержки на 25-30%
- Улучшить маппинг клавиш: АР2 escape
- Генерация случайного числа
Что ещё собираюсь сделать:
- Улучшить маппинг клавиш: задублировать Look/Shoot
- Моргать бордюром когда игрок получает урон
- Звук "тык" при look/shoot
- Сжатие основной части через LZSA1, распаковка
Не сказать что прям блестяще
Поэтому я и написал "если устроит lfsr". Как написано по ссылке "On their own, LCGs and LFSRs don't produce great results and are generally very cyclical". В качестве rnd общего назначения lfsr не так хорош, но в некоторых случаях именно то, что нужно.
nzeemin, а это "фишка" такая, что лабиринт "не сходится" ?
Типа комнаты находятся на разных этажах, и некоторые двери являются переходом на другой этаж?
nzeemin, а это "фишка" такая, что лабиринт "не сходится" ?
Типа комнаты находятся на разных этажах, и некоторые двери являются переходом на другой этаж?
Хороший вопрос. нет, он вполне себе "сходится", т.е. укладывается на плоскость.
Просто некоторые переходы - длинные, длинной в целую комнату.
nzeemin, может и под Специалист сделаете порт Desolate?
игрушка прикольная
nzeemin, может и под Специалист сделаете порт Desolate?
игрушка прикольная
Надо сначала доделать порты под Спектрум и Вектор, а там видно будет. У меня ещё много работы.
Посмотрел, экран Специалиста неудобный для этой игрушки, игровая часть экрана будет уже слишком маленькая. Так что скорее нет.
Драфт 3 в аттаче.
Что нового:
- Сжатие основной части через LZSA1, распаковка - спасибо ivagor за распаковщик!
- Звук "тык" при look/shoot - использовал код который дал Improver
- Моргать бордюром когда игрок получает урон
- Улучшить маппинг клавиш: задублировать Look/Shoot
Маппинг клавиш теперь такой (если я всё сделал правильно конечно):
- Движение в четырёх направлениях - стрелки.
- Look/shoot - УС, Пробел
- Переключатель Look/Shoot - ТАБ, РУС/ЛАТ
- Инвентарь - 'I', 'M'
- Закрыть диалог (Escape) - АР2, ЗБ, ПС
- Выход в меню - 'P', 'R'
Что ещё собираюсь сделать:
- Багфиксы и возможно ещё какие-то мелочи
В целом состояние - "почти готово".
Драфт 3 в аттаче.
...
Мне кажется звук "тык" как-то запаздывает что-ли. И по не понятному пока принципу то один "тык", то два в подряд.
И видимо нужно знать оригинальную игру, что-бы понять: почему всё-же вместо комнат есть "скачки", и что делать с некоторыми предметами (например кубиком). (Где-то пропустил 13-ый картридж).
И здоровье тут не восстановить?
CityAceE
05.12.2020, 12:53
Посмотрел, экран Специалиста неудобный для этой игрушки, игровая часть экрана будет уже слишком маленькая. Так что скорее нет.
Однако это никак не мешает адаптировать на Специалист игры со Спектрума (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html).
На мой взгляд в портировании Desolate на специалист мешает только некоторая нехватка памяти. На MX должно быть без проблем
- - - Добавлено - - -
Насчет размера экрана. Планируется ведь версия для спека, и на некоторых его клонах (БМКшные и Балтик) размер полезной части картинки будет одинаковый со специалистом.
Мне кажется звук "тык" как-то запаздывает что-ли. И по не понятному пока принципу то один "тык", то два в подряд.
И видимо нужно знать оригинальную игру, что-бы понять: почему всё-же вместо комнат есть "скачки", и что делать с некоторыми предметами (например кубиком). (Где-то пропустил 13-ый картридж).
И здоровье тут не восстановить?
Два и больше "тык" подряд бывает когда для действия ничего не обнаружено - следующий "тык" идёт на следующем шаге игрового цикла.
Знать оригинальную игру не нужно, моя задача была просто перенести один-к-одному, считаю что справился ;-)
То что вместо комнат на карте кое-где есть пропуски - это особенность редактора, который себе сделал автор оригинальной игры, просто он использовал не все "слоты" под комнаты.
Некоторые предметы (например, кубик) бесполезны.
Здоровье не восстанавливается.
- - - Updated - - -
Однако это никак не мешает адаптировать на Специалист игры со Спектрума (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html).
На спеке картинка 256x192, это нормально смотрится на экране 384x256.
Здесь исходная картинка 96 x 64 пикселов, x2 будет 192 x 128 - на Специалисте это уже будет только половина экрана.
Конечно, это можно как-то порешать - делать тайлы/спрайты ещё больше, или масштабировать на лету.
Но в целом в эту сторону мне портировать не очень интересно, сорри.
Если кто-то хочет портировать дальше - без проблем - исходный код весь открыт, и достаточно хорошо комментирован чтобы разобраться за несколько дней. Конвертер тайлов/спрайтов написан на C#, тоже можно допилить под конкретную машину.
Драфт 4 в аттаче, и в принципе, это уже "release candidate" - если всё нормально, то считаем это релизом.
Из нового только одна фича:
Когда стучимся в дверь и там ввод кода на уровень который уже был введён - выполняется автоматический ввод цифр, нужно только нажать Fire.
Драфт 4 в аттаче, и в принципе, это уже "release candidate" - если всё нормально, то считаем это релизом.
Из нового только одна фича:
Когда стучимся в дверь и там ввод кода на уровень который уже был введён - выполняется автоматический ввод цифр, нужно только нажать Fire.
Мне кажется это излишнее упрощение.
Портирование на Вектор принципиально полностью совпадает с оригиналом?
Типа перенос "авторской идеи" ?
Просто мне кажется, что если будут некие "фишки" возможно это добавит интерес и тех, кто эту игру знал в оригинале.
Хотя я не игроман, и не знаю, что игрокам интереснее, увидеть полную копию, или знакомую игру с новыми "фишками".
Но наличие дверей со скачками по коридору наводит на мысль, что могла быть комната с дверью, которая открывает проход не в одну конкретную, а в 3-4 комнаты лабиринта, выбираемые случайным образом при каждом проходе через эту дверь. Это дополнительная интрига, местоположения в лабиринте.
;)
В предыдущих версиях, клавиши курсора не приятно обрабатываются, вроде долго держал, а в результате персонаж так и не сдвинулся с места. Особенно заметно на большом враге (не знаю как его назвать).
При портировании я ставил себе целью принести на Спектрум интересную игру - интересную прежде всего сюжетом конечно.
Плюс возникла мысль ещё портирования на Вектор - я увидел, что это относительно легко сделать, так что занялся и этим тоже.
Аудитории исходного девайса и Спектрума/Вектора (я думаю) пересекаются слабо, да и времени с выпуска оригинала прошло довольно много.
Обычно при портировании я делаю всё один-к-одному, заменяя только то что необходимо - вывод на экран, обработку нажатий.
Но конкретно на эту штуку (с постоянным вводом одних и тех же кодов) жаловались ещё пользователи оригиналной игры, ну и в ветке про портирование на Спектрум про это тоже сказали - так что решил это реализовать, и я считаю что это действительно улучшает геймплей.
Про двери со скачками - так а какая разница, тут связи между комнатами вообще-то могут быть заданы произвольно, но в целом лабиринт сделан относительно простым. Никаких сложных механик типа случайных переходов тут нет.
Про обработку клавиш - да, неидеально, но вряд ли уже буду переделывать.
Извиняюсь за задержку, приболел.
В аттаче слегка поправленная версия, но без каких-либо принципиальных изменений.
Давайте считать это релизом.
Скачать: https://github.com/nzeemin/vector06c-desolate/releases/download/release-20210202/vector06c-desolate-release.zip
Вопрос, а что нужно сделать чтобы игра легла в каталог? http://sensi.org/scalar/categories/recent20/
Просто попросить. Такой красоте в картотеке всегда рады =)
http://sensi.org/scalar/ware/912
Я ничего не выдумывал, просто скопипастил с пор\\\гитхаба. Если хочешь чего-то поправить, пиши, я исправлю.
Просто попросить. Такой красоте в картотеке всегда рады =)
http://sensi.org/scalar/ware/912
Я ничего не выдумывал, просто скопипастил с пор\\\гитхаба. Если хочешь чего-то поправить, пиши, я исправлю.
Спасибо. Пара поправок, если можно:
1. Описание игры
Порт игры Desolate.
Жанр - top-down Adventure/RPG в научно-фантастическом сеттинге.
Автор оригинала - Patrick Prendergast (tr1p1ea).
Оригинальная игра написана для научных калькуляторов TI-83/TI-84 - процессор Z80, экран 94 x 64 пикселя, 4 градации яркости.
Видео оригинальной игры: https://youtu.be/5UHqPMxeZnY
Маппинг клавиш Вектора:
- Движение в четырёх направлениях - стрелки
- Look/shoot - УС, Пробел
- Переключатель Look/Shoot - ТАБ, РУС/ЛАТ
- Инвентарь - 'I', 'M'
- Закрыть диалог (Escape) - АР2, ЗБ, ПС
- Выход в меню - 'P', 'R'
2. На странице автора http://sensi.org/scalar/author/289/
Хомяк - https://nzeemin.github.io/
3. А, сорри, ещё категории поправить. Это скорее Adventure чем Arcade.
------
svofski, спасибо, теперь всё отлично!
Ага. А то я поправил, а отписаться забыл =) Клевая игра, надеюсь собраться с духом поиграть.
Лучше поздно, чем никогда - ускоренно посмотрел запись стрима с прохождением векторовской версии. lafromm31 и nzeemen - спасибо за стрим! Теперь все желающие могут убедиться, что векторовская версия рабочая и проходимая - это здорово, но меня смутила скорость в сравнении со спеком (наиболее заметно в меню и при скролле авторов). Ни на что не претендую, просто хочу, чтобы был и вариант пободрее для вектора.
Еще можно сделать цветные буквы как на спеке, но мне самому не хочется этим заниматься. А если браться за задачи посложнее, то можно еще ускорить, только надо серьезно перерабатывать, это долго и наверно не очень нужно.
nzeemen - отдельное спасибо за общедоступные исходники, они сэкономили много времени.
Upd 08.07.2022: Вторая доработанная версия сравнимая по скорости с вариантом для спектрума, с исходниками.
@nzeemin как лучше, закинуть эту версию вторым файлом, или ты обновишь официальную версию и я ее заменю?
Сегодня попозже выложу еще улучшенную версию с исходниками.
Под влиянием мотивации "достать спек" получилась еще версия (https://zx-pk.ru/threads/32499-portirovanie-desolate-na-vektor-06ts.html?p=1157716&viewfull=1#post1157716), которая достигла желаемой цели. Тут уже эго разбухло и я себя дописал в credits. Чтобы это факт не сильно раздражал, приложил исходники, где можно посмотреть, что изменилось и, при желании, удалить ненужных авторов.
@nzeemin как лучше, закинуть эту версию вторым файлом, или ты обновишь официальную версию и я ее заменю?
Закидывай доп.файлами с именем ivagor в названии -- вряд ли я доберусь свою обновлять.
- - - Updated - - -
Upd 08.07.2022: Вторая доработанная версия сравнимая по скорости с вариантом для спектрума, с исходниками.
Спасибо, быстрая версия для Вектора - это отлично.
Там есть конечно простор для оптимизации. Например, карта уровня распаковывается много раз. Алгоритм RLE там выбран очень неоптимальный.
Если же говорить про геймплей - стоило наверное сделать звук или мелодию, когда делаешь шаг вперёд по сюжету - применяешь предмет там где нужно.
ivagor, дотащил ваши оптимизации до репозитория по Desolate. Спасибо огромное!
nzeemin, спасибо за портирование игрушки (и я не против общения на ты)!
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot