User Tag List

Страница 6 из 15 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя
Показано с 51 по 60 из 151

Тема: Ретро-ЯП Millfork для Atari, Apple II, ZX Spectrum, MSX, CP/M, NES, Game Boy и MS-DOS

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    522
    Спасибо Благодарностей получено 
    251
    Поблагодарили
    225 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну даже без фона вполне себе миниGame. Только пару-тройку звуков добавить( при попадании во врага и при гибели вертолетика и звук вращающихся лопастей). Как там с поддержкой звуков в этом софте? Хорошо бы конечно и чтобы "рожа" периодически отпулькивалась. Ну и текст сделать размером поменьше никак нельзя?

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

  3. #2

    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,877
    Спасибо Благодарностей отдано 
    128
    Спасибо Благодарностей получено 
    130
    Поблагодарили
    81 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    Cool

    Поковырял я тут опрос клавиатуры для ATARI.
    В принципе можно напрямую опрашивать кнопки напрямую из порта.



    Есть статусный порт 753, если значение там не 0, то значит что-то было нажато и последний код читаем из 53279.
    Есть пару нюансов, опрашиваются в принципе все кнопки за исключением Start, Select, Option - они другим портом читаются (53279) причём биты ещё и инвертированы (0=если нажата)
    Второй момент это повтор, как видно из скриншота, даже кратковременное нажатие дублит кнопку и тут уж надо думать как реализовать логику автоповтора.

    Но как для теста пойдёт.

    kbd.mfk:

    Код:
    import stdio
    
    
    noinline asm void wait(byte register(a) f) {
    	clc
    	adc os_RTCLOK.b2
    	.rt_check:
    	cmp os_RTCLOK.b2
    	bne .rt_check
    	rts
    }
    
    
    void printHex(byte val) {
    	byte c
    	c = (val >> 4)
    	if (c > 9) {
    		c = c - 10 + $41
    	} else {
    		c = c + $30
    	}
    	putchar(c)
    	c = (val & $0f)
    	if (c > 9) {
    		c = c - 10 + $41
    	} else {
    		c = c + $30
    	}
    	putchar(c)
    	
    }
    
    
    void main() {
    	byte kbd, kbd2, kbd3, keyDel
    
    
    	putstrz("Key Test:"z)
    	new_line()
    
    
    	while (true) {
    		wait(1)
    		keyDel = peek(753)
    		if (keyDel != 0) {
    			kbd = peek(53769)
    			putword(kbd)
    			putstrz("($"z)
    			printHex(kbd)
    			putstrz(")"z)
    			new_line()
    			poke(53769, 0)
    		}
    		kbd2 = peek(53279)
    		if (kbd2 & %00000001 == 0) {
    			putstrz("Start"z)
    			new_line()
    		}
    		if (kbd2 & %00000010 == 0) {
    			putstrz("Select"z)
    			new_line()
    		}
    		if (kbd2 & %00000100 == 0) {
    			putstrz("Option"z)
    			new_line()
    		}
    	}
    
    
    }
    Вложения Вложения
    • Тип файла: zip kbd.zip (1.2 Кб, Просмотров: 50)

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

    andrews(26.10.2024), Oleg N. Cher(11.09.2024)

  4. #3

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,453
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    164
    Поблагодарили
    120 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    хм
    Код:
    import stdio
    array hn="0123456789ABCDEF"
    byte i
    
    
    void main() {
    
    	for i,0,to,255
    	{
    	putchar(hn[i>>4])
    	putchar(hn[i&15])
    	putchar(32)
    	}
    
        while(true){}
    }

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

    breeze(12.09.2024)

  5. #4

    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,877
    Спасибо Благодарностей отдано 
    128
    Спасибо Благодарностей получено 
    130
    Поблагодарили
    81 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shiny Посмотреть сообщение
    хм
    Ну я взял асмовскую процедуру и попытался её натянуть на millfork XD
    Поскольку в оригинале она как бы работала, но в купе с mf не очень, пришлось извещениями страдать.

    Код:
    ;  A = entry value
    
      sed        ;2  @2
      tax        ;2  @4
      and #$0F   ;2  @6
      cmp #9+1   ;2  @8
      adc #$30   ;2  @10
      tay        ;2  @12
      txa        ;2  @14
      lsr        ;2  @16
      lsr        ;2  @18
      lsr        ;2  @20
      lsr        ;2  @22
      cmp #9+1   ;2  @24
      adc #$30   ;2  @26
      cld        ;2  @28
    
    ;  A = MSN ASCII char
    ;  Y = LSN ASCII char
    Вот не совсем понятно что делает «cmp #9+1»

    выставляет флаг, а потом ADC его учитывает при сложении?
    Последний раз редактировалось breeze; 12.09.2024 в 10:38.

  6. #5

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,453
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    164
    Поблагодарили
    120 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от breeze Посмотреть сообщение
    Вот не совсем понятно что делает «cmp #9+1»

    выставляет флаг, а потом ADC его учитывает при сложении?

    https://www.c64os.com/post/6502instructions
    CMP Compare Accumulator
    Compare sets processor flags as if a subtraction had been carried out.

    If the accumulator and the compared value are equal, the result of the subtraction is zero and the Zero (Z) flag is set. If the accumulator is equal or greater than the compared value, the Carry (C) flag is set.

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

    breeze(12.09.2024)

  7. #6

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,453
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    164
    Поблагодарили
    120 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Неофициальное обновление
    https://t.me/VintageSoftwareDevelopment/5/86844

    к сожалению нет, но (по памяти)
    - поправил генерацию asm (убрал лишнее, что не давала потом асм компилить в sjasm)
    - поправил расчет переходов JR, было сломано
    - поправил некоторые команды (редкие, неправильные опкоды были)
    - из крупного, для asm макросов добавил форму типа DUP EDUP
    asm macro aaa { ... }
    +4 aaa()
    развернет макрос 4 раза
    Запасайтесь(:

  8. #7

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    522
    Спасибо Благодарностей получено 
    251
    Поблагодарили
    225 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shiny Посмотреть сообщение
    Запасайтесь(:
    нельзя ли перезалить куда-то или на торрент? А то "лиса и виноград"

  9. #8

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,453
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    164
    Поблагодарили
    120 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    нельзя ли перезалить куда-то или на торрент? А то "лиса и виноград"
    Учетки для телеги нет? Заводи и не ленись.
    https://disk.yandex.ru/d/UyR3KVFW-MMDPQ
    Как только появится на github, удалю файл и оставлю ссылку.

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

    andrews(20.10.2024), Dart Alver(20.10.2024)

  10. #9

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    522
    Спасибо Благодарностей получено 
    251
    Поблагодарили
    225 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    Цитата Сообщение от Shiny Посмотреть сообщение
    Как только появится на github
    да, это пока самая удобная файлоналивайка, имхо

  11. #10

    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,877
    Спасибо Благодарностей отдано 
    128
    Спасибо Благодарностей получено 
    130
    Поблагодарили
    81 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    Exclamation

    Выдалось тут «немного» свободного времени и я основательно перелопатил свой прожект «AirWolf»

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

    В результате чего появился вот такой небольшой прожект — «Aseprite-Scripts»
    Там в readme всё подробно расписано что куда и зачем ( и как можно рисовать спрайты 4:1 и 8:1)

    По поводу самого прожекта тоже завёл и выложил сырки — «AirWolf-Atari-Prototype»

    Из изменений структур:
    — разнёс всё в отдельные файлы, оставив в main только относящееся к текущему проекту;
    — отдельный файл «spritesData.mfk» с данными и анимациями, который собственно и выплёвывает Aseprite-Scripts;
    — отдельный файл «sprites.mfk» в котором вынесено всё что связано с работой со спрайтами;
    — отдельный файл «animation.mfk» всё что связано с анимацией;
    — отдельный файл «control.mfk», туда вынес опрос джойстика и клавиатуры (курсоры + пробел)

    Из нововведений:
    — Добавилась смена анимаций, теперь когда вертолёт сталкивается с противником он типа взрывается;
    — Добавилось, что при столкновении противника с ракетой он тоже анимировано уничтожается;
    — Противники начали лететь на встречу (зелёный случайно появляется, а жёлтый шарег берёт Y у вертолёта)
    — «Обломки» противника продолжают полёт и тоже повреждают;
    — Сделал на тест полёт две ракеты. Одна медленная другая быстрее;

    По поводу ракет не всё ясно, если 2 ракеты пересекаются, то дальше летит только 1. Не знаю баг это или фича

    Далее уже можно думать про отрисовку playground.

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

    AndyFox(01.07.2025), Shamancs(23.10.2024)

Страница 6 из 15 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 11
    Последнее: 08.12.2023, 17:18
  2. Bad Apple для MSX/MSX2
    от Pyhesty в разделе MSX
    Ответов: 4
    Последнее: 31.05.2021, 21:45
  3. Перенос игр с Game Boy на ZX Spectrum
    от CityAceE в разделе Программирование
    Ответов: 104
    Последнее: 14.02.2019, 10:56
  4. Game Boy Advance
    от megabyte в разделе Nintendo
    Ответов: 8
    Последнее: 22.05.2006, 14:48
  5. Game Boy Advance в Питере.
    от Surfin_Bird в разделе Nintendo
    Ответов: 10
    Последнее: 21.08.2005, 09:50

Ваши права

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