Skip to content

tinygo-org/tinygba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tinygba

gopher

Tools and helpers for developing GBA programs using TinyGo.

snake

Still highly experimental and subject to sudden changes.

Emulator

You can run your TinyGo programs using the mGBA emulator:

https://mgba.io/

You will probably need to create a symlink to whichever executable you choose to install. For example, if you install the Qt based emulator:

sudo ln -s /usr/bin/mgba-qt /usr/bin/mgba

How to use

package main

import (
	"machine"

	"image/color"

	"tinygo.org/x/tinygba"
)

var (
	// Colors
	black = color.RGBA{}
	white = color.RGBA{255, 255, 255, 255}
	green = color.RGBA{0, 255, 0, 255}
	red   = color.RGBA{255, 0, 0, 255}

	// Google colors
	gBlue   = color.RGBA{66, 163, 244, 255}
	gRed    = color.RGBA{219, 68, 55, 255}
	gYellow = color.RGBA{244, 160, 0, 255}
	gGreen  = color.RGBA{15, 157, 88, 255}
)

func main() {
	machine.Display.Configure()

	tinygba.FillScreen(black)

	for {
		tinygba.WaitForVBlank()

		update()
	}
}

func update() {
	key := tinygba.ReadButtons()

	switch {
	case tinygba.ButtonStart.IsPushed(key):
		tinygba.FillScreen(black)

	case tinygba.ButtonSelect.IsPushed(key):
		tinygba.FillScreen(white)

	case tinygba.ButtonRight.IsPushed(key):
		tinygba.FillScreen(green)

	case tinygba.ButtonLeft.IsPushed(key):
		tinygba.FillScreen(red)

	case tinygba.ButtonDown.IsPushed(key):
		tinygba.FillScreen(gBlue)

	case tinygba.ButtonUp.IsPushed(key):
		tinygba.FillScreen(gRed)

	case tinygba.ButtonA.IsPushed(key):
		tinygba.FillScreen(gYellow)

	case tinygba.ButtonB.IsPushed(key):
		tinygba.FillScreen(gGreen)

	}
}

Run the code:

tinygo run -target gameboy-advance ./examples/snake

Roadmap

About

Tools and helpers for developing GBA programs using TinyGo.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages