Вход

Просмотр полной версии : Eric and the floaters disassembly



Bedazzle
27.10.2019, 00:16
Расковырял графику.

https://i.imgur.com/Tl3L4iN.png
https://i.imgur.com/IXqzZxe.png

То ли я мало играл, то ли эти спрайты нигде не используются.

Кроме этого есть
https://i.imgur.com/mcq2s2H.png

которые несколько труднодобываемы - только когда пузырей четыре штуки, выпадает вместно бонусного сундука.
https://i.imgur.com/DGp4Gjb.png

TomCaT
27.10.2019, 17:40
Из букв можно составить BOMBERMAN, но название поменяли, видимо. И начальный вариант был, похоже, в спрайтах 8x8.

goodboy
27.10.2019, 18:07
Из букв можно составить BOMBERMAN, но название поменяли, видимо. И начальный вариант был, похоже, в спрайтах 8x8.

https://d.radikal.ru/d17/1910/7d/ceca90d3c89b.png (https://radikal.ru)

Spectramine
27.10.2019, 20:24
И начальный вариант был, похоже, в спрайтах 8x8.
Скорее, предполагалось выводить количество жизней и шаров в строке статуса, с этими символами.

- - - Добавлено - - -


https://d.radikal.ru/d17/1910/7d/ceca90d3c89b.png (https://radikal.ru)

Откуда картинка?

- - - Добавлено - - -

upd.: Уже нашел на wos бомбермэна.

- - - Добавлено - - -

Интересно, по какой причине сделали две версии одной игры с разными названиями.

- - - Добавлено - - -

В бомбермане кстати и спрайтик человечка используется: https://www.worldofspectrum.org/infoseekid.cgi?id=0000625

ALKO
27.10.2019, 21:29
Интересно, по какой причине сделали две версии одной игры с разными названиями.

Она распространялась с изменённым названием только в Европе, чтоб не вызывать ассоциаций с террористическими взрывами в Великобритании в то время. (цензуре подверглись даже шарики, их обезличили, типа они неживые, так что не грех их аннигилировать)

Совпадение в Кармагеддоне было куда более явное. Ведь там героиню звали Die Anna, сразу же после выхода игры гибнет в автокатастрофе принцесса Диана. Тут разрабам отвертеться было чутка сложнее. Тем более сама игра была довольно скандальная по-умолчанию.

Bedazzle
27.10.2019, 21:47
https://d.radikal.ru/d17/1910/7d/ceca90d3c89b.png (https://radikal.ru)

Его тоже расковыряю, узнаем, насколько большая разница.

Кроме сразу заметных глазастых шаров, в графике есть чутка мелочёвки.

https://i.imgur.com/JWvBdOy.png

Spectramine
27.10.2019, 22:56
Его тоже расковыряю, узнаем, насколько большая разница.

Кроме сразу заметных глазастых шаров, в графике есть чутка мелочёвки.

https://i.imgur.com/JWvBdOy.png

А чем ты спрайты выводишь в картинки?

Bedazzle
27.10.2019, 23:08
А чем ты спрайты выводишь в картинки?

Скрипт на питоне. Начальный адрес загрузки и набора спрайтов вручную выставляю.

goodboy
27.10.2019, 23:25
Bedazzle, а как насчёт порта TankBattalion c msx на zx ?

https://youtu.be/ZSebKlgqzVM

Bedazzle
27.10.2019, 23:29
Bedazzle, а как насчёт порта TankBattalion c msx на zx ?

А чё сразу я :)
MSX один раз в жизни эмуль запускал, чтоб несчастный вампир киллер посмотреть, о котором уши прожужжал кореш в далёких 90х.

Эмули внятные с отладчиком есть?

ALKO
28.10.2019, 00:03
Bedazzle, а как насчёт порта TankBattalion c msx на zx ?

Есть же куда более стоящий порт Battlecity с NES.

