Новые игры для Апогей БК-01Ц

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

b2m
Devil
Posts: 905
Joined: 26 May 2003 06:57

Новые игры для Апогей БК-01Ц

Post by b2m »

Пусть тоже будет тут. Источник: zx-pk.ru

Творческое объединение "РетроСоулс" представляет новую игру для компьютера Апогей БК-01Ц
Это логический платформер где вам предстоит помочь Плюку выбраться из пещеры используя его возможность клонирования самого себя!



Скачать:
https://www.retrosouls.net/apg/!plyuk.zip
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Новые игры для Апогей БК-01Ц

Post by Shaos »

Симпатишно - это всё в апогеевской псевдографике? :o
Я тут за главного - если что шлите мыло на me собака shaos точка net
b2m
Devil
Posts: 905
Joined: 26 May 2003 06:57

Re: Новые игры для Апогей БК-01Ц

Post by b2m »

Да, это альтернативный шрифт, где младшие 6 бит кода символа отвечают за точку. Знакоместо 3х2 точки (6х4 обычных точек), цвет задаётся для каждых 4-х знакомест (максимальное число атрибутов 16, на все 64 символа). Получается почти графический режим.

Странно, что очень мало графических программ для Апогея.
А тут ещё и с музыкой, и со зв. эффектами. Вобчем, круто.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Новые игры для Апогей БК-01Ц

Post by Shaos »

т.е. там атрибуты заранее расставлены и длина каждой строки не 64, а 80 байт? с учётом краёв получается не 78, а 94?...

P.S. я насчитал 30 тайлов по горизонтали и в каждом 6 пикселов т.е. 60 знакомест разбавленные 15-ю атрибутами это 75 плюс смещение слева порядка 4 знакомест...

P.P.S. а по вертикали что-то типа 15.5 знакомест каждый высотой 8 псевдоточек или 16 реальных т.е. видимая высота 248 пикселов...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Новые игры для Апогей БК-01Ц

Post by Shaos »

Игра онлайн: https://online.emu80.org/?platform=apogey&run=catalog/apogey/plyuk.rka

О - исходники даже имеются! :mrgreen:

https://github.com/DenisGrachev/PlyukApogey_BK01C

Тока они в мнемониках Z80 написаны - под спойлером инициализация видео:

 VIDEO

Code: Select all

;цвет 10XXGBXR
;       ||  |
;       ||   мигание
;       | негативное изображение
;       |
;        подчеркивание


g = 10000101b
r = 10001100b
b = 10001001b
w = 10000000b
c = 10000001b
m = 10001000b
n = 10001101b

y = 10000100b


LEFT_CHARS = 8
HEIGHT = 64
WIDTH = 94-6-4
VG75_ADDR = 0EF00h
VT57_ADDR = 0F000h
;VIDEOMEM_ADDR = 08000h
VIDEOMEM_SIZE = WIDTH*HEIGHT

delay:
;Ждём луч
        push af
        call waitRaster 
        pop af
        dec a : jp nz,delay
        ret

waitRaster:
        ; Ждем обратный ход
                ld hl, VG75_ADDR+1
                ld a, (hl)
wait1:  ld a, (hl)
                and 20h
                jp z, wait1
                
    ret

initVideo:
                ld hl,VIDEOMEM_ADDR_2 : ld (videoADDR+1),hl
                 call prepareVideoMem
        ; Ждем луча        
         call waitRaster

        ; Выключаем видео и устаналиваем режим 
                ;стоп видео
                ld hl, VG75_ADDR+1
                ld (hl), 0
                dec hl
                ld (hl), 78-1     ; 78 символов
                ld (hl),  HEIGHT-1      ; 64 линии              
                ;ld (hl), $7f; HEIGHT-1 ; 64 линии              
                ld (hl), 00110011b; Высота символа 4
                ;ld (hl), $33;00110011b Высота символа 4
                ld (hl),$13 ;доп настройки

                ;Убираем куросчик
                inc hl
                ld (hl),0x80 ; команда Установка курсора
                dec hl
;cursorPosition:                
;               ld de,8+8*256
;               ld (hl),d
;               ld (hl),e
                ld (hl),8
                ld (hl),10

                ; Включаем видео
                ld hl, VG75_ADDR+1
                ld (hl), 22h

                ; ПДП
        ; Устаналиваем положение и размер видеопамяти

                call waitRaster

                ; Стоп ПДП
        ld hl, VT57_ADDR+8
                ld (hl), 80h

        ld l, 4
                ld (hl), VIDEOMEM_ADDR_2 & 0xFF
                ld (hl), VIDEOMEM_ADDR_2 >> 8
        
        inc l
                ld (hl), (VIDEOMEM_SIZE-1) & 0xFF
                ld (hl), 40h | ((VIDEOMEM_SIZE-1) >> 8)

                ; Включаем ПДП
                ld hl, VT57_ADDR+8
                ld (hl), 0A4h   

                ; Включаем альт чарсет Апогея
                ei
                ; Очищаем видеопамять
;               ld hl, VIDEOMEM_ADDR
;               ld bc, VIDEOMEM_SIZE
;               ld a, 0
;clearMem:      ld (hl), a
;               inc hl
;               dec c           
;               jp nz, clearMem
;               dec b
;               jp nz, clearMem

