Вы разгадали мой маленький секрет (с) "Донна Роза".
Это как-бы взгляд из нашей реальности в мир роботов.
Правда, пока там простые рамки, до всего руки не доходят просто, а проект достаточно большой. А с палитрой я там попробую поиграюсь, наверное ещё на 1 бит по яркости можно будет развести.
Надеюсь. Если не упарюсь это всё рисовать, конвертить и т.п.Сообщение от jerri
У Вектора вот такой расклад:
64К основной памяти, из них
32К видео ОЗУ, сформированное из четырёх 8K видео плоскостей подобно EGA (max. 16 цветов) Игра использует 2 видеобуфера по 16К каждый. Отсюда и 4 цвета вылезают (по 2 плоскости на буфер)
Остаётся 32К под основной код. Там только код, которого сейчас где-то 17К.
256К виртуальный диск, разбитый по 4 64К страницы с доступом стеком, или по 4 16К окна в каждом банке с доступом командами обращения к памяти, или комбинированно 16К окно и 64К стеком.
В 4М банке сидит операционка. Там-же я сохраняю CP/M BIOS в промежутках между файловыми операциями. Во время файловых операций, CP/M BIOS сидит в последних 8К видеопамяти, что уменьшает её с 32х до 24К (3 плоскости), и, соответственно, уменьшает количество цветов с 16 до 8 во время файловых операций.
В 16К окнах банков по адресам A000-DFFF можно исполнять код, но одно уже занято ДОСом. В остальных будут всякие музыкальные драйвера и ещё кое-что.
Сейчас есть:
1. Совсем задний план (обрамление, multi-functional display и т.п.)
2. задний план, в котором будут всякие движущиеся тайлы, ну типа вентиляторов, дверей и т.п.
3. средний план, в котором сидит робот, и будут сидеть другие "герои". Под них выделено 16К на главного героя и 24 на "врагов". В среднем плане все спрайты - с альфа каналом.
4. Если позволит быстродействие, будет ещё один план - передний overlay (как-бы ещё одна карта уровня). Всякие там колонны, стеклянные штуковины полупрозрачные и т.п. Тут тоже все спрайты с альфой. Под них выделено 32К в 4м банке, потому что именно столько надо под альфа-спрайты для 256 тайлов. Эта байда как раз занимает начало 4го банка. Как раз сейчас отлаживаю рендеринг этого слоя. Двигающихся предметов в нём не планирую, ну по крайней мере пока.
Так что графики планируется вагоны. Офигею рисовавши альфа маски
Чтобы было попонятнее где чего сейчас лежит - вот текущая карта памяти из файла config.inc
;================================================= =================
; MEMORY LAYOUT, top to bottom
; 4 64Kib-memory banks of 5 are allocated for the game:
;================================================= =================
; - Bank 0 ---- main and video memory -----------------------------
;================================================= =================
; 0000-0100 ISR vectors, CPM area and hooks, etc.
; 0100-HEAP CODE, DATA and STACK segments
; HEAP-7FFF HEAP: MFD.lvl, .stm, sprite and font *headers*
; 8000-FFFF 32K Video RAM (2 frame-buffered 16K banks)
;================================================= =================
; - Bank 1 ---- Options and Sound Engine
;================================================= =================
; 0000-5FFF Options menu image (24K) OPTIONS.IMG
; 6000-9FFF MFD and background sprites (16K) MFD.SPT
; A000-DFFF 16K Sound engine + current sound data / FntPat
; E000-F7FF Options menu music (6K) OPTIONS.SND
; F800-FFFF Options ticker text (2K) OPTIONS.TXT
;================================================= =================
; - Bank 2 ---- Game Menu, Terminus Sprites, Sound Engine and Data
;================================================= =================
; 0000-5FFF Menu image (24K) MENU.IMG
; 6000-9FFF 64 Terminus sprites (16K), 256K each
; A000-DFFF 16K SFX Engine + LEVELXX.SFX
; E000-FFFF Menu music (8K) MENU.STM
;================================================= =================
; - Bank 3 -- at boot loads PCM sound, then used for level data ---
;================================================= =================
; 0000-3FFF 16K 256 level tiles (2x2x16 = 64 bytes each)
; 4000-9FFF NPC sprites (24K)
; A000-DFFF 16K Level map - up to 256x64 tiles
; E000-FFFF level music (8K) LEVELXX.STM
;================================================= =================
; - Bank 4 --- System Bank: MicroDOS / GML ------------------------
;================================================= =================
; 0000-7FFF 32K LEVEL.IMG, then 256 overlay tiles (4x2x16 = 128b)
; 8000-87FF system.fnt
; 8800-9FFF compo.fnt
; A000-DFFF *** BDOS MicroDOS (16K) ***
; E000-FFFF Relocated MicroDOS BIOS (8K)
;------------------------------------------------------------------