https://youtu.be/pc8xnQGfdhs

- - - Добавлено - - -

на MSX есть вещи более интересные, которых не хватает на ZX.
Road fighter.
Goonies (на спеке тоже есть, но то такое убожество, что лучше этого не видеть)
Yie ar kung fu (тоже версия спека сильно уступает MSX-у. Не только по графике, а и по игровому процессу).
Mappy
и прочее.
Тем более что реально повторить графику максимально близкую к MSX.

Bedazzle
28.10.2019, 00:04
Уменьшаем зону поражения бомб.
По адресу 35897 заменить 200 на 201.

Работает либо в эмуле во время игры, либо на версии игрушки, где уже снята ксорка.

https://b.radikal.ru/b17/1910/a1/fc61098d576d.png

NEO SPECTRUMAN
28.10.2019, 01:21
Расковырял графику.
а можно на людском сайте выкладывать?

Bedazzle
28.10.2019, 01:27
а можно на людском сайте выкладывать?

Можно. Только у каждого свои понятия людского.
Куда именно класть?

NEO SPECTRUMAN
28.10.2019, 01:50
на
https://jpegshare.net/ например
не знаю сколько он хранит времени конечно...
но щас пользуюсь им

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


в принципе уже зашел через daidostup.me
и он порезал все это новое жабо гафно и показал результат...

- - - Добавлено - - -


порта TankBattalion c msx
его портировали на вектор
только там рекомпиляция на 8080
http://sensi.org/scalar/ware/2/

сорец есть (правда еретический)

Bedazzle
28.10.2019, 07:48
на MSX есть вещи более интересные, которых не хватает на ZX.

Я скорее "Халк, ломать".

goodboy
28.10.2019, 11:04
Есть же куда более стоящий порт Battlecity с NES.
ну это скорее игра по-мотивам.

на MSX есть вещи более интересные, которых не хватает на ZX.
мне кажется начинать надо с малого.
провести аналогию BomberMan msx/zx
понять как подменяются аппаратно зависимые процедуры (вывод/ввод) и сделать по-аналогии.
была похожая история с портом PacMan`a (и вроде SpaceInvaders) c аркадного автомата
(они там на z80) - просто подменяются процедуры, а логика игры остаётся неизменной

ivagor
28.10.2019, 11:19
Не знаю, поможет это или нет, но есть исходники (http://www.sensi.org/~retrocomp/games/games.html) msxного bomber mana рекомпилированного на 8080.

ALKO
28.10.2019, 12:14
мне кажется начинать надо с малого.
провести аналогию BomberMan msx/zx
понять как подменяются аппаратно зависимые процедуры (вывод/ввод) и сделать по-аналогии.
была похожая история с портом PacMan`a (и вроде SpaceInvaders) c аркадного автомата
(они там на z80) - просто подменяются процедуры, а логика игры остаётся неизменной

Про порт пакмэна знаю (точно так же портировали и марио с нес на сегу). Идея хороша, кстати.
Сделать своего рода компилятор msx_to_zx. Ведь это наиболее родственная платформа.
Тот же процессор, тот же AY, схожий клешинг (если на msx не задействован аппаратный мультиколор), количество символов псевдографики равно количеству атрибутов на zx (768 байт). Разве что спрайты на zx надо имитировать программно.
Таким образом можно перетянуть добрую долю библиотеки игар с данной платформы.

Но это так.. несбыточные мичты..

goodboy
28.10.2019, 12:34
кроме того там много игр написанных по-правилам (не прямая работа с портами, а через bios)
практически можно делать эмулятор

NEO SPECTRUMAN
28.10.2019, 16:42
кроме того там много игр написанных по-правилам (не прямая работа с портами, а через bios)
практически можно делать эмулятор

а можно таких примеров?

а то попадаются всякие msx-ные драйвера распудрители ак-ка на более мощные чипы итд...
..и я уже начал подозревать...

