gb-player/gb/console.go

41 lines
730 B
Go

package gb
import (
"image"
"image/color"
)
const (
ConsoleWidth = 160
ConsoleHeight = 144
)
type Console struct {
Cartridge *Cartridge
front *image.RGBA
}
func NewConsole(path string) (*Console, error) {
cartridge := InsertCartridge(path)
buffer := image.NewRGBA(image.Rect(0, 0, ConsoleWidth, ConsoleHeight))
console := Console{Cartridge: cartridge, front: buffer}
return &console, nil
}
func (console *Console) StepMilliSeconds(ms uint64) {
speed := int(ms / 3)
for y := 0; y < ConsoleHeight; y++ {
for x := 0; x < ConsoleWidth; x++ {
console.front.Set(x, y, color.RGBA{0, uint8(y + speed), uint8(x + speed), 255})
}
}
}
func (console *Console) Buffer() *image.RGBA {
return console.front
}