예제 #1
0
EXPORT bool snes_load_cartridge_normal(const char * a, const uint8_t *rom_data, unsigned rom_size)
{
	int loaded;
   /* Hack. S9x cannot do stuff from RAM. <_< */
   memstream_set_buffer((uint8_t*)rom_data, rom_size);

   loaded = LoadROM("foo");
   if (!loaded)
   {
      fprintf(stderr, "[libsnes]: Rom loading failed...\n");
      return FALSE;
   }

   if (environ_cb)
   {
	   struct snes_system_timing timing;
	   timing.sample_rate = 32040.5;
	   if (!Settings.PAL)
		   timing.fps = 21477272.0 / 357366.0;
	   else
		   timing.fps = 21281370.0 / 425568.0;

	   environ_cb(SNES_ENVIRONMENT_SET_TIMING, &timing);
   }
   
   return TRUE;
}
예제 #2
0
bool retro_load_game(const struct retro_game_info *game)
{ 
   int loaded;
   struct retro_memory_map map;

   init_descriptors();
   memorydesc_c = 0;
   map.descriptors    = memorydesc + MAX_MAPS - memorydesc_c;
   map.num_descriptors = memorydesc_c;

   /* Hack. S9x cannot do stuff from RAM. <_< */
   memstream_set_buffer((uint8_t*)game->data, game->size);

   loaded = LoadROM("");
   if (!loaded)
   {
      if (log_cb)
         log_cb(RETRO_LOG_ERROR, "ROM loading failed...\n");
      return FALSE;
   }

   check_variables();


   environ_cb(RETRO_ENVIRONMENT_SET_MEMORY_MAPS, &map);

   return TRUE;
}
예제 #3
0
bool snes_unserialize(const uint8_t* data, unsigned size)
{ 
   memstream_set_buffer((uint8_t*)data, size);
   if (S9xUnfreezeGame("foo") == FALSE)
      return false;
   return true;
}
예제 #4
0
bool retro_unserialize(const void * data, size_t size)
{
   memstream_set_buffer((uint8_t*)data, size);
   if (S9xUnfreezeGame("") == FALSE)
      return FALSE;

   return TRUE;
}
예제 #5
0
EXPORT bool snes_serialize(uint8_t *data, unsigned size)
{ 
   memstream_set_buffer(data, size);
   if (S9xFreezeGame("foo") == FALSE)
      return FALSE;

   return TRUE;
}
예제 #6
0
unsigned snes_serialize_size()
{
   uint8_t *tmpbuf = new uint8_t[5000000];
   memstream_set_buffer(tmpbuf, 5000000);
   S9xFreezeGame("foo");
   delete [] tmpbuf;
   return memstream_get_last_size();
}
예제 #7
0
size_t retro_serialize_size (void)
{
   uint8_t *tmpbuf;

   tmpbuf = (uint8_t*)malloc(5000000);
   memstream_set_buffer(tmpbuf, 5000000);
   S9xFreezeGame("");
   free(tmpbuf);
   return memstream_get_last_size();
}
예제 #8
0
EXPORT unsigned snes_serialize_size (void)
{
   uint8_t *tmpbuf;

   tmpbuf = (uint8_t*)malloc(5000000);
   memstream_set_buffer(tmpbuf, 5000000);
   S9xFreezeGame("foo");
   free(tmpbuf);
   return memstream_get_last_size();
}
예제 #9
0
bool snes_load_cartridge_normal(const char *, const uint8_t *rom_data, unsigned rom_size)
{
   // Hack. S9x cannot do stuff from RAM. <_<
   memstream_set_buffer((uint8_t*)rom_data, rom_size);

   int loaded = Memory.LoadROM("foo");
   if (!loaded)
   {
      fprintf(stderr, "[libsnes]: Rom loading failed...\n");
      return false;
   }
   
   return true;
}
bool intfstream_resize(intfstream_internal_t *intf, intfstream_info_t *info)
{
   if (!intf || !info)
      return false;

   switch (intf->type)
   {
      case INTFSTREAM_FILE:
         break;
      case INTFSTREAM_MEMORY:
         intf->memory.buf.data = info->memory.buf.data;
         intf->memory.buf.size = info->memory.buf.size;

         memstream_set_buffer(intf->memory.buf.data,
               intf->memory.buf.size);
         break;
   }

   return true;
}
예제 #11
0
bool retro_load_game(const struct retro_game_info *game)
{ 
   int loaded;
   struct retro_memory_map map;

   init_descriptors();
   memorydesc_c = 0;
   map.descriptors    = memorydesc + MAX_MAPS - memorydesc_c;
   map.num_descriptors = memorydesc_c;

   /* Hack. S9x cannot do stuff from RAM. <_< */
   memstream_set_buffer((uint8_t*)game->data, game->size);

   loaded = LoadROM("");
   if (!loaded)
   {
      struct retro_message msg; 
      char msg_local[256];

      snprintf(msg_local,
            sizeof(msg_local), "ROM loading failed...");
      if (log_cb)
         log_cb(RETRO_LOG_ERROR, "ROM loading failed...\n");
      msg.msg    = msg_local;
      msg.frames = 360;
      if (environ_cb)
         environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE, (void*)&msg);
      return FALSE;
   }

   check_variables();


   environ_cb(RETRO_ENVIRONMENT_SET_MEMORY_MAPS, &map);

   return TRUE;
}