PC-01 Lviv
http://pc01.lviv.ua/forum/

Портировать Boulder Dash на ПК-01 Львов
http://pc01.lviv.ua/forum/viewtopic.php?f=20&t=399
Page 4 of 7

Author:  als [ 06 Jun 2021, 10:50 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

Хочешь вот еще это рассмотри
viewtopic.php?f=3&t=347&p=5187&hilit=DaDither#p5180

Author:  Zorko [ 06 Jun 2021, 17:00 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

Надо признать, что кодирование цветов во Львове аццкое! Я думал это сделать вручную, но это ж содом и гоморра :(

С DaDither я тоже не преуспел - оно, похоже, заточено только на большие картинки и не умеет конвертить исходную картинку без искажений.

Image

Author:  als [ 06 Jun 2021, 17:22 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

Quote:
Надо признать, что кодирование цветов во Львове аццкое! Я думал это сделать вручную, но это ж содом и гоморра :(
ну я же тебе полно всего предоставил чтобы понять как оно устроено или же процедуру VarSprite как-то куда-то "прикрути"/ "перекрути". Главное чтобы было понятно как это делается! А по поводу во Львов адццкое... ну я то не знаю как оно у других то! Когда-то толи про ДЕНДЮ то ли еще про какую-то приставку читал, так там один полноцветный спрайт выводится так сказать тремя спрайтами в наложение, один из них "только синий" видимо 1-цвет (синий) есть, 0 - нет цвета. Второй и третий "только красный" и "только зеленый"! короче RGB послойно тремя спрайтами. Такое есть ?... В ДЕНДИ будто бы? (могу чего-то путать). Насколько это все удобно или не удобно - не знаю, не пробовал! В ПК-01, явно неудобно что нужна кратность ширины по 4 пикс. это точно ацкое! порой не сильно разгонишся, - или спрайты сильно маленькие или сильно большие! Да и передвижение по горизонтали игрушек на 4 пиксела, - попробуй что-то подобное River Raid написать :-)
вот когда-то тему создавал... :-)
Игра River Raid на Atari, написать на ПК-01 Львов...
viewtopic.php?f=3&t=147&hilit=River
сколько споров то там было всевозможных, почитай на досуге или хотя бы бегло прошвырнись! :-)

Author:  Zelya [ 07 Jun 2021, 11:27 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

Quote:
Надо признать, что кодирование цветов во Львове аццкое! Я думал это сделать вручную, но это ж содом и гоморра :(

С DaDither я тоже не преуспел - оно, похоже, заточено только на большие картинки и не умеет конвертить исходную картинку без искажений.
Я, как всегда, пропустил всю веселуху.
Может, это поможет?


http://pc01.lviv.ua/utils/image.html

Author:  als [ 07 Jun 2021, 11:58 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

Quote:
Я, как всегда, пропустил всю веселуху.
Может, это поможет?
http://pc01.lviv.ua/utils/image.html
я такое уже кидал для Зорко где-то в темах!

Author:  Zorko [ 07 Jun 2021, 18:40 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

Любопытно. Спасибо, Zelya. Правда, уже буду своей утилитой.

У меня последнее место на конкурсе. Видимо, это намёк, что надо положить болт на ретро-игры.
Мдя. Тем более, что две игры явно похуже моей.

Так что мы будем портировать игру-аутсайдера.

А я ночью сделал неплохой прорыв. Всё, как хотел ALS - кубики из мусора бегают, уже можно играть.

Два вопроса.

1. В ПЗУ Львова, насколько я понимаю, есть шрифт. По какому адресу к нему можно надёжно обращаться?

2. Как правильно ждать обратного хода луча? (на Спектруме просто: одной командой HALT)

3. Есть ли на Львове аппаратный таймер? (подозреваю, что нет, но на всякий случай спрошу)

Attachments:
Bolder16K-Lviv-0.0.5.zip [27.21 KiB]
Downloaded 512 times

Author:  Zelya [ 07 Jun 2021, 20:28 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

Quote:
1. В ПЗУ Львова, насколько я понимаю, есть шрифт. По какому адресу к нему можно надёжно обращаться?
Если я не ошибаюсь, то 0xEC00, и копируется в ОЗУ при старте компа в 0xB000
Quote:
Как правильно ждать обратного хода луча? (на Спектруме просто: одной командой HALT)
Никак. Ну, или я не знаю. Хотя скорее всего: никак.
Quote:
Есть ли на Львове аппаратный таймер? (подозреваю, что нет, но на всякий случай спрошу)
Нет.

Author:  als [ 07 Jun 2021, 21:55 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

Quote:
У меня последнее место на конкурсе.
Ну и не расстраивайся! Как говорят, - главное не выигрыш, а участие!
Или у тебя какие-то надежды были связанные с конкурсом ?
Quote:
Видимо, это намёк, что надо положить болт на ретро-игры.
Или же на конкурс "болт положить!" " :-)
Думаю все на своё усмотрение!
Quote:
Мдя. Тем более, что две игры явно похуже моей.
Если звёзды зажигают, значит это кому-то нужно!
Вот и тут - если те две игры хуже твоей, а у тебя последнее место - значит это кому-то так нужно!
А детали можно ? т.е. посмотреть это все где ? сайт какой ? таблица занятых мест... игры какие у кого и т.д.
Quote:
Так что мы будем портировать игру-аутсайдера.
Можешь так и вписать в заставку игры! :-) Себе на память о конкурсе! :-)
Остальных я не думаю, что это как-то опечалит, если игрушка на ПК-01 нормально работать будет! :-)
Quote:
А я ночью сделал неплохой прорыв. Всё, как хотел ALS - кубики из мусора бегают, уже можно играть.
Не, ну я имели виду ДЛЯ_НАЧАЛА (чтобы посмотреть) кубики из "мусора" можна... :-)
Или ты все таки так и оставишь ? :-)

Quote:
1. В ПЗУ Львова, насколько я понимаю, есть шрифт. По какому адресу к нему можно надёжно обращаться?

Ты я вижу ХТМЛ-помощью моей брезгуешь пользоваться :-)
Справочник ПЗУ-ПК-01 в HTML
viewtopic.php?f=8&t=376&p=5116#p5116

а там есть вот такое:
Quote:
Знакогенератор: CHR 000-127
$B000/45056|dCHR_000_127

Знакогенератор: CHR 128-255
$B400/46080|B400
Сам не знал! :-) или забыл! :-)