ivagor
28.10.2019, 17:05
Примерно половину msxных игр, обращающихся к железу только через биос я отобрал и перечислил в xls в комплекте imsx (https://zx-pk.ru/threads/13744-orion-pro-emulyator-imsx.html?p=632359&viewfull=1#post632359). Оценка про половину экстраполированная и основана на том, что при их поиске я перепробовал примерно половину базы msxных игр (а потом устал).

- - - Добавлено - - -

Если у кого-то есть более полный список, то было бы очень интересно взглянуть. Дополнил бы список игр, запускающихся в imsx.

NEO SPECTRUMAN
28.10.2019, 17:43
запускающихся в imsx.
ооОО
это именно то что мне надо!
и даже уже эмулятор ВНЕЗАПНО изобретен

...печалит что сорцы просто так не валяются

вон simon owen запилил сид плеер (6502 эмулятор точнее)
так он разошелся по всем платформам потом...

ivagor
28.10.2019, 17:53
Все ссылки работают, только надо учесть, что большой архив с игрушками на яндекс-диске (из некоторых стран просто так недоступен). Маленький архив с самим эмулятором выложен на форуме, проблем со скачиванием не должно быть.

NEO SPECTRUMAN
28.10.2019, 18:08
Все ссылки работают
из первого поста темы
http://retrocomp.narod.ru/
на вид мертв?

- - - Добавлено - - -


Маленький архив с самим эмулятором выложен на форуме
вощем
эмуляторов старых платформ
на самих старых платформах походу
достаточно много...

вот только они не особо известны
и все разбросаны по разным местам...

- - - Добавлено - - -

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

ivagor
28.10.2019, 18:19
Я думал речь про ссылки из поста, на который я сослался. А зеркало (http://www.sensi.org/~retrocomp/) моего старого сайта любезно разместил у себя svofski.
Про версию для вектора (с z80) я думал, но ее пришлось бы делать совсем иначе и там работали бы только тайловые HUDSONовские игрушки (к которым относится и ERIC/BOMBERMAN), значительная часть которых и так уже рекомпилирована на вектор, причем без z80.
Про специалист я даже не думал, там не получится. Это нужно делать специальный специалист под такую задачу.

x-code
28.10.2019, 18:25
тогда на правах офтопика спрошу
а нет случаем уже специалист и вектор версии?

Вектор версия существовала с самого начала 90х; школотой много в неё играл.

NEO SPECTRUMAN
28.10.2019, 18:36
Вектор версия существовала с самого начала 90х; школотой много в неё играл.
знаю про кучу портов с msx
но про эмулятор... о_О

полухардварный эмуль спектрума да...

- - - Добавлено - - -


Про специалист я даже не думал, там не получится. Это нужно делать специальный специалист под такую задачу.
имею ввиду mx

- - - Добавлено - - -


специальный специалист под такую задачу.
а чего там специального что есть только в орионе?

ivagor
28.10.2019, 19:02
имею ввиду mx
Его тоже мало, даже если мысленно добавить туда z80. Как минимум надо убрать отображение портов на память в конце адресного пространства.

а чего там специального что есть только в орионе?
Не просто в орионе, imsx под орион-про. 1) Довольно быстрый проц; 2) Сравнительно удобный диспетчер памяти; 3) Палитра в качестве бонуса. Под орион-z тоже можно было сделать, но там и проц помедленнее и диспетчер памяти не такой удобный и палитры нет и не планируется.

x-code
29.10.2019, 14:34
знаю про кучу портов с msx
но про эмулятор... о_О

Значит, это я протупил и неверно понял вопрос :confused:

Имел в виду именно порты (рекомпиляции). Впрочем, не помню уже где читал, что бОльшая часть этих рекомпиляций делалась именно путём программной эмуляции работы со спрайтами и прочих аппаратных особенностей MSX, из-за чего портировали только те игры, где быстродействия "Вектора" хватало для приемлемой скорости работы игры.

