Просмотр полной версии : ChibiAkumas
randomizer
29.03.2020, 19:35
Репозиторий (https://github.com/aberranthacker/chibiakumas) с игрой.
Образ диска (https://disk.yandex.ru/d/UqOoYv2iT-Q7bA) с текущей версией.
Диск загрузочный. Без какой либо файловой системы.
Игра загружается только с дисковода.
Управление курсорными клавишами, УПР - смартбомба, F и Y стрельба.
Для вывода музыки и звука используется звуковая карта (https://github.com/aberranthacker/aberrant_sound_module), в случае её обнаружения.
Вышло первое в серии обучающее видео (https://www.youtube.com/watch?v=sk5Y26Qb1Ow) по программированию для PDP-11, в уклоном в сторону УКНЦ.
Стоит поддержать автора лайками и просмотрами ;)
Еще заметил что он добавил в свой редактор спрайтов (https://www.chibiakumas.com/akusprite/) сохранение в формате для УКНЦ.
SuperMax
29.03.2020, 20:38
Спорно. я понимаю если бы это была нормальная статья с материалами, а видео это.... ну как бы сказать, не самый лучший вариант для подачи подобного материала.
Но сам факт появления подобного материала, конечно, однозначно хорошо.
randomizer
29.03.2020, 20:54
Судя по поддержке на патреоне (https://www.patreon.com/akuyou/posts), формат вполне себе имеет право на существование. К тому же есть и текстовая версия (https://www.chibiakumas.com/pdp11/).
Вышло первое в серии обучающее видео по программированию для PDP-11, в уклоном в сторону УКНЦ.
Буржуи знают про нашу УКНЦ?
Буржуи знают про нашу УКНЦ?
у них нет УК-НЦ для обучения - то есть не громоздкого, но достаточно производительного PDP-11 like микро-компьютера, УК-НЦ не имеет конкурентов, пилите скорее Титус ваши икс-эмки, может ещё успеем свой остров купить? УК-НЦ сама себя продаст, если сделать НЕКСТ вариант для населения Земли )))
randomizer, Олег, а по игрушке Chibi Akumas для УКНЦ много осталось доделать?
randomizer
30.03.2020, 12:12
Буржуи знают про нашу УКНЦ?
randomizer, Олег, а по игрушке Chibi Akumas для УКНЦ много осталось доделать?
Собственно в процессе переноса и заинтересовал Кита в платформе PDP-11. Точнее в УКНЦ - интерес Кита распостраняется на домашние компьютеры (https://www.assemblytutorial.com/), да и для меня PDP-11 в основном синоним для УКНЦ.
Версия игрушки для УКНЦ - пока вожусь с движком.
Оригинальный движок оптимизирован под z80. Дело даже не в оптимизации, просто на PDP-11 нет возможности работать с байтами так же просто как на z80.
Пока не ясно сколько памяти потребуется версии для УКНЦ.
С одной стороны минимальный оригинал игры использует все 64KB ОЗУ на Amstrad CPC, с другой, некоторые задачи делигируются ПП.
Первое время старался использовать оригинальные структуры данных, но в итоге плюнул и перешел пока на слова - всякими оптимизациями буду заниматься потом.
Далее будет перенос уровней, точно даже не знаю сколько, вроде 20 уровней. Каждый со своим набором спрайтов.
Но с ними будет гораздо проще, главное движок.
В общем, как повелось, неспешно продолжаю заниматся :)
Кстати, Кит ещё занимается разработкой игры Chibi Aliens (https://www.chibialiens.com/), и планирует выпустить её сразу множества платформ базирующихся на Z80,6502 и 68000.
Думю что можно расширить этот список и до К1801ВМ2, но в идеале, для этого нужно перевести тех документацию на английский.
SuperMax
30.03.2020, 13:03
просто на PDP-11 нет возможности работать с байтами так же просто как на z80.
а можно подробнее ?
Oleg N. Cher
30.03.2020, 13:14
В PDP-11 есть регистры общего назначения R0-R5, и они чисто 16-битные. Даже если читать байт командой movb, то старший (знаковый) бит этого байта размножается на старший байт 16-битного регистра. Так что вся арифметика 16-битная, простого доступа к старшему байту регистров нет, можно только обменять байты регистра местами командой swab и замаскировать данные логическими операциями. Так что худо-бедно можно, но не фонтан.
randomizer
30.03.2020, 13:32
а можно подробнее ?
В добавок к вышесказанному, запись байта в память требует на 20% больше времени, по сравнению со словом.
- - - Добавлено - - -
Если говорить конкретно о ВМ2, и это не единственный процессор который так пишет байты в память.
SuperMax
30.03.2020, 14:36
В PDP-11 есть регистры общего назначения R0-R5, и они чисто 16-битные. Даже если читать байт командой movb, то старший (знаковый) бит этого байта размножается на старший байт 16-битного регистра. Так что вся арифметика 16-битная, простого доступа к старшему байту регистров нет, можно только обменять байты регистра местами командой swab и замаскировать данные логическими операциями. Так что худо-бедно можно, но не фонтан.
не совсем понимаю почему 16ти битная арифметика стала недостатком, проясните.
randomizer
30.03.2020, 15:53
не совсем понимаю почему 16ти битная арифметика стала недостатком, проясните.
У z80, да и у 8086 можно непосредственно модифицировать оба байта в слове, обращаясь к каждому из них как к отдельному регистру.
А на PDP-11, чтобы изменить байт в регистре, при этом оставив старший байт неизменным, необходимо использовать пару команд
CLRB Rd
BISB (Rs)+,Rd
Так же необходимо выполнять команду SWAB чтобы получить доступ ко второму байту. И отлеживать где какой байт внутри регистра.
Помимо оверхеда, это еще и не очень удобно.
Добавляет неудобства ещё то, что в оригинале ChibiAkumas очень много самомодифицируещегося кода.
Речь не о недостатках и преимуществах, а просто о том, насколько просто транслировать код одного процессора, в код другого.
SuperMax
30.03.2020, 16:12
У z80, да и у 8086 можно непосредственно модифицировать оба байта в слове, обращаясь к каждому из них как к отдельному регистру.
Речь не о недостатках и преимуществах, а просто о том, насколько просто транслировать код одного процессора, в код другого.
теперь понятно. просто не надо "транслировать" - надо писать исходя из ассемблера PDP-11.
я хорошо помню как я писал под x86 и переплевался от его убогости после PDP-11 тк мышление заточено под 16-ти разрядный процессор и его возможности.
а вот если привыкнуть и осознать возможности - продукт будет получаться качественнее и легче ибо не будет натягивания совы на глобус.
Согласен на 100% с SuperMax.
Плевался точно так же на x86...
Код PDP-11 намного компактнее выходит.
А уж что касается операционок на х86, так что-то подобное RSX-11 появилось как WIN NT и OS/2...
Короче, я разбаловался на PDP-11 :)
randomizer
30.03.2020, 20:13
теперь понятно. просто не надо "транслировать" - надо писать исходя из ассемблера PDP-11.
Ну, как повелось, те кто знают как надо, не особо что-то делают ;)
А я в свое время загорелся повторить опыт Никиты по переносу игры со Спектрума на УКНЦ.
Выбрал только Amstrad CPC, т.к. там есть четырехцветный видеорежим и конечно игры под него.
Правда на ассемблере до этого не писал. Поэтому не было ни привычек, ни предпочтений.
Изучал ассемблер сразу для двух разных процессоров. А потом читал на одном, писал на другом.
То как надо, уже в процессе стало яснее ясного.
И целом да, для PDP-11 код получается лаконичней. Но при работе с данными побайтово, появляются исключения.
С байтами надо правильно работать. Понимать, что алгоритм работы с байтом - затратен. Проще работать с последовательностью байтов в памяти, а регистр с хранением двух байт - нереален. Правильно один регистр в качестве указателя байтового, на объект второй как собственно аккумулятор для требуемых действий. И сразу не нужны никакие битовые операции для работы :) Хотя самый правильный способ, продумать алгоритм таким образом, чтобы работа именно с байтами была минимизирована. Стараться работать со словами. Всё будет сильно быстрее. Одна словная пересылка будет более чем в два раза шустрее, чем две байтовых ... На сколько именно - вопрос сложный. Зависит от конкретной модели процессора. Конечно, в алгоритм придётся изменения вносить :(
randomizer
17.07.2022, 17:51
Прошло каких то пару лет, и большая часть движка игры реализована)
демо с первым уровнем (https://disk.yandex.ru/d/UqOoYv2iT-Q7bA)
Управление курсорными клавишами, и УПР - смартбомба, F и Y стрельба.
Помню что выбирал клавиши так, чтобы из коды отпускания не пересекались.
Звук только на AY, используются два чипа, один для музыки, второй для звуковых эффектов.
Но в этой сборке отправка данный на AY выключена.
Только сейчас подумал, что можно же было автообнаружение звуковой платы сделать :v2_dizzy_facepalm:
Движок игры получился 6Кб, прям идельно помещается в области памяти выше 56К.
Пробовал его туда переместить, сразу заметно так игра ускоряется. Так что очень сложно играть становится.
Замерял сколько времени требуется чтобы пролистать весь уровень, получилось что с движком в доп. памяти, уровень прокручивается на 30% быстрее.
Большой соблазн его там и оставить. Сразу память появляется под второй кадр для всех спрайтов, да и маска для затирания фона влезет)
Но в эмуляторе нет поддержки доп. памяти.
Кстати, толи это проблема QT версии эмулятора (на другой не проверял), толи ещё что.
Когда удерживаешь клавишу, примерно через секунду регистрируется её отпускание, хотя она по прежнему нажата.
На реальном машине всё четко работает.
И опять же, только в эмуляторе, бывает что возникает ошибка загрузка данных с диска с кодом
102 "Не найден сектор с заданным номером"
Причём чтобы убрать эту ошибку, достаточно увеличить размер блока данных на одно слово.
При этом количество занимаемых блоком данных секторов не меняется.
Да, и чтобы убрать эту ошибку, я увеличиваю размер на одно слово не загружаемого блока данных, а того, который загружается перед ним.
Т.е. сначала загружается движок игры, а потом сразу же за ним уровень игры.
Эта ошибка возникает при загрузке уровня, а чтобы её убрать, увеличиваю размер движка на одно слово.
А на реальной машине всё норм.
Прошло каких то пару лет, и большая часть движка игры реализована)
демо с первым уровнем
А можно сразу скриншоты для ознакомления или же видео на ютубе?
randomizer
18.07.2022, 00:04
Так она прекрасно рабоет в эмуляторе, для ознакомления)
https://i.ibb.co/HHvh55G/chibiakumas1.png (https://ibb.co/HHvh55G) https://i.ibb.co/qkGGy1w/chibiakumas2.png (https://ibb.co/qkGGy1w) https://i.ibb.co/KW30tfy/chibiakumas3.png (https://ibb.co/KW30tfy)
А если интересно как она работает на реальном железе с движком в доп. памяти, то вот (https://youtu.be/EoKnyns8vO4).
Так она прекрасно рабоет в эмуляторе, для ознакомления)
https://i.ibb.co/HHvh55G/chibiakumas1.png (https://ibb.co/HHvh55G) https://i.ibb.co/qkGGy1w/chibiakumas2.png (https://ibb.co/qkGGy1w) https://i.ibb.co/KW30tfy/chibiakumas3.png (https://ibb.co/KW30tfy)
А если интересно как она работает на реальном железе с движком в доп. памяти, то вот (https://youtu.be/EoKnyns8vO4).
Спектрум какой-то.
Спектрум какой-то.
И спектрум и Амстрад СРС
И спектрум и Амстрад СРС
Беспорядочное мельтешения объектов без обратной связи смущает. Лучше качество чем количество.
randomizer
19.07.2022, 22:24
Беспорядочное мельтешения объектов без обратной связи смущает. Лучше качество чем количество.
Bullet Hell - жанр такой, как говорится на вкус и цвет)
Что за обратная связь имеется ввиду? Со звуковой платой этого вроде как хватает.
BlaireCas
04.09.2022, 13:27
А как попробовать на реальной машинке? (пусть без какой-то там доп.памяти).
Сам файл .dsk почему-то тотал коммандером с плагином не распаковывается.. :( В эмуляторе работает, чиби летает да. Интресно бы какой-то набор файликов под RT-11 заполучить чтобы загрузить через стык С2 это вот дело и глянуть.
Сам файл .dsk почему-то тотал коммандером с плагином не распаковывается
У него, по крайне мере RT-шной, файловой системы. И судя по тому, что я увидел - программа подгружается свои части с флопа - сомневаюсь, что через С2 получится
BlaireCas
04.09.2022, 14:08
У него, по крайне мере RT-шной, файловой системы.
Ну просто так подключить этот .dsk как скажем устройство HX1 и запустить чего-то с него не вышло. Выдало ?DIR-F-Invalid directory. Странный образ диска, но эмулятор Никиты его переваривает вполне.
Может это и не образ диска в понятиях RT-11 совсем, а ну типа образ игры на диске которая сама себя грузит и системой не пользуется от слова совсем.
Ну просто так подключить этот .dsk как скажем устройство HX1 и запустить чего-то с него не вышло. Выдало ?DIR-F-Invalid directory
Так я и написал - нет там RT-шной файловой системы. И скорее всего нет никакой - там по сути - раскатанная на диск программа с оверлеями, которая в нулевом блоке (ака адреса 0-776) содержит свой загрузчик корневого сегмента, а там уже есть процедура подгрузки частей программы с этого "образа на диске"
BlaireCas
04.09.2022, 14:30
нет там RT-шной файловой системы
Ну это вот логично чтобы загружать полностью всю оперативку причем в двух процессорах. Сам помню парился мол как сделать чтобы с RT был загрузчик и загружал творение потом во всю память компа (когда первая-же строка кода типа .=0 даааа..). Фактически задача из разряда "как загрузить с системы полный снапшот всей памяти (ОЗУ+видеопамять). Проще видимо обойтись БЕЗ системы.
эмулятор Никиты его переваривает вполне.
Так и обычная УК-НЦ переварит - её задача - загрузить с устройства некий блок и передать ему управление - а дальше уже работа этого блока. Например - это может быть загрузчик RT с понятными последствиями :)
А ещё встречал экзотику - на Falcon в загрузчике есть модуль загрузки standalone программ с диска с ФС RT11 - пример:
@HX2
Тест быстродействия (кэш, если он есть, выключен)
BR .+2 269 316 оп./сек
R1+R0 classic 269 333 оп./сек
R0(23456.)+R0(12345.) empty 81 884 оп./сек
R1(23456.)+R0(12345.) 62 551 оп./сек -> 264 931 оп./сек
R1+@R0 classic 162 776 оп./сек
R1(23456.)+@R0(M-12345.) empty 81 883 оп./сек
R1(23456.)+@R0(M-12345.) 54 251 оп./сек -> 160 764 оп./сек
...
- - - Добавлено - - -
Ну это вот логично чтобы загружать полностью всю оперативку причем в двух процессорах
Совсем не логично :)
BlaireCas
04.09.2022, 14:45
Совсем не логично
В этом плане именно логично. А иначе например вот как загрузить всю память (можно упаковать конечно так видимо и делают.. некоторые).
Есть например 64 кб памяти которую надо загрузить чем-то. Тут конечно можно сказать что "да пусть на систему останется, чего ее грузить-то всю". Но так реально удобнее просто когда знаешь что все ресурсы в твоем распоряжении. У меня вон повеселее вещи которые УКНЦ с дефолтным макро-11 не переварит.
4016 016000 VBufferSize = FieldDX*FieldDY*CTILE_SIZE
4017 051600 VBuffer1: .blkb VBufferSize
4018 067600 VBuffer2: .blkb VBufferSize
4019
4020 END:
4021
4022 056700 .=VDATA*2
4023
4024 .radix 10
4025
4026 GlobalObjLen:
4027 256700 004 003 004 .byte 4,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4
256703 004 004 004
256706 004 004 004
256711 004 004 004
256714 004 004 004
256717 004 004 004
256722 004 004 004
256725 004 004 004
К счастью виндовый порт macro-11 нормально относится к таким адресам и в итоге работает на УКНЦ.
(как из таких адресов потом считывать, ну через регистры Q-bus собственно)
Не логично.
А иначе например вот как загрузить всю память
Загрузчик самого УК-НЦ по любому может загрузить с флопа только один блок. С С2 - 56 кб. "Загрузчик" RT-11 - только свободную память (да ещё и в адресах 0-777 - не все).
сть например 64 кб памяти
На PDP-11 - нету. только 56 кб. На УК-НЦ - 56 + 32 (я правильно помню, сколько на ПП?), причем из 56-ти - 32 напрямую не доступны, а из 32-ух - (полностью) - 56. Нужно работать или через ПП или с аппаратными регистрами, так что напрямую опять - не доступны
которые УКНЦ с дефолтным макро-11 не переварит.
Так PDP-11 - он 16-ти битный и больше чем 56 кб - доступно только на процах с ДП (и это не про УК-НЦ), так что всё логично
BlaireCas
04.09.2022, 15:04
С С2 - 56 кб.
Да но смысл загрузить всю доступную память 0-177777 например (я уж не говорю про то что в УКНЦ памяти больше, там от 200000 тоже память есть, тупая и тормознутая).
И вот это надо допустим загрузить сразу всё с диска. Понятно что тут затрутся все драйвера и вся система пойдет лесом. Но главное загрузить всю доступную память процессора (там еще и второй ведь есть упс :, но пусть хотя-бы первый зарядить)
Вот поэтому автор выбрал логичное как мне кажется. Грузить все без самой системы. Все-равно она "удалится".
Да но смысл загрузить всю доступную память 0-177777 например (я уж не говорю про то что в УКНЦ памяти больше, там от 200000 тоже память есть, тупая и тормознутая).
Ещё раз. Это - PDP-11 без ДП. А значит максимум - 56 кб непосредственно адресуемой (это я про УК-НЦ). Ограничения архитектуры. Вся остальная память НАПРЯМУЮ ПРОЦЕССОРОМ (ни одним) НЕ АДРЕСУЕТСЯ. Хоть гигабайты поставить - 16 бит адрес.
И вот это надо допустим загрузить сразу всё с диска.
И облом. Потому что а) см предыдущее и б) "контроллер" диска грузит только в 56 на ЦП
Вот поэтому автор выбрал логичное как мне кажется. Грузить все без самой системы.
Автор выбрал грузить без системы, потому что она ему на... не сдалась и потому что он сам решил управлять "оверлеями". Никакого отношения этот вариант к - загрузить сразу всё в память (хотя бы в 56 на ЦП) этот метод отношения не имеет - всё равно СНАЧАЛА грузится 512 байт - и уже они могут грузить что то ещё (может и оставшиеся 56кб-512байт - я не анализировал код, но даже в этом случае - он не грузит СРАЗУ ВСЮ ПРОГРАММУ - она на диске явно больше 56 кб занимает)
Я бы сделал вариант - программа с оверлеями, но свои модули для управлениям ими и сразу после запуска занимал бы всю память (вытирая систему) - то есть использовал бы стандартну ФС RT, что бы не парится с созданием "загрузочного" диска, но при этом бы запоминал - с какого устройства и какая была загружена системы - и при выходе из программы её бы загружал. Но это я - который хорошо знает RT, её внутренности, оверлеи и их внутренности, и которому это всё не сложно. Но даже я не загружу одним запросом к диске больше 56 кб.
- - - Добавлено - - -
А вообще я фигею, дорогая редакция. Есть определённая архитектура, с определёнными ограничениями. Сделанная в допотопные времена, когда, внезапно, память была достаточно дорогой. Сделанная с определёнными прицелами (например - сделать, по возможности, дешёвой. То есть была куча компромисов.
И теперь, лет так через 25-30 (когда там УК-НЦ слепили? Она у меня была ДО Квант-а, значит - начало 90-ых, пусть 95-ый - то есть я не сильно ошибся с 25-30), народ скулит - ах, почему всё так сложно. Попробуйте на БЭСМ-6 программировать - ващё ахренеете. Как вам например то, что на БЭСМ-6 не было целых чисел??
- - - Добавлено - - -
Есть такой хороший принцип - ешь, что дают. Связался с УК-НЦ - прими все её приколы как данность. Не, конечно, по теперешним временам можно слепить УК-НЦ 2.0 - со своим видением - как оно должно быть - но это будет уже немного другая история ;)
randomizer
04.09.2022, 15:53
Игра расчитана на загрузку с дисковода, и только с привода 0.
Просто не знаю как определить с какого привода произошла загрузка бутсектора.
https://github.com/aberranthacker/chibiakumas/blob/25cba97d4733ea4de46c19ed4ed6df499885948d/uknc/bootsector.s#L75
Изначально, когда кода было совсем немного, мне просто надоело ждать пока загрузится операционная система.
А потом оказалось, что куда проще обойтись без операционной системы.
Пример-прикол.
Скопировать 16 Тб с диска на диск - у меня ушло примерно 23 часа. Пусть скорость флопа - 100 кб/с (что-то мне подсказывает, что реально - меньше, но.. путь у нас есть две дискеты на 16 ТБ и со скорстью 100 кб/с - в те времена :) ) . Тогда (в те времена) мне понадобилось бы... Примерно 1988 дней или чуть меньше 5.5 лет. Как раз к покупке Квант-а бы успел :D
- - - Добавлено - - -
Просто не знаю как определить с какого привода произошла загрузка бутсектора.
R0 - номер устройства, R1 - CSR
- - - Добавлено - - -
А, да, возвращаясь к примеру-приколу - то есть скорость дисков у нас выросла больше чем в 2000 раз - вот по какому поводу надо скулить :)
- - - Добавлено - - -
На самом деле - фигня все эти вопросы, всё решаемо - нужно только помнить про ограничения - а я ушёл пилить дальше DisAsm-11 - восстановлене утерянных исходников - гораздо более нужная (с моей точки зрения) для PDP-11 задача. Без документации иногда сложно понять - что происходит.
Вон, на vcfed народ озадачен был - загружает тест RL типа как с перфоленты (через PDPGUI) - а он не стартует. Загружает XXDP, а из под него этот тест - вуаля - всё работает. И "неожиданно" выяснилось - что стандартный стартовый адрес 200 - он нисколько не стандартный и есть программы, которые не имеют в LDA стартового адреса вообще (тот тест RL как раз пример), но тем не менее - успешно стартуют.
А поскольку я восстановил исходники нескольких мониторов XXDP - для меня всё было прозрачно - монитор перед загрузкой проги по адресам 200-202 пишет команду <JMP @#2100> - и это ещё один "стандартный" стартовый адрес. Плюс этот тест ТРЕБУЕТ а) загруженного монитора и б) специального модуля на диске, который монитор может подгрузить для программы - одним стандартным EMT запросом. Может про этот фокус где то в доках и есть инфа - но не попадалось.
Это как?
Надо было дописать - возможно :) Но судя по вопросу - и со стыка 56 кб одним "запросом" не загрузишь :)
Надо было дописать - возможно :) Но судя по вопросу - и со стыка 56 кб одним "запросом" не загрузишь :)
Так всё в открытом доступе - http://emuverse.ru/wiki/УКНЦ_ROM_disasm_6, адрес 165540. Так же, только 512 байт.
Так всё в открытом доступе
Особого смысла искать не видел - так как даже если и смог С2 загрузить 56 кб - всё равно - не всю память, а только 56 кб.
Особого смысла искать не видел - так как даже если и смог С2 загрузить 56 кб - всё равно - не всю память, а только 56 кб.
Меньше 56 кб, ибо стык С2 расположен на магистрали ЦП, а значит загрузчик должен быть в ОЗУ ЦП. Ну не будет же он сам себя стирать.
Меньше 56 кб, ибо стык С2 расположен на магистрали ЦП, а значит загрузчик должен быть в ОЗУ ЦП. Ну не будет же он сам себя стирать.
Теореически - можно схитрить - и, расположив его на самом верху памяти, сделать что то похожее на absloader - то есть последние загружаемые байты будут затирать загрузчика, но одновременно содержать команду перехода на стартовый адрес. И тогда можно будет сократить остаток загрузчика до минимума - несколько команд, так что будет почти 56 кб
- - - Добавлено - - -
Ну а если свезёт и удасться придумать - может и до нуля команд :)
Теореически - можно схитрить - и, расположив его на самом верху памяти, сделать что то похожее на absloader - то есть последние загружаемые байты будут затирать загрузчика, но одновременно содержать команду перехода на стартовый адрес. И тогда можно будет сократить остаток загрузчика до минимума - несколько команд, так что будет почти 56 кб
А вообще можно было сделать так, чтобы грузились все 56 кб и не затирался загрузчик - расположить его в HALT-памяти. Процессор 1801ВМ2 и архитектура УКНЦ это позволяют.
А вообще можно было сделать так, чтобы грузились все 56 кб и не затирался загрузчик - расположить его в HALT-памяти. Процессор 1801ВМ2 и архитектура УКНЦ это позволяют.
Можно было бы, но у нас есть данность - УК-НЦ :)
randomizer
04.09.2022, 18:04
Закинул в шабку ссылку на образ диска с текущей версией игры.
Теперь используются двух-кадровые спрайты.
На сколько хватило памяти, добавил маски для спрайтов.
Впервую очередь для тех, что наиболее резали глаза.
- - - Добавлено - - -
Интересно, есть ли какая то программа для RT-11 позволяющая скопировать посекторно весь диск?
Чтобы скопировать диск с игрой с готека на реальную дискету.
Хочется оценить загрузку с реального привода.
Интересно, есть ли какая то программа для RT-11 позволяющая скопировать посекторно весь диск?
COPY/DEVICE MZ0: MZ1:
Подставить нужные устройства
- - - Добавлено - - -
Ноль можно не писать (MZ:)
- - - Добавлено - - -
Вдогонку - ключами в этой команде можно задать копирование между файлами, между устройствами, между файлом и устройством (в любую сторону), а так же задать копирование куска, а не всего входного объекта и с какого места в выходном объекте начать копирование :)
COPY/DEVICE MZ0: MZ1:
А это точно по секторам (блокам), или по файловой системе?
А это точно по секторам (блокам)
В данном варианте - по блокам (512 байт). Если устройство имеет сектора, по размеру меньшие чем 512 байт (DX, DY), драйвер делает из них 512-ти байтные блоки.
или по файловой системе?
Файловая система при этом не учитывается, можно скопировать и не родные ФС - я так переносил XXDP
- - - Добавлено - - -
Хотя есть нюанс - если на источнике обнаруживается home block (блок с номером 1 и определённой структурой) от RT ФС - на выходном устройстве с блоком 1 что то делается - не помню, давно на это налетал
randomizer
04.09.2022, 19:34
А это точно по секторам (блокам), или по файловой системе?
Скопировал диск без ФС. Всё грузится. Так же шустро как и с готека, видимо благодаря отсутствию ФС :)
Так же шустро как и с готека, видимо благодаря отсутствию ФС
Готек на выходе выдаёт точно такой же сигнал, как реальный флоп (а он выдаёт сырой поток-сигнал, а не байты) - то есть скорость чтения с готека будет такой же, как и с флопа.
BlaireCas
04.09.2022, 19:38
Сложная игруха. Я понимаю что чиби надо в "сердце" попасть чтобы покоцать. Но чего-то у меня постоянно туда и попадают :)
Ну и еще если держать нажатой стрельбу то она летает довольно медленно при этом (если не держать то ускоряется)
Ну и еще если держать нажатой стрельбу то она летает довольно медленно при этом (если не держать то ускоряется)
Работа не по прерываниям?
- - - Добавлено - - -
Хотя тут может и особенность архитектуры - по сути - ПП сканирует клавиатуру (если я не ошибаюсь)
BlaireCas
04.09.2022, 19:56
Хотя тут может и особенность архитектуры - по сути - ПП сканирует клавиатуру (если я не ошибаюсь)
Похоже так автором задумано. Если держишь стрельбу то вертикально она летает попиксельно, а если не держать то гонзает по 8 пикселей или навроде того.
Кстати первый уровень проходится если полететь в самый правый верхний угол и там сидеть (ну иногда чутка вниз слетать чтобы какой-то случайный патрончик не зацепил в сердце). Потом вылез босс и вообщем "я прошел игру" :) Круто!
randomizer
04.09.2022, 20:01
Ну и еще если держать нажатой стрельбу то она летает довольно медленно при этом (если не держать то ускоряется)
Так специально сделанно.
Если стрельба не нажата, то передвижение по 8 пикселей, если зажата, то по 2 пикселя.
Сложная игруха. Я понимаю что чиби надо в "сердце" попасть чтобы покоцать. Но чего-то у меня постоянно туда и попадают
Там главное как можно скорее противников убивать, чтобы успело рассеятся то что они навыпускали.
Вообще нужно меню настроек сделать, чтобы регулировать сложность.
Сейчас средняя сложность, и режим bullet-hell, но предусмотрен и bullet-heaven)
- - - Добавлено - - -
Кстати первый уровень проходится если полететь в самый правый верхний угол и там сидеть (ну иногда чутка вниз слетать чтобы какой-то случайный патрончик не зацепил в сердце). Потом вылез босс и вообщем "я прошел игру" Круто!
Это только первый уровень, боссов всего 4, и в конце мега-босс
BlaireCas
04.09.2022, 20:06
Это только первый уровень, боссов всего 4, и в конце мега-босс
Так чего-то босс первый вылез, а чиби при этом пропала и как-то вообщем на эмуляторе игра и завершилась. Э... даже в босса не пострелял.
Ну ладно, главное до него дошел через "читерство" конеч :)
А вообще порадовал да. Давно не бугуртил от игры на УКНЦ ахах.
randomizer
04.09.2022, 20:24
Так чего-то босс первый вылез, а чиби при этом пропала и как-то вообщем на эмуляторе игра и завершилась. Э... даже в босса не пострелял.
Хм, странно :v2_conf2:
Попробовал сейчас дойти до босса (обычно сразу с нужного уровня запускаю), всё норм, босс убивается.
А после этого уже да, переход в меню.
BlaireCas
04.09.2022, 21:10
Хм, странно
Там еще надпись вылазит вместе с боссом. no object animator как-то так. Скрин ниже. Чиби сама пропадает, босс вылазит ну и хана.
Это все на эмуляторе разумеется. Не могу на реальной машинке запустить ибо у меня она с загрузкой через стык С2.
https://i.imgur.com/1Ex3Cyr.png
(добавлю что я лечу через "читерство" - то-есть сижу в правом верхнем угле самом и немного маневрирую вверх-вниз чтобы иной раз избежать попадания, может в этом дело х.з.)
randomizer
04.09.2022, 21:21
Там еще надпись вылазит вместе с боссом. no object animator как-то так. Скрин ниже. Чиби сама пропадает, босс вылазит ну и хана.
Это первая версия которую я выложил, там я уже не помню в каком состоянии всё было.
Нужно загрузить последнюю по ссылке в шапке.
Там и цвета изменены с RGB на GRB.
BlaireCas
04.09.2022, 21:31
Нужно загрузить последнюю по ссылке в шапке
В этой версии стало поинтереснее, но... Извиняюсь может мне так "везет", однако чиби тоже пропала, теперь уже прямо в полете еще и до босса не долетел. На боссе ее тоже нету.
https://i.imgur.com/6HTrjpZ.png
С боссом
https://i.imgur.com/7mfGKmy.png
Но эта версия уже получше точно. Видно что спрайты с маской стали кажется. Вообщем покрасивее да
randomizer
04.09.2022, 23:56
В этой версии стало поинтереснее, но... Извиняюсь может мне так "везет", однако чиби тоже пропала, теперь уже прямо в полете еще и до босса не долетел. На боссе ее тоже нету.
Не смог воспроизвести ошибку с пропаданием чиби в процессе игры.
Но исправил ошибку из-за которой игра при повторном запуске могла стартовать без чиби.
BlaireCas
05.09.2022, 00:01
Но исправил ошибку из-за которой игра при повторном запуске могла стартовать без чиби
Угу, спс, именно при повторном запуске пропадала чиби.
randomizer
22.09.2022, 22:48
Неохота было заниматься, но наконец то добавил экраны перед уровнями, и экраны отображающиеся когда чиби погибает.
Сейчас уже выглядит более менее как должно быть.
Только нужно придумать переходы между экранами, а то как то быстро на УКНЦ всё происходит.
На амстраде довольно долго всё загружалось, и переходы получались естественным образом.
BlaireCas
23.09.2022, 13:36
Видосик бы со звуком? Как я понимаю игруха умеет с AY работать и даже очень интересно что там вышло.
randomizer
23.09.2022, 14:43
Видосик бы со звуком? Как я понимаю игруха умеет с AY работать и даже очень интересно что там вышло.
Как то не очень получается видео с ЭЛТ монитора, вроде на экранчике камеры норм, а в итоге либо темно, либо фокус не очень.
Нужно поэкспериментировать со съемкой. Заморочусь на выходных.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot