trunk/src/emu/sound/spu.c
| r22778 | r22779 | |
| 463 | 463 | |
| 464 | 464 | class stream_buffer |
| 465 | 465 | { |
| 466 | public: |
| 466 | 467 | struct stream_marker |
| 467 | 468 | { |
| 468 | 469 | public: |
| r22778 | r22779 | |
| 482 | 483 | stream_marker *marker_head, |
| 483 | 484 | *marker_tail; |
| 484 | 485 | |
| 485 | | public: |
| 486 | 486 | stream_buffer(const unsigned int _sector_size, |
| 487 | 487 | const unsigned int _num_sectors) |
| 488 | 488 | : head(0), |
| r22778 | r22779 | |
| 986 | 986 | memset(cache,0,(spu_ram_size>>4)*sizeof(sample_cache *)); |
| 987 | 987 | |
| 988 | 988 | // register save state stuff |
| 989 | | // per-voice variables |
| 990 | | for (int v = 0; v < 24; v++) |
| 991 | | { |
| 992 | | save_item(NAME(spureg.voice[v].vol_l), v); |
| 993 | | save_item(NAME(spureg.voice[v].vol_r), v); |
| 994 | | save_item(NAME(spureg.voice[v].pitch), v); |
| 995 | | save_item(NAME(spureg.voice[v].addr), v); |
| 996 | | save_item(NAME(spureg.voice[v].adsl), v); |
| 997 | | save_item(NAME(spureg.voice[v].srrr), v); |
| 998 | | save_item(NAME(spureg.voice[v].curvol), v); |
| 999 | | save_item(NAME(spureg.voice[v].repaddr), v); |
| 1000 | | } |
| 1001 | | |
| 1002 | | // SPU globals |
| 1003 | | save_item(NAME(spureg.mvol_l)); |
| 1004 | | save_item(NAME(spureg.mvol_r)); |
| 1005 | | save_item(NAME(spureg.rvol_l)); |
| 1006 | | save_item(NAME(spureg.rvol_r)); |
| 1007 | | save_item(NAME(spureg.keyon)); |
| 1008 | | save_item(NAME(spureg.keyoff)); |
| 1009 | | save_item(NAME(spureg.fm)); |
| 1010 | | save_item(NAME(spureg.noise)); |
| 1011 | | save_item(NAME(spureg.reverb)); |
| 1012 | | save_item(NAME(spureg.chon)); |
| 1013 | | save_item(NAME(spureg._unknown)); |
| 1014 | | save_item(NAME(spureg.reverb_addr)); |
| 1015 | | save_item(NAME(spureg.irq_addr)); |
| 1016 | | save_item(NAME(spureg.trans_addr)); |
| 1017 | | save_item(NAME(spureg.data)); |
| 1018 | | save_item(NAME(spureg.ctrl)); |
| 1019 | | save_item(NAME(spureg.status)); |
| 1020 | | save_item(NAME(spureg.cdvol_l)); |
| 1021 | | save_item(NAME(spureg.cdvol_r)); |
| 1022 | | save_item(NAME(spureg.exvol_l)); |
| 1023 | | save_item(NAME(spureg.exvol_r)); |
| 989 | save_item(NAME(reg)); // this covers all spureg.* plus the reverb parameter block |
| 990 | save_item(NAME(xa_cnt)); |
| 991 | save_item(NAME(cdda_cnt)); |
| 992 | save_item(NAME(xa_freq)); |
| 993 | save_item(NAME(cdda_freq)); |
| 994 | save_item(NAME(xa_channels)); |
| 995 | save_item(NAME(xa_spf)); |
| 996 | save_item(NAME(cur_frame_sample)); |
| 997 | save_item(NAME(cur_generate_sample)); |
| 1024 | 998 | save_pointer(NAME(spu_ram), spu_ram_size); |
| 999 | |
| 1000 | save_item(NAME(xa_buffer->head)); |
| 1001 | save_item(NAME(xa_buffer->tail)); |
| 1002 | save_item(NAME(xa_buffer->in)); |
| 1003 | save_item(NAME(xa_buffer->sector_size)); |
| 1004 | save_item(NAME(xa_buffer->num_sectors)); |
| 1005 | save_item(NAME(xa_buffer->buffer_size)); |
| 1006 | save_pointer(NAME(xa_buffer->buffer), xa_sector_size*xa_buffer_sectors); |
| 1007 | |
| 1008 | save_item(NAME(cdda_buffer->head)); |
| 1009 | save_item(NAME(cdda_buffer->tail)); |
| 1010 | save_item(NAME(cdda_buffer->in)); |
| 1011 | save_item(NAME(cdda_buffer->sector_size)); |
| 1012 | save_item(NAME(cdda_buffer->num_sectors)); |
| 1013 | save_item(NAME(cdda_buffer->buffer_size)); |
| 1014 | save_pointer(NAME(cdda_buffer->buffer), cdda_sector_size*cdda_buffer_sectors); |
| 1025 | 1015 | } |
| 1026 | 1016 | |
| 1027 | 1017 | void spu_device::device_reset() |
trunk/src/mess/machine/psxcd.c
| r22778 | r22779 | |
| 121 | 121 | m_timers[i] = timer_alloc(i); |
| 122 | 122 | m_timerinuse[i] = false; |
| 123 | 123 | } |
| 124 | |
| 125 | save_item(NAME(cmdbuf)); |
| 126 | save_item(NAME(mode)); |
| 127 | save_item(NAME(secbuf)); |
| 128 | save_item(NAME(filter_file)); |
| 129 | save_item(NAME(filter_channel)); |
| 130 | save_item(NAME(lastsechdr)); |
| 131 | save_item(NAME(status)); |
| 132 | save_item(NAME(rdp)); |
| 133 | save_item(NAME(m_cursec)); |
| 134 | save_item(NAME(sectail)); |
| 135 | save_item(NAME(m_transcurr)); |
| 136 | save_item(NAME(m_transbuf)); |
| 137 | save_item(NAME(loc.w)); |
| 138 | save_item(NAME(curpos.w)); |
| 139 | save_item(NAME(open)); |
| 140 | save_item(NAME(m_mute)); |
| 141 | save_item(NAME(m_dmaload)); |
| 142 | save_item(NAME(next_read_event)); |
| 143 | save_item(NAME(next_sector_t)); |
| 144 | save_item(NAME(autopause_sector)); |
| 145 | save_item(NAME(m_param_count)); |
| 124 | 146 | } |
| 125 | 147 | |
| 126 | 148 | void psxcd_device::device_reset() |
| r22778 | r22779 | |
| 1197 | 1219 | fatalerror("psxcd: out of timers\n"); |
| 1198 | 1220 | return 0; |
| 1199 | 1221 | } |
| 1222 | |