core, remove some duplicate code for gp2x
authorkub <derkub@gmail.com>
Tue, 11 Mar 2025 06:13:00 +0000 (07:13 +0100)
committerkub <derkub@gmail.com>
Tue, 11 Mar 2025 06:13:00 +0000 (07:13 +0100)
pico/memory.c

index 167779a..f172493 100644 (file)
@@ -1376,21 +1376,19 @@ static u32 ym2612_read_local_68k(void)
   return ym2612.OPN.ST.status;\r
 }\r
 \r
+// legacy code, only used for GP2X\r
 void ym2612_pack_state_old(void)\r
 {\r
   // timers are saved as tick counts, in 16.16 int format\r
-  int tac, tat = 0, tbc, tbt = 0, busy = 0;\r
+  int tat = 0, tbt = 0, busy = 0;\r
+  u8 buf[16];\r
+  size_t b = 0;\r
 \r
-  tac = 1024 - ym2612.OPN.ST.TA;\r
-  tbc = 256  - ym2612.OPN.ST.TB;\r
-  if (Pico.t.ym2612_busy > 0)\r
-    busy = cycles_z80_to_68k(Pico.t.ym2612_busy);\r
-  if (Pico.t.timer_a_next_oflow != TIMER_NO_OFLOW)\r
-    tat = ((Pico.t.timer_a_step - Pico.t.timer_a_next_oflow) * ((1LL<<32)/TIMER_A_TICK_ZCYCLES+1))>>16;\r
-  if (Pico.t.timer_b_next_oflow != TIMER_NO_OFLOW)\r
-    tbt = ((Pico.t.timer_b_step - Pico.t.timer_b_next_oflow) * ((1LL<<32)/TIMER_B_TICK_ZCYCLES+1))>>16;\r
-  elprintf(EL_YMTIMER, "save: timer a %i/%i", tat >> 16, tac);\r
-  elprintf(EL_YMTIMER, "save: timer b %i/%i", tbt >> 16, tbc);\r
+  ym2612_pack_timers(buf, sizeof(buf));\r
+  load_u16(buf, &b), load_u16(buf, &b);\r
+  tat = load_u32(buf, &b);\r
+  tbt = load_u32(buf, &b);\r
+  busy = load_u32(buf, &b);\r
 \r
 #ifdef __GP2X__\r
   if (PicoIn.opt & POPT_EXT_FM)\r
@@ -1405,6 +1403,7 @@ int ym2612_pack_timers(void *buf, size_t size)
   // timers are saved as tick counts, in 16.16 int format\r
   int tac, tat = 0, tbc, tbt = 0, busy = 0;\r
   size_t b = 0;\r
+\r
   tac = 1024 - ym2612.OPN.ST.TA;\r
   tbc = 256  - ym2612.OPN.ST.TB;\r
   if (Pico.t.ym2612_busy > 0)\r
@@ -1425,6 +1424,7 @@ int ym2612_pack_timers(void *buf, size_t size)
   return b;\r
 }\r
 \r
+// legacy code, only used for GP2X\r
 void ym2612_unpack_state_old(void)\r
 {\r
   int i, ret, tat, tbt, busy = 0;\r