int SPU_Init(int coreid, int buffersize) { int i, j; //for(int i=0;i<256;i++) // cos_lut[i] = cos(i/256.0*M_PI); SPU_core = new SPU_struct(740); SPU_Reset(); for(i = 0; i < 16; i++) { for(j = 0; j < 89; j++) { precalcdifftbl[j][i] = (((i & 0x7) * 2 + 1) * adpcmtbl[j] / 8); if(i & 0x8) precalcdifftbl[j][i] = -precalcdifftbl[j][i]; } } for(i = 0; i < 8; i++) { for(j = 0; j < 89; j++) { precalcindextbl[j][i] = MinMax((j + indextbl[i]), 0, 88); } } return SPU_ChangeSoundCore(coreid, buffersize); }
//static double cos_lut[256]; int SPU_Init(int coreid, int buffersize) { int i, j; //for some reason we dont use the cos lut anymore... did someone decide it was slow? //for(int i=0;i<256;i++) // cos_lut[i] = cos(i/256.0*M_PI); SPU_core = new SPU_struct((int)ceil(samples_per_hline)); SPU_Reset(); //create adpcm decode accelerator lookups for(i = 0; i < 16; i++) { for(j = 0; j < 89; j++) { precalcdifftbl[j][i] = (((i & 0x7) * 2 + 1) * adpcmtbl[j] / 8); if(i & 0x8) precalcdifftbl[j][i] = -precalcdifftbl[j][i]; } } for(i = 0; i < 8; i++) { for(j = 0; j < 89; j++) { precalcindextbl[j][i] = MinMax((j + indextbl[i]), 0, 88); } } return SPU_ChangeSoundCore(coreid, buffersize); }
void retro_init (void) { struct retro_log_callback log; if (environ_cb(RETRO_ENVIRONMENT_GET_LOG_INTERFACE, &log)) log_cb = log.log; else log_cb = NULL; colorMode = RETRO_PIXEL_FORMAT_RGB565; if(!environ_cb(RETRO_ENVIRONMENT_SET_PIXEL_FORMAT, &colorMode)) return; check_variables(true); // Init DeSmuME struct NDS_fw_config_data fw_config; NDS_FillDefaultFirmwareConfigData(&fw_config); fw_config.language = firmwareLanguage; //addonsChangePak(NDS_ADDON_NONE); NDS_Init(); SPU_ChangeSoundCore(0, 735 * 2); NDS_CreateDummyFirmware(&fw_config); Change3DCoreWithFallback(GPU3D_SWRAST); backup_setManualBackupType(MC_TYPE_AUTODETECT); msgbox = &msgBoxWnd; check_system_specs(); }
void desmume_init( struct armcpu_memory_iface *arm9_mem_if, struct armcpu_ctrl_iface **arm9_ctrl_iface, struct armcpu_memory_iface *arm7_mem_if, struct armcpu_ctrl_iface **arm7_ctrl_iface) { #ifdef GDB_STUB NDS_Init( arm9_mem_if, arm9_ctrl_iface, arm7_mem_if, arm7_ctrl_iface); #else NDS_Init(); #endif SPU_ChangeSoundCore(SNDCORE_SDL, 735 * 4); execute = FALSE; }
int main(int argc, char ** argv) { static unsigned short keypad = 0; u32 last_cycle; #ifdef DEBUG LogStart(); #endif NDS_Init(); SPU_ChangeSoundCore(SNDCORE_SDL, 735 * 4); if (argc < 2) { fprintf(stderr, "usage: %s filename\n", argv[0]); return 1; } if (NDS_LoadROM(argv[1], MC_TYPE_AUTODETECT, 1) < 0) { fprintf(stderr, "error while loading %s\n", argv[1]); return 2; } /* // This has to get fixed yet strcpy(szRomPath, dirname(argv[1])); cflash_close(); cflash_init(); */ execute = TRUE; if(SDL_Init(SDL_INIT_VIDEO) == -1) { fprintf(stderr, "Error trying to initialize SDL: %s\n", SDL_GetError()); return 1; } SDL_WM_SetCaption("Desmume SDL", NULL); /* Initialize joysticks */ if(!init_joy()) return 1; /* Load our own keyboard configuration */ set_kb_keys(cli_kb_cfg); surface = SDL_SetVideoMode(256, 384, 32, SDL_SWSURFACE); while(!sdl_quit) { /* Look for queued events and update keypad status */ keypad = process_ctrls_events(keypad); /* Update mouse position and click */ if(mouse.down) NDS_setTouchPos(mouse.x, mouse.y); if(mouse.click) { NDS_releasTouch(); mouse.click = FALSE; } update_keypad(keypad); /* Update keypad */ last_cycle = NDS_exec((560190 << 1) - last_cycle, FALSE); SPU_Emulate(); Draw(); } /* Unload joystick */ uninit_joy(); SDL_Quit(); NDS_DeInit(); #ifdef DEBUG LogStop(); #endif return 0; }
void EMU_init() { //oglrender_init = android_opengl_init; path.ReadPathSettings(); if (video.layout > 2) { video.layout = video.layout_old = 0; } EMU_loadSettings(); Desmume_InitOnce(); //gpu_SetRotateScreen(video.rotation); NDS_FillDefaultFirmwareConfigData(&fw_config); //Hud.reset(); INFO("Init NDS"); /* switch (slot1_device_type) { case NDS_SLOT1_NONE: case NDS_SLOT1_RETAIL: case NDS_SLOT1_R4: case NDS_SLOT1_RETAIL_NAND: break; default: slot1_device_type = NDS_SLOT1_RETAIL; break; } */ switch (addon_type) { case NDS_ADDON_NONE: break; case NDS_ADDON_CFLASH: break; case NDS_ADDON_RUMBLEPAK: break; case NDS_ADDON_GBAGAME: if (!strlen(GBAgameName)) { addon_type = NDS_ADDON_NONE; break; } // TODO: check for file exist break; case NDS_ADDON_GUITARGRIP: break; case NDS_ADDON_EXPMEMORY: break; case NDS_ADDON_PIANO: break; case NDS_ADDON_PADDLE: break; default: addon_type = NDS_ADDON_NONE; break; } //!slot1Change((NDS_SLOT1_TYPE)slot1_device_type); addonsChangePak(addon_type); NDS_Init(); //osd->singleScreen = true; cur3DCore = 1; NDS_3D_ChangeCore(cur3DCore); //OpenGL LOG("Init sound core\n"); SPU_ChangeSoundCore(SNDCORE_COREAUDIO, DESMUME_SAMPLE_RATE*8/60); static const char* nickname = "emozilla"; fw_config.nickname_len = strlen(nickname); for(int i = 0 ; i < fw_config.nickname_len ; ++i) fw_config.nickname[i] = nickname[i]; static const char* message = "nds4ios makes you happy!"; fw_config.message_len = strlen(message); for(int i = 0 ; i < fw_config.message_len ; ++i) fw_config.message[i] = message[i]; fw_config.language = 1; video.setfilter(video.NONE); NDS_CreateDummyFirmware(&fw_config); InitSpeedThrottle(); mainLoopData.freq = 1000; mainLoopData.lastticks = GetTickCount(); }
void EMU_changeSound(int type) { SPU_ChangeSoundCore(type, DESMUME_SAMPLE_RATE*8/60); }
void desmume_init() { NDS_Init(); SPU_ChangeSoundCore(SNDCORE_SDL, 735 * 4); execute = FALSE; }
void EMU_init(int lang) { //oglrender_init = android_opengl_init; path.ReadPathSettings(); if (video.layout > 2) { video.layout = video.layout_old = 0; } EMU_loadSettings(); Desmume_InitOnce(); //gpu_SetRotateScreen(video.rotation); NDS_FillDefaultFirmwareConfigData(&fw_config); //Hud.reset(); INFO("Init NDS"); /* switch (slot1_device_type) { case NDS_SLOT1_NONE: case NDS_SLOT1_RETAIL: case NDS_SLOT1_R4: case NDS_SLOT1_RETAIL_NAND: break; default: slot1_device_type = NDS_SLOT1_RETAIL; break; } */ switch (addon_type) { case NDS_ADDON_NONE: break; case NDS_ADDON_CFLASH: break; case NDS_ADDON_RUMBLEPAK: break; case NDS_ADDON_GBAGAME: if (!strlen(GBAgameName)) { addon_type = NDS_ADDON_NONE; break; } // TODO: check for file exist break; case NDS_ADDON_GUITARGRIP: break; case NDS_ADDON_EXPMEMORY: break; case NDS_ADDON_PIANO: break; case NDS_ADDON_PADDLE: break; default: addon_type = NDS_ADDON_NONE; break; } //!slot1Change((NDS_SLOT1_TYPE)slot1_device_type); addonsChangePak(addon_type); NDS_Init(); //osd->singleScreen = true; cur3DCore = 1; NDS_3D_ChangeCore(cur3DCore); //OpenGL LOG("Init sound core\n"); SPU_ChangeSoundCore(SNDCORE_COREAUDIO, DESMUME_SAMPLE_RATE*8/60); static const char* nickname = "iNDS"; //TODO: Add firmware cfg in settings fw_config.nickname_len = strlen(nickname); for(int i = 0 ; i < fw_config.nickname_len ; ++i) fw_config.nickname[i] = nickname[i]; static const char* message = "iNDS is the best!"; fw_config.message_len = strlen(message); for(int i = 0 ; i < fw_config.message_len ; ++i) fw_config.message[i] = message[i]; fw_config.language = lang < 0 ? NDS_FW_LANG_ENG : lang; fw_config.fav_colour = 15; fw_config.birth_month = 2; fw_config.birth_day = 17; fw_config.ds_type = NDS_CONSOLE_TYPE_LITE; video.setfilter(video.NONE); //figure out why this doesn't seem to work (also add to cfg) NDS_CreateDummyFirmware(&fw_config); InitSpeedThrottle(); mainLoopData.freq = 1000; mainLoopData.lastticks = GetTickCount(); }