/* Start debugger console */ void Start_Dbg(void) { int cmd = 0; signal(SIGINT, End_Dbg); Init_Ncurses(); Open_Log(); Log_Instruction(); //Accept_Dbg_Input(); while (cmd != 'q') { cmd = getch(); Log_Line("%c", cmd); switch (cmd) { case 's': Cpu_Step(); Log_Instruction(); break; case 'c': { u8 op; Log_Line("Testing..."); while (op_fn[(op = Mem_Fetch(cpu.pc))] != op_fn[0xFF]) { Cpu_Step(); Log_Instruction(); } break; } case 'r': { vnes_display *disp; if (!Open_Display(&disp, 512, 480)) { Log_Line("Failed to render display."); break; } Set_Display_Source(disp, Get_Render_Buffer(), NES_RES_X, NES_RES_Y); Display_Loop(disp); } default: break; } } End_Dbg(0); }
int main() { #ifdef ENABLE_LOG verbose = 1; Open_Log(LOG_PATH); #endif //Detect startup mode unsigned button = 0; padInfo padinfo; padData paddata; ioPadInit(7); int n, r; for(r=0; r<10; r++) { ioPadGetInfo(&padinfo); for(n = 0; n < 7; n++) { if(padinfo.status[n]) { ioPadGetData(n, &paddata); button = (paddata.button[2] << 8) | (paddata.button[3] & 0xff); break; } } if(button) break; else usleep(20000); } ioPadEnd(); switch(button) { case BUTTON_CROSS: install_autoloader=1; break; case BUTTON_SQUARE: uninstall_autoloader=1; break; case BUTTON_R1: noplugins=1; break; case BUTTON_L1: mamba_off=1; break; } //Install MAMBA/PRX Autoloader if cross was hold if(install_autoloader) { if (run_install_autoloader() == SUCCESS) { #ifdef ENABLE_LOG CloseLog(); #endif { BEEP1 } //1 Beep sysLv2FsUnlink("/dev_hdd0/tmp/turnoff"); {lv2syscall3(SC_SYS_POWER, SYS_REBOOT, 0, 0);} // Reboot return SUCCESS; } else { goto err_back_to_xmb;