Важная информация

User Tag List

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 40

Тема: Игрушка Columns для УКНЦ

  1. #1
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    438
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Игрушка Columns для УКНЦ

    Кажется никто давно не писал игр для нашей замечательной машинки УКНЦ.
    А давайте напишем хотя-бы что-то? Хотя-бы тетрис? Так-сказать "потрясем ассемблером!"

    Оригинал это Sega Genesis - Columns.
    Вроде для УКНЦ ничего похожего не видел.

    Падают разные шарики и прочее и надо чтобы совпало больше 3-х цветов по вертикали/горизонтали/диагонали. Затем они уничтожаются, фигурки в стакане падают вниз и вообщем все повторяется.

    Картинка игрушки

    [свернуть]


    Арт нагло украден с zx-art. Спасибо автору, вроде подписал его ник внизу.
    Процедура распаковки бэкграунда от Manwe за что ему вместе с IvanQ тоже спасибо.

    Для старта - нажать "Пробел". Ну а дальше "вправо-влево-вверх-вниз".
    Для RGB <-> GRB - нажать K1
    Для так-сказать "улучшенных тайлов" - нажать К2
    K3 - включает или выключает увеличение уровня по набору определенных очков (если отключить - фигурки не начнут увеличивать скорость и можно будет играть на первом уровне пока не надоест)

    Исходные коды: https://github.com/blairecas/column
    .sav-ка находится там в /release

    Диск с автозагрузкой: column.zip
    Последний раз редактировалось BlaireCas; 19.07.2023 в 15:33.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  2. Эти 17 пользователя(ей) поблагодарили BlaireCas за это полезное сообщение:

    Alex_K (09.07.2023), ALS (09.07.2023), anasana (13.07.2023), CodeMaster (10.07.2023), crazy_bender/ex-PLACEBO (09.07.2023), Hunta (10.07.2023), nzeemin (10.07.2023), Oleg N. Cher (11.07.2023), Pluto (11.07.2023), Radon17 (09.07.2023), randomizer (10.07.2023), reddie (14.07.2023), Titus (11.07.2023), tnt23 (11.07.2023), Xrust (10.07.2023), Андрианов Игорь (11.07.2023), Дмитрий2012 (10.07.2023)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    438
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Поулучшал что можно. Добавил всякие там объяснения кнопок, вывод очков, уровень. Чутка тайлы подправил.
    Сейчас стало более-менее законченное.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  5. Этот пользователь поблагодарил BlaireCas за это полезное сообщение:

    Titus (11.07.2023)

  6. #3
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,999
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сунулся в первое попавшееся место. В чём преимущество такого варианта
    Код:
    PPSEN:	mov	#PPMSG, R0		; array address
    	mov	#5, R1			; bytes to send+1 (sending from @#PP_MSG)
    	br	1$
    2$:	movb	(R0)+, @#176676
    1$:	tstb	@#176674		; test if we are ready to send
    	bpl	1$			; cycle if >= 0 (not set last bit in byte)
    	sob	R1, 2$
    	return
    перед таким
    Код:
    PPSEN:	mov	#PPMSG, R0		; array address
    	mov	#4, R1			; bytes to send (sending from @#PP_MSG)
    1$:
    	tstb	@#176674		; test if we are ready to send
    	bpl	1$			; cycle if >= 0 (not set last bit in byte)
    
    	movb	(R0)+, @#176676
    
    	sob	R1, 1$
    
    	return
    ??

  7. #4
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    438
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    В чём преимущество такого варианта
    Выполнится последний раз tstb в первом случае. Тут я не знаю насколько это критично проверить по окончании данный регистр. Где-то очень давно взял этот кусок кода для пересылки данных в ПП и зачем-то там было сделано именно с тестом регистра "до" и "после".
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  8. #5
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,999
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Выполнится последний раз tstb в первом случае.
    Это обычный вариант - засылка по готовности. И обычно проверяется ПЕРЕД пересылкой, а после, если всё закончилось - тупо оставляем до следующего раза (немного ускоряем программу, немного делаем меньше код). Насколько я помню от времён программирования на УК-НЦ - никаких проблем не должно быть.

    Так же (делаем меньше код)
    Код:
    ; can palka go left?
    CanGoLeft:
    	; check min X
    	mov	PalkaX, R1
    	beq	90$
    	; check stakan
    	mov	PalkaY, R2
    	add	#47., R2
    	asr	R2
    	bic	#^B111, R2		; palka Y to stakan line addr
    	add	R1, R2
    	dec	R2
    	tstb	Stakan(R2)
    	bne	90$
    	sec
    	return
    90$:	clc
    	return
    обычно реализуют как
    Код:
    ; can palka go left?
    CanGoLeft:
    	; check min X
    	mov	PalkaX, R1
    	beq	90$
    	; check stakan
    	mov	PalkaY, R2
    	add	#47., R2
    	asr	R2
    	bic	#^B111, R2		; palka Y to stakan line addr
    	add	R1, R2
    	dec	R2
    	tstb	Stakan(R2)
    	BEQ	100$
    90$:
    	TST	(PC)+
    100$:
    	SEC
    	RETURN
    Последний раз редактировалось Hunta; 10.07.2023 в 15:02.

  9. #6
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    438
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Так же (делаем меньше код)
    Да там в коде вагон с тележкой неоптимальщины/раздутия размеров и т.д.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  10. #7
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,999
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Да там в коде вагон с тележкой неоптимальщины/раздутия размеров и т.д
    Ну так не надо так делать. 200 гигов памяти на PDP-11 не встретишь.

  11. #8
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Сунулся в первое попавшееся место. В чём преимущество такого варианта
    Всё правильно сделано. Канал К2 работает так: первые два байта это адрес блока параметров. Третий байт должен быть обязательно ненулевым. А вот по приходу четвёртого байта п/п обработки прерываний его не считывает, а только ставит флаг вызова в диспетчере процессов. Уже когда выполнится процесс драйвера канала К2, то он считает этот четвёртый байт. Со стороны ЦП установится флаг готовности, что свидетельствует о том, что запрос выполнен.
    Если же мы решили работать в режиме прерываний, то тогда заносятся четыре байта, в конце готовность не проверяется, устанавливается флаг разрешения прерывания. Как только прерывание произошло, то запрос выполнен.

  12. #9
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,999
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Всё правильно сделано.
    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Где-то очень давно взял этот кусок кода для пересылки данных в ПП и зачем-то там было сделано именно с тестом регистра "до" и "после".
    Ох уж эти современные программисты и куски "волшебного кода". Ок, делаем дальше, не понимая почему.

  13. #10
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Ох уж эти современные программисты и куски "волшебного кода". Ок, делаем дальше, не понимая почему.
    Так предложите правильный вариант. Ваш вариант с циклом из четырёх байт и отсутствием проверки готовности в конце я считаю неправильным.

Страница 1 из 4 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. мощная игрушка
    от ZEman в разделе Игры
    Ответов: 129
    Последнее: 23.03.2024, 17:05
  2. Ответов: 231
    Последнее: 21.03.2022, 07:54
  3. Новая игрушка для БК
    от mdk в разделе БК-0010/0011
    Ответов: 37
    Последнее: 22.01.2022, 14:38
  4. Супер игрушка для Spectre\OB и Pawel\RS
    от bugsy в разделе Игры
    Ответов: 17
    Последнее: 23.03.2005, 06:47

Ваши права

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