PDA

Просмотр полной версии : "Новые" игры для РК совместимых



mvg
01.03.2017, 14:54
Добрый день.

Разбирая кладовку нашел свою тетрадь школьных лет, в которую использовал для записей в те далекие годы. Там оказались отрывки текста и уровни для моей самой первой
игры, написанной на ассемблере для Партнера 01.01 (клон рк86). В связи с тем, что появилась ЗАМЕЧАТЕЛЬНАЯ штука http://zx-pk.ru/threads/26805-paket-dlya-i8080-winasm-studio-fasm-g.html решил вспомнить восстановить ;) Прошу пробовать и не судить строго;). Если кто то проверит на реальном РК - буду благодарен.

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

з.ы. обновлены вложения 17.3.17:v2_dizzy_roll:

Scuba91 rel - релиз (перенесен сюда)
mmars_rc1.zip пробная версия 14.3.17
mmars_rc2.zip пробная версия 17.3.17
mmars_rc3.zip пробная версия 20.3.17

ZEman
01.03.2017, 17:29
отличная игрушка, очень понравилась.
только вот не понял 2 вещи:
1 - для какого именно из PK-совестимых компьютеров этот файл ?
вроде для партнёра, но расширение rk (радио 86) у партнёрских rkp
хотя на эмуляторах всё-равно работает.

2 - начинаешь игру и вначале первого уровня в эмуляторе emu 80 вылазиет ошибка (хотя её можно игнорировать нажав кнопку esc).
а в emu от b2m игра зависает в начале первого уровня.

добрался на последней попытке до 4 уровня.
тяжеловато, на 3ем уровне много жизней теряеш.

mvg
01.03.2017, 18:05
1. Идет и на рк и на партнере (проверялось emu80).
2. В игре идет вывод звук эффектов через магнитофонный вывод . По дефаулту emu80 перенаправляет вывод в файл. Если переназначить вывод (ф10 -магнитофон-воспроизведение) должно корректно заработать.
По b2M - запрашивает имя файла при 1м звук эффектке, после "отмены" - работает. но! иногда подмигивает экраном....
к чему бы это????
3. хммм... по 3му уровню - кислород кончался?

ZEman
01.03.2017, 18:12
ну да, но впринципе можно приспособится.
если можно, пожалуйста подправьте игрушку чтоб без ошибки работала.
и ждём ещё каких-нибудь других интересных.

mvg
01.03.2017, 18:26
Если теряете жизни из за окончания кислорода - всплывайте к поверхности , заправитесь ;) Там дальше еще и двери будут. с ключами. разными ;) Причем будет уровень где надо думать какую дверь открыть ;) эти уровни еще в 91м по шагам в тетрадке рассчитывал. Кстати клавиша 0 перезапускает уровень с потерей жизни (есть места где можно намудрить с ящиками). Пробел - пауза.

Если сделаю два режима/со звуком и без из меню - будет лучше?

ZEman
01.03.2017, 18:47
да, так будет намного лучше.
большое спасибо.

b2m
01.03.2017, 22:08
По b2M - запрашивает имя файла при 1м звук эффектке, после "отмены" - работает. но! иногда подмигивает экраном....
к чему бы это????
Ясно к чему. На реале тоже будет подмигивать. Подпрограмма вывода на магнитофон, когда работает, гасит экран.

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

Тут надо либо через меню спрашивать, какой метод вывода звука использовать (РК,Партнёр,...), либо автоопределение как-то засандалить.

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

На Партнёре экран не восстанавливается после использования процедуры вывода на магнитофон. Нужно какую-то там п/п вызывать, для инициализации экрана. Я думаю, на реале тоже экран будет гаснуть.

mvg
02.03.2017, 08:19
хула мне ;) протестил на реальном партнере. вы правы. гасит и не восстанавливает.....

странно, а в голове отложилось что именно так звук. эффекты мною и делались и работало вроде все.... что то с памятью видать стало ;))
придется видимо звук под вывод в порт переписать.... еще б вспомнить в какой ;)))

b2m
02.03.2017, 12:07
еще б вспомнить в какой
Загляни в конфиг в моём эмуляторе, я думаю, при желании разберёшься. :)

mvg
02.03.2017, 12:46
Поправил вопрос со звуком. Добавил хелп в главном меню. Протестил на обоих эмулях ;)
Исправленная версия во вложении.

gurfunkel
02.03.2017, 13:15
mvg, прикольная игра, не хуже, чем игры из стандартного набора РК.:v2_dizzy_punk:

Но почему-то, если загрузить файл rkp в эмуляторе Партнера b2m в игре не работает кнопка "вверх". Если выбрать файл rk в эмуляторе РК b2m, всё работает. Не знаю, может, дело в эмуляторе.

mvg
02.03.2017, 13:35
потестил... вроде вверх - работает..... вечером на реальном партнере протестирую

ZEman
02.03.2017, 14:25
чтот не работает она на emu80 :(
выдаёт ошибку - "Ошибка файловой операции" после чего эмулятор закрывается.

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

mvg
02.03.2017, 14:36
:( проверил. работает...
может у Вас что то с эмулятором?

ZEman
02.03.2017, 14:57
ну вобщем вот так оно получается
https://youtu.be/sTndbjeAsOg
в чём дело не знаю, но после переименования файла всё работает.

b2m
02.03.2017, 15:06
в эмуляторе Партнера b2m в игре не работает кнопка "вверх"
У меня всё работает. Но у меня всегда последняя версия эмулятора :)

ZEman
02.03.2017, 15:33
У меня тоже последнии версии эмуляторов.
Хотя может b2m, имеет в виду ещё не выпущенную версию. ;)
Всё работает, но ошибка имеет место быть и может случиться такое и у кого-то ещё.
Обратил внимание что такое бывает в эмуляторе если имя файла больше 8 букв содержит, прям как в досе как ни странно.

gurfunkel
02.03.2017, 15:59
У меня всё работает. Но у меня всегда последняя версия эмулятора
Вы правы, у меня была старая версия, переписанная с предыдущего компа. Скачал новую версию, кнопка "вверх" заработала.


з.ы. если кому то будет интересно - могу восстановить еще пару - тройку игр того времени.
Да, конечно, интересно будет посмотреть на другие ваши игры.:)

mvg
02.03.2017, 19:25
Переименовал. проверил. Упаковал...
Не разобрался как убрать ссылки на старые версии....

ZEman
02.03.2017, 19:44
mvg, есть небольшое пожелание к игре, если конечно захотите делать.
рыбки в игре ведут себя немного неинтересно.
бывает так что они слепляются в цепочку из нескольких рыбок и плывут все вместе.
а нельзя сделать так чтоб если две рыбки сталкиваются, то они плыли в разные стороны.
я думаю так игра будет немного сложнее.

mvg
03.03.2017, 07:54
mvg,
а нельзя сделать так чтоб если две рыбки сталкиваются, то они плыли в разные стороны

Сделать ессно можно и не трудно , но это это КАРДИНАЛЬНО изменит прохождение на старших уровнях. Если кто то согласится протестировать все 7 уровней в этом режиме на проходимость и сложность - можно будет ввести данный режим как режим повышенной сложности, к примеру(сохранив за текущим режимом нормальную сложность).

ZEman
03.03.2017, 09:27
я могу проверить :)

mvg
03.03.2017, 11:54
Запускаете, выбираете уровень 1-7 - играете. Вместо выхода на след уровень - выход в монитор
очень жду Вашего отчета и багрепорта. если где рыбки не хватает /лишняя или не хватает воздуха - пишите, подправлю ;)

