Features:
- automatische Anpassung der Renderausgabe an die Fenster- / Gadgetgröße (Seitenverhältnis wird berücksichtigt)
- eigene Farben (oder ganze Farbpaletten) für den Hinter- und Vordergrund / oder direkte per Pixel Farben
- Zeitgeber (16 ms Takt) für das Rendern bzw. als Timer für den Chip8 (CPU freundlich)
- Pixel Zeichenfunktionen mit und ohne Überprüfung der Eingabeparameter
Die Auflösung ist fix und beträgt gemäß Chip8 Spezifikation: 64 x 32 Pixel!
Beispiel:
Code: Alles auswählen
;CHIP8DIB - A SMALL DIB RENDERER FOR A CHIP8 PROJECT
;AUTHOR: MIJIKAI
;VERSION: 1.2
EnableExplicit
Import "chip8dib.lib";v.1.2
chip8CreateDIB.i(hwnd.i)
EndImport
Interface CHIP8DIB
Clear.i();clear the backbuffer
Pixel.i(X.i,Y.i);draws a pixel to the backbuffer using the palette color or single color set
PixelTest.i(X.i,Y.i);also draws a pixel but checks the boundaries!
PixelColor.i(X.i,Y.i,Color.i);draws a pixel using the color selected
PixelColorTest.i(X.i,Y.i,Color.i)
Blit.i();flips the buffers
Color.i(Color.i,Type.i = #Null,Flag.i = #Null);color = color value or pointer to palette / if type = 0 -> upload palette; type = 1 -> set color / flag = 0 back- flag = 1 foreground
Resize.i();autmatically adjust the ouput to the host size - gadget or window!
Clock.i()
Release.i();release all resources
EndInterface
Procedure.i Chip8UploadPalette(*chip8dib.CHIP8DIB,Flag.i)
*chip8dib\Color(?chip8_color,0,Flag)
ProcedureReturn #Null
chip8_color:;palette = 64 x 32 colors!
!dd 0xFF009176,0xFF009377,0xFF009477,0xFF009578,0xFF009778,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A17C,0xFF00A27D,0xFF00A37D,0xFF00A47E,0xFF00A67E,0xFF00A77F,0xFF00A87F,0xFF00A980,0xFF00AA80,0xFF00AB80,0xFF00AC81,0xFF00AC81,0xFF00AD81,0xFF00AE82,0xFF00AE82,0xFF00AF82,0xFF00AF82,0xFF00AF82,0xFF00B082,0xFF00B082,0xFF00B082,0xFF00B082,0xFF00AF82,0xFF00AF82,0xFF00AF82,0xFF00AE82,0xFF00AE82,0xFF00AD81,0xFF00AC81,0xFF00AC81,0xFF00AB80,0xFF00AA80,0xFF00A980,0xFF00A87F,0xFF00A77F,0xFF00A67E,0xFF00A47E,0xFF00A37D,0xFF00A27D,0xFF00A17C,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009C7A,0xFF009B7A,0xFF009979,0xFF009879,0xFF009778,0xFF009578,0xFF009477,0xFF009377,0xFF009176
!dd 0xFF009276,0xFF009377,0xFF009477,0xFF009678,0xFF009879,0xFF009979,0xFF009A7A,0xFF009B7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A17C,0xFF00A27D,0xFF00A37D,0xFF00A47E,0xFF00A67E,0xFF00A77F,0xFF00A87F,0xFF00A980,0xFF00AA80,0xFF00AB80,0xFF00AC81,0xFF00AD81,0xFF00AE82,0xFF00AE82,0xFF00AF82,0xFF00B082,0xFF00B083,0xFF00B183,0xFF00B183,0xFF00B183,0xFF00B183,0xFF00B183,0xFF00B183,0xFF00B183,0xFF00B183,0xFF00B083,0xFF00B082,0xFF00AF82,0xFF00AE82,0xFF00AE82,0xFF00AD81,0xFF00AC81,0xFF00AB80,0xFF00AA80,0xFF00A980,0xFF00A87F,0xFF00A77F,0xFF00A67E,0xFF00A47E,0xFF00A37D,0xFF00A27D,0xFF00A17C,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009B7A,0xFF009A7A,0xFF009979,0xFF009879,0xFF009678,0xFF009477,0xFF009377,0xFF009276
!dd 0xFF009277,0xFF009477,0xFF009578,0xFF009778,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7A,0xFF009E7B,0xFF009F7C,0xFF00A07C,0xFF00A27D,0xFF00A37D,0xFF00A47E,0xFF00A57E,0xFF00A77F,0xFF00A87F,0xFF00A980,0xFF00AA80,0xFF00AB81,0xFF00AC81,0xFF00AD81,0xFF00AE82,0xFF00AF82,0xFF00B082,0xFF00B183,0xFF00B183,0xFF00B283,0xFF00B283,0xFF00B383,0xFF00B384,0xFF00B384,0xFF00B384,0xFF00B384,0xFF00B383,0xFF00B283,0xFF00B283,0xFF00B183,0xFF00B183,0xFF00B082,0xFF00AF82,0xFF00AE82,0xFF00AD81,0xFF00AC81,0xFF00AB81,0xFF00AA80,0xFF00A980,0xFF00A87F,0xFF00A77F,0xFF00A57E,0xFF00A47E,0xFF00A37D,0xFF00A27D,0xFF00A07C,0xFF009F7C,0xFF009E7B,0xFF009C7A,0xFF009B7A,0xFF009979,0xFF009879,0xFF009778,0xFF009578,0xFF009477,0xFF009377
!dd 0xFF009377,0xFF009477,0xFF009678,0xFF009778,0xFF009979,0xFF009A7A,0xFF009C7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A17C,0xFF00A37D,0xFF00A47D,0xFF00A57E,0xFF00A67F,0xFF00A77F,0xFF00A980,0xFF00AA80,0xFF00AB81,0xFF00AC81,0xFF00AE81,0xFF00AE82,0xFF00AF82,0xFF00B083,0xFF00B183,0xFF00B283,0xFF00B383,0xFF00B384,0xFF00B484,0xFF00B484,0xFF00B484,0xFF00B484,0xFF00B484,0xFF00B484,0xFF00B484,0xFF00B484,0xFF00B384,0xFF00B383,0xFF00B283,0xFF00B183,0xFF00B083,0xFF00AF82,0xFF00AE82,0xFF00AE81,0xFF00AC81,0xFF00AB81,0xFF00AA80,0xFF00A980,0xFF00A77F,0xFF00A67F,0xFF00A57E,0xFF00A47D,0xFF00A37D,0xFF00A17C,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009C7A,0xFF009A7A,0xFF009979,0xFF009778,0xFF009678,0xFF009477,0xFF009377
!dd 0xFF009477,0xFF009578,0xFF009678,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7A,0xFF009E7B,0xFF009F7C,0xFF00A17C,0xFF00A27D,0xFF00A37D,0xFF00A47E,0xFF00A67E,0xFF00A77F,0xFF00A97F,0xFF00AA80,0xFF00AB80,0xFF00AC81,0xFF00AE81,0xFF00AF82,0xFF00B082,0xFF00B183,0xFF00B283,0xFF00B383,0xFF00B384,0xFF00B484,0xFF00B584,0xFF00B585,0xFF00B685,0xFF00B685,0xFF00B685,0xFF00B685,0xFF00B685,0xFF00B685,0xFF00B585,0xFF00B584,0xFF00B484,0xFF00B384,0xFF00B383,0xFF00B283,0xFF00B183,0xFF00B082,0xFF00AF82,0xFF00AE81,0xFF00AC81,0xFF00AB80,0xFF00AA80,0xFF00A97F,0xFF00A77F,0xFF00A67E,0xFF00A47E,0xFF00A37D,0xFF00A27D,0xFF00A17C,0xFF009F7C,0xFF009E7B,0xFF009C7A,0xFF009B7A,0xFF009979,0xFF009879,0xFF009678,0xFF009578,0xFF009477
!dd 0xFF009477,0xFF009678,0xFF009778,0xFF009879,0xFF009A7A,0xFF009B7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A17C,0xFF00A37D,0xFF00A47E,0xFF00A57E,0xFF00A77F,0xFF00A87F,0xFF00A980,0xFF00AB80,0xFF00AC81,0xFF00AD81,0xFF00AE82,0xFF00B082,0xFF00B183,0xFF00B283,0xFF00B384,0xFF00B484,0xFF00B584,0xFF00B685,0xFF00B685,0xFF00B785,0xFF00B785,0xFF00B785,0xFF00B785,0xFF00B785,0xFF00B785,0xFF00B785,0xFF00B785,0xFF00B685,0xFF00B685,0xFF00B584,0xFF00B484,0xFF00B384,0xFF00B283,0xFF00B183,0xFF00B082,0xFF00AE82,0xFF00AD81,0xFF00AC81,0xFF00AB80,0xFF00A980,0xFF00A87F,0xFF00A77F,0xFF00A57E,0xFF00A47E,0xFF00A37D,0xFF00A17C,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009B7A,0xFF009A7A,0xFF009979,0xFF009778,0xFF009678,0xFF009477
!dd 0xFF009477,0xFF009678,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7A,0xFF009D7B,0xFF009F7C,0xFF00A07C,0xFF00A27D,0xFF00A37D,0xFF00A57E,0xFF00A67E,0xFF00A77F,0xFF00A980,0xFF00AA80,0xFF00AC81,0xFF00AD81,0xFF00AE82,0xFF00AF82,0xFF00B183,0xFF00B283,0xFF00B384,0xFF00B484,0xFF00B584,0xFF00B685,0xFF00B785,0xFF00B785,0xFF00B886,0xFF00B986,0xFF00B986,0xFF00B986,0xFF00B986,0xFF00B986,0xFF00B986,0xFF00B886,0xFF00B785,0xFF00B785,0xFF00B685,0xFF00B584,0xFF00B484,0xFF00B384,0xFF00B283,0xFF00B183,0xFF00AF82,0xFF00AE82,0xFF00AD81,0xFF00AC81,0xFF00AA80,0xFF00A980,0xFF00A77F,0xFF00A67E,0xFF00A57E,0xFF00A37D,0xFF00A27D,0xFF00A07C,0xFF009F7C,0xFF009E7B,0xFF009C7A,0xFF009B7A,0xFF009979,0xFF009879,0xFF009678,0xFF009477
!dd 0xFF009578,0xFF009678,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7B,0xFF009E7B,0xFF00A07C,0xFF00A17C,0xFF00A27D,0xFF00A47E,0xFF00A57E,0xFF00A77F,0xFF00A87F,0xFF00A980,0xFF00AB80,0xFF00AC81,0xFF00AE82,0xFF00AF82,0xFF00B083,0xFF00B283,0xFF00B384,0xFF00B484,0xFF00B585,0xFF00B685,0xFF00B785,0xFF00B886,0xFF00B986,0xFF00BA86,0xFF00BA86,0xFF00BB87,0xFF00BB87,0xFF00BB87,0xFF00BB87,0xFF00BA86,0xFF00BA86,0xFF00B986,0xFF00B886,0xFF00B785,0xFF00B685,0xFF00B585,0xFF00B484,0xFF00B384,0xFF00B283,0xFF00B083,0xFF00AF82,0xFF00AE82,0xFF00AC81,0xFF00AB80,0xFF00AA80,0xFF00A87F,0xFF00A77F,0xFF00A57E,0xFF00A47E,0xFF00A27D,0xFF00A17C,0xFF00A07C,0xFF009E7B,0xFF009C7B,0xFF009B7A,0xFF009979,0xFF009879,0xFF009678,0xFF009578
!dd 0xFF009578,0xFF009778,0xFF009879,0xFF009A7A,0xFF009B7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A17D,0xFF00A37D,0xFF00A47E,0xFF00A67E,0xFF00A77F,0xFF00A980,0xFF00AA80,0xFF00AC81,0xFF00AD81,0xFF00AE82,0xFF00B082,0xFF00B183,0xFF00B383,0xFF00B484,0xFF00B584,0xFF00B685,0xFF00B785,0xFF00B986,0xFF00B986,0xFF00BA86,0xFF00BB87,0xFF00BC87,0xFF00BC87,0xFF00BC87,0xFF00BC87,0xFF00BC87,0xFF00BC87,0xFF00BB87,0xFF00BA86,0xFF00B986,0xFF00B986,0xFF00B785,0xFF00B685,0xFF00B584,0xFF00B484,0xFF00B383,0xFF00B183,0xFF00B082,0xFF00AE82,0xFF00AD81,0xFF00AC81,0xFF00AA80,0xFF00A980,0xFF00A77F,0xFF00A67E,0xFF00A47E,0xFF00A37D,0xFF00A17D,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009B7A,0xFF009A7A,0xFF009879,0xFF009778,0xFF009578
!dd 0xFF009678,0xFF009778,0xFF009979,0xFF009A7A,0xFF009C7A,0xFF009D7B,0xFF009F7C,0xFF00A07C,0xFF00A27D,0xFF00A37D,0xFF00A57E,0xFF00A67F,0xFF00A87F,0xFF00A980,0xFF00AB80,0xFF00AC81,0xFF00AE82,0xFF00AF82,0xFF00B183,0xFF00B283,0xFF00B384,0xFF00B584,0xFF00B685,0xFF00B785,0xFF00B986,0xFF00BA86,0xFF00BB87,0xFF00BC87,0xFF00BC87,0xFF00BD88,0xFF00BE88,0xFF00BE88,0xFF00BE88,0xFF00BE88,0xFF00BD88,0xFF00BC87,0xFF00BC87,0xFF00BB87,0xFF00BA86,0xFF00B986,0xFF00B785,0xFF00B685,0xFF00B584,0xFF00B384,0xFF00B283,0xFF00B183,0xFF00AF82,0xFF00AE82,0xFF00AC81,0xFF00AB80,0xFF00A980,0xFF00A87F,0xFF00A67F,0xFF00A57E,0xFF00A37D,0xFF00A27D,0xFF00A07C,0xFF009F7C,0xFF009D7B,0xFF009C7A,0xFF009A7A,0xFF009979,0xFF009778,0xFF009678
!dd 0xFF009678,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7A,0xFF009E7B,0xFF009F7C,0xFF00A17C,0xFF00A27D,0xFF00A47D,0xFF00A57E,0xFF00A77F,0xFF00A87F,0xFF00AA80,0xFF00AB81,0xFF00AD81,0xFF00AE82,0xFF00B082,0xFF00B183,0xFF00B383,0xFF00B484,0xFF00B685,0xFF00B785,0xFF00B886,0xFF00B986,0xFF00BB87,0xFF00BC87,0xFF00BD88,0xFF00BE88,0xFF00BF88,0xFF00BF88,0xFF00BF89,0xFF00BF89,0xFF00BF88,0xFF00BF88,0xFF00BE88,0xFF00BD88,0xFF00BC87,0xFF00BB87,0xFF00B986,0xFF00B886,0xFF00B785,0xFF00B685,0xFF00B484,0xFF00B384,0xFF00B183,0xFF00B082,0xFF00AE82,0xFF00AD81,0xFF00AB81,0xFF00AA80,0xFF00A87F,0xFF00A77F,0xFF00A57E,0xFF00A47D,0xFF00A27D,0xFF00A17C,0xFF009F7C,0xFF009E7B,0xFF009C7A,0xFF009B7A,0xFF009979,0xFF009879,0xFF009678
!dd 0xFF009678,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7B,0xFF009E7B,0xFF00A07C,0xFF00A17C,0xFF00A37D,0xFF00A47E,0xFF00A67E,0xFF00A77F,0xFF00A97F,0xFF00AA80,0xFF00AC81,0xFF00AD81,0xFF00AF82,0xFF00B083,0xFF00B283,0xFF00B384,0xFF00B584,0xFF00B685,0xFF00B785,0xFF00B986,0xFF00BA86,0xFF00BC87,0xFF00BD88,0xFF00BE88,0xFF00BF88,0xFF00C089,0xFF00C189,0xFF00C189,0xFF00C189,0xFF00C189,0xFF00C089,0xFF00BF88,0xFF00BE88,0xFF00BD88,0xFF00BC87,0xFF00BA86,0xFF00B986,0xFF00B785,0xFF00B685,0xFF00B584,0xFF00B384,0xFF00B283,0xFF00B083,0xFF00AF82,0xFF00AD81,0xFF00AC81,0xFF00AA80,0xFF00A97F,0xFF00A77F,0xFF00A67E,0xFF00A47E,0xFF00A37D,0xFF00A17C,0xFF00A07C,0xFF009E7B,0xFF009C7B,0xFF009B7A,0xFF009979,0xFF009879,0xFF009678
!dd 0xFF009678,0xFF009879,0xFF009979,0xFF009B7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A17C,0xFF00A37D,0xFF00A47E,0xFF00A67E,0xFF00A77F,0xFF00A980,0xFF00AB80,0xFF00AC81,0xFF00AE81,0xFF00AF82,0xFF00B183,0xFF00B283,0xFF00B484,0xFF00B585,0xFF00B785,0xFF00B886,0xFF00BA86,0xFF00BB87,0xFF00BC87,0xFF00BE88,0xFF00BF88,0xFF00C089,0xFF00C189,0xFF00C28A,0xFF00C28A,0xFF00C28A,0xFF00C28A,0xFF00C189,0xFF00C089,0xFF00BF88,0xFF00BE88,0xFF00BC87,0xFF00BB87,0xFF00BA86,0xFF00B886,0xFF00B785,0xFF00B585,0xFF00B484,0xFF00B283,0xFF00B183,0xFF00AF82,0xFF00AE81,0xFF00AC81,0xFF00AB80,0xFF00A980,0xFF00A77F,0xFF00A67E,0xFF00A47E,0xFF00A37D,0xFF00A17C,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009B7A,0xFF009979,0xFF009879,0xFF009678
!dd 0xFF009778,0xFF009879,0xFF009A79,0xFF009B7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A17D,0xFF00A37D,0xFF00A57E,0xFF00A67E,0xFF00A87F,0xFF00A980,0xFF00AB80,0xFF00AC81,0xFF00AE82,0xFF00AF82,0xFF00B183,0xFF00B383,0xFF00B484,0xFF00B685,0xFF00B785,0xFF00B986,0xFF00BA86,0xFF00BC87,0xFF00BD88,0xFF00BF88,0xFF00C089,0xFF00C189,0xFF00C28A,0xFF00C38A,0xFF00C48A,0xFF00C48A,0xFF00C38A,0xFF00C28A,0xFF00C189,0xFF00C089,0xFF00BF88,0xFF00BD88,0xFF00BC87,0xFF00BA86,0xFF00B986,0xFF00B785,0xFF00B685,0xFF00B484,0xFF00B383,0xFF00B183,0xFF00AF82,0xFF00AE82,0xFF00AC81,0xFF00AB80,0xFF00A980,0xFF00A87F,0xFF00A67E,0xFF00A57E,0xFF00A37D,0xFF00A17D,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009B7A,0xFF009A79,0xFF009879,0xFF009778
!dd 0xFF009778,0xFF009879,0xFF009A79,0xFF009B7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A27D,0xFF00A37D,0xFF00A57E,0xFF00A67F,0xFF00A87F,0xFF00A980,0xFF00AB80,0xFF00AC81,0xFF00AE82,0xFF00B082,0xFF00B183,0xFF00B384,0xFF00B484,0xFF00B685,0xFF00B785,0xFF00B986,0xFF00BB87,0xFF00BC87,0xFF00BE88,0xFF00BF88,0xFF00C189,0xFF00C28A,0xFF00C38A,0xFF00C58B,0xFF00C68B,0xFF00C68B,0xFF00C58B,0xFF00C38A,0xFF00C28A,0xFF00C189,0xFF00BF88,0xFF00BE88,0xFF00BC87,0xFF00BB87,0xFF00B986,0xFF00B785,0xFF00B685,0xFF00B484,0xFF00B384,0xFF00B183,0xFF00B082,0xFF00AE82,0xFF00AC81,0xFF00AB80,0xFF00A980,0xFF00A87F,0xFF00A67F,0xFF00A57E,0xFF00A37D,0xFF00A27D,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009B7A,0xFF009A79,0xFF009879,0xFF009778
!dd 0xFF009778,0xFF009879,0xFF009A7A,0xFF009B7A,0xFF009D7B,0xFF009F7B,0xFF00A07C,0xFF00A27D,0xFF00A37D,0xFF00A57E,0xFF00A67F,0xFF00A87F,0xFF00A980,0xFF00AB80,0xFF00AD81,0xFF00AE82,0xFF00B082,0xFF00B183,0xFF00B384,0xFF00B484,0xFF00B685,0xFF00B785,0xFF00B986,0xFF00BB87,0xFF00BC87,0xFF00BE88,0xFF00BF89,0xFF00C189,0xFF00C28A,0xFF00C48A,0xFF00C68B,0xFF00C78C,0xFF00C78C,0xFF00C68B,0xFF00C48A,0xFF00C28A,0xFF00C189,0xFF00BF89,0xFF00BE88,0xFF00BC87,0xFF00BB87,0xFF00B986,0xFF00B785,0xFF00B685,0xFF00B484,0xFF00B384,0xFF00B183,0xFF00B082,0xFF00AE82,0xFF00AD81,0xFF00AB80,0xFF00A980,0xFF00A87F,0xFF00A67F,0xFF00A57E,0xFF00A37D,0xFF00A27D,0xFF00A07C,0xFF009F7B,0xFF009D7B,0xFF009B7A,0xFF009A7A,0xFF009879,0xFF009778
!dd 0xFF009778,0xFF009879,0xFF009A7A,0xFF009B7A,0xFF009D7B,0xFF009F7B,0xFF00A07C,0xFF00A27D,0xFF00A37D,0xFF00A57E,0xFF00A67F,0xFF00A87F,0xFF00A980,0xFF00AB80,0xFF00AD81,0xFF00AE82,0xFF00B082,0xFF00B183,0xFF00B384,0xFF00B484,0xFF00B685,0xFF00B785,0xFF00B986,0xFF00BB87,0xFF00BC87,0xFF00BE88,0xFF00BF89,0xFF00C189,0xFF00C28A,0xFF00C48A,0xFF00C68B,0xFF00C78C,0xFF00C78C,0xFF00C68B,0xFF00C48A,0xFF00C28A,0xFF00C189,0xFF00BF89,0xFF00BE88,0xFF00BC87,0xFF00BB87,0xFF00B986,0xFF00B785,0xFF00B685,0xFF00B484,0xFF00B384,0xFF00B183,0xFF00B082,0xFF00AE82,0xFF00AD81,0xFF00AB80,0xFF00A980,0xFF00A87F,0xFF00A67F,0xFF00A57E,0xFF00A37D,0xFF00A27D,0xFF00A07C,0xFF009F7B,0xFF009D7B,0xFF009B7A,0xFF009A7A,0xFF009879,0xFF009778
!dd 0xFF009778,0xFF009879,0xFF009A79,0xFF009B7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A27D,0xFF00A37D,0xFF00A57E,0xFF00A67F,0xFF00A87F,0xFF00A980,0xFF00AB80,0xFF00AC81,0xFF00AE82,0xFF00B082,0xFF00B183,0xFF00B384,0xFF00B484,0xFF00B685,0xFF00B785,0xFF00B986,0xFF00BB87,0xFF00BC87,0xFF00BE88,0xFF00BF88,0xFF00C189,0xFF00C28A,0xFF00C38A,0xFF00C58B,0xFF00C68B,0xFF00C68B,0xFF00C58B,0xFF00C38A,0xFF00C28A,0xFF00C189,0xFF00BF88,0xFF00BE88,0xFF00BC87,0xFF00BB87,0xFF00B986,0xFF00B785,0xFF00B685,0xFF00B484,0xFF00B384,0xFF00B183,0xFF00B082,0xFF00AE82,0xFF00AC81,0xFF00AB80,0xFF00A980,0xFF00A87F,0xFF00A67F,0xFF00A57E,0xFF00A37D,0xFF00A27D,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009B7A,0xFF009A79,0xFF009879,0xFF009778
!dd 0xFF009778,0xFF009879,0xFF009A79,0xFF009B7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A17D,0xFF00A37D,0xFF00A57E,0xFF00A67E,0xFF00A87F,0xFF00A980,0xFF00AB80,0xFF00AC81,0xFF00AE82,0xFF00AF82,0xFF00B183,0xFF00B383,0xFF00B484,0xFF00B685,0xFF00B785,0xFF00B986,0xFF00BA86,0xFF00BC87,0xFF00BD88,0xFF00BF88,0xFF00C089,0xFF00C189,0xFF00C28A,0xFF00C38A,0xFF00C48A,0xFF00C48A,0xFF00C38A,0xFF00C28A,0xFF00C189,0xFF00C089,0xFF00BF88,0xFF00BD88,0xFF00BC87,0xFF00BA86,0xFF00B986,0xFF00B785,0xFF00B685,0xFF00B484,0xFF00B383,0xFF00B183,0xFF00AF82,0xFF00AE82,0xFF00AC81,0xFF00AB80,0xFF00A980,0xFF00A87F,0xFF00A67E,0xFF00A57E,0xFF00A37D,0xFF00A17D,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009B7A,0xFF009A79,0xFF009879,0xFF009778
!dd 0xFF009678,0xFF009879,0xFF009979,0xFF009B7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A17C,0xFF00A37D,0xFF00A47E,0xFF00A67E,0xFF00A77F,0xFF00A980,0xFF00AB80,0xFF00AC81,0xFF00AE81,0xFF00AF82,0xFF00B183,0xFF00B283,0xFF00B484,0xFF00B585,0xFF00B785,0xFF00B886,0xFF00BA86,0xFF00BB87,0xFF00BC87,0xFF00BE88,0xFF00BF88,0xFF00C089,0xFF00C189,0xFF00C28A,0xFF00C28A,0xFF00C28A,0xFF00C28A,0xFF00C189,0xFF00C089,0xFF00BF88,0xFF00BE88,0xFF00BC87,0xFF00BB87,0xFF00BA86,0xFF00B886,0xFF00B785,0xFF00B585,0xFF00B484,0xFF00B283,0xFF00B183,0xFF00AF82,0xFF00AE81,0xFF00AC81,0xFF00AB80,0xFF00A980,0xFF00A77F,0xFF00A67E,0xFF00A47E,0xFF00A37D,0xFF00A17C,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009B7A,0xFF009979,0xFF009879,0xFF009678
!dd 0xFF009678,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7B,0xFF009E7B,0xFF00A07C,0xFF00A17C,0xFF00A37D,0xFF00A47E,0xFF00A67E,0xFF00A77F,0xFF00A97F,0xFF00AA80,0xFF00AC81,0xFF00AD81,0xFF00AF82,0xFF00B083,0xFF00B283,0xFF00B384,0xFF00B584,0xFF00B685,0xFF00B785,0xFF00B986,0xFF00BA86,0xFF00BC87,0xFF00BD88,0xFF00BE88,0xFF00BF88,0xFF00C089,0xFF00C189,0xFF00C189,0xFF00C189,0xFF00C189,0xFF00C089,0xFF00BF88,0xFF00BE88,0xFF00BD88,0xFF00BC87,0xFF00BA86,0xFF00B986,0xFF00B785,0xFF00B685,0xFF00B584,0xFF00B384,0xFF00B283,0xFF00B083,0xFF00AF82,0xFF00AD81,0xFF00AC81,0xFF00AA80,0xFF00A97F,0xFF00A77F,0xFF00A67E,0xFF00A47E,0xFF00A37D,0xFF00A17C,0xFF00A07C,0xFF009E7B,0xFF009C7B,0xFF009B7A,0xFF009979,0xFF009879,0xFF009678
!dd 0xFF009678,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7A,0xFF009E7B,0xFF009F7C,0xFF00A17C,0xFF00A27D,0xFF00A47D,0xFF00A57E,0xFF00A77F,0xFF00A87F,0xFF00AA80,0xFF00AB81,0xFF00AD81,0xFF00AE82,0xFF00B082,0xFF00B183,0xFF00B383,0xFF00B484,0xFF00B685,0xFF00B785,0xFF00B886,0xFF00B986,0xFF00BB87,0xFF00BC87,0xFF00BD88,0xFF00BE88,0xFF00BF88,0xFF00BF88,0xFF00BF89,0xFF00BF89,0xFF00BF88,0xFF00BF88,0xFF00BE88,0xFF00BD88,0xFF00BC87,0xFF00BB87,0xFF00B986,0xFF00B886,0xFF00B785,0xFF00B685,0xFF00B484,0xFF00B384,0xFF00B183,0xFF00B082,0xFF00AE82,0xFF00AD81,0xFF00AB81,0xFF00AA80,0xFF00A87F,0xFF00A77F,0xFF00A57E,0xFF00A47E,0xFF00A27D,0xFF00A17C,0xFF009F7C,0xFF009E7B,0xFF009C7A,0xFF009B7A,0xFF009979,0xFF009879,0xFF009678
!dd 0xFF009678,0xFF009778,0xFF009979,0xFF009A7A,0xFF009C7A,0xFF009D7B,0xFF009F7C,0xFF00A07C,0xFF00A27D,0xFF00A37D,0xFF00A57E,0xFF00A67F,0xFF00A87F,0xFF00A980,0xFF00AB80,0xFF00AC81,0xFF00AE82,0xFF00AF82,0xFF00B183,0xFF00B283,0xFF00B384,0xFF00B584,0xFF00B685,0xFF00B785,0xFF00B986,0xFF00BA86,0xFF00BB87,0xFF00BC87,0xFF00BC87,0xFF00BD88,0xFF00BE88,0xFF00BE88,0xFF00BE88,0xFF00BE88,0xFF00BD88,0xFF00BC87,0xFF00BC87,0xFF00BB87,0xFF00BA86,0xFF00B986,0xFF00B785,0xFF00B685,0xFF00B584,0xFF00B384,0xFF00B283,0xFF00B183,0xFF00AF82,0xFF00AE82,0xFF00AC81,0xFF00AB80,0xFF00A980,0xFF00A87F,0xFF00A67F,0xFF00A57E,0xFF00A37D,0xFF00A27D,0xFF00A07C,0xFF009F7C,0xFF009D7B,0xFF009C7A,0xFF009A7A,0xFF009979,0xFF009778,0xFF009678
!dd 0xFF009578,0xFF009778,0xFF009879,0xFF009A7A,0xFF009B7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A17D,0xFF00A37D,0xFF00A47E,0xFF00A67E,0xFF00A77F,0xFF00A980,0xFF00AA80,0xFF00AC81,0xFF00AD81,0xFF00AE82,0xFF00B082,0xFF00B183,0xFF00B383,0xFF00B484,0xFF00B584,0xFF00B685,0xFF00B785,0xFF00B986,0xFF00B986,0xFF00BA86,0xFF00BB87,0xFF00BC87,0xFF00BC87,0xFF00BC87,0xFF00BC87,0xFF00BC87,0xFF00BC87,0xFF00BB87,0xFF00BA86,0xFF00B986,0xFF00B986,0xFF00B785,0xFF00B685,0xFF00B584,0xFF00B484,0xFF00B383,0xFF00B183,0xFF00B082,0xFF00AE82,0xFF00AD81,0xFF00AC81,0xFF00AA80,0xFF00A980,0xFF00A77F,0xFF00A67E,0xFF00A47E,0xFF00A37D,0xFF00A17D,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009B7A,0xFF009A7A,0xFF009879,0xFF009778,0xFF009578
!dd 0xFF009578,0xFF009678,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7B,0xFF009E7B,0xFF00A07C,0xFF00A17C,0xFF00A27D,0xFF00A47E,0xFF00A57E,0xFF00A77F,0xFF00A87F,0xFF00AA80,0xFF00AB80,0xFF00AC81,0xFF00AE82,0xFF00AF82,0xFF00B083,0xFF00B283,0xFF00B384,0xFF00B484,0xFF00B585,0xFF00B685,0xFF00B785,0xFF00B886,0xFF00B986,0xFF00BA86,0xFF00BA86,0xFF00BB87,0xFF00BB87,0xFF00BB87,0xFF00BB87,0xFF00BA86,0xFF00BA86,0xFF00B986,0xFF00B886,0xFF00B785,0xFF00B685,0xFF00B585,0xFF00B484,0xFF00B384,0xFF00B283,0xFF00B083,0xFF00AF82,0xFF00AE82,0xFF00AC81,0xFF00AB80,0xFF00AA80,0xFF00A87F,0xFF00A77F,0xFF00A57E,0xFF00A47E,0xFF00A37D,0xFF00A17C,0xFF00A07C,0xFF009E7B,0xFF009C7B,0xFF009B7A,0xFF009979,0xFF009879,0xFF009678,0xFF009578
!dd 0xFF009477,0xFF009678,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7A,0xFF009D7B,0xFF009F7C,0xFF00A07C,0xFF00A27D,0xFF00A37D,0xFF00A57E,0xFF00A67E,0xFF00A77F,0xFF00A980,0xFF00AA80,0xFF00AC81,0xFF00AD81,0xFF00AE82,0xFF00AF82,0xFF00B183,0xFF00B283,0xFF00B384,0xFF00B484,0xFF00B584,0xFF00B685,0xFF00B785,0xFF00B785,0xFF00B886,0xFF00B986,0xFF00B986,0xFF00B986,0xFF00B986,0xFF00B986,0xFF00B986,0xFF00B886,0xFF00B785,0xFF00B785,0xFF00B685,0xFF00B584,0xFF00B484,0xFF00B384,0xFF00B283,0xFF00B183,0xFF00AF82,0xFF00AE82,0xFF00AD81,0xFF00AC81,0xFF00AA80,0xFF00A980,0xFF00A77F,0xFF00A67E,0xFF00A57E,0xFF00A37D,0xFF00A27D,0xFF00A07C,0xFF009F7C,0xFF009E7B,0xFF009C7A,0xFF009B7A,0xFF009979,0xFF009879,0xFF009678,0xFF009477
!dd 0xFF009477,0xFF009678,0xFF009778,0xFF009979,0xFF009A7A,0xFF009B7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A17C,0xFF00A37D,0xFF00A47E,0xFF00A57E,0xFF00A77F,0xFF00A87F,0xFF00A980,0xFF00AB80,0xFF00AC81,0xFF00AD81,0xFF00AE82,0xFF00B082,0xFF00B183,0xFF00B283,0xFF00B384,0xFF00B484,0xFF00B584,0xFF00B685,0xFF00B685,0xFF00B785,0xFF00B785,0xFF00B785,0xFF00B785,0xFF00B785,0xFF00B785,0xFF00B785,0xFF00B785,0xFF00B685,0xFF00B685,0xFF00B584,0xFF00B484,0xFF00B384,0xFF00B283,0xFF00B183,0xFF00B082,0xFF00AE82,0xFF00AD81,0xFF00AC81,0xFF00AB80,0xFF00A980,0xFF00A87F,0xFF00A77F,0xFF00A57E,0xFF00A47E,0xFF00A37D,0xFF00A17C,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009B7A,0xFF009A7A,0xFF009979,0xFF009778,0xFF009678,0xFF009477
!dd 0xFF009477,0xFF009578,0xFF009678,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7A,0xFF009E7B,0xFF009F7C,0xFF00A17C,0xFF00A27D,0xFF00A37D,0xFF00A47E,0xFF00A67E,0xFF00A77F,0xFF00A97F,0xFF00AA80,0xFF00AB80,0xFF00AC81,0xFF00AE81,0xFF00AF82,0xFF00B082,0xFF00B183,0xFF00B283,0xFF00B383,0xFF00B384,0xFF00B484,0xFF00B584,0xFF00B585,0xFF00B685,0xFF00B685,0xFF00B685,0xFF00B685,0xFF00B685,0xFF00B685,0xFF00B585,0xFF00B584,0xFF00B484,0xFF00B384,0xFF00B383,0xFF00B283,0xFF00B183,0xFF00B082,0xFF00AF82,0xFF00AE81,0xFF00AC81,0xFF00AB80,0xFF00AA80,0xFF00A97F,0xFF00A77F,0xFF00A67E,0xFF00A47E,0xFF00A37D,0xFF00A27D,0xFF00A17C,0xFF009F7C,0xFF009E7B,0xFF009C7A,0xFF009B7A,0xFF009979,0xFF009879,0xFF009678,0xFF009578,0xFF009477
!dd 0xFF009377,0xFF009477,0xFF009678,0xFF009778,0xFF009979,0xFF009A7A,0xFF009C7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A17C,0xFF00A37D,0xFF00A47E,0xFF00A57E,0xFF00A67F,0xFF00A77F,0xFF00A980,0xFF00AA80,0xFF00AB81,0xFF00AC81,0xFF00AE81,0xFF00AE82,0xFF00AF82,0xFF00B083,0xFF00B183,0xFF00B283,0xFF00B384,0xFF00B384,0xFF00B484,0xFF00B484,0xFF00B484,0xFF00B484,0xFF00B484,0xFF00B484,0xFF00B484,0xFF00B484,0xFF00B384,0xFF00B384,0xFF00B283,0xFF00B183,0xFF00B083,0xFF00AF82,0xFF00AE82,0xFF00AE81,0xFF00AC81,0xFF00AB81,0xFF00AA80,0xFF00A980,0xFF00A77F,0xFF00A67F,0xFF00A57E,0xFF00A47E,0xFF00A37D,0xFF00A17C,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009C7A,0xFF009A7A,0xFF009979,0xFF009879,0xFF009678,0xFF009477,0xFF009377
!dd 0xFF009377,0xFF009477,0xFF009578,0xFF009778,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7A,0xFF009E7B,0xFF009F7C,0xFF00A07C,0xFF00A27D,0xFF00A37D,0xFF00A47E,0xFF00A67E,0xFF00A77F,0xFF00A87F,0xFF00A980,0xFF00AA80,0xFF00AB81,0xFF00AC81,0xFF00AD81,0xFF00AE82,0xFF00AF82,0xFF00B082,0xFF00B183,0xFF00B183,0xFF00B283,0xFF00B283,0xFF00B383,0xFF00B384,0xFF00B384,0xFF00B384,0xFF00B384,0xFF00B383,0xFF00B283,0xFF00B283,0xFF00B183,0xFF00B183,0xFF00B082,0xFF00AF82,0xFF00AE82,0xFF00AD81,0xFF00AC81,0xFF00AB81,0xFF00AA80,0xFF00A980,0xFF00A87F,0xFF00A77F,0xFF00A67E,0xFF00A47E,0xFF00A37D,0xFF00A27D,0xFF00A07C,0xFF009F7C,0xFF009E7B,0xFF009C7A,0xFF009B7A,0xFF009979,0xFF009879,0xFF009778,0xFF009578,0xFF009477,0xFF009377
!dd 0xFF009276,0xFF009377,0xFF009477,0xFF009678,0xFF009879,0xFF009979,0xFF009A7A,0xFF009B7A,0xFF009D7B,0xFF009E7B,0xFF00A07C,0xFF00A17C,0xFF00A27D,0xFF00A37D,0xFF00A47E,0xFF00A67E,0xFF00A77F,0xFF00A87F,0xFF00A980,0xFF00AA80,0xFF00AB80,0xFF00AC81,0xFF00AD81,0xFF00AE82,0xFF00AE82,0xFF00AF82,0xFF00B082,0xFF00B083,0xFF00B183,0xFF00B183,0xFF00B183,0xFF00B183,0xFF00B183,0xFF00B183,0xFF00B183,0xFF00B183,0xFF00B083,0xFF00B082,0xFF00AF82,0xFF00AE82,0xFF00AE82,0xFF00AD81,0xFF00AC81,0xFF00AB80,0xFF00AA80,0xFF00A980,0xFF00A87F,0xFF00A77F,0xFF00A67E,0xFF00A47E,0xFF00A37D,0xFF00A27D,0xFF00A17C,0xFF00A07C,0xFF009E7B,0xFF009D7B,0xFF009B7A,0xFF009A7A,0xFF009979,0xFF009879,0xFF009678,0xFF009477,0xFF009377,0xFF009276
!dd 0xFF009176,0xFF009377,0xFF009477,0xFF009578,0xFF009778,0xFF009879,0xFF009979,0xFF009B7A,0xFF009C7A,0xFF009D7B,0xFF009F7B,0xFF00A07C,0xFF00A17C,0xFF00A27D,0xFF00A37D,0xFF00A47E,0xFF00A67E,0xFF00A77F,0xFF00A87F,0xFF00A980,0xFF00AA80,0xFF00AB80,0xFF00AC81,0xFF00AC81,0xFF00AD81,0xFF00AE82,0xFF00AE82,0xFF00AF82,0xFF00AF82,0xFF00AF82,0xFF00B082,0xFF00B082,0xFF00B082,0xFF00B082,0xFF00AF82,0xFF00AF82,0xFF00AF82,0xFF00AE82,0xFF00AE82,0xFF00AD81,0xFF00AC81,0xFF00AC81,0xFF00AB80,0xFF00AA80,0xFF00A980,0xFF00A87F,0xFF00A77F,0xFF00A67E,0xFF00A47E,0xFF00A37D,0xFF00A27D,0xFF00A17C,0xFF00A07C,0xFF009F7B,0xFF009D7B,0xFF009C7A,0xFF009B7A,0xFF009979,0xFF009879,0xFF009778,0xFF009578,0xFF009477,0xFF009377,0xFF009176
EndProcedure
Procedure.i Chip8RenderSprite(*chip8dib.CHIP8DIB,*Sprite.Ascii,X.i,Y.i,Width.i,Height.i)
Protected px.i
Protected py.i
Protected pw.i
Protected ph.i
pw = (X + Width) - 1
ph = (Y + Height) - 1
For py = Y To ph
For px = X To pw
If *Sprite\a
*chip8dib\PixelTest(px,py)
EndIf
*Sprite + 1
Next
Next
ProcedureReturn #Null
EndProcedure
Procedure.i Chip8(Title.s = #Null$,Width.i = 800,Height.i = 400)
Protected wnd.i
Protected wnd_flags.i
Protected wnd_event.i
Protected wnd_exit.i
Protected timer_start.i
Protected timer_stop.i
Protected *chip8dib.CHIP8DIB
Protected mov.f
wnd_flags = #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget
wnd = OpenWindow(#PB_Any,#Null,#Null,Width,Height,Title,wnd_flags)
If wnd
WindowBounds(wnd,Width,Height,#PB_Ignore,#PB_Ignore)
SetWindowColor(wnd,0)
*chip8dib = chip8CreateDIB(WindowID(wnd))
If *chip8dib
;*chip8dib\Color($000000,1,0)
;*chip8dib\Color($FFFFFF,1,1)
;Chip8UploadPalette(*chip8dib,0)
Repeat
Repeat
wnd_event = WindowEvent()
Select wnd_event
Case #PB_Event_SizeWindow
*chip8dib\Resize();auto adjust size + keep aspect ratio
Case #PB_Event_CloseWindow
wnd_exit = #True
EndSelect
Until wnd_event = #Null
*chip8dib\Clear()
mov + 0.25
If mov > 70
mov = 0
EndIf
Chip8RenderSprite(*chip8dib,?sprite0,Cos(mov) + mov - 8,Sin(mov + 5) + 20,5,5)
Chip8RenderSprite(*chip8dib,?sprite1,Cos(mov) + mov,Sin(mov) + 20,5,5)
Chip8RenderSprite(*chip8dib,?sprite2,48 - (Cos(mov) + mov),4,25,10)
*chip8dib\Blit()
*chip8dib\Clock()
Until wnd_exit
*chip8dib\Release()
EndIf
CloseWindow(wnd)
EndIf
ProcedureReturn #Null
EndProcedure
Chip8()
End
DataSection
sprite0:
!db 1,1,1,1,0
!db 1,0,0,0,1
!db 1,1,1,1,0
!db 1,0,0,0,0
!db 1,0,0,0,0
sprite1:
!db 1,1,1,1,0
!db 1,0,0,0,1
!db 1,1,1,1,0
!db 1,0,0,0,1
!db 1,1,1,1,0
sprite2:
!db 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,1,1,1,0,0
!db 1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0
!db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0
!db 0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,1,1,0,1,0,0,0,0,1,0
!db 0,1,0,0,0,0,1,1,1,1,0,1,0,1,0,0,1,0,0,1,1,1,1,0,0
!db 0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,1,1,0,1,0,0,0,0,1,0
!db 0,1,1,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,1,0
!db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0
!db 1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0
!db 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,1,1,1,0,0
EndDataSection
https://www.dropbox.com/s/8u0lwtnv6dvdr ... 2.zip?dl=0
Viel Spass beim Experimentieren