Working with Inputs

Reading the controllers in Minicube64 is super easy.

Controllers are read by using the INPUT registers located at memory address 0x0102 and 0x103 for the first and second controllers respectively.

Each controller is mapped to a byte, and each button to a single bit.

You can useINPUTandINPUT+1to read each controller separately.

Bit

7

6

5

4

3

2

1

0

Mask

80

40

20

10

08

04

02

01

Emulated

Right

Left

Down

Up

Start

C

B

A

Input

Right

Left

Down

Up

Enter

C

X

Z

Here is an example to test if the Start button on Controller 1 was triggered:

CheckStart:
    lda INPUT
    and #%00001000 ;or use #$80
    beq SkipStart
    ;do something
SkipStart:

With the and instruction you can test foor any specific bits. This means you can also check for multiple buttons at the same time, for example any button that is not directional:

CheckOther:
    lda INPUT
    and #%00001111
    beq SkipStart
    ;do something
SkipOther:

Controller 2 is not currently implemented.

Last updated