ZEman
03.03.2017, 12:48
первые шесть уровней вполне нормально проходятся, там даже исправлять ничего не нужно.
только в проходе внизу у подводной лодки сложновато проскочить, но это сделать можно и без потерь жизни.
а вот на последнем уровне тяжело стало.
уровень стал непроходимым из-за большого количества рыбок плавающих в открывающихся коридорах.
лучше всего оставить по три-четыре рыбки в коридорах.

Pyk
03.03.2017, 21:25
mvg, В релиз-кандидате (scuba91p.rkp) по адресу 03EB остался вызов процедуры вывода байта на магнитофон в формате MSX Партнера: CALL 0F84EH
Лучше бы избавиться от этого вызова, а то в новой версии эмулятора у меня сделан перехват этих вызовов и работа с cas-файлами.
Попробую также в выходные на реальном Партнере.

mvg
04.03.2017, 16:44
mvg, остался вызов процедуры вывода байта на магнитофон в формате MSX Партнера: CALL 0F84EH.
почему бы не убрать, раз надо ;) кстати у вас есть какие либо справочные данные по портам партнера? а то документации у меня не сохранилось а копаться в пзу не охота. потому и использую нестандартчину для вывода звука (кстати я и в 90х так делал вроде как);) для рк инфу - нашел, а вот для партенра - нет ;((

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


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


а не вернуть ли на 7(и только) уровне старый алгоритм обработки рыбок? проще уровень не станет, а проходимость - вернется ;)

ZEman
04.03.2017, 17:12
можно и так.
ещё интересно вот что.
заметил что новые версии работают медленнее.
самая первая версия наиболее шустрая.
это воспроизведение звука так влияет на скорость ?

mvg
04.03.2017, 17:19
отлично. скоро выложу еще одну версию 7м уровнем.
по поводу замедления. увы звук эффекты дают подтормаживание, да движок простой до ужаса и не оптимален на скорость (это была моя первая игра на асме в свое время ) ;))

Pyk
04.03.2017, 19:58
кстати у вас есть какие либо справочные данные по портам партнера? а то документации у меня не сохранилось а копаться в пзу не охота

Кроме имеющегося в Сети отсканированного руководства, документации в явном виде у меня нет, все в голове ;)
Если интересует что-то конкретное - всегда подскажу.
За вывод звука на магнитофон отвечает бит 0 порта B ППА, доступного по адресу 0D902H. Есть также встроенная "пищалка", ей управляет бит 1 того же регистра (0 - пищит, 1 - нет). Удобнее всего выводить звук на магнитофонный выход, чередуя запись 00H и 01H в порт 0D903H, чтобы не затрагивать другие биты порта B.

mvg
04.03.2017, 20:29
Благодарю всех за участие!!!

Исправлено:
1. звук для партнера теперь выводится через порт а не п/п монитора
2. новый алгоритм движения рыбок на всех уровнях кроме 7го
3. увеличена производительность (в старой версии проход на 1м уровне через весь экран 17 сек, в новой - 12)
4. мелкие доработки ;)

как обычно - замечания и пожелания принимаются ;)))

ZEman
04.03.2017, 20:58
помоему всё отлично.

gurfunkel
05.03.2017, 10:17
Заметил, когда проигрываешь, в сообщении опечатка "Наградить сотруднику (секр.) медалью..."

mvg
06.03.2017, 07:45
Не прошло и 26 лет ;)

Через некоторое время выложу еще кое что ;)

Pyk
06.03.2017, 23:42
mvg, В эмуляторе все отлично, но не удалось пока проверить игру на реальном Партнере: начал виснуть старенький комп, к звуковой карте и ТВ-тюнеру которого у меня подключен Партнер. Похоже, что дело в БП, постараюсь на днях поменять и все-таки попробовать.

Pyk
08.03.2017, 01:10
mvg, что-то тут уже оффтоп пошел...
В общем, протестировал я игру на реале (Партнер). Отлично работает. Пруф:
http://emu80.org/temp/scuba.png
И даже кусочек видео (со звуком :)
http://emu80.org/temp/scuba.avi

Потестировал бы и на РК, но он у меня пока в нерабочем состоянии, руки не доходят оживить.
Спасибо за игру!

mvg
08.03.2017, 07:55
mvg, что-то тут уже оффтоп пошел...
В общем, протестировал я игру на реале (Партнер). Отлично работает
.....
Спасибо за игру!

Рад, что мои скромные потуги Вам понравились. Спасибо за тестирование !
Ввиду интереса продолжаю реанимировать старые наработки.
Кстати скоро выложу еще одну реализацию проекта из 90х - леталку скроллер "Месть Марса". Увы в тетради были только общие наброски и 1й уровень ибо в то время игру не доделал а ее движок использовал для других игр (навскидку вспомню Ball adventure и Iraq для партнера. обе видимо утрачены, по ним даже набросков не осталось...)

jerri
08.03.2017, 10:15
Рад, что мои скромные потуги Вам понравились. Спасибо за тестирование !
Ввиду интереса продолжаю реанимировать старые наработки.
Кстати скоро выложу еще одну реализацию проекта из 90х - леталку скроллер "Месть Марса". Увы в тетради были только общие наброски и 1й уровень ибо в то время игру не доделал а ее движок использовал для других игр (навскидку вспомню Ball adventure и Iraq для партнера. обе видимо утрачены, по ним даже набросков не осталось...)

зы.
а офтопа в теме действительно много ;))

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

mvg
08.03.2017, 18:07
осталось выложить еще какой нить проект сюда чтобы были именно игры а не одна игра

;))) благодаря ДОЛГОТЕРПЕНИЮ жены выкладываю демку номер раз не первой игры ;)60016

управление - стрелки , пробел - стрельба, вк - пауза. цель - убить всех человеков и вернутся на базу.
все сыро, уровни не продуманы... убиться - нельзя ;)

как обычно - пожелания - приветствуются ;)

з.ы. буду благодарен за кусок кода:
1. убирающий курсор
2. сжимающий изображение что бы выкинуть полосы снизу у символов

(желательно сразу исходник, без хвилософии ;)) ).

jerri
08.03.2017, 20:50
;))) благодаря ДОЛГОТЕРПЕНИЮ жены выкладываю демку номер раз не первой игры ;)60016

управление - стрелки , пробел - стрельба, вк - пауза. цель - убить всех человеков и вернутся на базу.
все сыро, уровни не продуманы... убиться - нельзя ;)

как обычно - пожелания - приветствуются ;)

з.ы. буду благодарен за кусок кода:
1. убирающий курсор
2. сжимающий изображение что бы выкинуть полосы снизу у символов

(желательно сразу исходник, без хвилософии ;)) ).

хмм вот кто кого должен учить?