Quote:
2. Как правильно ждать обратного хода луча? (на Спектруме просто: одной командой HALT)
Ну если Зеля не знает...
то и я думаю что - НЕТУ ТАКОГО! Точнее - не знаю чтобы такое было!
Quote:
3. Есть ли на Львове аппаратный таймер? (подозреваю, что нет, но на всякий случай спрошу)
Точно нет!

Author:  als [ 07 Jun 2021, 22:03 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

ДОП.
Quote:
3. Есть ли на Львове аппаратный таймер? (подозреваю, что нет, но на всякий случай спрошу)
А чем тебя, что-то отсюда
Программа "ЧАСЫ", процедуры задержки и т.д.
viewtopic.php?f=8&t=398
не устраивает ?
Там процедура где-то вроде на 50 тактов отрегулированная есть, сейчас гляну.

Author:  als [ 07 Jun 2021, 22:12 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

Вот оно:
Code:
//Задержка в 50 тактов по идее 2 5000 000 /50 = 50000 = 1 сек
LabelA(DelayT);
  Ar_(DelayT){13};Ar_(DelayT);{13}{для коректировки 50 тактов}
HLm1;{5} ArH{5}; AoL{4};
GotoUnNot0(DelayT){10};
если не понятно МАДЛом то, сеqчас "перебью" на асм... находу...
Code:
		//Задержка в 50 тактов по идее 2 5000 000 /50 = 50000 = 1 сек
DelayT:			//LabelA(DelayT);
LDA(DelayT)		//Ar_(DelayT){13};
LDA(DelayT) 		// Ar_(DelayT);{13}{для коректировки 50 тактов}
DCX H			//HLm1;{5} 
MOV A,H			//ArH{5};
ORA L			// AoL{4};
JNZ(DelayT) 		//GotoUnNot0(DelayT){10};
вот и все! в квадратных скобках такты команд
дважды LDA(DelayT), она по 13 тактов, чтобы "выйти" на ровно_50_тактов!
Ну и выходит если задать в HL = 50000 = 1 сек

Author:  Zorko [ 07 Jun 2021, 22:16 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

Мне нужен таймер такого вида: запомнил время, потом за фрейм игры может быть выведено пять тайлов, а может быть сто. А потом в конце фрейма смотришь: на сколько задержать, чтобы компенсировать неравномерную нагрузку. Чтобы не было чрезмерного ускорения, если мало монстров, к примеру. Т.е. для плавности.

Без аппаратного таймера надо заводить какой-то счётчик, который каждый вызов вывода тайла будет уменьшать. Ну, в принципе, приемлемо. Может задержка вообще не понадобится.

А скорость на Львове будет проседать больше, чем на Спеке. Но надеюсь, что только в моменты самых больших скоплений монстров и массового падения камней/алмазов.

Author:  als [ 07 Jun 2021, 22:39 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

Quote:
Без аппаратного таймера надо заводить какой-то счётчик, который каждый вызов вывода тайла будет уменьшать. Ну, в принципе, приемлемо. Может задержка вообще не понадобится.
Ну да! Без счетчика тут не обойтись!
Quote:
А скорость на Львове будет проседать больше, чем на Спеке. Но надеюсь, что только в моменты самых больших скоплений монстров и массового падения камней/алмазов.
Ну конечно! Команды по тактам "тяжелее" то!
И с каждой лишней командой это скажем в два раза ощутимие чем лишняся команда на том же спектруме!
А ты на мой МАДЛ гонишь! :-) Я ж его не для написания бухгалтерских програм делаю! :-) А для писания динамических игр для ПК-01!

Будет готова игрушка можна попробовать оптимизировать согласно оригинала (т.е. исходника)так сказать!!

Author:  als [ 07 Jun 2021, 23:08 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

По поводу конкурса
http://www.bytemaniacos.com/?page_id=3826
не поленился все скачал и рассмотрел
bolder.zip dungeon.zip oneway.zip yakp16.zip
ну не знаю...
Мне булдер больше всего понравился!
Остальные ну никак нет!
Может конечно это связано с тем, что она была моей любимой игрой детства! Но все таки...

Author:  Zelya [ 08 Jun 2021, 15:17 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

Quote:
Ты я вижу ХТМЛ-помощью моей брезгуешь пользоваться
Инфа про ОЗУ есть и в мануале:
http://lvovpc.ho.ua/files/program.html

Но Зорко интересовался ПЗУ.
Quote:
Без аппаратного таймера надо заводить какой-то счётчик, который каждый вызов вывода тайла будет уменьшать.
Либо написать процедуру-пустышку, которая по времени отрабатывает, как процедура тайла. А дальше, просто идем по списку активных объектов. Если надо рисовать - рисуем, если нет - вызываем пустышку.

Author:  als [ 08 Jun 2021, 21:34 ]
Post subject:  Re: Портировать Boulder Dash на ПК-01 Львов

Quote:
Инфа про ОЗУ есть и в мануале:
http://lvovpc.ho.ua/files/program.html
а-а-а-а... так вон откуда я содрал инфу :-) :-) :-)
всего ведь не упомнишь ! :-) :-) :-)
Quote:
Но Зорко интересовался ПЗУ.
Ясно.
Quote:
Либо написать процедуру-пустышку, которая по времени отрабатывает, как процедура тайла. А дальше, просто идем по списку активных объектов. Если надо рисовать - рисуем, если нет - вызываем пустышку.
Не-е-е-е Zelya, думаю не очень и тот случай! Не та игрушка!
Там понимаешь ли, если будут падать сотни алмазов то и так быстродействия хватать не будет, без каких либо задержек...
т.е. если бы это было фиксированных (до) скажем 10 объектов в движении, то можна бы было применять такие проц-пустышку...
ну или разве что - если больше 10 объектов то вообще задержки не нужно, а если до 10 объектов, - то "добивать" до 10 пустышками не хватающих объектов.
А не заморочливо это всё ?!

А вообще, почему бы не "обкатать" ту процедуру задержки которую я предложил в 50мс. ?
Code:
		//Задержка в 50 тактов по идее 2 5000 000 /50 = 50000 = 1 сек
DelayT:			//LabelA(DelayT);
LDA(DelayT)		//Ar_(DelayT){13};
LDA(DelayT) 		// Ar_(DelayT);{13}{для коректировки 50 тактов}
DCX H			//HLm1;{5} 
MOV A,H			//ArH{5};
ORA L			// AoL{4};
JNZ(DelayT) 		//GotoUnNot0(DelayT){10};
определить число которое нужно в HL для задержки при разном кол-ве движущихся объектов и т.д.
диапазон то процедуры очень хороший HL=50000 = 1 сек
если убрать ОБЕ "LDA(DelayT)" (которые для "выравнивания" на 50мс.) то диапазон будет еще лучше, правда HL=65535 (максимально возможное числи) будет менее 1 секунды.

Page 4 of 7 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/