drc: lots of new debug code
[picodrive.git] / pico / state.c
index dbed8b9..761b64c 100644 (file)
@@ -1,9 +1,10 @@
-// (c) Copyright 2004 Dave, All rights reserved.\r
-// (c) Copyright 2006-2010 notaz, All rights reserved.\r
-// Free for non-commercial use.\r
-\r
-// For commercial use, separate licencing terms must be obtained.\r
-\r
+/*\r
+ * PicoDrive\r
+ * (C) notaz, 2010\r
+ *\r
+ * This work is licensed under the terms of MAME license.\r
+ * See COPYING file in the top-level directory.\r
+ */\r
 \r
 #include "pico_int.h"\r
 #include <zlib/zlib.h>\r
@@ -173,6 +174,7 @@ typedef enum {
   CHUNK_SDRAM,\r
   CHUNK_DRAM,\r
   CHUNK_32XPAL,\r
+  CHUNK_32X_EVT,\r
   //\r
   CHUNK_DEFAULT_COUNT,\r
   CHUNK_CARTHW_ = CHUNK_CARTHW,  // defined in PicoInt\r
@@ -221,6 +223,7 @@ static const char * const chunk_names[] = {
   "SDRAM",\r
   "DRAM",\r
   "PAL",\r
+  "events",\r
 };\r
 \r
 static int write_chunk(chunk_name_e name, int len, void *data, void *file)\r
@@ -332,6 +335,10 @@ static int state_save(void *file)
     CHECKED_WRITE_BUFF(CHUNK_SDRAM,     Pico32xMem->sdram);\r
     CHECKED_WRITE_BUFF(CHUNK_DRAM,      Pico32xMem->dram);\r
     CHECKED_WRITE_BUFF(CHUNK_32XPAL,    Pico32xMem->pal);\r
+\r
+    memset(buff, 0, 0x40);\r
+    memcpy(buff, event_times, sizeof(event_times));\r
+    CHECKED_WRITE(CHUNK_32X_EVT, 0x40, buff);\r
   }\r
 #endif\r
 \r
@@ -381,6 +388,7 @@ static int state_load(void *file)
   unsigned char buff_m68k[0x60], buff_s68k[0x60];\r
   unsigned char buff_z80[Z80_STATE_SIZE];\r
   unsigned char buff_sh2[SH2_STATE_SIZE];\r
+  unsigned char buff[0x40];\r
   unsigned char chunk;\r
   void *ym2612_regs;\r
   char header[8];\r
@@ -475,6 +483,11 @@ static int state_load(void *file)
       case CHUNK_SDRAM:       CHECKED_READ_BUFF(Pico32xMem->sdram); break;\r
       case CHUNK_DRAM:        CHECKED_READ_BUFF(Pico32xMem->dram); break;\r
       case CHUNK_32XPAL:      CHECKED_READ_BUFF(Pico32xMem->pal); break;\r
+\r
+      case CHUNK_32X_EVT:\r
+        CHECKED_READ_BUFF(buff);\r
+        memcpy(event_times, buff, sizeof(event_times));\r
+        break;\r
 #endif\r
       default:\r
         if (carthw_chunks != NULL)\r
@@ -689,4 +702,4 @@ void PicoTmpStateRestore(void *data)
 #endif\r
 }\r
 \r
-// vim:shiftwidth=2:expandtab\r
+// vim:shiftwidth=2:ts=2:expandtab\r