вот тут подробно (http://zx-pk.ru/wiki/%D0%9F%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D0%B3%D1%80%D 0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0% B9_%D1%80%D0%B5%D0%B6%D0%B8%D0%BC_128x62_%D0%BA%D0 %BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B E%D0%B2_%D0%A0%D0%9A86) рассказано

mvg
08.03.2017, 21:01
хмм вот кто кого должен учить?

вот тут подробно (http://zx-pk.ru/wiki/%D0%9F%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D0%B3%D1%80%D 0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0% B9_%D1%80%D0%B5%D0%B6%D0%B8%D0%BC_128x62_%D0%BA%D0 %BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B E%D0%B2_%D0%A0%D0%9A86) рассказано

ессно Guru имеет полное право поучить Juneor-а:v2_dizzy_botan:
:smile:

когда то давно и я владел сиим кунфу. но забыл как то за 25 лет :rolleyes:

БЛАГОДАРЮ ЕССНО!!!

mvg
08.03.2017, 21:47
"Кто бы еще все ссылочки на новые игры прилепил бы в первый пост."

перенес ;)

gurfunkel
09.03.2017, 15:17
"Месть Марса", если её доделать, будет, по-моему, хорошей аркадной стрелялкой на РК.
mvg, я так понял, эти игры в начале 90-х существовали только в виде записей в тетрадке? Или были уже готовые исполняемые файлы (если да, то почему они не получили распространения)?

mvg
09.03.2017, 15:33
"Месть Марса", если её доделать, будет, по-моему, одной из самых насыщенных разными объектами аркад на РК.
mvg, я так понял, эти игры в начале 90-х существовали только в виде записей в тетрадке? Или были уже готовые исполняемые файлы (если да, то почему они не получили распространения)?

Scuba, к примеру была выпущена для партнера 01.01. Ее доработанная версия(спрайтовая а-ля болдердаш) ходила на рязанском радиорынке. Даже на заочном областном конкурсе по написанию по 2е место заняла. Еще с 10к игрушек были выпущены. Увы почти все утрачены и боюсь - окончательно.
"месть.." не была дописана, в то время не осилил кодирование уровней. на ее движке были сделаны две игры (обе увы - утрачены)

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

Pyk
09.03.2017, 22:07
Увы почти все утрачены и боюсь - окончательно.
Да неужели ни у кого старые кассеты не сохранились? Я на днях попробовал старые кассеты считать 25-летней давности - отлично читаются...
Может быть, остались какие-то местные рязанские знакомые, у которых можно поспрашивать? "Партнер" же в Рязани делали, может быть, даже дискеты сохранились у кого-то?

barsik
10.03.2017, 00:27
Да неужели ни у кого старые кассеты не сохранились?
Пропало... и Бог с ним. Нет смысла особо напрягаться в поисках старого. Сейчас автор на порядок умнее и опытнее. И есть возможность писать не на ассемблере, а на PL/M, что якобы даёт такой же эффективный код, как ассемблер (и даже лучше для больших программ), а сроки разработки резко сокращаются.


может быть, даже дискеты сохранились у кого-то?

А какая ДОС и какой контроллер дисковода в "Партнёре"?

mvg
10.03.2017, 07:03
Да неужели ни у кого старые кассеты не сохранились? Я на днях попробовал старые кассеты считать 25-летней давности - отлично читаются...
Может быть, остались какие-то местные рязанские знакомые, у которых можно поспрашивать? "Партнер" же в Рязани делали, может быть, даже дискеты сохранились у кого-то?

ессно искал... не нашел ;(
кстати дисковод на партнере видел только один раз.

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



А какая ДОС и какой контроллер дисковода в "Партнёре"?
CPM там была. контроллер выпускался в в виде доп модуля.
запускался командой е2 из монитора


кстати "месть марса" демо 2 c 2мя уровнями и полноценным гемплеем возможно уже сегодня ;)

++ вопрос.
а в каком из эмулей (emu или emu80) корректней скорость эмуляции?

Pyk
10.03.2017, 08:15
Что касается Партнера, то у меня в Emu80 скорость корректней.
Для РК и других - наверное пока в emu.
Хотя в новой версии и у меня проблем со скоростью не будет.

mvg
10.03.2017, 10:38
Выложил в начало темы "месть марса" демо 2 c 2мя уровнями.
Как обычно -жду пожеланий - предложений ;))

barsik
10.03.2017, 11:13
CPM там была. Контроллер выпускался в в виде доп модуля.
Запускался командой E2 из монитора
Понятно, что в виде модуля втыкаемого в системный разъём, как и везде. Что у Партнёра тоже было в корпусе сверху отверстие для слота, куда втыкался картридж, как у "Микроши"? Я подумал, что раз "Партнёр" появился задолго до 1993, когда опубликовали РК-КНГМД, то может контроллер дисковода другой, а не плагиат РК-КНГМД. Т.е вопрос был про промышленную схему контроллера дисковода "Партнёра".

Я спросил про контроллер, потому что кроме РК-КНГМД от Е.Седова, я видел схему и печать платы КНГМД для РК86 на ВГ93 и была еще плата РК-КНГМД из Саратова, где тоже, как в РК-КНГМД обмен данных через ВВ55, но не так как в РК-КНГМД, а в параллельном интерфейсе ВВ55 и схема другая, но сепаратор данных намного хуже (отлавливал байт F3) и дискетный формат совсем другой. С таким КНГМД проводились первые опыты по установке CP/M на СПЕЦИАЛИСТ летом 1989 г, но получилась очень низная надёжность, т.к флоп был 5050 с резиновым пассиком и улиткой. И только, когда вскоре я купил КОРВЕТ с дисководом 5305, удалось оттуда заимствовать схему КНГМД и странслировать CP/M для СПЕЦИАЛИСТА.

mvg
10.03.2017, 11:26
http://zx-pk.ru/threads/24950-partner-01-01-kontroller-diskovoda.html
такое чудо - видели? ;)

barsik
10.03.2017, 15:30
Спасибо за ссылку. Ничего не знал про "Партнёр". В местной Вики почему-то ноль про него. Нашёл в википедии. Вывод: однозначно "Партнёр" самый крутой клон РК86 (ранее считал что "Апогей"). Увидел на картинке за клавиатурой 4-ре люка для установки периферийных плат.

Оказалось, что для Партнёра уже 30 лет назад разработали плату для загрузки фонта (16 бит из двух 537РУ10), причём реализована идея параллельного фонта, чтобы хранить цвет, что я предложил недавно. Т.е идея цвета из ПЗУ оказывается изобретена уже 30 лет назад. И идея часть битов из байта фонта тратить на цвет тоже изобретена 30 лет назад. Обидно. Лишь идею режима 80 символов в строке не реализовали. Вот идиоты, могли бы хотя бы идею опубликовать в журнале РАДИО. Никто не знает, где взять схему такого блока? И инструкцию для програмиста, чтобы понять архитектуру

Предположительно и идею открытой архитектуры реализовали в Партнёре, такую же как в Apple-II. Это видно из того, что на периферийных платах стоят ПЗУ (с драйвером этой платы). В Apple-II каждая карта воткнутая в слот при работе включает своё ПЗУ в окне размером 2К, отчего покупая периферийную карту к ней не надо покупать драйвер, он сразу есть на периферийной карте, воткнул и пользуйся. Предполагаю, что так сделали и в "Партнёре", позаимствовав идею.

Никто не скинет ссылку на схему и подробное описание архитектуры?

Не понял только почему CP/M 28K, если ОЗУ 64К. CP/M 28К я имел и на РК86 с его неоптимальным распределением адресов В/У.

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

Интересна идея добавки загружаемого фонта не вместо, а параллельно, с сложением сигналов из обоих видео-выходов. Тогда можно иметь два плана, две независимые плоскости. На заднем плане, нарисованном символами из ПЗУ на основной плате, рисуем пейзаж. А на переднем плане, что формируется за счёт загружаемых цветных спрайтов, - бегают сами спрайты. Особенно, если сделать маскирование спрайта, чтобы в пустых местах спрайта сохранялся фон.

Интересно, что у них конструкция - внешняя плата, втыкаемая в разъём, а не коррекция на основной плате. Для РК86 можно сделать также внешнюю плату, без травмирования основной платы. Хотя при таком конструктиве деталей больше, т.к дублируются функции.

Pyk
10.03.2017, 15:47
Схему МЦПГ давно и безуспешно ищу. В принципе, по имеющейся прошивке для нее и цветным программам логику работы уже более-менее разобрали, хотя и остались некоторые небольшие неясности. А вот схема контроллера НГМД есть. Передача данных в нем реализована через ПДП, кстати.

