Материал из Chipwiki
Перейти к: навигация, поиск
Master System/Pixel Art — различия между версиями
(Инструкции и исходники)
Строка 30: Строка 30:
  
 
Файл картинки должен иметь разрешение {{Подсказка|256х192|Можно и 256х240, но отображаться будет только верхняя часть}} и цветовую глубину 16 цветов.
 
Файл картинки должен иметь разрешение {{Подсказка|256х192|Можно и 256х240, но отображаться будет только верхняя часть}} и цветовую глубину 16 цветов.
 +
 +
Можно нарисовать изображение разрешением 256х224, тогда для этого в файле "source.asm" потребуется найти строчку:
 +
<pre>printBackgroundTiles:
 +
    ld hl, $3800
 +
    call prepareVram
 +
    ld hl,backgroundTilemap
 +
    ld bc,backgroundTilemapEnd-backgroundTilemap
 +
    call writeToVram
 +
</pre>
 +
и поменять 3800 на 3700.
 +
 +
Далее нужно найти
 +
<pre>turnOnScreen:
 +
    ld a,%11000000
 +
;          |||| |`- Zoomed sprites -> 16x16 pixels
 +
;          |||| `-- Doubled sprites -> 2 tiles per sprite, 8x16
 +
;          |||`---- 30 row/240 line mode
 +
;          ||`----- 28 row/224 line mode
 +
;          |`------ VBlank interrupts
 +
;          `------- Enable display
 +
</pre>
 +
и поменять 11000000 на 11010000.
 
</spoiler>
 
</spoiler>
 
<spoiler text="Простая картинка со спрайтами">
 
<spoiler text="Простая картинка со спрайтами">
Строка 39: Строка 61:
  
 
Файлы фона и спрайтов должны иметь цветовую глубину 16 цветов. Файл фона должен иметь разрешение {{Подсказка|256х192|Можно и 256х240, но отображаться будет только верхняя часть}}.
 
Файлы фона и спрайтов должны иметь цветовую глубину 16 цветов. Файл фона должен иметь разрешение {{Подсказка|256х192|Можно и 256х240, но отображаться будет только верхняя часть}}.
 +
 +
Можно нарисовать изображение разрешением 256х224, тогда для этого в файле "source.asm" потребуется найти строчку:
 +
<pre>printBackgroundTiles:
 +
    ld hl, $3800
 +
    call prepareVram
 +
    ld hl,backgroundTilemap
 +
    ld bc,backgroundTilemapEnd-backgroundTilemap
 +
    call writeToVram
 +
</pre>
 +
и поменять 3800 на 3700.
 +
 +
Далее нужно найти
 +
<pre>turnOnScreen:
 +
    ld a,%11000000
 +
;          |||| |`- Zoomed sprites -> 16x16 pixels
 +
;          |||| `-- Doubled sprites -> 2 tiles per sprite, 8x16
 +
;          |||`---- 30 row/240 line mode
 +
;          ||`----- 28 row/224 line mode
 +
;          |`------ VBlank interrupts
 +
;          `------- Enable display
 +
</pre>
 +
и поменять 11000000 на 11010000.
  
 
Расположение спрайтов на экране осуществляется путём редактирования файла "source.asm" на этих строчках:
 
Расположение спрайтов на экране осуществляется путём редактирования файла "source.asm" на этих строчках:
Строка 67: Строка 111:
 
Отсчёт спрайтовых тайлов в любом случае начинается с 256-го, поэтому в соответствующую строчку нужно внести соответствующее изменение. В случае примера тайлы спрайтов будут иметь номера 37 и 38.
 
Отсчёт спрайтовых тайлов в любом случае начинается с 256-го, поэтому в соответствующую строчку нужно внести соответствующее изменение. В случае примера тайлы спрайтов будут иметь номера 37 и 38.
 
</spoiler>
 
</spoiler>
 +
 
==Ссылки==
 
==Ссылки==
 
* http://www.smspower.org/
 
* http://www.smspower.org/

Версия 17:48, 20 марта 2019

Разрешение: 256х192, 256х224 или 256х240 в зависимости от настроек

Палитра:
Файл:SMS palitra.png

Графическая система тайловая, т.е. данные изображения хранятся в виде плиток 8х8. В видеопамяти может храниться 488 плиток. На фон можно использовать все 488 плиток. Плитки фона можно отзеркаливать.

Платформа имеет аппаратные спрайты: 64 штуки размером 8х8 или 8х16, не более 8 спрайтов на строке. Спрайты могут браться из первых 256 тайлов или последующих.

Из палитры одновременно на экране может быть использовано 16 цветов для фона и 15 цветов (не считая прозрачного) для спрайтов. В каждом тайле можно использовать 16 цветов из набранной палитры.

Обход ограничений

  • Используя прерывания, возможно менять палитру каждые две строки
  • Переключение графических банков в нужный момент отрисовки изображения позволяет задействовать уникальные тайлы на всей площади картины, однако возможное количество одновременных цветов будет уменьшено

Примеры работ

Инструкции и исходники

Простая картинка

Простая картинка со спрайтами


Ссылки