From: Toni Wilen Date: Sat, 27 Mar 2021 16:40:45 +0000 (+0200) Subject: State save/restore fixes. X-Git-Tag: 4900~167 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=c3aec348a31dd4625e2316d483b53d813f8f2a0b;p=francis%2Fwinuae.git State save/restore fixes. --- diff --git a/blkdev.cpp b/blkdev.cpp index a597ea93..6f624b8f 100644 --- a/blkdev.cpp +++ b/blkdev.cpp @@ -2420,7 +2420,7 @@ uae_u8 *save_cd (int num, int *len) return NULL; if (!currprefs.cs_cd32cd && !currprefs.cs_cdtvcd && !currprefs.scsi) return NULL; - dstbak = dst = xmalloc (uae_u8, 4 + MAX_DPATH + 4 + 4 + 4 + 2 * MAX_DPATH); + dstbak = dst = xmalloc (uae_u8, 4 + MAX_DPATH + 4 + 4 + 4 + SUBQ_SIZE + 2 * MAX_DPATH); save_u32 (4 | 8 | 16); save_path (currprefs.cdslots[num].name, SAVESTATE_PATH_CD); save_u32 (currprefs.cdslots[num].type); diff --git a/cia.cpp b/cia.cpp index 19d64180..ccd4c652 100644 --- a/cia.cpp +++ b/cia.cpp @@ -2646,7 +2646,8 @@ uae_u8 *restore_cia (int num, uae_u8 *src) div10 = CYCLE_UNIT * b; b = restore_u8 (); if (num) ciabsdr_cnt = b; else ciaasdr_cnt = b; - if (num) ciabsdr_buf = b; + b = restore_u8(); + if (num) ciabsdr_buf = b; else ciaasdr_buf = b; return src; } diff --git a/fpp.cpp b/fpp.cpp index 1472c475..2a1ce6a6 100644 --- a/fpp.cpp +++ b/fpp.cpp @@ -3805,7 +3805,7 @@ uae_u8 *save_fpu (int *len, uae_u8 *dstptr) if (dstptr) dstbak = dst = dstptr; else - dstbak = dst = xmalloc (uae_u8, 4+4+8*10+4+4+4+4+4+2*10+3*(4+2)); + dstbak = dst = xmalloc(uae_u8, 4 + 4 + 8 * 10 + 6 * 4 + 2 + 6 * 4 + 20 * 4); save_u32 (currprefs.fpu_model); save_u32 (0x80000000 | 0x20000000 | (regs.fp_ea_set ? 0x00000001 : 0x00000000)); for (i = 0; i < 8; i++) {