Есть сведения, что для Партнера существовала версия CP/M 50K, к тому же еще и поддерживавшая 80 символов в строке. Увы, дискеты с ней найти не удалось, боюсь, что она уже безвозвратно утеряна.

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

b2m
10.03.2017, 16:32
Вывод: однозначно "Партнёр" самый крутой клон РК86 (ранее считал что "Апогей").
После просмотра игр для МЦПГ, я думаю, мнение будет окончательным :)
Посмотреть можно, опять же, в моём эмуляторе. Образ диска для Партнёра с этими играми есть у меня на сайте.

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

Загрузка с диска - команда монитора E2

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

Не забудьте включить цветной режим на тулбаре.

NEO SPECTRUMAN
10.03.2017, 19:48
глянул p2demo2
на вид что то интересное (но явно еще не доделаное)
такое себе уничтожение всего живого при помощи летающей тарелки :3
что может быть лучше? :333

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

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

нужно бы добавить

uart
10.03.2017, 20:13
Я подумал, что раз "Партнёр" появился задолго до 1993, когда опубликовали РК-КНГМД, то может контроллер дисковода другой, а не плагиат РК-КНГМД
Там обычный ВГ93, подключенный через DMA.

barsik
10.03.2017, 22:40
Для "Партнера" существовала версия CP/M поддерживающая 80 символов в строке

Думал как это возможно. Сделать 80 символов в строке, если частота такта на ВГ75 и выходного видео регистра позволяет уместить в строке только 64 символа. Это можно сделать только с помощью блока МЦПГ. Судя по описанию там в модуле МЦПГ синхронно с выводом графики из основного фонта (ширина в фонте только 6 бит, т.к написано, что фонт 6*8, хотя возможно это ошибка и фонт 8*8) выводятся еще 2*6 бит из двух параллельно включённых РУ10. В двух РУ10-тых 16 бит, выводятся только 12, остаются 4 бита для цвета.

В статье указано, что загружаемый фонт имеет размерность не 6*8, и не 8*8, а 4*8. Как такое может быть? Если в основной плате, как и в базовом РК стоит ИЕ4, отчего фонт 6*8, а не 8*8 !

Т.е на ВГ75 подана частота предназначенная для фонта 6*8 и этой частотой 4 пикселя за 6 тактов не сдвинуть. Тут может быть только вариант, что у блока МГЦП свой генератор для регистра сдвига, который перезаводится каждый период вывода знакоместа. Отчего, пока на основной плате ИР13 сдвигается 6 раз, регистр сдвига на МГЦП сдвигается 4 или 8 раз. Так также можно сделать, когда есть общий задающий генератор на ЭВМ и МГЦП и 8 МГЦ получают делением такта 24 МГЦ на 3, а 6 МГЦ получают делением на 4. Тогда за время вывода из ИР13 6-ти битов, из МГЦП выходят 4 бита.

Заинтересовался деталями блока. Нашёл пока этот ДОК: http://bashkiria-2m.narod.ru/arendatr/MODULES/0161.htm и эту тему http://zx-pk.ru/threads/24621-programmirovanie-modulya-mtspg-dlya-partnjor-01-01.html

80 символов в строке из ВГ75 получить легко если ССИ формируется аппаратно. А если, как в РК86 бордюр программный (что и имеет место в Партнёре" и РК86), отчего из 80-ти символов в строке, 16 теряется впустую, точнее уходит на бордюр, - то никак.

Поэтому ясно, что 80 символов выводит не сам "Партнёр", а блок МЦПГ. Для этого достатачно блокировать (отключить) поступление на видео выход видео-сигнала с платы "Партнёра" и весь вывод на экран делать за счёт загружаемого фонта.

Если МЦПГ даёт 6 точек на знакоместо, т.е в линии растра 384 пикселя, то принцип такой-же, как в 80-ти символьном драйвере ОРИОНА, где 80 символов в экране из 384 точек выводятся за счёт "микрошрифта" 5*10. А если МЦПГ даёт 8 точек на знакоместо, отчего разрешение 8*64= 512 точек, то 80 символов в строке выводятся шрифтом 6*8.

Модуль МЦПГ продаётся за 4000 рублей:
http://newauction.ru/offer/kompjuter_partner_modul_mcpg_partner_01_61-i18981367432231.html
Можно попросить схему у продавца.

Pyk
10.03.2017, 23:17
Вот пара ссылок на информацию по Партнеру:
http://arendatr.chat.ru/
http://emuverse.ru/wiki/%D0%9F%D0%B0%D1%80%D1%82%D0%BD%D1%91%D1%80/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE%D0%BB%D1%8E%D0%B1%D 0%B8%D1%82%D0%B5%D0%BB%D1%8C_1994/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D0%B5_%D0%B2% D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1 %82%D0%B8_%D0%9F%D0%9A_%C2%AB%D0%9F%D0%B0%D1%80%D1 %82%D0%BD%D1%91%D1%80%C2%BB

Выложил также два варианта отсканированной документации в одном архиве (откуда брал - уже не помню, скорее всего кто-то здесь же на форуме поделился):
https://yadi.sk/d/9ireF1lP3FUozB

Была еще схема контроллера НГМД, так сразу не нашел, если нужна будет - поделюсь позже.

А насчет 80 символов, думаю, что все проще. У меня Партнер было подключен к корветовскому монитору, на нем помещался весь растр по горизонтали, так что я без проблем видел и так все 80 символов. ВОзможно, просто эта версия была рассчитана на эксплуатацию с мониторами, а не с телевизорами?

А символы псевдографики в МЦПГ действительно содержат 4 точки растра по горизонтали...

barsik
11.03.2017, 01:28
У меня Партнер был подключен к корветовскому монитору, на нём помещался весь растр по горизонтали, так что я без проблем видел и так все 80 символов. Возможно, просто эта версия была рассчитана на эксплуатацию с мониторами, а не с телевизорами?

Невозможно на компьютере с тактом выходного видео регистра в 8 МГЦ увидеть 80 символов в строке, при знакоместе шириной в 6 точек.

80*6:8= 60 МКСЕК столько длится вывод 80 символов. Весь строчный перод равен 64 МКСЕК. Где же из 64 МКСЕК строчного периода будет ССИ длиной 2 МСЕК и гашение по кадрам длиной, минимум, 12 МКСЕК. В плохих телевизорах виден растр выводимый за 44 МКСЕК, в дисплеях за 52.

В самых совершенных кинескопных дисплеях не увидеть более 68 символов. Насчёт цифровых LCD дисплеев ничего не скажу, не знаю как подключить VGA к РК86. ВК 8071 от Корвета и 6105 у меня тоже есть. Я пользуюсь профессиональным зеленым импортным кинескопным монитором. Он хорошо синхронизируется от кварца 6 МГЦ до кварца 18 МГЦ в ОРИОНЕ. Причём сам растягивает растр на весь экран, что очень выгодно, когда экранчик мизерный. Так вот на нём, ни на СПЕЦИАЛИСТЕ, ни на РК86 не увидеть более 67 символов. 80 символов просто невозможны, ни теоретически, ни практически.

В ДОК-ах, что я видел везде написан такт Партнёра в 1.77 МГЦ, т.е кварц 16 МГЦ. Увидеть 80 символов можно только если в Партнёре 2 кварца, один на 16 МГЦ для CPU и второй на 20 МГЦ для ВГ75 и ССИ формируется аппаратно. Отчего при 64 символах в строке экран плющенный. Но это невозможно, т.к тогда игры РК86 меняющие режим ВГ75 работать не будут.

И даже, если бы монитор отображал 80 символов, довод, что промышленность для бытового компьютера выпустит программу, что не работает с телевизором, - несерьёзен. Так не бывает.

Уверен, что Вы позабыли, и видели 80 символов на другом компьютере, т.к ни РК86, ни Партнёр, если он соответствует описаниям, на 80 символов не способны. Без МЦПГ или изменения схемы, кварца и ПЗУ F800, получить 80 символов в строке в РК-клонах невозможно. Может быть Вы видели 80 символов на цифровом дисплее, где нет времени на обратный ход луча.


Есть схема контроллера МЦПГ ... если будет нужна - поделюсь

Нужна, нужна. Поделитесь пожалуйста. А то я тут "изобретаю велосипед", пытаясь добавить графические цветные спрайты в игры РК86, хотя всё это уже изобретено 30 лет назад. Хотя, собственно в первую очередь интересует не схема (схему разработать можно, если знать что), а подробное описание схемы, алгоритма работы и распределение и назначение битов. Глупо, что в комплект документации МЦПГ не включили руководство программиста со всеми такими сведениями.

Pyk
11.03.2017, 01:51
В Партнере не 8 Мгц, а 9. В нем один кварц на 18 МГц. Для процессора (2 МГц) частота делится на 9, для ВГ75 - на 12, для точек растра - на 2. В этом смысле Партнер похож на Орион.
А насчет схемы я опечатался, я контроллер НГМД имел в виду.

barsik
11.03.2017, 03:19
В Партнере такт выходного видео регистра не 8 Мгц, а 9

78*64/9= 52 МКСЕК длительность вывода растра в строчном периоде, оставляя требуемые 12 МКСЕК на гашение по кадрам. Теперь понятно, отчего на РК появились игры, которые выводят на позициях в строке за 64-й. Они появились на Партнёре и были перенесены на РК86. Только на ПАРТНЁРЕ это видно, а на РК86 нет.

Но при такте сдвига 9 МГЦ, получается, что ССИ не по ГОСТ-у длительностью целых 12 МКСЕК вместо 2-х? Это возможно. И даже синхронизация, наверное, будет лучше. А может и хуже. В любом случае не по TV-нормам. Или всё же ССИ формируется аппаратно, а режимы программирования ВГ75 чуть-чуть отличаются числом знакомест на обратный ход луча по строкам. В РК86 это 3, а здесь должно быть: 12 МКС : (6:9)= 18. Хотелось бы узнать как формируется ССИ. Т.е на видеовыход подаётся VSP, как в РК86 или иначе?

Надо исправлять статью на EMUVERSE (и в других местах, где заимствование оттуда) где написано, что в ПАРТНЁРЕ, как и в РК86 такт 1.77 МГЦ.

SegaBoy
11.03.2017, 07:10
...
з.ы. буду благодарен за кусок кода:
1. убирающий курсор
...


Убрать курсор можно так:



lxi h, vg75_addr+1 ; здесь нужно поставить адрес контроллера ВГ75 + 1
mvi m, 0x80 ; команда установки курсора
dcr l
mvi m, 0xFF ; координаты курсора
mvi m, 0xFF ; за пределами экрана

mvg
11.03.2017, 07:56
1. не к месту звуки при старте те что перед подъемом

2.не хватает возможности двигаться и стрелять одновременно
ну и двигаться по диагонали конечно



Благодарю за отзыв !

п1. исправлено
п2. в процессе ;))

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


