add air bits mmio code

master
Nightshade System 2 years ago
parent 041d6aed16
commit 9742c844de

@ -38,6 +38,15 @@ typedef struct IPCMemoryInfo IPCMemoryInfo;
static HANDLE FileMappingHandle;
IPCMemoryInfo* FileMapping;
typedef uint8_t AirFileIPCData;
static HANDLE AirFileMappingHandle;
AirFileIPCData* AirFileMapping;
API uint16_t chuni_io_get_api_version(void)
{
return 0x0101;
}
void initSharedMemory()
{
if (FileMapping)
@ -54,6 +63,16 @@ void initSharedMemory()
return;
}
if ((AirFileMappingHandle = CreateFileMappingA(INVALID_HANDLE_VALUE, 0, PAGE_READWRITE, 0, sizeof(AirFileIPCData), "Local\\BROKENITHM_AIR_BITS")) == 0)
{
return;
}
if ((AirFileMapping = (AirFileIPCData*)MapViewOfFile(AirFileMappingHandle, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(AirFileIPCData))) == 0)
{
return;
}
memset(FileMapping, 0, sizeof(IPCMemoryInfo));
SetThreadExecutionState(ES_DISPLAY_REQUIRED | ES_CONTINUOUS);
}
@ -99,7 +118,7 @@ API void chuni_io_jvs_read_coin_counter(uint16_t* out)
API void chuni_io_jvs_poll(uint8_t* opbtn, uint8_t* beams)
{
size_t i;
//size_t i;
if ((FileMapping && FileMapping->testBtn) || GetAsyncKeyState(chuni_io_cfg.vk_test))
{
@ -111,13 +130,7 @@ API void chuni_io_jvs_poll(uint8_t* opbtn, uint8_t* beams)
*opbtn |= 0x02; /* Service */
}
for (i = 0; i < 6; i++)
{
if (FileMapping && FileMapping->airIoStatus[i])
{
*beams |= (1 << i);
}
}
*beams = *AirFileMapping;
}
API void chuni_io_jvs_set_coin_blocker(bool open)

Loading…
Cancel
Save