void neogeo_init(void) { modulo = 1; sram_lock=0; sound_code=0; pending_command=0; result_code=0; if (memory.cpu_size>=0x100000) cpu_68k_bankswitch(0x100000); else cpu_68k_bankswitch(0); neogeo_init_save_state(); }
static void cpu_68k_post_load_state(void) { struct S68000CONTEXT star_context; int i; s68000GetContext(&star_context); for (i=0;i<8;i++) { star_context.dreg[i]=s68000context.dreg[i]; star_context.areg[i]=s68000context.areg[i]; } star_context.pc=s68000context.pc; star_context.asp=s68000context.asp; star_context.sr=s68000context.sr; s68000SetContext(&star_context); cpu_68k_bankswitch(bankaddress); }
void neogeo_reset(void) { // memory.vid.modulo = 1; /* TODO: Move to init_video */ memset(memory.ram, 0 , sizeof(memory.ram)); memset(memory.z80_ram, 0 , sizeof(memory.z80_ram)); memcpy(memory.rom.cpu_m68k.p, memory.rom.bios_m68k.p, 0x80); memory.current_vector=0; memory.vid.current_line = 0; init_timer(); sram_lock = 0; sound_code = 0; pending_command = 0; result_code = 0; #ifdef ENABLE_940T shared_ctl->sound_code = sound_code; shared_ctl->pending_command = pending_command; shared_ctl->result_code = result_code; #endif if (memory.rom.cpu_m68k.size > 0x100000) cpu_68k_bankswitch(0x100000); else cpu_68k_bankswitch(0); cpu_68k_reset(); }