Убрать курсор можно так:

Благодарю, применил

barsik
11.03.2017, 12:38
Убрать курсор можно так:


.
LD (HL), 77 ; последняя позиция в строке
LD (HL), 29 ; последняя строка в экране



Такой метод убрать кусор, переместив его в невидимую часть экрана, годится только для программ не выводящих текст подпрограммами ПЗУ, то есть чисто псевдо графических программ. В частности, метод годится для программ, в которых экранная область перемещена в ОЗУ ниже 7500 (да и тогда вывод текста удобнее делать драйвером, выдранным из ПЗУ F800, настроенным на новое число строк и включённым в код программы).

Для обычных программ такой метод совершенно не годится. Выключать курсор навсегда приходится в играх для стандартного режима ВГ75 и в программах, где используется графический указатель, типа "балка подсветки" (т.е в НОРТОН-ах).

При первом выводе символа подпрограммой F809 курсор снова встанет в позиции заданной POSX, POSY в ячейках 7602. Отчего, во-первых, курсор будет мелькать на экране при выводе, а во-вторых, чтобы курсор снова убрать, придётся заново вызывать процедуру перемещения курсора в невидимую область экрана.

А метод отключения курсора путем задания позиции линии подчёркивания ниже 10 (в стандартном режиме), или ниже 8 (в режиме с высотой знакоместа в 8 линий) - работает навсегда.

SegaBoy
11.03.2017, 17:07
Такой метод убрать кусор, переместив его в невидимую часть экрана, годится только для программ не выводящих текст подпрограммами ПЗУ, то есть чисто псевдо графических программ. В частности, метод годится для программ, в которых экранная область перемещена в ОЗУ ниже 7500 (да и тогда вывод текста удобнее делать драйвером, выдранным из ПЗУ F800, настроенным на новое число строк и включённым в код программы).

Для обычных программ такой метод совершенно не годится. Выключать курсор навсегда приходится в играх для стандартного режима ВГ75 и в программах, где используется графический указатель, типа "балка подсветки" (т.е в НОРТОН-ах).

При первом выводе символа подпрограммой F809 курсор снова встанет в позиции заданной POSX, POSY в ячейках 7602. Отчего, во-первых курсор будет мелькать на экране при выводе, а во-вторых, чтобы курсор снова убрать, придётся заново вызывать процедуру перемещения курсора в невидимую область экрана.

А метод отключения курсора путем задания позиции линии подчёркивания ниже 10 (в стандартном режиме), или ниже 8 (в режиме с высотой знакоместа в 8 линий) - работает навсегда.
Если я правильно понял mvg, то процедура убирания курсора нужна ему была для игр, чтобы мигающий курсор не мозолил глаза и не злил некоторых игроков = )) Навряд ли при этом он продолжал пользоваться стандартными процедурами в играх, иначе курсор скакал бы как бешеный (например в том же Цирке). Авторы программы Гонки убирают курсор этим же методом, но в позицию 0,0 - отчего он всё так же мозолит глаза в некоторых эмуляторах. Плюс это неотображаемая область экрана всё-таки участвует в формировании развёртки на реальном ТВ и мигание там курсора идёт не на пользу.

Вариант с перемещением линии подчёркивания ниже 8 или 10 позиции у меня на Апогее не сработал (возможно что-то делал не так). В любом случае автор получил несколько рабочих вариантов убирания курсора и сможет сам выбрать какой ему лучше подойдёт.
Вот Вы пишете про стандартные программы, а тема про игры и вопрос задают про игры. Вы сами игры автора посмотрели?

jerri
11.03.2017, 17:17
SegaBoy, забей он сам не знает чего хочет.

barsik
11.03.2017, 18:02
Jerri, не хамите и не разводите флейм. Покиньте все темы РК86 до тех пор пока не сделаете 10 игр для РК86 качеством первых лет ZX-Spectrum. Кичиться своими знаниями (кстати в совершенно другой области) и надсмехаться над чужими программами легко, а вот сделать своё и лучше... попробуйте.

Тем более, что на PC програмировать и отлаживать в эмуляторе просто на ДВА ПОРЯДКА легче, чем с магнитофоном на реальном РК86 с 32К ОЗУ.

mvg
11.03.2017, 19:03
[b]
...Тем более, что на PC програмировать и отлаживать в эмуляторе просто на ДВА ПОРЯДКА легче, чем с магнитофоном на реальном РК86 с 32К ОЗУ....
и не поспоришь ;))

