2424#include "externals.h"
2525#include "registers.h"
2626#include "spu.h"
27+ #include "psemu_plugin_defs.h"
2728
2829////////////////////////////////////////////////////////////////////////
2930// freeze structs
@@ -108,16 +109,6 @@ typedef struct
108109 ADSRInfoEx_orig ADSRX ; // next ADSR settings (will be moved to active on sample start)
109110} SPUCHAN_orig ;
110111
111- typedef struct SPUFreeze
112- {
113- char szSPUName [8 ];
114- uint32_t ulFreezeVersion ;
115- uint32_t ulFreezeSize ;
116- unsigned char cSPUPort [0x200 ];
117- unsigned char cSPURam [0x80000 ];
118- xa_decode_t xaS ;
119- } SPUFreeze_t ;
120-
121112typedef struct
122113{
123114 unsigned short spuIrq ;
@@ -261,23 +252,23 @@ long DoFreeze(unsigned int ulFreezeMode, SPUFreeze_t * pF,
261252 if (ulFreezeMode == 1 )
262253 memset (pF ,0 ,sizeof (SPUFreeze_t )+ sizeof (SPUOSSFreeze_t ));
263254
264- strcpy (pF -> szSPUName , "PBOSS" );
265- pF -> ulFreezeVersion = 5 ;
266- pF -> ulFreezeSize = sizeof (SPUFreeze_t )+ sizeof (SPUOSSFreeze_t );
255+ strcpy (pF -> PluginName , "PBOSS" );
256+ pF -> PluginVersion = 5 ;
257+ pF -> Size = sizeof (SPUFreeze_t )+ sizeof (SPUOSSFreeze_t );
267258
268259 if (ulFreezeMode == 2 ) return 1 ; // info mode? ok, bye
269260 // save mode:
270261 regAreaGet (H_SPUctrl ) = spu .spuCtrl ;
271262 regAreaGet (H_SPUstat ) = spu .spuStat ;
272- memcpy (pF -> cSPURam , spu .spuMem ,0x80000 ); // copy common infos
273- memcpy (pF -> cSPUPort , spu .regArea ,0x200 );
263+ memcpy (pF -> SPURam , spu .spuMem , 0x80000 ); // copy common infos
264+ memcpy (pF -> SPUPorts , spu .regArea , 0x200 );
274265
275266 if (spu .xapGlobal && spu .XAPlay != spu .XAFeed ) // some xa
276267 {
277268 xa_left = spu .XAFeed - spu .XAPlay ;
278269 if (xa_left < 0 )
279270 xa_left = spu .XAEnd - spu .XAPlay + spu .XAFeed - spu .XAStart ;
280- pF -> xaS = * spu .xapGlobal ;
271+ pF -> xa = * spu .xapGlobal ;
281272 }
282273 else if (spu .CDDAPlay != spu .CDDAFeed )
283274 {
@@ -286,19 +277,19 @@ long DoFreeze(unsigned int ulFreezeMode, SPUFreeze_t * pF,
286277 cdda_left = spu .CDDAFeed - spu .CDDAPlay ;
287278 if (cdda_left < 0 )
288279 cdda_left = spu .CDDAEnd - spu .CDDAPlay + spu .CDDAFeed - spu .CDDAStart ;
289- if (cdda_left > sizeof (pF -> xaS .pcm ) / 4 )
290- cdda_left = sizeof (pF -> xaS .pcm ) / 4 ;
280+ if (cdda_left > sizeof (pF -> xa .pcm ) / 4 )
281+ cdda_left = sizeof (pF -> xa .pcm ) / 4 ;
291282 if (p + cdda_left <= spu .CDDAEnd )
292- memcpy (pF -> xaS .pcm , p , cdda_left * 4 );
283+ memcpy (pF -> xa .pcm , p , cdda_left * 4 );
293284 else {
294- memcpy (pF -> xaS .pcm , p , (spu .CDDAEnd - p ) * 4 );
295- memcpy ((char * )pF -> xaS .pcm + (spu .CDDAEnd - p ) * 4 , spu .CDDAStart ,
285+ memcpy (pF -> xa .pcm , p , (spu .CDDAEnd - p ) * 4 );
286+ memcpy ((char * )pF -> xa .pcm + (spu .CDDAEnd - p ) * 4 , spu .CDDAStart ,
296287 (cdda_left - (spu .CDDAEnd - p )) * 4 );
297288 }
298- pF -> xaS .nsamples = 0 ;
289+ pF -> xa .nsamples = 0 ;
299290 }
300291 else
301- memset (& pF -> xaS , 0 , sizeof (xa_decode_t )); // or clean xa
292+ memset (& pF -> xa , 0 , sizeof (xa_decode_t )); // or clean xa
302293
303294 pFO = (SPUOSSFreeze_t * )(pF + 1 ); // store special stuff
304295
@@ -338,27 +329,27 @@ long DoFreeze(unsigned int ulFreezeMode, SPUFreeze_t * pF,
338329
339330 if (ulFreezeMode != 0 ) return 0 ; // bad mode? bye
340331
341- memcpy (spu .spuMem ,pF -> cSPURam , 0x80000 ); // get ram
342- memcpy (spu .regArea ,pF -> cSPUPort , 0x200 );
332+ memcpy (spu .spuMem , pF -> SPURam , 0x80000 ); // get ram
333+ memcpy (spu .regArea , pF -> SPUPorts , 0x200 );
343334 spu .bMemDirty = 1 ;
344335 spu .spuCtrl = regAreaGet (H_SPUctrl );
345336 spu .spuStat = regAreaGet (H_SPUstat );
346337
347- if (!strcmp (pF -> szSPUName , "PBOSS" ) && pF -> ulFreezeVersion == 5 )
338+ if (!strcmp (pF -> PluginName , "PBOSS" ) && pF -> PluginVersion == 5 )
348339 pFO = LoadStateV5 (pF , cycles );
349340 else LoadStateUnknown (pF , cycles );
350341
351342 spu .XAPlay = spu .XAFeed = spu .XAStart ;
352343 spu .CDDAPlay = spu .CDDAFeed = spu .CDDAStart ;
353344 spu .cdClearSamples = 512 ;
354- if (pFO && pFO -> xa_left && pF -> xaS .nsamples ) { // start xa again
355- FeedXA (& pF -> xaS );
345+ if (pFO && pFO -> xa_left && pF -> xa .nsamples ) { // start xa again
346+ FeedXA (& pF -> xa );
356347 spu .XAPlay = spu .XAFeed - pFO -> xa_left ;
357348 if (spu .XAPlay < spu .XAStart )
358349 spu .XAPlay = spu .XAStart ;
359350 }
360351 else if (pFO && pFO -> cdda_left ) { // start cdda again
361- FeedCDDA ((void * )pF -> xaS .pcm , pFO -> cdda_left * 4 );
352+ FeedCDDA ((void * )pF -> xa .pcm , pFO -> cdda_left * 4 );
362353 }
363354
364355 // not in old savestates
@@ -370,7 +361,7 @@ long DoFreeze(unsigned int ulFreezeMode, SPUFreeze_t * pF,
370361 spu .XALastVal = 0 ;
371362 spu .last_keyon_cycles = cycles - 16 * 786u ;
372363 spu .interpolation = -1 ;
373- if (pFO && pF -> ulFreezeSize >= sizeof (* pF ) + offsetof(SPUOSSFreeze_t , rvb_sb )) {
364+ if (pFO && pF -> Size >= sizeof (* pF ) + offsetof(SPUOSSFreeze_t , rvb_sb )) {
374365 spu .cycles_dma_end = pFO -> cycles_dma_end ;
375366 spu .decode_dirty_ch = pFO -> decode_dirty_ch ;
376367 spu .dwNoiseVal = pFO -> dwNoiseVal ;
@@ -379,7 +370,7 @@ long DoFreeze(unsigned int ulFreezeMode, SPUFreeze_t * pF,
379370 spu .XALastVal = pFO -> XALastVal ;
380371 spu .last_keyon_cycles = pFO -> last_keyon_cycles ;
381372 }
382- if (pFO && pF -> ulFreezeSize >= sizeof (* pF ) + sizeof (* pFO )) {
373+ if (pFO && pF -> Size >= sizeof (* pF ) + sizeof (* pFO )) {
383374 for (i = 0 ; i < 2 ; i ++ )
384375 for (j = 0 ; j < 2 ; j ++ )
385376 memcpy (& sb_rvb -> SB_rvb [i ][j * 4 ], pFO -> rvb_sb [i ], 4 * sizeof (sb_rvb -> SB_rvb [i ][0 ]));
0 commit comments