aboutsummaryrefslogtreecommitdiff
path: root/cmd/gones
diff options
context:
space:
mode:
authorcrecher <crecher@crecher.net>2026-10-13 01:13:13 +0200
committercrecher <crecher@crecher.net>2026-10-13 01:13:13 +0200
commit99cae5a5a37f41f878a84857361eda47910303ba (patch)
tree31c8665ca991f95e09e93bb2e6ec91d81d2427ff /cmd/gones
parent96ff6d8eda2ba434682909f4ff4ce350d78b2273 (diff)
downloadgones-99cae5a5a37f41f878a84857361eda47910303ba.tar.gz
gones-99cae5a5a37f41f878a84857361eda47910303ba.zip
sprites!!!!!!
Diffstat (limited to 'cmd/gones')
-rw-r--r--cmd/gones/main.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/cmd/gones/main.go b/cmd/gones/main.go
index 57b1b6e..0a1fbe7 100644
--- a/cmd/gones/main.go
+++ b/cmd/gones/main.go
@@ -96,6 +96,7 @@ func run(romPath string) error {
}
}
+ console.SetButtons(0, heldButtons())
console.StepFrame()
// UpdateRGBA multiplies the pitch by 4 itself, so this is in pixels, not bytes
@@ -126,3 +127,26 @@ func run(romPath string) error {
}
}
}
+
+// keyboard layout for controller 1
+var keyMap = map[sdl.Scancode]uint8{
+ sdl.SCANCODE_X: nes.ButtonA,
+ sdl.SCANCODE_Y: nes.ButtonB,
+ sdl.SCANCODE_RSHIFT: nes.ButtonSelect,
+ sdl.SCANCODE_RETURN: nes.ButtonStart,
+ sdl.SCANCODE_UP: nes.ButtonUp,
+ sdl.SCANCODE_DOWN: nes.ButtonDown,
+ sdl.SCANCODE_LEFT: nes.ButtonLeft,
+ sdl.SCANCODE_RIGHT: nes.ButtonRight,
+}
+
+func heldButtons() uint8 {
+ keys := sdl.GetKeyboardState()
+ var b uint8
+ for scancode, button := range keyMap {
+ if keys[scancode] != 0 {
+ b |= button
+ }
+ }
+ return b
+}