@@ -50,7 +50,6 @@ wswan_sound_device::wswan_sound_device(const machine_config &mconfig, const char
50
50
m_sweep_time(8192 ),
51
51
m_sweep_count(0 ),
52
52
m_noise_type(0 ),
53
- m_noise_reset(0 ),
54
53
m_noise_enable(0 ),
55
54
m_noise_output(0 ),
56
55
m_sample_address(0 ),
@@ -83,7 +82,6 @@ void wswan_sound_device::device_start()
83
82
save_item (NAME (m_sweep_time));
84
83
save_item (NAME (m_sweep_count));
85
84
save_item (NAME (m_noise_type));
86
- save_item (NAME (m_noise_reset));
87
85
save_item (NAME (m_noise_enable));
88
86
save_item (NAME (m_sample_address));
89
87
save_item (NAME (m_audio2_voice));
@@ -116,7 +114,6 @@ void wswan_sound_device::device_start()
116
114
save_item (NAME (m_hypervoice.div ));
117
115
save_item (NAME (m_hypervoice.counter ));
118
116
save_item (NAME (m_hypervoice.enable ));
119
- save_item (NAME (m_hypervoice.reset ));
120
117
save_item (NAME (m_hypervoice.channel_mode ));
121
118
}
122
119
@@ -241,14 +238,7 @@ void wswan_sound_device::sound_stream_update(sound_stream &stream, std::vector<r
241
238
242
239
m_audio[3 ].pos -= m_audio[3 ].period ;
243
240
244
- if (m_noise_reset)
245
- {
246
- m_noise_reset = 0 ;
247
- m_noise_shift = 0 ;
248
- m_noise_output = 0 ;
249
- }
250
-
251
- if (m_noise_enable)
241
+ if (m_audio4_noise && m_noise_enable)
252
242
{
253
243
static const int shift_bit[] = { 14 , 10 , 13 , 4 , 8 , 6 , 9 , 11 };
254
244
@@ -358,7 +348,6 @@ u16 wswan_sound_device::hypervoice_r(offs_t offset, u16 mem_mask)
358
348
(m_hypervoice.scale_mode << 2 ) |
359
349
(m_hypervoice.div << 4 ) |
360
350
(m_hypervoice.enable ? 0x0080 : 0x0000 ) |
361
- (m_hypervoice.reset ? 0x1000 : 0x0000 ) |
362
351
(m_hypervoice.channel_mode << 13 );
363
352
default :
364
353
if (!machine ().side_effects_disabled ())
@@ -398,9 +387,8 @@ void wswan_sound_device::hypervoice_w(offs_t offset, u16 data, u16 mem_mask)
398
387
}
399
388
if (ACCESSING_BITS_8_15)
400
389
{
401
- m_hypervoice.reset = BIT (data, 12 );
402
390
m_hypervoice.channel_mode = (data >> 13 ) & 3 ;
403
- if (m_hypervoice. reset )
391
+ if (BIT (data, 12 ) )
404
392
m_hypervoice.input_channel = false ;
405
393
}
406
394
break ;
@@ -430,7 +418,7 @@ u16 wswan_sound_device::port_r(offs_t offset, u16 mem_mask)
430
418
case 0x8c / 2 :
431
419
return m_sweep_step | (((m_sweep_time / 8192 ) - 1 ) << 8 );
432
420
case 0x8e / 2 :
433
- return m_noise_type | (m_noise_reset ? 0x08 : 0x00 ) | ( m_noise_enable ? 0x10 : 0x00 ) |
421
+ return m_noise_type | (m_noise_enable ? 0x10 : 0x00 ) |
434
422
((m_sample_address << 2 ) & 0xff00 );
435
423
case 0x90 / 2 :
436
424
return (m_audio[0 ].on ? 0x01 : 0x00 ) |
@@ -528,6 +516,8 @@ void wswan_sound_device::port_w(offs_t offset, u16 data, u16 mem_mask)
528
516
m_noise_type = data & 0x07 ;
529
517
m_noise_reset = BIT (data, 3 );
530
518
m_noise_enable = BIT (data, 4 );
519
+ if (BIT (data, 3 ))
520
+ m_noise_shift = m_noise_output = 0 ;
531
521
}
532
522
// Sample location
533
523
if (ACCESSING_BITS_8_15)
0 commit comments