Exemplo n.º 1
0
static int16_t netplay_input_state(netplay_t *netplay,
                                   bool port, unsigned device,
                                   unsigned idx, unsigned id)
{
    size_t ptr = netplay->is_replay ?
                 netplay->tmp_ptr : PREV_PTR(netplay->self_ptr);

    const uint32_t *curr_input_state = netplay->buffer[ptr].self_state;

    if (netplay->port == (netplay_flip_port(netplay, port) ? 1 : 0))
    {
        if (netplay->buffer[ptr].is_simulated)
            curr_input_state = netplay->buffer[ptr].simulated_input_state;
        else
            curr_input_state = netplay->buffer[ptr].real_input_state;
    }

    switch (device)
    {
    case RETRO_DEVICE_JOYPAD:
        return ((1 << id) & curr_input_state[0]) ? 1 : 0;

    case RETRO_DEVICE_ANALOG:
    {
        uint32_t state = curr_input_state[1 + idx];
        return (int16_t)(uint16_t)(state >> (id * 16));
    }

    default:
        return 0;
    }
}
Exemplo n.º 2
0
static int16_t netplay_input_state(netplay_t *netplay, bool port, unsigned device,
      unsigned idx, unsigned id)
{
   size_t ptr = netplay->is_replay ? 
      netplay->tmp_ptr : PREV_PTR(netplay->self_ptr);
   uint16_t curr_input_state = netplay->buffer[ptr].self_state;

   if (netplay->port == (netplay_flip_port(netplay, port) ? 1 : 0))
   {
      if (netplay->buffer[ptr].is_simulated)
         curr_input_state = netplay->buffer[ptr].simulated_input_state;
      else
         curr_input_state = netplay->buffer[ptr].real_input_state;
   }

   return ((1 << id) & curr_input_state) ? 1 : 0;
}
Exemplo n.º 3
0
int16_t netplay_input_state(netplay_t *handle, bool port, unsigned device, unsigned index, unsigned id)
{
   uint16_t input_state = 0;
   size_t ptr = handle->is_replay ? handle->tmp_ptr : PREV_PTR(handle->self_ptr);

   port = netplay_flip_port(handle, port);

   if ((port ? 1 : 0) == handle->port)
   {
      if (handle->buffer[ptr].is_simulated)
         input_state = handle->buffer[ptr].simulated_input_state;
      else
         input_state = handle->buffer[ptr].real_input_state;
   }
   else
      input_state = handle->buffer[ptr].self_state;

   return ((1 << id) & input_state) ? 1 : 0;
}