;               call fillVideo    

        ret    

.....

prepareVideoMem 
        ld de,VIDEOMEM_ADDR
        ;16+96+96
        ld b,16+96+96
1:              
        ;dup 96*2
        ld hl,baseLine  
        call copyLine   
        ;edup
        dec b : jp nz,1b
        ret

copyLine:
        ld a,(hl)
        inc hl
        cp 255 : ret z
        ld (de),a
        inc de
        jp copyLine

baseLine:
        db 0,0,0,0,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,#f1    
        db 255
;z=#f1
;cюда рисуются спрайты по дефолту и тайлы
VIDEOMEM_TMP_BUFFER     
        ;block 16*WIDTH,0       
VIDEOMEM_ADDR = VIDEOMEM_TMP_BUFFER     + 16*WIDTH
;       dup 96
;       db 0,0,0,0,0,0,0,0,w,3,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,#f1
;    edup               
VIDEOMEM_ADDR_2=VIDEOMEM_ADDR+96*WIDTH
;       dup 96  
;       db 0,0,0,0,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,w,0,0,0,0,#f1    
;    edup       

Похоже аппаратный вертикальный скрол тут даже есть :o
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Новые игры для Апогей БК-01Ц

Post by Shaos »

Shaos wrote:т.е. там атрибуты заранее расставлены и длина каждой строки не 64, а 80 байт? с учётом краёв получается не 78, а 94?...

P.S. я насчитал 30 тайлов по горизонтали и в каждом 6 пикселов т.е. 60 знакомест разбавленные 15-ю атрибутами это 75 плюс смещение слева порядка 4 знакомест...

P.P.S. а по вертикали что-то типа 15.5 знакомест каждый высотой 8 псевдоточек или 16 реальных т.е. видимая высота 248 пикселов...
Ну т.е. я почти правильно посчитал :lol:

Вот только строка почему то получается 84 байта в длину

Или атрибуты не считаются???

P.S. Вобщем я наверное смогу такие тайлы прикрутить к nedoPC SDK - они будут выглядеть как прямоугольники 12x8 видимых пикселов с 4-мя горизонтальными атрибутами. Правда придётся создать отдельную систему в SDK - скажем под названием apogame и сеткой тайлов 15x15. Ну или сделать тайлы 6x8 видимых пикселов, но один и тот же цвет по горизонтали будет покрывать 2 тайла (тогда сетка тайлов будет 30x15). Также можно будет сделать цветной вывод пикселов (с заливкой атрибутами всей плашки) в "графическом" экране 180x120
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Новые игры для Апогей БК-01Ц

Post by Shaos »

Прошёл игру минут за 50 - вот несколько скриншотов:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Новые игры для Апогей БК-01Ц

Post by Shaos »

Получается тут 60 Гц и графика во всю высоту - синхронизация на телеках не слетает?

Под спойлером финальные титры ;)

 FINAL
Screenshot from 2024-09-03 23-14-53.png
Screenshot from 2024-09-03 23-15-08.png
Screenshot from 2024-09-03 23-15-26.png
Screenshot from 2024-09-03 23-15-42.png
Screenshot from 2024-09-03 23-16-00.png
Screenshot from 2024-09-03 23-16-15.png

You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Новые игры для Апогей БК-01Ц

Post by Shaos »

Shaos wrote: P.S. Вобщем я наверное смогу такие тайлы прикрутить к nedoPC SDK - они будут выглядеть как прямоугольники 12x8 видимых пикселов с 4-мя горизонтальными атрибутами. Правда придётся создать отдельную систему в SDK - скажем под названием apogame и сеткой тайлов 15x15. Ну или сделать тайлы 6x8 видимых пикселов, но один и тот же цвет по горизонтали будет покрывать 2 тайла (тогда сетка тайлов будет 30x15). Также можно будет сделать цветной вывод пикселов (с заливкой атрибутами всей плашки) в "графическом" экране 180x120
При соотношении сторон экрана 4:3 тайлы 12x8 в-принципе похожи на квадратные:
Screenshot from 2024-09-03 23-35-47.png
Надо будет на живом Апогее посмотреть - причём на NTSC телеке...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Новые игры для Апогей БК-01Ц

Post by Shaos »

Shaos wrote:Вобщем я наверное смогу такие тайлы прикрутить к nedoPC SDK - они будут выглядеть как прямоугольники 12x8 видимых пикселов с 4-мя горизонтальными атрибутами. Правда придётся создать отдельную систему в SDK - скажем под названием apogame и сеткой тайлов 15x15. Ну или сделать тайлы 6x8 видимых пикселов, но один и тот же цвет по горизонтали будет покрывать 2 тайла (тогда сетка тайлов будет 30x15). Также можно будет сделать цветной вывод пикселов (с заливкой атрибутами всей плашки) в "графическом" экране 180x120
Или лучше сначала аналогичным образом поддержать цветные тайлы в РК? Там правда цвет раскрашивает назад - надо регистр ставить как в Апогее, чтобы всё ровненько было. Будет 4 знакоместа на цвет или 8 псевдо-точек по горизонтали ну и для круглоты взять 8 псевдоточек по вертикали - это сетка тайлов 15 на примерно 8 - чото совсем мало...
Я тут за главного - если что шлите мыло на me собака shaos точка net