Mesen-X/Core/BandaiMicrophone.h
Souryo 850102bbdc Input: Added support for ~20 new peripherals (Incomplete, more fixes/changes to come)
Movies: Rewrote format to support all IO devices and console types
Netplay: Now supports all IO devices and console types
2017-11-19 23:08:23 -05:00

45 lines
No EOL
959 B
C++

#pragma once
#include "stdafx.h"
#include "BaseControlDevice.h"
class BandaiMicrophone : public BaseControlDevice
{
protected:
enum Buttons { A, B, Microphone };
string GetKeyNames() override
{
return "ABM";
}
void InternalSetStateFromInput() override
{
for(KeyMapping keyMapping : _keyMappings) {
//TODO: Add proper key mappings
SetPressedState(Buttons::A, keyMapping.A);
SetPressedState(Buttons::B, keyMapping.B);
SetPressedState(Buttons::Microphone, keyMapping.Microphone);
}
}
public:
BandaiMicrophone(KeyMappingSet keyMappings) : BaseControlDevice(BaseControlDevice::MapperInputPort, keyMappings)
{
}
uint8_t ReadRAM(uint16_t addr) override
{
if(addr >= 0x6000 && addr <= 0x7FFF) {
return
(IsPressed(Buttons::A) ? 0 : 0x01) |
(IsPressed(Buttons::B) ? 0 : 0x02) |
(IsPressed(Buttons::Microphone) ? 0x04 : 0);
} else {
return 0;
}
}
void WriteRAM(uint16_t addr, uint8_t value) override
{
}
};