кодить на асме на рк с магнитофоном - ЧТО ТО С ЧЕМ ТО....
редактор микрон загрузи... ассемблер загрузи... редактор микро - это УЖАС!!!! там даже копипаста - только через магнитофон ;)
прога с 1100 по 3000h. даже что бы в адрес 0 ее перенести - надо бить в бубен ;)

на партнере - немного проще. там микрон с асмом в пзу. да и басик там - же. кроме того у партнера была память выше экрана. те же уровни при отладке можно было туда перекинуть. или текст проги.

кстати кодить непосредственно на магнитофонном спеке 48 ИМХО еще отвратнее... там даже монитора ни разу нет... да и генсы монсы зеусы не далеко от ed mikrona ушли ;) а если учесть что при ресете память чистится (гениальное решение для компа, изначально заточенного вроде как под обучение программированию,не находите )....

так что без нормального инструменту блоху не подкуешь....

з.ы. а разница в качестве игр имхо из за того, что игры для zx активно продавались, в отличие от игр рк86. и сравнивать творчество любителей с работой профи - некорректно. как говорится можно сделать все, но хватит ли на это денег ;)) при надлежащем финансировании можно портировать что угодно на что угодно (и тот же г-н Медноногов тому доказательство). Если сравнивать по писаное на рк ЗА ДЕНЬГИ с подобным по для ZX - рк может и выиграть. Как пример - приведу басик вшитый в партнер который имхо НАМНОГО прямее басика вшитого в спекки.
з.ы2. не понятно, зачем противопоставлять радиоконструктор и игровую машину? это РАЗНЫЕ пк. и ниши у них - РАЗНЫЕ.

Pyk
11.03.2017, 19:11
В РК86 это 3, а здесь должно быть: 12 МКС : (6:9)= 18.
Да, в Партнере 18 (см. код по точке входа F82D Монитора Партнера)

jerri
11.03.2017, 21:11
Jerri, не хамите и не разводите флейм. Покиньте все темы РК86 до тех пор пока не сделаете 10 игр для РК86 качеством первых лет ZX-Spectrum. Кичиться своими знаниями (кстати в совершенно другой области) и надсмехаться над чужими программами легко, а вот сделать своё и лучше... попробуйте.

Тем более, что на PC програмировать и отлаживать в эмуляторе просто на ДВА ПОРЯДКА легче, чем с магнитофоном на реальном РК86 с 32К ОЗУ.

от вас я тоже кроме нравоучений и советов из смежных областей не вижу, ток что .... лесом лесом.

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

mvg, Спекки изначально продвигался как машина для обучения. потому в ПЗУ и бейсик зашит.
а то что в СССР не было игровой индустрии - да неповезло нам

NEO SPECTRUMAN
11.03.2017, 23:49
В любом случае не по TV-нормам.
да фиолетово что там по тв нормам
телек сделан чтоб подстраиваться под самый упоротый сигнал
ты б видел какую фигню может стабильно ловить современный плоский телек

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


а если учесть что при ресете память чистится (гениальное решение для компа, изначально заточенного вроде как под обучение программированию,не находите )
каком еще ресете???

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

а в бейсике и ресетить то нечего
тк он просто так и не зависает

и выход по break-у у него

mvg
14.03.2017, 08:30
выкладываю "месть марса" рц1
как обычно буду благодарен за пожелания - предложения ;)

jerri
14.03.2017, 09:25
а может экранчик немного увеличить?

mvg
14.03.2017, 09:32
"а может экранчик немного увеличить?" в смысле игровую область?
сейчас используется зона 40х11 символов

jerri
14.03.2017, 09:52
mvg, ага игровую, еще бы пару строк добавить:)

mvg
14.03.2017, 14:21
Экран расширен. Оптимизировал немного.
выкладываю rc2

Прошу тестить - жду пожелания, предложения ;))

mvg
17.03.2017, 18:44
кстати на следующую "реанимацию" - два претендента...
текстовая адвентюра или адвентюра с графикой...

размышляю с чего начать ;)

NEO SPECTRUMAN
17.03.2017, 20:44
жду пожелания, предложения

менюшка
ладно на не очень красивое русское название в менюшке я закрою глаза

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

анимация не к месту и выглядит примитивно
звук тут лишний

если её и делать здесь то
1. пейзаж должен быть разнообразней и двигаться
2. тарелка должна менять положение
3. тарелка должна поливать "очередью" тк более эффектно
4. по тарелке должны стрелять

1991 mvg в верху не смотрится (особенно mvg над анимацией)
попробуйте ткнуть в другое место
может снизу

нужна какая нибудь смена управления
выбор готового qaopm wasd space
redefine keys
или хотя бы несколько его вариантов одновременно

например у мя на ПЦ не жметьсо влево+вниз+огонь вправо+вниз+огонь (почему ладно были бы другие комбинации??? о_О)
хорошо что есть нумпад на котором все заработало
но в эму80 на него не мапятся клавиши...

да и попросту не удобно иногда курсором (особенно на реальной машине)


при старте
намозоливший глаза "введите уровень"
в окончательной версии такое не надо делать

показали посреди lever 1
на черном фоне или прямо во время игрового процесса и поехали
прошли уровень
переходим на lever 2

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

рамки с использованием псевдографики не очень хорошо выглядят
нужно попробовать еще другие варианты из простых символов
нужно глянуть что если убрать "кубики" по 4-м краям экрана и "дырки" вокруг рамки с игровым процессом
может станет лучше

зачем надпись партнер 01.01?

игровой процесс

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

И КСТАТЕ
если мы мстим с марса
то от куда мы тогда и зачем взлетаем???

если бы мы захватывали с марса
мы бы могли держать на земле плацдарм да

да и мстить менее развитой цивилизации
это как "месть муравейнику"


может и враг тогда должен быть по достойней?

или название сделать соответствующее



в последней версии отпало столкновение с предметами
и смерть как таковая



может повысить немного скорость движения?
для большего экрана эта выглядит уже не очень хорошо

в идеале она должна ускорятся при приближении к правому краю экрана
и замедлятся при приближении к левому


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

само поливание мне нравится


изображение врагов из псевдографики
выглядит не очень хорошо (тк она сильно отличается от всего остального, общая яркость знакоместа на порядок выше и это сильно бросается

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


нужны враги которые будут уничтожатся после нескольких попаданий
над которыми нужно будет "повисеть" какое то время
и которые потом еще и будут взрываться))))


еще нужно пилить уровни
чтоб они не были и сильно надуманными (всякие внезапные эвересты шириной 2 метра посреди поля)
землю нужно подымать по возможности плавно. а препятствия для воздуха пусть представляют всякие строения



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

но это может быть какой нибудь здоровый танк
всякие корабли, укрепления\базы
http://alternathistory.livejournal.com/646755.html
http://vonbrrr.deviantart.com/art/P-1000-Ratte-Tank-Cutaway-161477116
https://tanksdb.ru/photo/ratte/
https://upload.wikimedia.org/wikipedia/commons/e/ef/P1500macedon.jpg
http://lurkmore.to/%D0%A4%D0%B0%D0%B9%D0%BB:Mammoth.jpg
http://vignette3.wikia.nocookie.net/cnc/images/3/31/TW_GDI_MammothMk.III_Screen.png/revision/latest?cb=20130715055728&path-prefix=ru


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

во время боя с босом самопроизвольное движение вперед нужно останавливать

лучше если бос не будет стоять на месте
(тут бы не помешала возможность движение тарелки назад(со скролом фона назад))

при этом периодически пусть пролетают летучки(чтоб небыло так скучно)


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


и не нужно злоупотреблять
всякими свисающими конструкциями с неба
которые не понятно на чем висят

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

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

