if (status == -3 || status > AUDIO_STATUS_IN_PROGRESS)
uae_sem_post(&cda_sem);
if (status < 0)
- return 1;
+ return 0;
return statusfunc(status, playpos);
}
akiko_init ();
akiko_c2p_do ();
get_cdrom_toc ();
- write_comm_pipe_u32 (&requests, 0x0102, 1); // pause
- write_comm_pipe_u32 (&requests, 0x0104, 1); // stop
- write_comm_pipe_u32 (&requests, 0x0103, 1); // unpause
- if (cdrom_playing && isaudiotrack (last_play_pos)) {
- write_comm_pipe_u32 (&requests, 0x0111, 0); // play immediate
- write_comm_pipe_u32 (&requests, last_play_pos, 0);
- write_comm_pipe_u32 (&requests, last_play_end, 0);
- write_comm_pipe_u32 (&requests, 0, 1);
+}
+
+void restore_akiko_final(void)
+{
+ if (!currprefs.cs_cd32cd)
+ return;
+ write_comm_pipe_u32(&requests, 0x0102, 1); // pause
+ write_comm_pipe_u32(&requests, 0x0104, 1); // stop
+ write_comm_pipe_u32(&requests, 0x0103, 1); // unpause
+ if (cdrom_playing && isaudiotrack(last_play_pos)) {
+ write_comm_pipe_u32(&requests, 0x0111, 0); // play immediate
+ write_comm_pipe_u32(&requests, last_play_pos, 0);
+ write_comm_pipe_u32(&requests, last_play_end, 0);
+ write_comm_pipe_u32(&requests, 0, 1);
uae_sem_wait(&cda_sem);
}
cd_initialized = 2;
if (status == -3 || status > AUDIO_STATUS_IN_PROGRESS)
uae_sem_post(&cda_sem);
if (status < 0)
- return 1;
+ return 0;
if (status == AUDIO_STATUS_IN_PROGRESS)
cd_audio_status = status;
return statusfunc(status, playpos);
configured = 0xe90000;
map_banks_z2(&dmac_bank, configured >> 16, 0x10000 >> 16);
write_comm_pipe_u32 (&requests, 0x0104, 1);
+}
+
+void restore_cdtv_final(void)
+{
+ if (!currprefs.cs_cdtvcd || currprefs.cs_cdtvcr)
+ return;
if (cd_playing) {
cd_volume = cd_volume_stored;
- write_comm_pipe_u32 (&requests, 0x0111, 0); // play
- write_comm_pipe_u32 (&requests, last_play_pos, 0);
- write_comm_pipe_u32 (&requests, last_play_end, 0);
- write_comm_pipe_u32 (&requests, 0, 1);
+ write_comm_pipe_u32(&requests, 0x0111, 0); // play
+ write_comm_pipe_u32(&requests, last_play_pos, 0);
+ write_comm_pipe_u32(&requests, last_play_end, 0);
+ write_comm_pipe_u32(&requests, 0, 1);
uae_sem_wait(&cda_sem);
}
}
extern uae_u8 *restore_akiko (uae_u8 *src);
extern uae_u8 *save_akiko (int *len, uae_u8*);
-extern void restore_akiko_finish (void);
+extern void restore_akiko_finish(void);
+extern void restore_akiko_final(void);
extern uae_u8 *restore_cdtv (uae_u8 *src);
extern uae_u8 *save_cdtv (int *len, uae_u8*);
-extern void restore_cdtv_finish (void);
+extern void restore_cdtv_finish(void);
+extern void restore_cdtv_final(void);
extern uae_u8 *restore_cdtv_dmac (uae_u8 *src);
extern uae_u8 *save_cdtv_dmac (int *len, uae_u8*);
extern void savestate_initsave (const TCHAR *filename, int docompress, int nodialogs, bool save);
extern int save_state (const TCHAR *filename, const TCHAR *description);
extern void restore_state (const TCHAR *filename);
-extern void savestate_restore_finish (void);
+extern bool savestate_restore_finish(void);
+extern void savestate_restore_final(void);
extern void savestate_memorysave (void);
zfile_fclose (f);
}
-void savestate_restore_finish (void)
+void savestate_restore_final(void)
+{
+ restore_akiko_final();
+ restore_cdtv_final();
+}
+
+bool savestate_restore_finish(void)
{
if (!isrestore ())
- return;
+ return false;
zfile_fclose (savestate_file);
savestate_file = 0;
restore_cpu_finish ();
savestate_state = 0;
init_hz_normal();
audio_activate();
+ return true;
}
/* 1=compressed,2=not compressed,3=ram dump,4=audio dump */