Firmware: refactor SNES reset pulse
This commit is contained in:
parent
6038d94d0f
commit
023901cab2
@ -367,9 +367,7 @@ void cmd_sreset(void) {
|
||||
resetstate = parse_unsigned(0,1,10);
|
||||
snes_reset(resetstate);
|
||||
} else {
|
||||
snes_reset(1);
|
||||
delay_ms(20);
|
||||
snes_reset(0);
|
||||
snes_reset_pulse();
|
||||
}
|
||||
}
|
||||
void cmd_settime(void) {
|
||||
|
||||
@ -223,13 +223,14 @@ printf("PCONP=%lx\n", LPC_SC->PCONP);
|
||||
sram_memset(SRAM_SYSINFO_ADDR, 13*40, 0x20);
|
||||
printf("SNES GO!\n");
|
||||
snes_reset(1);
|
||||
delay_ms(1);
|
||||
fpga_reset_srtc_state();
|
||||
delay_ms(SNES_RESET_PULSELEN_MS);
|
||||
sram_writebyte(32, SRAM_CMD_ADDR);
|
||||
snes_reset(0);
|
||||
|
||||
uint8_t cmd = 0;
|
||||
uint64_t btime = 0;
|
||||
uint32_t filesize=0;
|
||||
sram_writebyte(32, SRAM_CMD_ADDR);
|
||||
printf("test sram\n");
|
||||
while(!sram_reliable()) cli_entrycheck();
|
||||
printf("ok\n");
|
||||
@ -275,9 +276,7 @@ printf("PCONP=%lx\n", LPC_SC->PCONP);
|
||||
case SNES_CMD_RESET:
|
||||
/* process RESET request from SNES */
|
||||
printf("RESET requested by SNES\n");
|
||||
snes_reset(1);
|
||||
sleep_ms(10);
|
||||
snes_reset(0);
|
||||
snes_reset_pulse();
|
||||
cmd=0; /* stay in menu loop */
|
||||
break;
|
||||
case SNES_CMD_LOADLAST:
|
||||
|
||||
@ -290,9 +290,7 @@ uint32_t load_rom(uint8_t* filename, uint32_t base_addr, uint8_t flags) {
|
||||
|
||||
if(flags & LOADROM_WITH_RESET) {
|
||||
fpga_dspx_reset(1);
|
||||
snes_reset(1);
|
||||
delay_ms(10);
|
||||
snes_reset(0);
|
||||
snes_reset_pulse();
|
||||
fpga_dspx_reset(0);
|
||||
}
|
||||
|
||||
|
||||
@ -48,7 +48,7 @@ volatile int reset_pressed;
|
||||
|
||||
void prepare_reset() {
|
||||
snes_reset(1);
|
||||
delay_ms(1);
|
||||
delay_ms(SNES_RESET_PULSELEN_MS);
|
||||
if(romprops.ramsize_bytes && fpga_test() == FPGA_TEST_TOKEN) {
|
||||
writeled(1);
|
||||
save_sram(file_lfn, romprops.ramsize_bytes, SRAM_SAVE_ADDR);
|
||||
@ -71,6 +71,12 @@ void snes_init() {
|
||||
snes_reset(1);
|
||||
}
|
||||
|
||||
void snes_reset_pulse() {
|
||||
snes_reset(1);
|
||||
delay_ms(SNES_RESET_PULSELEN_MS);
|
||||
snes_reset(0);
|
||||
}
|
||||
|
||||
/*
|
||||
* sets the SNES reset state.
|
||||
*
|
||||
|
||||
@ -38,10 +38,13 @@
|
||||
#define MENU_ERR_NODSP (1)
|
||||
#define MENU_ERR_NOBSX (2)
|
||||
|
||||
#define SNES_RESET_PULSELEN_MS (1)
|
||||
|
||||
uint8_t crc_valid;
|
||||
|
||||
void prepare_reset(void);
|
||||
void snes_init(void);
|
||||
void snes_reset_pulse(void);
|
||||
void snes_reset(int state);
|
||||
uint8_t get_snes_reset(void);
|
||||
void snes_main_loop(void);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user