psp bugfixes, tools
[picodrive.git] / Pico / sound / sound.c
index 5f9836b..f43252f 100644 (file)
@@ -448,7 +448,8 @@ PICO_INTERNAL void z80_pack(unsigned char *data)
   memcpy(data+4, &drZ80, 0x54);\r
 #elif defined(_USE_CZ80)\r
   *(int *)data = 0x00007a43; // "Cz"\r
-  memcpy(data+4, &CZ80, (INT32)&CZ80.BasePC - (INT32)&CZ80);\r
+  *(int *)(data+4) = Cz80_Get_Reg(&CZ80, CZ80_PC);\r
+  memcpy(data+8, &CZ80, (INT32)&CZ80.BasePC - (INT32)&CZ80);\r
 #endif\r
 }\r
 \r
@@ -476,9 +477,10 @@ PICO_INTERNAL void z80_unpack(unsigned char *data)
     z80_int(); // try to goto int handler, maybe we won't execute trash there?\r
   }\r
 #elif defined(_USE_CZ80)\r
-  if (*(int *)data == 0x00007a43) // "Cz" save?\r
-    memcpy(&CZ80, data+4, (INT32)&CZ80.BasePC - (INT32)&CZ80);\r
-  else {\r
+  if (*(int *)data == 0x00007a43) { // "Cz" save?\r
+    memcpy(&CZ80, data+8, (INT32)&CZ80.BasePC - (INT32)&CZ80);\r
+    Cz80_Set_Reg(&CZ80, CZ80_PC, *(int *)(data+4));\r
+  } else {\r
     z80_reset();\r
     z80_int();\r
   }\r