2013-12-19 17:10:14 +00:00
|
|
|
#pragma once
|
|
|
|
#include "types.h"
|
2020-03-28 16:58:01 +00:00
|
|
|
#include <cmath>
|
2013-12-19 17:10:14 +00:00
|
|
|
|
|
|
|
enum MapleDeviceType
|
|
|
|
{
|
|
|
|
MDT_SegaController,
|
2018-08-20 11:20:25 +00:00
|
|
|
|
2013-12-19 17:10:14 +00:00
|
|
|
MDT_SegaVMU,
|
2014-01-13 17:12:26 +00:00
|
|
|
MDT_Microphone,
|
2015-12-08 00:21:03 +00:00
|
|
|
MDT_PurupuruPack,
|
2019-07-12 15:20:43 +00:00
|
|
|
MDT_AsciiStick,
|
2018-09-06 18:17:28 +00:00
|
|
|
MDT_Keyboard,
|
2018-09-18 07:27:16 +00:00
|
|
|
MDT_Mouse,
|
2018-10-01 18:34:35 +00:00
|
|
|
MDT_LightGun,
|
2019-07-12 15:20:43 +00:00
|
|
|
MDT_TwinStick,
|
2013-12-19 17:10:14 +00:00
|
|
|
|
2015-08-09 04:34:02 +00:00
|
|
|
MDT_NaomiJamma,
|
|
|
|
|
2018-08-20 11:20:25 +00:00
|
|
|
MDT_None,
|
2013-12-19 17:10:14 +00:00
|
|
|
MDT_Count
|
|
|
|
};
|
|
|
|
|
2019-07-12 15:20:43 +00:00
|
|
|
namespace OldMapleDeviceType
|
|
|
|
{
|
|
|
|
enum MapleDeviceType
|
|
|
|
{
|
|
|
|
MDT_SegaController,
|
|
|
|
|
|
|
|
MDT_SegaVMU,
|
|
|
|
MDT_Microphone,
|
|
|
|
MDT_PurupuruPack,
|
|
|
|
MDT_Keyboard,
|
|
|
|
MDT_Mouse,
|
|
|
|
MDT_LightGun,
|
|
|
|
|
|
|
|
MDT_NaomiJamma,
|
|
|
|
|
|
|
|
MDT_None,
|
|
|
|
MDT_Count
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2018-11-14 13:13:42 +00:00
|
|
|
enum NAOMI_KEYS
|
|
|
|
{
|
|
|
|
NAOMI_START_KEY = 1 << 15,
|
|
|
|
NAOMI_SERVICE_KEY = 1 << 14,
|
|
|
|
|
|
|
|
NAOMI_UP_KEY = 1 << 13,
|
|
|
|
NAOMI_DOWN_KEY = 1 << 12,
|
|
|
|
NAOMI_LEFT_KEY = 1 << 11,
|
|
|
|
NAOMI_RIGHT_KEY = 1 << 10,
|
|
|
|
|
|
|
|
NAOMI_BTN0_KEY = 1 << 9,
|
|
|
|
NAOMI_BTN1_KEY = 1 << 8,
|
|
|
|
NAOMI_BTN2_KEY = 1 << 7,
|
|
|
|
NAOMI_BTN3_KEY = 1 << 6,
|
|
|
|
NAOMI_BTN4_KEY = 1 << 5,
|
|
|
|
NAOMI_BTN5_KEY = 1 << 4,
|
|
|
|
NAOMI_BTN6_KEY = 1 << 3,
|
|
|
|
NAOMI_BTN7_KEY = 1 << 2,
|
2018-12-11 22:20:30 +00:00
|
|
|
NAOMI_BTN8_KEY = 1 << 16,
|
2018-11-14 13:13:42 +00:00
|
|
|
|
|
|
|
NAOMI_TEST_KEY = 1 << 1,
|
|
|
|
|
|
|
|
// Not an actual button
|
|
|
|
NAOMI_COIN_KEY = 1 << 0,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum AWAVE_KEYS
|
|
|
|
{
|
|
|
|
AWAVE_START_KEY = 1 << 3,
|
|
|
|
|
|
|
|
AWAVE_BTN0_KEY = 1 << 2,
|
|
|
|
AWAVE_BTN1_KEY = 1 << 1,
|
|
|
|
AWAVE_BTN2_KEY = 1 << 0,
|
|
|
|
AWAVE_BTN3_KEY = 1 << 10,
|
|
|
|
AWAVE_BTN4_KEY = 1 << 9,
|
|
|
|
|
|
|
|
AWAVE_UP_KEY = 1 << 4,
|
|
|
|
AWAVE_DOWN_KEY = 1 << 5,
|
|
|
|
AWAVE_LEFT_KEY = 1 << 6,
|
|
|
|
AWAVE_RIGHT_KEY = 1 << 7,
|
|
|
|
|
|
|
|
AWAVE_SERVICE_KEY = 1 << 13,
|
|
|
|
AWAVE_TEST_KEY = 1 << 14,
|
|
|
|
|
|
|
|
// Not an actual button
|
|
|
|
AWAVE_COIN_KEY = 1 << 15,
|
|
|
|
AWAVE_TRIGGER_KEY = 1 << 12,
|
|
|
|
};
|
|
|
|
|
2013-12-19 17:10:14 +00:00
|
|
|
struct IMapleConfigMap;
|
|
|
|
|
|
|
|
struct maple_device
|
|
|
|
{
|
2013-12-24 00:56:44 +00:00
|
|
|
u8 maple_port; //raw maple port
|
|
|
|
u8 bus_port; //0 .. 5
|
|
|
|
u8 bus_id; //0 .. 3
|
2020-01-31 22:51:12 +00:00
|
|
|
char logical_port[3]; //A0, etc
|
2013-12-19 17:10:14 +00:00
|
|
|
IMapleConfigMap* config;
|
|
|
|
|
|
|
|
//fill in the info
|
|
|
|
void Setup(u32 prt);
|
|
|
|
|
|
|
|
virtual void OnSetup(){};
|
|
|
|
virtual ~maple_device();
|
2018-10-11 08:09:28 +00:00
|
|
|
u32 Dma(u32 Command,u32* buffer_in,u32 buffer_in_len,u32* buffer_out,u32& buffer_out_len);
|
|
|
|
virtual u32 RawDma(u32* buffer_in, u32 buffer_in_len, u32* buffer_out) = 0;
|
2018-09-02 13:49:23 +00:00
|
|
|
virtual bool maple_serialize(void **data, unsigned int *total_size){return true;};
|
|
|
|
virtual bool maple_unserialize(void **data, unsigned int *total_size){return true;};
|
2018-09-29 14:13:07 +00:00
|
|
|
virtual MapleDeviceType get_device_type() = 0;
|
2018-10-01 18:34:35 +00:00
|
|
|
virtual void get_lightgun_pos() {};
|
2018-09-02 13:49:23 +00:00
|
|
|
};
|
|
|
|
|
2014-01-16 06:36:04 +00:00
|
|
|
maple_device* maple_Create(MapleDeviceType type);
|
2014-01-19 17:35:52 +00:00
|
|
|
#define SIZE_OF_MIC_DATA 480 //ALSO DEFINED IN SipEmulator.java
|
2014-02-28 22:46:08 +00:00
|
|
|
#ifndef TARGET_PANDORA
|
2014-01-19 17:35:52 +00:00
|
|
|
int get_mic_data(u8* buffer); //implemented in Android.cpp
|
2014-02-28 22:46:08 +00:00
|
|
|
#endif
|
2019-03-29 18:54:59 +00:00
|
|
|
void push_vmu_screen(int bus_id, int bus_port, u8* buffer);
|
2018-09-29 14:13:07 +00:00
|
|
|
#define MAPLE_PORTS 4
|
2020-01-27 21:08:39 +00:00
|
|
|
|
|
|
|
template<int Magnitude>
|
|
|
|
void limit_joystick_magnitude(s8& joyx, s8& joyy)
|
|
|
|
{
|
|
|
|
float mag = joyx * joyx + joyy * joyy;
|
|
|
|
if (mag > (float)Magnitude * Magnitude)
|
|
|
|
{
|
|
|
|
mag = sqrtf(mag) / (float)Magnitude;
|
|
|
|
joyx = (s8)lroundf(joyx / mag);
|
|
|
|
joyy = (s8)lroundf(joyy / mag);
|
|
|
|
}
|
|
|
|
}
|
2020-03-20 15:57:50 +00:00
|
|
|
|
|
|
|
// Mouse position and buttons
|
|
|
|
extern u32 mo_buttons;
|
|
|
|
extern s32 mo_x_abs;
|
|
|
|
extern s32 mo_y_abs;
|
|
|
|
extern f32 mo_x_delta;
|
|
|
|
extern f32 mo_y_delta;
|
|
|
|
extern f32 mo_wheel_delta;
|