Pixelrat (обсуждение | вклад) |
Pixelrat (обсуждение | вклад) (→Инструкции и исходники) |
||
Строка 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 цветов из набранной палитры.
Обход ограничений
- Используя прерывания, возможно менять палитру каждые две строки
- Переключение графических банков в нужный момент отрисовки изображения позволяет задействовать уникальные тайлы на всей площади картины, однако возможное количество одновременных цветов будет уменьшено
Примеры работ
Инструкции и исходники