int __stdcall WinMain(HINSTANCE hi, HINSTANCE hpi, LPSTR cmd, int cm) { _qdgdfv_additional_int_info = (int) hi; #else int main(void) { #endif filp_startup(); _qdgdfa_16_bit = 1; _qdgdfv_scale = 2; _qdgdfv_scale2x = 1; _qdgdfv_screen_x_size = 320; _qdgdfv_screen_y_size = 240; strcpy(_qdgdfv_window_title, "Freaks 2002 " VERSION); /* strcpy(_qdgdfa_window_title,_qdgdfv_window_title); */ _qdgdfv_use_logger = 1; strcpy(_qdgdfv_logger_file, "fr2002.log"); _qdgdfa_sound = 1; map_startup(); filp_exec("\"$home_dir/config.filp\" load"); filp_exec("'./setup.filp' load"); qdgdfa_startup(); qdgdfv_startup(); render_startup(); game_startup(); misc_startup(); for (;;) { if (main_menu()) break; game_main_loop(); } qdgdfv_shutdown(); qdgdfa_shutdown(); filp_shutdown(); printf("qdgdfv version: %s\nqdgdfa version: %s\n", _qdgdfv_version, _qdgdfa_version); return 0; }
// this is called from the event queue to start the app // return >0 if there is an error doing firstrun init u8 app_launch(u8 firstrun) { u32 waitForCard; print_dbg("\r\n app launch"); print_dbg("\r\n firstrun: "); print_dbg_ulong(firstrun); if(firstrun) { // it is the first run. // need to copy audio module binary from sdcard to internal flash. render_boot("first run. waiting for SDcard..."); render_update(); print_dbg("\r\n SD check... "); while (!sd_mmc_spi_mem_check()) { waitForCard++; } print_dbg("\r\nfound SD card. "); render_boot("found sdcard.. reading DSP..."); render_update(); // search for our dsp and load it // return success (0 == fail) if( files_search_dsp() ) { ;; } else { screen_clear(); return 0; } } else { // firstrun pattern was set, so there should be a blackfin executable in flash. // read from flash to RAM render_boot("loading flash to RAM..."); render_update(); flash_read_ldr(); render_boot( "booting DSP from flash..."); render_update(); // reboot DSP from RAM bfin_load_buf(); } render_boot("waiting for bfin init... "); render_update(); bfin_wait_ready(); // set encoder sensitivity set_enc_thresh(3, 16); delay_ms(20); // enable audio render_boot("run "); render_update(); bfin_enable(); // enable timers init_app_timers(); render_startup(); render_update(); // set app event handlers mix_assign_event_handlers(); return 1; }