bool retro_load_game(const struct retro_game_info *game) { struct retro_input_descriptor desc[] = { { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT, "D-Pad Left" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP, "D-Pad Up" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN, "D-Pad Down" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT, "D-Pad Right" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B, "Jump" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A, "Fire" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_X, "Show/Hide Map" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L, "Previous Weapon" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R, "Next Weapon" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT, "Settings" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START, "Inventory" }, { 0 }, }; environ_cb(RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS, desc); extract_directory(g_dir, game->path, sizeof(g_dir)); NX_LOG("g_dir: %s\n", g_dir); if (pre_main()) return 0; return 1; }
void Emu_init(void) { #ifdef RETRO_AND MOUSE_EMULATED=1; #endif update_variables(); pre_main(RPATH); }
int main (int argc, char **argv) { std::string mp4_file ;//= "../data/test.mp4"; std::vector<std::string> files; files.push_back(mp4_file); pre_main (files); return 0; }
bool retro_load_game(const struct retro_game_info *game) { extract_directory(g_dir, game->path, sizeof(g_dir)); NX_LOG("g_dir: %s\n", g_dir); if (pre_main()) return 0; else return 1; }
static void update_variables(void) { struct retro_variable var = { .key = "Hatari_resolution", }; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { char *pch; char str[100]; snprintf(str, sizeof(str), "%s", var.value); pch = strtok(str, "x"); if (pch) retrow = strtoul(pch, NULL, 0); pch = strtok(NULL, "x"); if (pch) retroh = strtoul(pch, NULL, 0); fprintf(stderr, "[libretro-test]: Got size: %u x %u.\n", retrow, retroh); CROP_WIDTH =retrow; CROP_HEIGHT= (retroh-80); VIRTUAL_WIDTH = retrow; texture_init(); //reset_screen(); } } static void retro_wrap_emulator() { pre_main(RPATH); pauseg=-1; environ_cb(RETRO_ENVIRONMENT_SHUTDOWN, 0); // Were done here co_switch(mainThread); // Dead emulator, but libco says not to return while(true) { LOGI("Running a dead emulator."); co_switch(mainThread); } }
void __attribute__ ((weak)) reset_handler(void) { volatile unsigned *src, *dest; funcp_t *fp; for (src = &_data_loadaddr, dest = &_data; dest < &_edata; src++, dest++) { *dest = *src; } while (dest < &_ebss) { *dest++ = 0; } /* Ensure 8-byte alignment of stack pointer on interrupts */ /* Enabled by default on most Cortex-M parts, but not M3 r1 */ SCB_CCR |= SCB_CCR_STKALIGN; /* might be provided by platform specific vector.c */ pre_main(); /* Constructors. */ for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { (*fp)(); } for (fp = &__init_array_start; fp < &__init_array_end; fp++) { (*fp)(); } /* Call the application's entry point. */ (void)main(); /* Destructors. */ for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { (*fp)(); } }