view src/controller.c @ 35:5a5e02d1acf1

No need to initialize name table with starting values other than zero as we copy the relevant parts during VBlank anyway
author Michael Pavone <pavone@retrodev.com>
date Sun, 03 Apr 2016 20:51:23 -0700
parents b87b3ad5068c
children
line wrap: on
line source

#include <stdint.h>
#include <string.h>
#include "controller.h"

static controllers *current_context;

//UDLR SMAB CXYZ

void controller_init(controllers *context)
{
	memset(context, 0, sizeof(controllers));
	current_context = context;
}

void controller_pressed(int which, uint16_t buttons)
{
	if (which > 1) {
		return;
	}
	current_context->state[which] |= buttons;
}

void controller_released(int which, uint16_t buttons)
{
	if (which > 1) {
		return;
	}
	current_context->state[which] &= (~buttons) & 0xFFF;
}

uint16_t controller_read(controllers *context, int which)
{
	if (which > 1) {
		return 0xFFFF;
	}
	return context->state[which];
}