Собственно, на ITA Express (a.k.a. Stop the Express на ZX-Spectrum) и Ninjya Kage очень хорошо заметно, как необходимость горизонтального сдвига экрана упирается в предел быстродействия, вызванный необходимостью ворочать аж четырьмя битовыми плоскостями.

NEO SPECTRUMAN
29.10.2019, 15:10
ворочать аж четырьмя битовыми плоскостями.
ну ворочать не ворочать
а можно выделить 2слоя под спрайты
и 2 под фон
и не думать об восстановлении фона под спрайтом
можно рисовать и стирать спрайты стеком (не пересекающиеся)

и строение экрана у вектора очень удобное

Bedazzle
29.10.2019, 16:29
Ой, нафлудили-то :)
Тема создавалась именно для Эрика, а тут уже в другую переросла, тоже интересную. :)

ALKO
29.10.2019, 16:37
А реально сделать плавные перемещения персонажей? И убрать это адовое слоумо во время взрывов. А то геймить невозможно, фпс скачет от 1го до 5ти и обратно.

- - - Добавлено - - -

А впрочем, есть же такая вещь.
https://i.ytimg.com/vi/_IE1Fojhmv0/hqdefault.jpg

Нехило озлоблен на авторов. Заинтриговали эпичнейшей демкой зельда-клона, и забросили проект. Уфффф. Ярость!! ALK ЗЛИЦА!! ALK ЛАМАТЬ!!

Bedazzle
29.10.2019, 23:14
А реально сделать плавные перемещения персонажей? И убрать это адовое слоумо во время взрывов. А то геймить невозможно, фпс скачет от 1го до 5ти и обратно.

В Эрике? Думаю да, если взяться. Цель была именно расковырять из ностальгических побуждений, т.к. игра была на первой кассете.


А впрочем, есть же такая вещь.

Это что? Не в курсах.

ALKO
30.10.2019, 01:50
.Это что? Не в курсах

Бомбермэно-клон Flynn's adventure in bombland

А был ещё такой мега-крутой сайд-проект ЖРПГ с познакоместным скроллом, переключением индоров/аутдоров, квестовыми элементами. И всё прекрасно пашет на 48 (хотя я нынче адепт 128к)
https://www.worldofspectrum.org/forums/discussion/38587 (https://www.worldofspectrum.org/forums/discussion/38587/redirect/p1)

Но как это часто бывает со столь амбициозными проектами - забили :'(

NEO SPECTRUMAN
30.10.2019, 02:22
А еще помню было какоето флипскриновое старое подобие бомбермена
восемьдесят какого то года
где бомба взрывала всех на всей площади видимого экрана
и нужно было отбегать на другой экран от нее

еще взрыв был долгий
типо записанный семпл
и сам он пер еще и на бордюр

и сходу решил что это дизасм именно оно
тк там тоже было какоето навороченное название...

не знал что есть такой msx-ный бомберман и на спектруме...

Bedazzle
04.11.2019, 01:20
Бен, это Данила. Ай нид хелп.
Сильно плаваю в чтении клавиатуры. Поясните пожалуйста, или ткните, где читать, как оно работает.

Синклеровский джойстик. Не понимаю, почему четыре бита только, если перемещение по экрану четыре кнопки, и ещё есть пятая (ноль) для бомб.



control_by_joy:
PUSH BC
LD BC,$EFFE ; 09876 keys
IN A,(C)
CPL
RRCA
AND 15 ; 1111
POP BC
RET Z

PUSH HL
PUSH BC
LD C,A
LD B,0
LD HL,KEYS_JOYSTICK
ADD HL,BC
LD A,(HL)
POP BC
POP HL

RET


KEYS_JOYSTICK:
DEFB 0,1,5,0,3,2,4,0
DEFB 7,8,6,0,0,1,5,0