игровой процесс не должен превращаться в маневрирование под снарядами без возможности пальнуть в ответ


еще украсят игру самонаводящиеся ракеты\снаряды
от которых нужно будет уворачиваться

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




много еще чаво хотел написать
но забыл что именно...


пилите короче дальше

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

...мне некогда таким заниматься совсем...
хотя куча желания\идей и возможностей :v2_sleep:

krt17
17.03.2017, 21:18
Прошу тестить - жду пожелания, предложения
По моему идеально, только мало жертв.

mvg
19.03.2017, 14:54
благодарю за пожелания !
1. заставку и главный экран переделал (от слова совсем). Пришлось на пц ваять конвертер графики ;)
2. управление:
qaop m я конечно ввел, но оно только для эмуляторов. ибо на рк-партнере и прочем - йцукен. и на латинице - тож jcuken ;)
в общем управление теперь и с клавы и курсором. Кстати у меня "лево+вниз+огонь вправо+вниз+огонь" прекрасно работает. Может дело в эмуле (отлаживаю на emu80) а может и в особенностях вашей пц клавы.(у меня на логитеч г19 все корректно...)
3. по поводу названия и сюжета... в свое время на рк(да и не только) ходило несколько версий игры "марс". там как раз предыстория ;) расширил мануал - теперь надеюсь сюжет будет более понятен
4. выбор уровня + проход через препятствия - сделано для отладки. в релизе - уберу ессно
5. "миссия модуля выполнена не полностью" . чтобы выполнить миссию полностью - надо не только порешить всех человеков но и посадить модуль на базу ;)
6. надпись "партнер" - т.к. на разных рк клонах немного разная архитектура - данная надпись индицирует текущий режим работы. возможно в перспективе будут версии для рк и к приеру для апогея или микроши...
7. уровни/боссы. борюсь с ленью. сейчас уровень пишется в асме в виде db.... если лень победю - сваяю генератор уровней и их качество вырастет
босс(боссы) - надеюсь будут.
8. "только мало жертв." будут ;))

ZEvS
19.03.2017, 15:18
Игра отличная, мне понравилось, поиграл от души! Спасибо.

Нашел у Вас баг. Летающая тарелка может лететь под землей! :)

Кстати, не планируете адаптировать для микроши? У меня железная.

mvg
19.03.2017, 15:42
"Летающая тарелка может лететь под землей"
это не баг а фитча ;) столкновения с препятствиями в отладочной версии отключены

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


для микроши версия возможна.

ZEvS
19.03.2017, 15:50
"Летающая тарелка может лететь под землей"
это не баг а фитча ;) столкновения с препятствиями в отладочной версии отключены
.

Ок, понял.

NEO SPECTRUMAN
19.03.2017, 20:20
Может дело в эмуле
дело в пц-шной клавиатуре...
при нажатии начинает пищать биос...
непонятно почему я не спотыкался об это раньше...
правда недавно её разбирал чистил...
так все работает


qaop m я конечно ввел, но оно только для эмуляторов. ибо на рк-партнере и прочем - йцукен. и на латинице - тож jcuken
не это я в курсе
в смысле нужно дублирование управления на случай нерабочести курсора (я ламал кнопки на реале)
или возможность его как то менять


для микроши версия возможна.
избавляйтесь от обращений к пзу
и пишите сразу под все РК-шки одновременно

а на чем вообще пишите?

ZEvS
19.03.2017, 21:45
избавляйтесь от обращений к пзу
и пишите сразу под все РК-шки одновременно


На мой взгляд, это не так просто. Если не обращаться к ПЗУ, то надо обращаться к портам, а у каждого ПЭВМ эти порты разные... Или придется драйвера писать...

NEO SPECTRUMAN
19.03.2017, 23:27
Если не обращаться к ПЗУ, то надо обращаться к портам, а у каждого ПЭВМ эти порты разные... Или придется драйвера писать.
никаких проблем
все элементарно просто
у всех РК-шек первые 32к рама
порты мапятся на память

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



в начале исходника пишем


rktype = 1

if rktype = 1
crtaddr = xxxx
dmaaddr = xxxx
endif

if rktype = 2
crtaddr = xxxx
dmaaddr = xxxx
endif



в коде все обращение к портам в виде


ld (dmaaddr+1),a

ld h,high crtaddr
ld l,low crtaddr + 1



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

а вот чтоб поддерживать совместимость через обращение к ПЗУ уже нужно знать особенности его на каждой машине... и куча головной боли...

вот портировать на ЮТ88, Микро80 уже будет наверное немного сложнее...

ZEvS
19.03.2017, 23:48
у всех РК-шек первые 32к рама


За исключением 16К версий.
Кстати, еще наверняка видеобуфер в разные области ОЗУ мапятся.
Во всем остальном, согласен.

NEO SPECTRUMAN
19.03.2017, 23:50
Кстати, еще наверняка видеобуфер в разные области ОЗУ мапятся.
какая разница куда он мапиться изначально
когда его положение меняется программно в начале
перепрограммированием DMA на нужные адреса одинаковые для всех...

тоже и касается 16К версий
если оно туда помещается

ZEvS
20.03.2017, 00:29
какая разница куда он мапиться изначально
когда его положение меняется программно в начале
перепрограммированием DMA на нужные адреса одинаковые для всех...

Вы предлагаете написать что-то вроде универсального "монитора", с функциями, и вставлять его в каждую программу. В принципе, это должно сработать.

NEO SPECTRUMAN
20.03.2017, 00:34
что-то вроде универсального "монитора"
я не предлагаю никакого универсального монитора
я вообще не приветствую обращение к драйверам\мониторам (за исключением работы с накопителями)

только прямое обращение к железу!
только хардкор!

mvg
20.03.2017, 07:20
"а на чем вообще пишите?"
win asm студия. целевая платформа - партнер 01.01 (первый комп)

Error404
20.03.2017, 13:49
я не предлагаю никакого универсального монитора
я вообще не приветствую обращение к драйверам\мониторам (за исключением работы с накопителями)

только прямое обращение к железу!
только хардкор!

А чо ж накопителям то так не повезло? :)
Назвать монитор не монитором, а библиотекой.

mvg
20.03.2017, 14:36
Выкладываю.



изменено:
главное меню - полностью (теперь 100% псевдографика) для чего сделан конвертер графики с пц
фон игрового режима
добавлено альтернативное управление qaop m для эмулятора
переписан хелп. теперь геймлей должен стать более понятным
поправлено "исполнение-выполнение"
изменен звук при взлете
добавлен 4й уровень, сделанный полностью в спецредакторе ;)
небольшие косметические доработки


боссов и самонаводящихся ракет пока нет, но будут ;)

в планах:
перерисовать в редакторе 1-3 уровни
добавить уровней (теперь есть редактор, стало проще)
добавить боссов

как обычно - жду пожеланий - предложений.

Pyk
20.03.2017, 23:23
mvg, а режим 60 Гц специально сделан?

mvg
21.03.2017, 06:50
"60 гц"
нет. видимо побочный эффект убирания курсора и сжатия символов ;)

barsik
21.03.2017, 10:37
Если у Вас получилась частота строк 60 ГЦ, значит Вы неверно установили режим ВГ75.

Предполагаю, что Вы не поверили мне, когда я утверждал, что режим ВГ75 использованный vinxru - не соответствует видео стандарту и использовали нестандартный режим ВГ75, предложенный им для экономии (с помощью "химии") объёма экранного буфера, с целью уместить его в стандартном экране.

Как я уже писал ранее, в этом нет никакого смысла, кроме как сорвать синхронизацию в телевизорах пользователей. Т.е, режим придуманный vinxru это просто вредительство. И это ещё не учитывая, что за счет отключения регенерации ОЗУ в части строк (по методу vinxru), могут появиться сбои ОЗУ.

