Difference between revisions of "Homebrew:Fullscreenpicture"
From veswiki
(→'''Demonstration on how to use the blitGraphic and MultiBlitGraphic subroutines.''') |
m (1 revision) |
(No difference)
|
Revision as of 23:23, 16 November 2012
Demonstration on how to use the blitGraphic and MultiBlitGraphic subroutines.
Program plots a full-screen picture two times, first time with blitGraphic plot:ing each of the three colors one screen at a time and second time with MultiBlitGraphic.
This is the beautiful picture:
Palette is drawn using a blitGraphic block 2x58 bits starting at column 121
In 14,5 bytes (padded to 15) we fill in two bits to set the background color for each row:
00 black 01 light gray/grey 10 light blue 11 light green
Using blitGraphic for palette takes 23 bytes of data (setting colors, coordinates and the adress to data)
Here's the palette-file (recommended way to set palette)
; palette gfx.palette.parameters: .byte clear ; color 1 .byte green ; color 2 .byte 121 ; x position .byte 0 ; y position .byte 2 ; width .byte 58 ; height .word gfx.palette.data ; address for the graphics gfx.palette.data: .byte %10101010, %10101010, %00100010, %00100010, %00100010, %00100010, %00100010 .byte %00100010, %00001000, %10100001, %00010001, %00010001, %00010001, %00010001 .byte %00010000
; full screen picture demo by e5frog, original picture painted by Kurt_Woloch processor f8 ;=========================================================================== ; VES Header ;=========================================================================== include "ves.h" ;=========================================================================== ; Configuration ;=========================================================================== game_size = 4 ; game size in kilobytes ;=========================================================================== ; Program Entry ;=========================================================================== ;--------------------------------------------------------------------------- ; Cartridge Initalization unsing macros from ves.h ;--------------------------------------------------------------------------- org $800 cartridge.init: ; initalize the system CARTRIDGE_START CARTRIDGE_INIT ;--------------------------------------------------------------------------- ; Main Program ;--------------------------------------------------------------------------- main: ; clear to B&W li $21 lr 3, A pi clrscrn ; clrscrn is set in ves.h ; plot blue parts of picture - and white (one bit per pixel) dci gfx.blue.parameters pi blitGraphic ; plot red parts of picture dci gfx.red.parameters pi blitGraphic ; plot green parts of picture dci gfx.green.parameters pi blitGraphic ; set palette (two bits per row) dci gfx.palette.parameters pi blitGraphic ; wait for hand controller input pi wait.4.controller.input ; clear to B&W using a BIOS routine li $21 lr 3, A pi clrscrn ; now draw with the multiblit version, two bits per pixel dci gfx.multicolor.parameters pi multiblitGraphic ; set palette dci gfx.palette.parameters pi blitGraphic ; wait for hand controller input pi wait.4.controller.input jmp 0 ; restart wait.4.controller.input: ; see if one of the hand controllers has moved clr outs 0 outs 1 ; check right hand controller ins 1 com bnz wait.4.controller.input.end ; check the other controller clr outs 4 ; check left hand controller ins 4 com bnz wait.4.controller.input.end br wait.4.controller.input wait.4.controller.input.end: pop ;--------------------------------------------------------------------------- ; gfx drawing routines include "drawing.inc" include "multiblit.inc" ; graphics data include "picture-palette.inc" include "blue.inc" include "red.inc" include "green.inc" include "multicolor.inc" ;=========================================================================== ; Signature ;=========================================================================== ; signature org [$800 + [game_size * $400] -$10] signature: .byte " e5frog 2007 "
Here's the MultiBlitGraphic formatted picture data.
Full screen 102x58 takes 1479 bytes (even bytes, no padding):
; defender tournament MultiBlitGraphic picture ; Each bit pair is used as one pixel, with %00 being green, %01 ; being red, %10 being blue, and %11 being the background color. ; multicolor gfx.multicolor.parameters: .byte 0 ; x position .byte 0 ; y position .byte 102 ; width .byte 58 ; height .word gfx.multicolor.data ; address for the graphics gfx.multicolor.data: .byte %11111111, %11111110, %11101110, %11111111, %11111111, %11101111, %11111111 .byte %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11110111 .byte %01011111, %11111111, %11111111, %11111111, %11111111, %11111111, %10111111 .byte %11111100, %01001101, %10001111, %11011011, %11101111, %11111111, %11111111 .byte %11111110, %11111111, %11111111, %11101110, %11111111, %11111111, %11111111 .byte %11111111, %11111111, %11111111, %11111100, %01010001, %11111111, %11101110 .byte %11111011, %11111111, %11111111, %11111100, %11110101, %01100110, %00000111 .byte %01001000, %10011000, %11101110, %11101111, %11111111, %11111111, %11111011 .byte %11111111, %11111110, %11101110, %11101111, %11111111, %11111111, %11111111 .byte %11111111, %11111101, %11011100, %11111111, %11111111, %11111111, %11111111 .byte %11111111, %10111011, %00010100, %01010110, %01001001, %00010100, %01011111 .byte %11111111, %11111011, %10111111, %10111011, %11111011, %11111111, %11111111 .byte %11111111, %11111111, %11111111, %11111111, %11111111, %11111100, %01010101 .byte %11111111, %00111111, %11111111, %11111111, %11111111, %11111100, %01010101 .byte %01011001, %01000101, %01010110, %01010110, %11111011, %11111111, %11111111 .byte %10111111, %11111111, %11111011, %10111011, %11111111, %11111111, %11111111 .byte %11111111, %11111111, %11111111, %11000111, %01011111, %11111111, %10111011 .byte %11111111, %11111111, %11111100, %01010110, %01000110, %01001001, %01001001 .byte %00010110, %01011111, %11111110, %11111111, %11111111, %11111111, %11111111 .byte %11111111, %11111110, %11111111, %11111111, %11111111, %11111111, %11111111 .byte %11111111, %01110111, %11111111, %11111111, %11111111, %11111111, %11111111 .byte %11010010, %01010001, %00010101, %01010101, %01010101, %00010010, %11111111 .byte %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111 .byte %11111111, %11111111, %11111111, %11111111, %11111111, %11000111, %11011111 .byte %11111111, %11111011, %11111111, %11111111, %01010101, %01010001, %01011001 .byte %01100110, %01100101, %00010101, %01011010, %10101111, %11111111, %11101110 .byte %11101010, %10101010, %10101010, %10101111, %11111111, %11111111, %11111111 .byte %01110111, %11111111, %11111100, %01011101, %11111111, %11001100, %11111111 .byte %11111101, %01110100, %11010001, %10010101, %01010001, %00010100, %01100110 .byte %01010101, %10101010, %10101010, %10101010, %10111011, %10101110, %10101010 .byte %10101011, %10101010, %10101010, %10101010, %11101011, %10101110, %10101010 .byte %10101110, %10101010, %11101110, %10101010, %10101011, %10111110, %11111111 .byte %11111111, %11101111, %11111111, %11111111, %11111111, %11111111, %11111111 .byte %11111111, %11111110, %11101111, %11101111, %11111111, %11111111, %11111111 .byte %11111111, %11001000, %11110010, %11111111, %11111101, %11111111, %11110011 .byte %11111111, %11111111, %01011101, %01110110, %01100100, %01010101, %01010110 .byte %01100101, %01000100, %10011010, %10101010, %10101010, %10101010, %10101010 .byte %10101011, %10101010, %10101010, %10101010, %10101010, %10111010, %10101011 .byte %10101010, %10101010, %10111011, %10101010, %10101010, %10101010, %11111011 .byte %10111111, %11111111, %11111111, %11101111, %11111111, %11111111, %11111110 .byte %10101111, %11111111, %11111111, %11111111, %11111111, %11011101, %00111111 .byte %11111111, %11010101, %01010101, %01010101, %01010101, %01010101, %01010101 .byte %01010101, %01010101, %01010101, %01011101, %11010001, %10010001, %00011001 .byte %10010001, %01010101, %00011001, %10111010, %10101111, %10101010, %10101010 .byte %10101010, %10101010, %10101011, %10101010, %10101110, %10101111, %10101010 .byte %10101010, %10101010, %10101010, %10101010, %10101010, %10101010, %10101010 .byte %10111010, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111 .byte %11111110, %10101010, %10111111, %11111111, %11111111, %11111111, %11111111 .byte %11011111, %11011100, %11111111, %01110101, %01011101, %11011111, %01110111 .byte %01111101, %11011101, %01110111, %01010101, %01010101, %01010101, %11010001 .byte %01010101, %01010001, %00011001, %01011001, %10010001, %01111011, %11101110 .byte %11111111, %11111111, %11111111, %11111111, %11111111, %10111011, %10111011 .byte %11101110, %10101010, %11101011, %10111110, %11111011, %11101110, %11101011 .byte %11101110, %10101010, %10101010, %10101111, %11111111, %11111111, %11111111 .byte %11111111, %11111111, %11111110, %11101111, %10111110, %00100010, %00100110 .byte %00100010, %00100010, %00010010, %00101110, %11111111, %11010111, %01010101 .byte %01010101, %01010100, %01110101, %01011101, %01010101, %01010101, %01010101 .byte %01010101, %01010001, %01100110, %01100110, %01100100, %01000100, %01011001 .byte %00111011, %10010010, %10101010, %10101010, %10101010, %10101010, %10101011 .byte %10101010, %10101010, %10101110, %10111010, %10101010, %10101010, %10101110 .byte %10101010, %11101010, %10101010, %10101010, %10101011, %10101111, %11111111 .byte %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111 .byte %10111011, %10111111, %10111010, %10101110, %11101110, %11101110, %10101010 .byte %10011101, %11011101, %11111111, %11011101, %01011001, %11011111, %11111111 .byte %11111111, %11111111, %11111111, %01100110, %01010001, %01000101, %00011001 .byte %01011001, %10010001, %10010101, %01110101, %10101010, %10101010, %10101010 .byte %10101010, %10101011, %10101010, %10101010, %10101011, %10111011, %10111111 .byte %11111011, %10111010, %10111011, %10111111, %11111111, %11111111, %11111111 .byte %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111 .byte %10111111, %11111111, %11111111, %10111010, %11111111, %11111111, %11011111 .byte %10111111, %11111111, %10111110, %11101110, %00101110, %11101111, %11111110 .byte %11010110, %01000101, %01010101, %00010001, %00011001, %00010001, %00100110 .byte %01100110, %01100100, %01000100, %01100110, %01000101, %00100010, %11111010 .byte %11101010, %10101011, %10101010, %10101011, %10101010, %10101010, %10101010 .byte %10101010, %10101010, %10101010, %10101010, %10101010, %11111111, %11111011 .byte %10111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111 .byte %11111111, %11111111, %10111111, %11111100, %11110011, %11111111, %01000111 .byte %11111111, %11101111, %11111111, %11111111, %11111011, %10111000, %10111111 .byte %11101111, %10111011, %11110110, %01010110, %11101110, %01100110, %01010001 .byte %10011001, %01010001, %00010001, %00010001, %11010001, %10010001, %01100101 .byte %01111001, %10111111, %10111110, %11101110, %11111111, %11111011, %10111111 .byte %11111111, %11111011, %11101110, %11101111, %10111010, %11101010, %10101011 .byte %11101111, %11101011, %10111011, %11111111, %11111111, %11111111, %11111111 .byte %11111111, %11111111, %11111111, %11111111, %10111111, %11110001, %01011111 .byte %11011100, %01001111, %00011111, %11010001, %00111100, %11010001, %00111100 .byte %11110010, %01111100, %01111111, %11111111, %11111101, %01110110, %11111010 .byte %10111101, %10010100, %01000101, %10010101, %01100110, %01100110, %01011101 .byte %00011001, %00011101, %00011000, %11101110, %11111111, %10111011, %11111110 .byte %11111111, %11101111, %11111111, %11111111, %11111111, %10101110, %11101110 .byte %11111111, %11111111, %11111110, %11111111, %11101111, %11111111, %11111111 .byte %11111111, %11111111, %11111111, %11111111, %11111111, %11111110, %11111110 .byte %11111111, %00111100, %11111111, %11000100, %01110000, %01011100, %01000100 .byte %01111101, %01011101, %10011111, %01100111, %00011110, %00100010, %11101110 .byte %01110110, %11101011, %10111001, %01011001, %01100100, %01100110, %11000101 .byte %01000100, %01011001, %00100101, %10011101, %10011011, %11111111, %11101111 .byte %11111111, %10111011, %11111011, %10111110, %11111011, %11111011, %11101110 .byte %11111110, %11111110, %11101010, %10111111, %11111110, %11111111, %11111111 .byte %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111 .byte %11111111, %10111111, %11111111, %11111111, %11111111, %01001111, %11101111 .byte %00011100, %11110001, %00011111, %11001101, %00010011, %00100010, %00101111 .byte %11111000, %01100001, %10010001, %10010001, %10011001, %11010001, %11010001 .byte %11010101, %10110110, %00100110, %01001011, %11100010, %00011101, %11011101 .byte %11111111, %11111111, %11111011, %11111110, %11111111, %11111111, %11101110 .byte %11111110, %11111011, %11111111, %10101110, %11111111, %11111111, %11111110 .byte %11111111, %11111111, %11111111, %11111111, %11111111, %10111111, %11111111 .byte %10111111, %11101111, %11111110, %11111111, %11111111, %11111111, %11111111 .byte %00111100, %01000100, %11011100, %11001111, %11111100, %01000100, %11010001 .byte %11111111, %11000110, %11101110, %01101101, %01110101, %01010101, %01110101 .byte %01011001, %01010101, %11111101, %10110100, %01011101, %11011101, %10100001 .byte %11111101, %11010010, %11111111, %11111111, %11111111, %10111111, %11111111 .byte %11111111, %11111111, %11111111, %11111111, %10101111, %11111111, %11111111 .byte %11111111, %11111110, %11111011, %11111111, %11111111, %11111011, %11111111 .byte %10111111, %11111110, %11111111, %11111011, %11111111, %10111111, %11110001 .byte %00010011, %11000100, %01000111, %10011001, %00100001, %10000111, %00110001 .byte %01010100, %11110111, %01111111, %11111101, %01011001, %00011001, %01010001 .byte %11011101, %01111101, %01000101, %00010101, %11011101, %00011001, %00011000 .byte %01011001, %10101010, %01010101, %00011001, %11111110, %11101111, %11111111 .byte %11101111, %11111111, %11111111, %11101110, %11111010, %10111111, %11111111 .byte %11111111, %11101111, %11111111, %11101110, %11111111, %11111111, %11111011 .byte %11111111, %10111111, %11111111, %10111110, %10101011, %11111110, %11111111 .byte %10111111, %11111111, %11111110, %11111111, %11111110, %11111010, %11111111 .byte %11111011, %11101011, %11111111, %11101111, %11111111, %11111111, %11111111 .byte %11111111, %11101110, %11101110, %11111111, %11111110, %11101111, %10101111 .byte %11111111, %11101111, %11111110, %11101110, %11111011, %11111111, %01000101 .byte %11011101, %00010001, %11110110, %01110101, %11000100, %10111010, %00010001 .byte %01100111, %11110110, %11010101, %01010100, %11010101, %11110111, %01111011 .byte %11010101, %01010101, %01110111, %11010011, %11011110, %11011010, %11010110 .byte %01111011, %11101001, %11011000, %10101111, %11111011, %11111111, %11111111 .byte %11111111, %11111111, %11101111, %11111011, %11111110, %11111111, %11111111 .byte %10111111, %10111110, %11101111, %11101111, %11111111, %11111111, %10101111 .byte %11111111, %10111111, %11111011, %10111011, %10111111, %11111111, %11111011 .byte %11111111, %10000011, %01010000, %01000110, %00100001, %00001000, %10011001 .byte %10011001, %00011001, %00001101, %01001011, %10111110, %11111111, %11110010 .byte %00100011, %00100010, %11001011, %11110111, %11111111, %11111111, %11111111 .byte %11111111, %11111101, %11011101, %11001001, %11111111, %11110001, %10011101 .byte %11110111, %11110101, %01011001, %01011101, %00010001, %00011001, %00011001 .byte %01000101, %11001011, %10001001, %10011010, %10100101, %01010110, %01000101 .byte %01010101, %11010101, %01010101, %01011111, %01111111, %11111111, %11111111 .byte %11111111, %01001010, %11101011, %10111011, %11111111, %11111111, %11101010 .byte %11111011, %11111111, %11111111, %11111111, %11111110, %11111011, %11111110 .byte %11101111, %10101111, %10111011, %11111111, %11111111, %11111111, %11111111 .byte %11101111, %11111111, %11111111, %11111111, %11111111, %11111111, %10111011 .byte %10110110, %01000100, %01110111, %11011111, %11110101, %11110101, %01100101 .byte %01110101, %01100001, %01000111, %01100101, %10111111, %00011101, %10001001 .byte %10011101, %11011101, %11111101, %01010101, %00010001, %01011101, %11010101 .byte %11111101, %01010101, %01100101, %00101110, %10111011, %11111111, %11111111 .byte %11111110, %10111011, %11111111, %11111111, %11111111, %11111111, %11111010 .byte %11111110, %11101111, %11111110, %11111111, %11111111, %11111111, %11111111 .byte %10111111, %11101111, %11101111, %11111111, %11101111, %11111111, %11111111 .byte %11111111, %10111010, %11100100, %01100110, %01010101, %11111111, %11001100 .byte %11110001, %00010010, %00110001, %01110101, %11011111, %01110100, %01010110 .byte %01110110, %00010001, %01010101, %10010101, %01110101, %01000101, %01010111 .byte %01001101, %00011001, %11011001, %11001101, %11010001, %01101110, %10101010 .byte %11111111, %11111111, %11111110, %11111111, %11111011, %11111011, %11111111 .byte %11111111, %11111011, %10111111, %11101110, %11101110, %11111111, %11111111 .byte %11111110, %11111111, %11111111, %11101111, %11111111, %11111111, %11111111 .byte %11111111, %11111111, %11111111, %10111010, %11100100, %01000100, %01000101 .byte %01100101, %10011001, %11011001, %01010101, %00110011, %00111100, %01011101 .byte %01110101, %01111111, %11010101, %10110101, %01010101, %01010100, %01000101 .byte %10010110, %01011101, %01010101, %01010001, %00010001, %01010110, %01100110 .byte %00101000, %10101110, %11111111, %11111111, %11111111, %11111111, %11111111 .byte %11111111, %10111111, %11111111, %11111111, %10111110, %10111110, %11111011 .byte %10101111, %11101111, %10111111, %11111111, %11111110, %11111111, %11111111 .byte %11111111, %10101110, %10111111, %11111111, %11111111, %11111011, %11111111 .byte %01011001, %01100110, %01010101, %01000100, %01000111, %01000100, %11001100 .byte %11110011, %00110001, %01110101, %01110101, %01110111, %01011101, %01010101 .byte %01010101, %01010101, %01010001, %00010101, %01010101, %01111101, %00111101 .byte %11110100, %01010101, %01011110, %11010001, %11111111, %11111111, %11111111 .byte %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111 .byte %11111110, %10111111, %10101111, %11111010, %10101110, %11111111, %11101110 .byte %11111111, %11111011, %10111111, %10111010, %11111111, %11111111, %11111111 .byte %11111111, %11111100, %11010100, %01010100, %10010001, %10011001, %10011001 .byte %01100100, %01001101, %00110100, %11001100, %11001111, %01111101, %01011111 .byte %01010101, %01111101, %01010101, %01010101, %01010101, %01010101, %01010101 .byte %10010001, %11110100, %01100101, %00011001, %01101110, %11100110, %11111111 .byte %11111111, %11111111, %11101111, %11111111, %11111111, %11111111, %11111111 .byte %11111111, %11111111, %11111111, %11111111, %10101111, %10111010, %11111110 .byte %11101010, %10101010, %11111111, %10111111, %11111111, %10111010, %10111111 .byte %11111111, %11111111, %11111111, %11111101, %00010110, %11110001, %01001101 .byte %00010001, %00010010, %01000111, %00010001, %11001100, %11110011, %00110011 .byte %00110000, %01001111, %01010101, %11111101, %01010101, %11111111, %01010101 .byte %01010101, %01011101, %00011100, %11111101, %00100101, %10010001, %00101110 .byte %11101101, %11111111, %11111111, %11101111, %11111010, %11111111, %11111111 .byte %11111111, %11111111, %11111111, %11111111, %11111111, %11111111, %11111111 .byte %11111010, %10111111, %11111011, %11101111, %10111010, %11111011, %11111111 .byte %11111111, %11101111, %11111111, %11111111, %11111111, %11110101, %00010001 .byte %00010001, %01000111, %11001111, %11010001, %10010100, %01010001, %00111100 .byte %01001100, %01111111, %01110111, %01110111, %01000111, %11111101, %01010101 .byte %11010011, %01010101, %01011101, %01010101, %01010101, %01010001, %11010101 .byte %11011001, %01101011, %10101101, %11111111, %11111011, %11101110, %11111111 .byte %11111111, %11111111, %11111011, %11111111, %11111111, %11111111, %11111111 .byte %11111111, %11111111, %11111110, %10111110, %11111010, %10111111, %11111111 .byte %10101010, %10101010, %11101110, %11111111, %11111111, %11111111, %11111111 .byte %11110100, %11011011, %11001111, %11110000, %01110001, %01001101, %00010011 .byte %11111100, %11001100, %11110100, %01001100, %11001100, %11010001, %11010001 .byte %01111101, %01010101, %11111111, %01010101, %01010100, %11111111, %11011101 .byte %01010101, %01010101, %01010001, %10001011, %10001001, %11111111, %11111111 .byte %11111111, %11101111, %10111011, %11111111, %11111111, %11111111, %11111111 .byte %11101111, %11111111, %11111111, %10111111, %11111111, %11111111, %11111010 .byte %10101111, %10111011, %11101110, %11101011, %11101110, %11101110, %11111111 .byte %11111111, %11111111, %11110110, %00010001, %00010011, %00111111, %11111111 .byte %00010010, %00011001, %11000100, %01110000, %11111100, %01000111, %00011100 .byte %00010001, %00110011, %00010001, %10010001, %11111111, %01010101, %01010111 .byte %11010001, %00010101, %11010101, %01110101, %01010001, %01011010, %10001001 .byte %11111111, %11111011, %11111111, %11111111, %11111111, %11111111, %11101111 .byte %11101111, %11111111, %11111110, %11111111, %11111011, %11111111, %11111111 .byte %11111111, %11111110, %10111111, %11111111, %11101010, %10101011, %11111111 .byte %10111111, %10101010, %10101011, %10111011, %11111111, %00011001, %10001001 .byte %10011001, %10011001, %10011001, %01010001, %10010001, %10010101, %10000111 .byte %11111101, %11110111, %01111100, %11000100, %11001100, %01000111, %01111101 .byte %11010101, %01010111, %11011101, %11010101, %01010101, %01111111, %11011111 .byte %11111111, %11011001