Клавиатура. Не понимаю, для чего и откуда берётся константа 18.
Здесь вызов inkey - своя процедура, не из ROM.



control_by_key:
CALL inkey

PUSH HL
PUSH BC
LD HL,KEYS_KEYBOARD
LD B,16
loc_9212:
CP (HL)
JR Z,loc_921A

INC HL
DJNZ loc_9212

LD B,18
loc_921A:
LD A,18
SUB B
RRCA
AND 127
POP BC
POP HL

RET


KEYS_KEYBOARD:
DEFM "WIEODLC"
DEFB 14 ; Symbol Shift
DEFM "XMZNAJQU"

NEO SPECTRUMAN
04.11.2019, 03:00
по джойстику
есть отдельный опрос нажатия 0 по $91cf

в этом же только опрос для перемещения

если ничего не нажато или нажат 0
то происходит первый рет
если же есть перемещение
то дальше декодирование по таблице

Bedazzle
04.11.2019, 08:00
KEYS_JOYSTICK:
DEFB 0
DEFB 1 ; up
DEFB 5 ; down
DEFB 0
DEFB 3 ; right
DEFB 2
DEFB 4
DEFB 0
DEFB 7 ; left
DEFB 8
DEFB 6
DEFB 0
DEFB 0
DEFB 1
DEFB 5
DEFB 0


не понимаю, зачем продублированы команды 1 и 5

и почему есть 2,4,6,8, если в коде только 1,3,5,7 обрабатываются.



CALL control_eric

CP 5
JR Z,animate_eric ; go down

INC B
CP 7
JR Z,animate_eric ; go left

INC B
CP 3
JR Z,animate_eric ; go right

INC B
CP 1
RET NZ ; ret else go up

ivagor
04.11.2019, 08:22
Это переделка процедуры bios msx, она "обобщенная", там и диагональные направления отрабатываются, хотя в msxном оригинале eric/bomberman они и не используются.

jerri
04.11.2019, 09:28
Бен, это Данила. Ай нид хелп.
Сильно плаваю в чтении клавиатуры. Поясните пожалуйста, или ткните, где читать, как оно работает.

Синклеровский джойстик. Не понимаю, почему четыре бита только, если перемещение по экрану четыре кнопки, и ещё есть пятая (ноль) для бомб.



control_by_joy:
PUSH BC
LD BC,$EFFE ; 09876 keys
IN A,(C)
CPL
RRCA
AND 15 ; 1111
POP BC
RET Z

PUSH HL
PUSH BC
LD C,A
LD B,0
LD HL,KEYS_JOYSTICK
ADD HL,BC
LD A,(HL)
POP BC
POP HL

RET


KEYS_JOYSTICK:
DEFB 0,1,5,0,3,2,4,0
DEFB 7,8,6,0,0,1,5,0



Клавиатура. Не понимаю, для чего и откуда берётся константа 18.
Здесь вызов inkey - своя процедура, не из ROM.




control_by_key:
CALL inkey

PUSH HL
PUSH BC
LD HL,KEYS_KEYBOARD
LD B,16
loc_9212:
CP (HL)
JR Z,loc_921A

INC HL
DJNZ loc_9212

LD B,18
loc_921A:
LD A,18
SUB B
RRCA
AND 127
POP BC
POP HL

RET


KEYS_KEYBOARD:
DEFM "WIEODLC"
DEFB 14 ; Symbol Shift
DEFM "XMZNAJQU"


короче
WE DC XZ AQ - первый набор кнопок
IO Lss MN JU - второй набор кнопок

18/2=9
если напраления не нажаты то получается 0 иначе

1 в 2 вп 3 п 4 пн 5 н 6 лн 7 л 8 лв

то же самое с джойстиком

Bedazzle
04.11.2019, 13:25
Вроде раскурил.
Всем спасибо за подсказки!

Bedazzle
05.11.2019, 00:44
В первом приближении так
https://github.com/Bedazzle/EATF