Path: blob/master/libsnes/bsnes/snes/controller/controller.hpp
2 views
// SNES controller port pinout:1// -------------------------------2// | (1) (2) (3) (4) | (5) (6) (7) )3// -------------------------------4// pin name port1 port25// 1: +5v6// 2: clock $4016 read $4017 read7// 3: latch $4016.d0 write $4016.d0 write8// 4: data1 $4016.d0 read $4017.d0 read9// 5: data2 $4016.d1 read $4017.d1 read10// 6: iobit $4201.d6 write; $4213.d6 read $4201.d7 write; $4213.d7 read11// 7: gnd1213struct Controller : Processor {14enum : bool { Port1 = 0, Port2 = 1 };15enum { SaveSize = 16 };16const bool port;1718static void Enter();19virtual void enter();20void step(unsigned clocks);21void synchronize_cpu();22virtual void serialize(serializer& s);2324bool iobit();25void iobit(bool data);26virtual uint2 data() { return 0; }27virtual void latch(bool data) {}28Controller(bool port);29};3031#include "gamepad/gamepad.hpp"32#include "multitap/multitap.hpp"33#include "mouse/mouse.hpp"34#include "superscope/superscope.hpp"35#include "justifier/justifier.hpp"36#include "usart/usart.hpp"373839