void read_pad () {
uint8_t pads_connected = cellPadUtilNumberPadsConnected();
for (uint8_t i = 0; i < pads_connected; ++i) {
if (cellPadUtilUpdate(i))
{
uint8_t pad_id = i + 1;
S9xReportButton(MAKE_BUTTON(pad_id, BTN_A), (cellPadUtilButtonPressed(i,CTRL_CIRCLE)));
S9xReportButton(MAKE_BUTTON(pad_id, BTN_B), (cellPadUtilButtonPressed(i,CTRL_CROSS)));
S9xReportButton(MAKE_BUTTON(pad_id, BTN_X), (cellPadUtilButtonPressed(i,CTRL_TRIANGLE)));
S9xReportButton(MAKE_BUTTON(pad_id, BTN_Y), (cellPadUtilButtonPressed(i,CTRL_SQUARE)));
S9xReportButton(MAKE_BUTTON(pad_id, BTN_SELECT), (cellPadUtilButtonPressed(i,CTRL_SELECT)));
S9xReportButton(MAKE_BUTTON(pad_id, BTN_START), (cellPadUtilButtonPressed(i,CTRL_START)));
S9xReportButton(MAKE_BUTTON(pad_id, BTN_L), (cellPadUtilButtonPressed(i,CTRL_L1)));
S9xReportButton(MAKE_BUTTON(pad_id, BTN_R), (cellPadUtilButtonPressed(i,CTRL_R1)));
S9xReportButton(MAKE_BUTTON(pad_id, BTN_UP), (cellPadUtilButtonPressed(i,CTRL_UP) | cellPadUtilAnalogPressedUp(i,CTRL_LSTICK)));
S9xReportButton(MAKE_BUTTON(pad_id, BTN_DOWN), (cellPadUtilButtonPressed(i,CTRL_DOWN) | cellPadUtilAnalogPressedDown(i,CTRL_LSTICK)));
S9xReportButton(MAKE_BUTTON(pad_id, BTN_LEFT), (cellPadUtilButtonPressed(i,CTRL_LEFT) | cellPadUtilAnalogPressedLeft(i,CTRL_LSTICK)));
S9xReportButton(MAKE_BUTTON(pad_id, BTN_RIGHT), (cellPadUtilButtonPressed(i,CTRL_RIGHT) | cellPadUtilAnalogPressedRight(i,CTRL_LSTICK)));
if(cellPadUtilButtonPressed(i,CTRL_R3) && cellPadUtilButtonPressed(i,CTRL_L3))
{
is_running = false;
rom_loaded_count++;
if(rom_loaded_count == 4)
{
mode_switch = 3;
}
else
{
mode_switch = 0;
}
}
}
}
}