@@ -114,6 +114,11 @@ void prepare_reset() {
114114 save_srm (file_lfn , romprops .ramsize_bytes , SRAM_SAVE_ADDR );
115115 writeled (0 );
116116 }
117+ if (slotb_ramsize_bytes && fpga_test () == FPGA_TEST_TOKEN ) {
118+ writeled (1 );
119+ save_srm ((uint8_t * )slotb_filename , slotb_ramsize_bytes , 0xE80000 );
120+ writeled (0 );
121+ }
117122 // don't save SGB RTC since we are in reset and it may be undefined
118123 rdyled (1 );
119124 readled (1 );
@@ -123,7 +128,8 @@ void prepare_reset() {
123128 snes_reset (1 );
124129 fpga_dspx_reset (1 );
125130 delay_ms (200 );
126- slotb_filename [0 ] = 0 ; /* clear Slot B selection on every return-to-menu */
131+ slotb_filename [0 ] = 0 ; /* clear Slot B selection on every return-to-menu */
132+ slotb_ramsize_bytes = 0 ;
127133}
128134
129135void snes_init () {
@@ -314,6 +320,7 @@ uint8_t snes_main_loop() {
314320 printf ("SaveRAM CRC: 0x%04lx; saving %s\n" , saveram_crc , file_lfn );
315321 writeled (1 );
316322 save_srm (file_lfn , romprops .ramsize_bytes , SRAM_SAVE_ADDR );
323+ if (slotb_ramsize_bytes ) save_srm ((uint8_t * )slotb_filename , slotb_ramsize_bytes , 0xE80000 );
317324 last_save_failed = save_failed ;
318325 save_failed = file_res ? 1 : 0 ;
319326 didnotsave = save_failed ? 25 : 0 ;
@@ -324,6 +331,7 @@ uint8_t snes_main_loop() {
324331 diffcount = 0 ;
325332 writeled (1 );
326333 save_srm (file_lfn , romprops .ramsize_bytes , SRAM_SAVE_ADDR );
334+ if (slotb_ramsize_bytes ) save_srm ((uint8_t * )slotb_filename , slotb_ramsize_bytes , 0xE80000 );
327335 last_save_failed = save_failed ;
328336 save_failed = file_res ? 1 : 0 ;
329337 didnotsave = save_failed ? 25 : 0 ;
0 commit comments