Графические программы РК86, не меняют частоту кадров и выдают сигнал полностью соответствующий TV-нормам. Для этого в режиме строк высотой в 8 линий, ВГ75 программируется на вывод 38-ми строк, плюс строка на обратный ход кадровой развёртки. Общее число линий растра точно равно стандарту 39*8= 312, отчего абсолютно точно сохраняется и частота кадров в: 1 : (39*64*8)= 50 ГЦ. И видимый размер экрана тоже сохраняется, только видимых строк в псевдографике 30, а не 25.

Необходимо избегать отклонений от TV-стандарта. Зачем заставлять пользователей каждый раз подкручивать регулировки на видео-мониторе, после запуска игры, работающей в "левом" режиме ВГ75.

mvg
21.03.2017, 10:53
буду благодарен за кусок кода с настройкой вг ;)

barsik
21.03.2017, 11:19
Вот такой кусок был в одной игре. На практике не проверял. Но вижу, что здесь 38 строк + одна строка на гашение, т.е всё как во многих играх. Курсор в 8-й линии, значит - виден (чтобы был невидимым - замените 77H на 97H).



.
P_VG75: LD A,0 ; команда формат экрана
LD (0C001H),A
LD A,4DH ; 0.100 1101 77 --> т.е 78 колонок
LD (0C000H),A
LD A,25H ; 00.10 0101 это 37 значит 38 строк, и 1 строка на гашение по кадрам
LD (0C000H),A
LD A,77H ; 8 линий в знакоместе, 8-я подчёркив-е
LD (0C000H),A
LD A,53H ; 0.1.01.0011 атрибуты не отображаются
LD (0C000H),A
LD A,27H ; команда начало отображения
LD (0C001H),A

LD A,(0C001H)
L_178E:
LD A,(0C001H)
AND 20H
JP Z,L_178E
LD A,80H
LD (0E008H),A ; ПДП
LD A,0
LD (0E004H),A ; начальный адрес экрана 4000H
LD A,40H
LD (0E004H),A
LD A,93H ; конечный адрес экрана 4B93H
LD (0E005H),A
LD A,4BH
LD (0E005H),A
LD A,0A4H
LD (0E008H),A
RET


А вот какой-то неизвестный режим для какого-то странного компьютера, где ВГ75 стоит на D000. Может тоже пригодится.



.
LD HL, 0D001H
LD (HL), 0
DEC HL
LD (HL), 4DH
LD (HL), 21H ; 00.10 0001 это 33, значит 34 строки
LD (HL), 68H ; 0110.1000 7-я подч-е, высота 9 линий
LD (HL), 0B3H ; 1.0.11.0011 атрибуты отобр-ся пробелом
INC HL
LD (HL), 27H

mvg
21.03.2017, 12:49
первый код переносит экран (а не хотелось бы) ;((
на втором в эмуле emu - все плывет ж((

Pyk
21.03.2017, 14:34
А почему бы и не 60 Гц? Обычный NTSC-режим: 525 строк, 60 Гц. Для нас немного экзотический, но большинство современных телевизоров вполне его понимают.

barsik
21.03.2017, 17:34
А почему бы и не 60 Гц?

Потому что еще полно пользователей с монохромными мониторами выпуска 80-х, 90-х, а то и RGB CGA у кого-то сохранились. А сельский житель в отдалённой сибирской деревне вообще пользуется бабушкиным ламповым телевизором (у меня тоже такой был для РК86 в 1987, ничуть не хуже). Сейчас у меня есть советские мониторы 6105 и корветовский ВК 8071 (оба дохлые, но есть), а пользуюсь импортным монитором с зеленым люминофором (все профессиональные моно-мониторы из 80-х были зелёными, это эргономично и реально приятнее). И не у всех любителей РК на мониторах ручки регулировки легко доступны. Потому, по-прежнему утверждаю, что выпуск программ РК под западные TV-стандарты это вредительство и низкопоклонство перед Западом.


первый код переносит экран (а не хотелось бы)

Я не знаю как уместить 38 строк в объём стандартно отведённый ROM-BIOS-ом для 30-ти строк. Тогда можно внимательнее посмотреть на код от vinxru и, если там число строк на обратный ход кадровой развёртки оставлен в 1 строку, то достаточно увеличить до 3-х строк. Что тоже даст 38 строк вместо 36. Но, предположительно, первая строчка тогда немного сползёт вниз (отчего общее число используемых видимых строк лучше сократить с 30-ти до 28, чтобы отцентровать экран).


на втором примере кода инициализации ВГ75 в эмуле EMU от b2m - всё плывёт

Боюсь озлобить b2m, но возможно это дефект эмулятора, а не программы. Если я ничего не путаю, предположительно программа с таким INIT_VG75 работала на моём РК86 в 1987 году, т.к эта программа из моих записей на МГ-ленте. Вряд-ли я стал бы хранить дохлую программу.

NEO SPECTRUMAN
21.03.2017, 18:15
Я не знаю как уместить 38 строк в объём стандартно отведённый ROM-BIOS-ом для 30-ти строк
тк нижние строки сверху и снизу не видно
забить в них F1 конец строки стоп ПДП
в таком количестве
пока єкран не станет нужного размера по обьему

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

А чтоб делать игру под все РК одновременно
лучше бы и переместить раз и на всегда экран
в одинаковое для всех место...

mvg
22.03.2017, 11:26
"или вот так можно"
оба варианта - плывут на emu ;(

mvg
22.03.2017, 13:05
emu v 1.01

" LD (HL),c " а чему = с?

mvg
22.03.2017, 13:58
срыв есть ;(((

barsik
22.03.2017, 14:34
"c" равно, видимо, нулюКоманда 80H это установка позиции курсора. Так что, "с" - это ноль только в третьем случае (где это код команды "задать формат экрана"). А первые два "с" - это д.быть регистры BC, где занесены экранные координаты (X+8, Y+3). Иначе вообще команда установки координат бесполезна и 4 строки команд КР580 просто бессмысленны.Если только здесь эти 4 команды не имеют цели передвинуть курсор в невидимую область экрана, чтобы избавиться таким образом от него.

b2m
22.03.2017, 17:12
у мну работает. ЧЯДНТ?
Не работает где? У меня в эмуляторе работает.

срыв есть ;(((
Код в студию!

Pyk
22.03.2017, 23:20
срыв есть ;(((
О каком срыве речь-то вообще?
Самих по себе этих фрагментов кода недостаточно, нужно еще и контроллер ПДП программировать. может быть, в этом дело?


в аттаче - мои хелловорлд с этими параметрами настройки ВГ75.
Для Партнера так нельзя - у него тактовая частота ВГ75 другая, так что тайминги тоже другие будут.
Вот здесь:

mvi m,73h
Нужно 73 на 7b поменять.
Хотя если рассчитывать только на эмуляторы, то можно об этом не беспокоиться...

mvg
23.03.2017, 12:52
Код
mvi c,0
lxi h,VG75_ADDR+1;LD HL,CTRL_CRT+1 ;З 0c001h
mvi m,80h; LD (HL),80h
dcx h; DEC HL
mov m,c; LD (HL),c
mov m,c; LD (HL),c
inx h; INC HL
mov m,c; LD (HL),c
dcx h; DEC HL
mvi m,4dh; LD (HL),4dh
mvi m,25h; LD (HL),25h
mvi m,7; LD (HL),07h
mvi m,7bh; LD (HL),73h
inx h; INC HL
mvi m,27h; LD (HL),27h

пример программы и скриншот срыва - во вложении(увы в динамике скриншот не передает).