summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu')
-rw-r--r--src/emu/cpu/i386/i386.c2
-rw-r--r--src/emu/cpu/lr35902/lr35902.c2
-rw-r--r--src/emu/cpu/m6502/ill02.h2
-rw-r--r--src/emu/cpu/m68000/m68kcpu.c6
-rw-r--r--src/emu/cpu/powerpc/ppcdrc.c4
-rw-r--r--src/emu/device.h4
-rw-r--r--src/emu/imagedev/flopdrv.c4
-rw-r--r--src/emu/imagedev/flopdrv.h8
-rw-r--r--src/emu/machine/ins8250.c16
-rw-r--r--src/emu/machine/nscsi_hd.c2
-rw-r--r--src/emu/save.h2
-rw-r--r--src/emu/sound/k054539.c16
-rw-r--r--src/emu/sound/k054539.h20
-rw-r--r--src/emu/sound/votrax.c382
-rw-r--r--src/emu/sound/votrax.h34
-rw-r--r--src/emu/video/bufsprite.h8
16 files changed, 256 insertions, 256 deletions
diff --git a/src/emu/cpu/i386/i386.c b/src/emu/cpu/i386/i386.c
index c187d4f3cb1..c8e3b51ae51 100644
--- a/src/emu/cpu/i386/i386.c
+++ b/src/emu/cpu/i386/i386.c
@@ -406,7 +406,7 @@ static int i386_limit_check(i386_state *cpustate, int seg, UINT32 offset)
if((cpustate->sreg[seg].flags & 0x0018) == 0x0010 && cpustate->sreg[seg].flags & 0x0004) // if expand-down data segment
{
// compare if greater then 0xffffffff when we're passed the access size
- if((offset <= cpustate->sreg[seg].limit) || ((cpustate->sreg[seg].d)?0:(offset > 0xffff)))
+ if((offset <= cpustate->sreg[seg].limit) || ((cpustate->sreg[seg].d)?0:(offset > 0xffff)))
{
logerror("Limit check at 0x%08x failed. Segment %04x, limit %08x, offset %08x (expand-down)\n",cpustate->pc,cpustate->sreg[seg].selector,cpustate->sreg[seg].limit,offset);
return 1;
diff --git a/src/emu/cpu/lr35902/lr35902.c b/src/emu/cpu/lr35902/lr35902.c
index 04b182de438..bce0d609671 100644
--- a/src/emu/cpu/lr35902/lr35902.c
+++ b/src/emu/cpu/lr35902/lr35902.c
@@ -157,7 +157,7 @@ void lr35902_cpu_device::device_start()
state_add(STATE_GENPC, "curpc", m_PC).callimport().callexport().formatstr("%8s").noshow();
state_add(STATE_GENFLAGS, "GENFLAGS", m_F).mask(0xf0).formatstr("%8s").noshow();
-
+
m_icountptr = &m_icount;
}
diff --git a/src/emu/cpu/m6502/ill02.h b/src/emu/cpu/m6502/ill02.h
index b47a161f07d..fa21452c444 100644
--- a/src/emu/cpu/m6502/ill02.h
+++ b/src/emu/cpu/m6502/ill02.h
@@ -175,7 +175,7 @@
/* 6510 ********************************************************
* OAL load accumulator and index X
***************************************************************/
-#define OAL_6510 \
+#define OAL_6510 \
A = X = (UINT8)((A|0xee)&tmp); \
SET_NZ(A)
diff --git a/src/emu/cpu/m68000/m68kcpu.c b/src/emu/cpu/m68000/m68kcpu.c
index cac4f1e45ef..18b6ab54e7c 100644
--- a/src/emu/cpu/m68000/m68kcpu.c
+++ b/src/emu/cpu/m68000/m68kcpu.c
@@ -1911,7 +1911,7 @@ CPU_GET_INFO( m68000 )
static CPU_INIT( m68301 )
{
-// m68ki_cpu_core *m68k = get_safe_token(device);
+// m68ki_cpu_core *m68k = get_safe_token(device);
CPU_INIT_CALL(m68000);
@@ -1941,8 +1941,8 @@ static CPU_INIT( m68307 )
CPU_INIT_CALL(m68000);
/* basic CS logic, timers, mbus, serial logic
- set via remappable register
- */
+ set via remappable register
+ */
new(&m68k->memory) m68k_memory_interface;
m68k->memory.init16_68307(*m68k->program);
diff --git a/src/emu/cpu/powerpc/ppcdrc.c b/src/emu/cpu/powerpc/ppcdrc.c
index 3620f4f45d6..5768cce5302 100644
--- a/src/emu/cpu/powerpc/ppcdrc.c
+++ b/src/emu/cpu/powerpc/ppcdrc.c
@@ -2270,9 +2270,9 @@ static void generate_compute_flags(powerpc_state *ppc, drcuml_block *block, cons
if (xermask & XER_OV)
{
UML_ROLAND(block, I0, I0, 31, 1); // roland i0,i0,31,0x0001
- UML_OR(block, XERSO32, XERSO32, I0); // or [xerso],i0
+ UML_OR(block, XERSO32, XERSO32, I0); // or [xerso],i0
UML_AND(block, CR32(0), CR32(0), 0xfffffffe); // and [cr0], [cr0], 0xfffffffe (clear SO copy in CR32)
- UML_OR(block, CR32(0), I1, XERSO32); // or [cr0],i1,[xerso]
+ UML_OR(block, CR32(0), I1, XERSO32); // or [cr0],i1,[xerso]
}
else
{
diff --git a/src/emu/device.h b/src/emu/device.h
index 3decd2e6cf5..b45a21aecdf 100644
--- a/src/emu/device.h
+++ b/src/emu/device.h
@@ -365,7 +365,7 @@ protected:
optional_shared_ptr(device_t &base, const char *tag) : auto_finder_type<_PointerType *, false>(base, tag), m_bytes(0) { }
virtual void findit(device_t &base) { this->set_target(reinterpret_cast<_PointerType *>(this->find_shared_ptr(base, this->m_tag, m_bytes))); }
UINT32 bytes() const { return m_bytes; }
-
+
private:
// internal state
size_t m_bytes;
@@ -379,7 +379,7 @@ protected:
required_shared_ptr(device_t &base, const char *tag) : auto_finder_type<_PointerType *, true>(base, tag), m_bytes(0) { }
virtual void findit(device_t &base) { this->set_target(reinterpret_cast<_PointerType *>(this->find_shared_ptr(base, this->m_tag, m_bytes))); }
UINT32 bytes() const { return m_bytes; }
-
+
private:
// internal state
size_t m_bytes;
diff --git a/src/emu/imagedev/flopdrv.c b/src/emu/imagedev/flopdrv.c
index 8ef5b40eb2b..d73cd441df8 100644
--- a/src/emu/imagedev/flopdrv.c
+++ b/src/emu/imagedev/flopdrv.c
@@ -963,8 +963,8 @@ void legacy_floppy_image_device::device_config_complete()
cnt++;
}
image_specify_extension( m_extension_list, 256, floppy_options[i].extensions );
- }
-
+ }
+
// set brief and instance name
update_names();
}
diff --git a/src/emu/imagedev/flopdrv.h b/src/emu/imagedev/flopdrv.h
index 00150fa4288..8f113b711f6 100644
--- a/src/emu/imagedev/flopdrv.h
+++ b/src/emu/imagedev/flopdrv.h
@@ -191,7 +191,7 @@ public:
~legacy_floppy_image_device();
virtual bool call_load();
- virtual bool call_softlist_load(char *swlist, char *swname, rom_entry *start_entry) { return load_software(swlist, swname, start_entry); }
+ virtual bool call_softlist_load(char *swlist, char *swname, rom_entry *start_entry) { return load_software(swlist, swname, start_entry); }
virtual bool call_create(int format_type, option_resolution *format_options);
virtual void call_unload();
virtual void call_display_info();
@@ -206,14 +206,14 @@ public:
virtual const char *image_interface() const;
virtual const char *file_extensions() const { return m_extension_list; }
virtual const option_guide *create_option_guide() const { return floppy_option_guide; }
-
+
// access to legacy token
- void *token() const { assert(m_token != NULL); return m_token; }
+ void *token() const { assert(m_token != NULL); return m_token; }
protected:
// device overrides
virtual void device_config_complete();
virtual void device_start();
-
+
void *m_token;
char m_extension_list[256];
};
diff --git a/src/emu/machine/ins8250.c b/src/emu/machine/ins8250.c
index 9e69a11c154..6b6d07fb369 100644
--- a/src/emu/machine/ins8250.c
+++ b/src/emu/machine/ins8250.c
@@ -21,7 +21,7 @@ the BIOS dependent on the flaws being present, so subsequent parts like the
The original 8250 pulses the interrupt line if a higher priority interrupt is
cleared but a lower priority one is still active. It also clears the tsre bit
-for a moment before loading the tsr from the thr. These may be the bugs the
+for a moment before loading the tsr from the thr. These may be the bugs the
PC and XT depend on as the 8250A and up fix them.
INS8250-B
@@ -140,7 +140,7 @@ void ins8250_uart_device::update_interrupt()
{
m_regs.iir |=0x04;
if ((m_int_pending & COM_INT_PENDING_CHAR_TIMEOUT) == 0x11)
- m_regs.iir |= 0x08;
+ m_regs.iir |= 0x08;
}
else if (m_regs.ier & m_int_pending & COM_INT_PENDING_TRANSMITTER_HOLDING_REGISTER_EMPTY)
m_regs.iir |=0x02;
@@ -390,16 +390,16 @@ void ns16550_device::rcv_complete()
{
if(!(m_regs.fcr & 1))
return ins8250_uart_device::rcv_complete();
-
+
receive_register_extract();
-
+
if(m_rnum == 16)
{
m_regs.lsr |= 0x02; //overrun
trigger_int(COM_INT_PENDING_RECEIVER_LINE_STATUS);
return;
}
-
+
m_regs.lsr |= 0x01;
m_rfifo[m_rhead] = get_received_char();
++m_rhead &= 0x0f;
@@ -568,7 +568,7 @@ UINT8 ns16550_device::pop_rx()
{
UINT8 data = m_rfifo[m_rtail];
clear_int(COM_INT_PENDING_CHAR_TIMEOUT & ~1); // don't clear bit 1 yet
-
+
if(m_rnum)
{
++m_rtail &= 0x0f;
@@ -576,13 +576,13 @@ UINT8 ns16550_device::pop_rx()
}
else
data = 0;
-
+
if(m_rnum < m_rintlvl)
clear_int(COM_INT_PENDING_RECEIVED_DATA_AVAILABLE);
if(m_rnum)
set_timer();
- else
+ else
{
m_timeout->adjust(attotime::never);
m_regs.lsr &= ~1;
diff --git a/src/emu/machine/nscsi_hd.c b/src/emu/machine/nscsi_hd.c
index 911c68edf0a..4138cc96127 100644
--- a/src/emu/machine/nscsi_hd.c
+++ b/src/emu/machine/nscsi_hd.c
@@ -161,7 +161,7 @@ void nscsi_harddisk_device::scsi_command()
scsi_cmdbuf[pos++] = 0x00; // Meh
scsi_cmdbuf[pos++] = 0x00; // Double meh
break;
-
+
case 0x03: { // Format parameters page
scsi_cmdbuf[pos++] = 0x83; // PS, page id
scsi_cmdbuf[pos++] = 0x16; // Page length
diff --git a/src/emu/save.h b/src/emu/save.h
index 95c619464f6..17131178ae4 100644
--- a/src/emu/save.h
+++ b/src/emu/save.h
@@ -307,7 +307,7 @@ inline void save_manager::save_item(const char *module, const char *tag, int ind
//-------------------------------------------------
-// save_item - specialized save_item for
+// save_item - specialized save_item for
// dynamic_arrays
//-------------------------------------------------
diff --git a/src/emu/sound/k054539.c b/src/emu/sound/k054539.c
index eac3b10d314..25bad3fc9c9 100644
--- a/src/emu/sound/k054539.c
+++ b/src/emu/sound/k054539.c
@@ -123,7 +123,7 @@ void k054539_device::sound_stream_update(sound_stream &stream, stream_sample_t *
else
lval = rval = 0;
rbase[reverb_pos] = 0;
-
+
for(int ch=0; ch<8; ch++)
if(regs[0x22c] & (1<<ch)) {
unsigned char *base1 = regs + 0x20*ch;
@@ -165,7 +165,7 @@ void k054539_device::sound_stream_update(sound_stream &stream, stream_sample_t *
rdelta = (rdelta + reverb_pos) & 0x3fff;
int cur_pos = (base1[0x0c] | (base1[0x0d] << 8) | (base1[0x0e] << 16)) & rom_mask;
-
+
int fdelta, pdelta;
if(base2[0] & 0x20) {
delta = -delta;
@@ -281,12 +281,12 @@ void k054539_device::sound_stream_update(sound_stream &stream, stream_sample_t *
lval += cur_val * lvol;
rval += cur_val * rvol;
rbase[(rdelta + reverb_pos) & 0x1fff] += INT16(cur_val*rbvol);
-
+
chan->pos = cur_pos;
chan->pfrac = cur_pfrac;
chan->pval = cur_pval;
chan->val = cur_val;
-
+
if(regupdate()) {
base1[0x0c] = cur_pos & 0xff;
base1[0x0d] = cur_pos>> 8 & 0xff;
@@ -349,11 +349,11 @@ WRITE8_MEMBER(k054539_device::write)
int voice, reg;
/* The K054539 has behavior like many other wavetable chips including
- the Ensoniq 550x and Gravis GF-1: if a voice is active, writing
- to it's current position is silently ignored.
+ the Ensoniq 550x and Gravis GF-1: if a voice is active, writing
+ to it's current position is silently ignored.
- Dadandaan depends on this or the vocals go wrong.
- */
+ Dadandaan depends on this or the vocals go wrong.
+ */
if (offset < 8*0x20)
{
voice = offset / 0x20;
diff --git a/src/emu/sound/k054539.h b/src/emu/sound/k054539.h
index 898fea4413b..f49ab6d0098 100644
--- a/src/emu/sound/k054539.h
+++ b/src/emu/sound/k054539.h
@@ -55,16 +55,16 @@ public:
void init_flags(int flags);
/*
- Note that the eight PCM channels of a K054539 do not have separate
- volume controls. Considering the global attenuation equation may not
- be entirely accurate, k054539_set_gain() provides means to control
- channel gain. It can be called anywhere but preferrably from
- DRIVER_INIT().
-
- Parameters:
- channel : 0 - 7
- gain : 0.0=silent, 1.0=no gain, 2.0=twice as loud, etc.
- */
+ Note that the eight PCM channels of a K054539 do not have separate
+ volume controls. Considering the global attenuation equation may not
+ be entirely accurate, k054539_set_gain() provides means to control
+ channel gain. It can be called anywhere but preferrably from
+ DRIVER_INIT().
+
+ Parameters:
+ channel : 0 - 7
+ gain : 0.0=silent, 1.0=no gain, 2.0=twice as loud, etc.
+ */
void set_gain(int channel, double gain);
protected:
diff --git a/src/emu/sound/votrax.c b/src/emu/sound/votrax.c
index b25ad8ef8ae..83e06859da1 100644
--- a/src/emu/sound/votrax.c
+++ b/src/emu/sound/votrax.c
@@ -95,21 +95,21 @@ const char *const votrax_sc01_device::s_phoneme_table[64] =
// it is only an approximation
const double votrax_sc01_device::s_glottal_wave[16] =
{
- 0,
- 16.0/22.0,
- -22.0/22.0,
- -17.0/22.0,
- -15.0/22.0,
- -10.0/22.0,
- -7.0/22.0,
+ 0,
+ 16.0/22.0,
+ -22.0/22.0,
+ -17.0/22.0,
+ -15.0/22.0,
+ -10.0/22.0,
+ -7.0/22.0,
-4.0/22.0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
0
};
@@ -161,14 +161,14 @@ WRITE8_MEMBER( votrax_sc01_device::write )
// only 6 bits matter
m_phoneme = data & 0x3f;
const UINT8 *rom = m_rom + (m_phoneme << 3);
-mame_printf_debug("%s: STROBE %s (F1=%X F2=%X FC=%X F3=%X F2Q=%X VA=%X FA=%X CL=%X CLD=%X VD=%X PAC=%X PH=%02X)\n",
+mame_printf_debug("%s: STROBE %s (F1=%X F2=%X FC=%X F3=%X F2Q=%X VA=%X FA=%X CL=%X CLD=%X VD=%X PAC=%X PH=%02X)\n",
machine().time().as_string(3), s_phoneme_table[m_phoneme],
rom[0] >> 4, rom[1] >> 4, rom[2] >> 4, rom[3] >> 4, rom[4] >> 4, rom[5] >> 4, rom[6] >> 4,
rom[3] & 0xf, rom[4] & 0xf, rom[5] & 0xf, rom[6] & 0xf, rom[7]);
-
+
// the STROBE signal resets the phoneme counter
m_counter_84 = 0xf;
-
+
// not in the schematics, but necessary to fully reset the request latch
m_latch_92 = 0;
@@ -179,8 +179,8 @@ mame_printf_debug("%s: STROBE %s (F1=%X F2=%X FC=%X F3=%X F2Q=%X VA=%X FA=%X CL=
//-------------------------------------------------
-// inflection_w - handle a write to the
-// inflection bits
+// inflection_w - handle a write to the
+// inflection bits
//-------------------------------------------------
WRITE8_MEMBER( votrax_sc01_device::inflection_w )
@@ -189,7 +189,7 @@ WRITE8_MEMBER( votrax_sc01_device::inflection_w )
data &= 3;
if (m_inflection == data)
return;
-
+
// append an inflection marker
m_stream->update();
m_inflection = data;
@@ -202,83 +202,83 @@ WRITE8_MEMBER( votrax_sc01_device::inflection_w )
//**************************************************************************
//-------------------------------------------------
-// update_subphoneme_clock_period - re-compute the
-// period of the sub-phoneme clock, as a multiple
+// update_subphoneme_clock_period - re-compute the
+// period of the sub-phoneme clock, as a multiple
// of the master clock
//-------------------------------------------------
void votrax_sc01_device::update_subphoneme_clock_period()
{
assert(m_latch_80 < 128);
-
+
/*
- The sub-phoneme timing circuit is based off the switching capacitor
- technique described in the Votrax patent. Replacing the capacitor
- ladder with [Rx] representing the effective resistance, the circuit
- becomes essentially a pair of op-amps:
-
- VM
- | i1
- [R1]
- | Vc
- +----------------------+
- | +---|C1|---+ |
- [R2] | | | |\
- |Vb i2 | |\ | +--++\
- +--[Rx]--+----+-\ | | >
- | | >--+-----+-/
- [R3] +----++/ Vc |/
- |i3 | |/
- +--------+ Va
- |
- [R4]
- |
- 0
-
- We have two op-amps, the left used as a standard amplifier, the right
- one as a comparator. The circuit triggers when the two inputs of the
- right op-amp are equal.
-
- The left part of the circuit (before C1) is simply a current injector.
- It's all made of resistors, there's no modulated input, so everything
- is going to be constant. If you don't know about op-amps used as
- amplifiers, you just need to know that it forces its two inputs to
- have the same voltage while not sending or providing any current
- through there (only though its output in fact).
-
- In the schema, the injected current is i2. Basic equations apply:
- Va = R4.i3
- Vb = Va + R3.i3
- Vb = Va + Rx.i2
- Vc = Vb + R2.i1
- VM = Vc + R1.i1
- i1 = i2 + i3
-
- And the tipping happens when the voltage on the right of C1 reaches
- Vc, so:
- Vc = Va + i2.T/C1
-
- (i2 being a constant, the integration is kinda easy)
-
- Some maths later:
- R3.i3 = Rx.i2 -> i3 = Rx/R3.i2
- i1 = (1+Rx/R3).i2
- Va + (Rx + R2 + R2.Rx/R3).i2 = Va + T/C1.i2
- T = C1*(Rx*(1+R2/R3) + R2)
-
- Which isn't, interestingly though not surprisingly, dependant on Vm,
- R1 or R4. And you have to round it to the next multiple of
- 0.2ms+0.1ms due to the clocking on p2 and its offset to p1 (charging
- only happens on p1 active), and add one p1/p2 cycle (0.2ms) for the
- discharge.
-
- So now you have your base clock, which you have to multiply by 16 to
- get the phoneme length.
-
- r2 = 9e3
- r3 = 1e3
- c1 = 1000e-12
- rx = 1/(5KHz * cx)
+ The sub-phoneme timing circuit is based off the switching capacitor
+ technique described in the Votrax patent. Replacing the capacitor
+ ladder with [Rx] representing the effective resistance, the circuit
+ becomes essentially a pair of op-amps:
+
+ VM
+ | i1
+ [R1]
+ | Vc
+ +----------------------+
+ | +---|C1|---+ |
+ [R2] | | | |\
+ |Vb i2 | |\ | +--++\
+ +--[Rx]--+----+-\ | | >
+ | | >--+-----+-/
+ [R3] +----++/ Vc |/
+ |i3 | |/
+ +--------+ Va
+ |
+ [R4]
+ |
+ 0
+
+ We have two op-amps, the left used as a standard amplifier, the right
+ one as a comparator. The circuit triggers when the two inputs of the
+ right op-amp are equal.
+
+ The left part of the circuit (before C1) is simply a current injector.
+ It's all made of resistors, there's no modulated input, so everything
+ is going to be constant. If you don't know about op-amps used as
+ amplifiers, you just need to know that it forces its two inputs to
+ have the same voltage while not sending or providing any current
+ through there (only though its output in fact).
+
+ In the schema, the injected current is i2. Basic equations apply:
+ Va = R4.i3
+ Vb = Va + R3.i3
+ Vb = Va + Rx.i2
+ Vc = Vb + R2.i1
+ VM = Vc + R1.i1
+ i1 = i2 + i3
+
+ And the tipping happens when the voltage on the right of C1 reaches
+ Vc, so:
+ Vc = Va + i2.T/C1
+
+ (i2 being a constant, the integration is kinda easy)
+
+ Some maths later:
+ R3.i3 = Rx.i2 -> i3 = Rx/R3.i2
+ i1 = (1+Rx/R3).i2
+ Va + (Rx + R2 + R2.Rx/R3).i2 = Va + T/C1.i2
+ T = C1*(Rx*(1+R2/R3) + R2)
+
+ Which isn't, interestingly though not surprisingly, dependant on Vm,
+ R1 or R4. And you have to round it to the next multiple of
+ 0.2ms+0.1ms due to the clocking on p2 and its offset to p1 (charging
+ only happens on p1 active), and add one p1/p2 cycle (0.2ms) for the
+ discharge.
+
+ So now you have your base clock, which you have to multiply by 16 to
+ get the phoneme length.
+
+ r2 = 9e3
+ r3 = 1e3
+ c1 = 1000e-12
+ rx = 1/(5KHz * cx)
*/
// determine total capacitance
@@ -290,7 +290,7 @@ void votrax_sc01_device::update_subphoneme_clock_period()
if ((m_latch_80 & 0x10) != 0) cx += 86e-12;
if ((m_latch_80 & 0x20) != 0) cx += 173e-12;
if ((m_latch_80 & 0x40) != 0) cx += 345e-12;
-
+
// apply the equation above to determine charging time
// note that the 5kHz listed above for P1 is for a nominal master
// clock frequency of 1.28MHz, meaning it is master clock / 128
@@ -298,7 +298,7 @@ void votrax_sc01_device::update_subphoneme_clock_period()
double p1_frequency = double(m_master_clock_freq) / double(1 << (P_CLOCK_BIT + 2));
double rx = 1.0 / (p1_frequency * cx);
double period = 1000e-12 * (rx * (1.0 + 9e3 / 1e3) + 9e3);
-
+
// convert to master clock cycles and round up
m_subphoneme_period = UINT32(ceil(period * double(m_master_clock_freq)));
}
@@ -489,9 +489,9 @@ void votrax_sc01_device::filter_s_to_z(const double *k, double fs, double *a, do
double fpeak = sqrt(fabs(k[0]*k[1]-k[2]))/(2*M_PI*k[2]);
double zc = 2*M_PI*fpeak/tan(M_PI*fpeak/fs);
- double m0 = zc*k[0];
- double m1 = zc*k[1];
- double m2 = zc*zc*k[2];
+ double m0 = zc*k[0];
+ double m1 = zc*k[1];
+ double m2 = zc*zc*k[2];
a[0] = 1+m0;
a[1] = 3+m0;
@@ -578,7 +578,7 @@ if (LOG_TIMING | LOG_LOWPARAM | LOG_GLOTTAL | LOG_TRANSITION)
// update master clock
m_master_clock ^= 1;
-
+
// on the falling edge of the master clock, advance the 10-bit counter at 34
UINT8 old_latch_72 = m_latch_72;
if (m_master_clock == 0)
@@ -590,41 +590,41 @@ if (LOG_TIMING | LOG_LOWPARAM | LOG_GLOTTAL | LOG_TRANSITION)
}
// derive beta 1 clock:
- // set if m_latch_70.0 == 1
- // reset if m_latch_70.0 == 0
-// UINT8 old_beta1 = m_beta1;
+ // set if m_latch_70.0 == 1
+ // reset if m_latch_70.0 == 0
+// UINT8 old_beta1 = m_beta1;
m_beta1 = BIT(m_latch_70, 0);
// derive p2 clock:
- // set if (m_counter_34.P_CLOCK_BIT & clock) == 1
- // reset if (m_counter_34.P_CLOCK_BIT == 0)
+ // set if (m_counter_34.P_CLOCK_BIT & clock) == 1
+ // reset if (m_counter_34.P_CLOCK_BIT == 0)
UINT8 old_p2 = m_p2;
if (BIT(m_counter_34, P_CLOCK_BIT) & m_master_clock)
m_p2 = 1;
else if (!BIT(m_counter_34, P_CLOCK_BIT))
m_p2 = 0;
-
+
// derive p1 clock:
- // set if (!m_counter_34.P_CLOCK_BIT & clock) == 1
- // reset if (m_counter_34.P_CLOCK_BIT == 1)
-// UINT8 old_p1 = m_p1;
+ // set if (!m_counter_34.P_CLOCK_BIT & clock) == 1
+ // reset if (m_counter_34.P_CLOCK_BIT == 1)
+// UINT8 old_p1 = m_p1;
if (BIT(~m_counter_34, P_CLOCK_BIT) & m_master_clock)
m_p1 = 1;
else if (BIT(m_counter_34, P_CLOCK_BIT))
m_p1 = 0;
-
+
// derive phi2 clock:
- // set if (m_counter_34.PHI_CLOCK_BIT & clock) == 1
- // reset if (m_counter_34.PHI_CLOCK_BIT == 0)
+ // set if (m_counter_34.PHI_CLOCK_BIT & clock) == 1
+ // reset if (m_counter_34.PHI_CLOCK_BIT == 0)
UINT8 old_phi2 = m_phi2;
if (BIT(m_counter_34, PHI_CLOCK_BIT) & m_master_clock)
m_phi2 = 1;
else if (!BIT(m_counter_34, PHI_CLOCK_BIT))
m_phi2 = 0;
-
+
// derive phi1 clock:
- // set if (!m_counter_34.PHI_CLOCK_BIT & clock) == 1
- // reset if (m_counter_34.PHI_CLOCK_BIT == 1)
+ // set if (!m_counter_34.PHI_CLOCK_BIT & clock) == 1
+ // reset if (m_counter_34.PHI_CLOCK_BIT == 1)
UINT8 old_phi1 = m_phi1;
if (BIT(~m_counter_34, PHI_CLOCK_BIT) & m_master_clock)
m_phi1 = 1;
@@ -632,31 +632,31 @@ if (LOG_TIMING | LOG_LOWPARAM | LOG_GLOTTAL | LOG_TRANSITION)
m_phi1 = 0;
// derive alternate phi2 clock:
- // set if (m_counter_34.PHI_CLOCK_BIT & clock) == 1
- // reset if (m_counter_34.PHI_CLOCK_BIT == 0)
+ // set if (m_counter_34.PHI_CLOCK_BIT & clock) == 1
+ // reset if (m_counter_34.PHI_CLOCK_BIT == 0)
UINT8 old_phi2_20 = m_phi2_20;
if (BIT(m_counter_34, PHI_CLOCK_BIT + 2) & m_master_clock)
m_phi2_20 = 1;
else if (!BIT(m_counter_34, PHI_CLOCK_BIT + 2))
m_phi2_20 = 0;
-
+
// derive alternate phi1 clock:
- // set if (!m_counter_34.PHI_CLOCK_BIT & clock) == 1
- // reset if (m_counter_34.PHI_CLOCK_BIT == 1)
-// UINT8 old_phi1_20 = m_phi1_20;
+ // set if (!m_counter_34.PHI_CLOCK_BIT & clock) == 1
+ // reset if (m_counter_34.PHI_CLOCK_BIT == 1)
+// UINT8 old_phi1_20 = m_phi1_20;
if (BIT(~m_counter_34, PHI_CLOCK_BIT + 2) & m_master_clock)
m_phi1_20 = 1;
else if (BIT(m_counter_34, PHI_CLOCK_BIT + 2))
m_phi1_20 = 0;
// determine rising edges of each clock of interest
-// UINT8 beta1_rising = (old_beta1 ^ m_beta1) & m_beta1;
+// UINT8 beta1_rising = (old_beta1 ^ m_beta1) & m_beta1;
UINT8 p2_rising = (old_p2 ^ m_p2) & m_p2;
-// UINT8 p1_rising = (old_p1 ^ m_p1) & m_p1;
+// UINT8 p1_rising = (old_p1 ^ m_p1) & m_p1;
UINT8 phi2_rising = (old_phi2 ^ m_phi2) & m_phi2;
UINT8 phi1_rising = (old_phi1 ^ m_phi1) & m_phi1;
UINT8 phi2_20_rising = (old_phi2_20 ^ m_phi2_20) & m_phi2_20;
-// UINT8 phi1_20_rising = (old_phi1_20 ^ m_phi1_20) & m_phi1_20;
+// UINT8 phi1_20_rising = (old_phi1_20 ^ m_phi1_20) & m_phi1_20;
UINT8 a0_rising = BIT((old_latch_72 ^ m_latch_72) & m_latch_72, 0);
UINT8 a2_rising = BIT((old_latch_72 ^ m_latch_72) & m_latch_72, 2);
UINT8 _125k_rising = BIT((old_latch_72 ^ m_latch_72) & m_latch_72, 3);
@@ -673,7 +673,7 @@ if (LOG_TIMING | LOG_LOWPARAM | LOG_GLOTTAL | LOG_TRANSITION)
UINT8 old_clock_88 = m_clock_88;
m_clock_88 = !m_latch_42; //!(m_latch_42 | m_phi1); -- figure 7 seems to be wrong here
UINT8 clock_88_rising = (old_clock_88 ^ m_clock_88) & m_clock_88;
-
+
// the A/R line holds the counter in reset except during phoneme processing,
// when it is clocked on the rising edge of the subphoneme timer clock
if (m_internal_request != CLEAR_LINE)
@@ -683,11 +683,11 @@ if (LOG_TIMING | LOG_LOWPARAM | LOG_GLOTTAL | LOG_TRANSITION)
m_counter_84 = (m_counter_84 - 1) & 0x0f;
mame_printf_debug("counter=%d\n", m_counter_84);
}
-
+
// clock the zero count latch
if (p2_rising)
m_latch_92 = ((m_counter_84 == 0) | (m_latch_92 << 1)) & 3;
-
+
// once both bits are set, the request line goes high
if (m_latch_92 == 3)
{
@@ -708,15 +708,15 @@ mame_printf_debug("counter=%d\n", m_counter_84);
UINT8 romdata = m_rom[(m_phoneme << 3) | ((m_counter_34 >> 4) & 7)];
// update the ROM data; ROM format is (upper nibble/lower nibble)
- // +00 = F1 parameter / 0
- // +01 = F2 parameter / 0
- // +02 = FC parameter / 0
- // +03 = F3 parameter / CL
- // +04 = F2Q Parameter / CLD
- // +05 = VA Parameter / VD
- // +06 = FA Parameter / PAC
- // +07 = Phoneme timing (full 7 bits)
-
+ // +00 = F1 parameter / 0
+ // +01 = F2 parameter / 0
+ // +02 = FC parameter / 0
+ // +03 = F3 parameter / CL
+ // +04 = F2Q Parameter / CLD
+ // +05 = VA Parameter / VD
+ // +06 = FA Parameter / PAC
+ // +07 = Phoneme timing (full 7 bits)
+
// latch a new value from ROM on phi2
UINT8 a = m_latch_72 & 7;
UINT8 romdata_swapped;
@@ -728,26 +728,26 @@ mame_printf_debug("counter=%d\n", m_counter_84);
case 3:
m_srff_132 = m_srff_114 & BIT(~romdata, 3);
break;
-
+
// update CLD
case 4:
romdata_swapped = (BIT(romdata, 0) << 3) | (BIT(romdata, 1) << 2) | (BIT(romdata, 2) << 1) | (BIT(romdata, 3) << 0);
if (m_counter_84 != 0 && romdata_swapped == (m_counter_84 ^ 0xf))
m_srff_114 = 1;
break;
-
+
// update VD
case 5:
romdata_swapped = (BIT(romdata, 0) << 3) | (BIT(romdata, 1) << 2) | (BIT(romdata, 2) << 1) | (BIT(romdata, 3) << 0);
if (m_counter_84 != 0 && romdata_swapped == (m_counter_84 ^ 0xf))
m_srff_112 = 1;
break;
-
+
// update FF == PAC & (VA | FA)
case 6:
m_srff_142 = BIT(romdata, 3);
break;
-
+
// update PH
case 7:
if (m_latch_80 != (romdata & 0x7f))
@@ -762,7 +762,7 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
break;
}
}
-
+
//==============================================
//
// Glottal circuit (patent figure 6)
@@ -787,7 +787,7 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
m_counter_224 = (m_counter_224 + 1) & 0xf;
}
}
-
+
// clock remaining glottal counters (220, 222, 236) on rising edge of phi2
if (phi2_20_rising)
{
@@ -800,7 +800,7 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
else
m_counter_220 = (m_counter_220 + 1) & 0xf;
}
-
+
// counter 222 is always enabled
if (1)
{
@@ -810,12 +810,12 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
else
m_counter_222 = (m_counter_222 + 1) & 0xf;
}
-
+
// counter 236 is always enabled
if (1)
{
m_counter_236 = (m_counter_236 + 1) & 0xf;
-
+
// rising edge of Q1 from counter 236 clocks counter 234
if ((m_counter_236 & 0x3) == 0x2)
{
@@ -825,36 +825,36 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
}
}
}
-
+
// update FGATE state
if (counter_220_tc)
m_fgate = 0;
if (counter_224_tc)
m_fgate = 1;
-
+
// apply asynchronous clear to counters 234/236
if (counter_220_tc && m_phi1_20)
m_counter_236 = m_counter_234 = 0;
-
+
// derive glottal circuit output signals
#if !TEMP_HACKS
UINT8 old_glottal_sync = m_glottal_sync;
#endif
m_glottal_sync = (m_counter_234 == 0);
glottal_out = s_glottal_wave[m_counter_234];
-
+
//==============================================
//
// Transition circuit (patent figure 3a/3b)
//
//==============================================
-
+
// divide 1.25k clock by 2 (lower-left of 46)
UINT8 old_0625_clock = m_0625_clock;
if (_125k_rising)
m_0625_clock = !m_0625_clock;
UINT8 _0625_rising = (old_0625_clock ^ m_0625_clock) & m_0625_clock;
-
+
// update counter above
if (_0625_rising)
{
@@ -863,7 +863,7 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
else
m_counter_46 = (m_counter_46 + 1) & 0xf;
}
-
+
// and then the latch to the right
if (a2_rising)
m_latch_46 = (BIT(m_counter_46, 1) << 0) |
@@ -885,21 +885,21 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
if (!(m_srff_142 & !((m_fa == 0) & (m_va == 0))) && (m_latch_46 & 0x3) == 0x3)
ram_write = 1;
break;
-
+
case 5:
if ((m_latch_46 & 0xc) == 0xc && m_srff_112)
ram_write = 1;
break;
-
+
case 6:
if ((m_latch_46 & 0xc) == 0xc && m_srff_114)
ram_write = 1;
break;
}
-
+
// gate on the phi2 clock (OR gate @ 172)
ram_write &= m_phi2;
-
+
// write the transitioned values to RAM if requested
// (note we consolidate the serial addition and clocking steps here)
if (ram_write)
@@ -907,7 +907,7 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
UINT8 old = (m_latch_168 << 4) | m_latch_170;
m_ram[a] = old - (old >> 3) + ((romdata & 0xf0) >> 3);
}
-
+
// latch some parameter values on rising edge of phi2
if (phi2_rising)
{
@@ -916,17 +916,17 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
case 2:
m_fc = m_latch_168;
break;
-
+
case 5:
m_va = m_latch_168;
break;
-
+
case 6:
m_fa = m_latch_168;
break;
}
}
-
+
// latch remaining parameter values on rising edge of (phi2 & glottal sync)
#if TEMP_HACKS
if (phi2_rising)
@@ -940,20 +940,20 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
case 0:
m_f1 = m_latch_168;
break;
-
+
case 1:
m_f2 = (m_latch_168 << 1) | (m_latch_170 >> 3);
break;
-
+
case 3:
m_f3 = m_latch_168;
break;
-
+
case 4:
m_f2q = m_latch_168;
break;
}
-
+
// latch value from RAM on rising edge of phi1
if (phi1_rising)
{
@@ -966,13 +966,13 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
// Noise generator circuit (patent figure 8)
//
//==============================================
-
+
// nose is clocked by the NOR of /FA and P1
UINT8 old_noise_clock = m_noise_clock;
m_noise_clock = !((m_fa == 0) | m_p1);
UINT8 noise_clock_rising = (old_noise_clock ^ m_noise_clock) & m_noise_clock;
UINT8 noise_clock_falling = (old_noise_clock ^ m_noise_clock) & old_noise_clock;
-
+
// falling edge clocks the shift register
if (noise_clock_falling)
{
@@ -981,20 +981,20 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
// XOR'ed input goes into d4, which shifts in to d2, then d3, then d1
// thus the full 18-bit value is effectively
//
- // d4 = (m_shift_252 >> 0) & 0x1f;
- // d2 = (m_shift_252 >> 5) & 0x1f;
- // d3 = (m_shift_252 >> 10) & 0xf;
- // d1 = (m_shift_252 >> 14) & 0xf;
+ // d4 = (m_shift_252 >> 0) & 0x1f;
+ // d2 = (m_shift_252 >> 5) & 0x1f;
+ // d3 = (m_shift_252 >> 10) & 0xf;
+ // d1 = (m_shift_252 >> 14) & 0xf;
//
// input at the low end is ((d1+4 ^ d2+5) ^ (d4+4 ^ d4+5)) ^ !(counter2 | counter3)
// output is tapped at d3+4
UINT32 old_shift = m_shift_252;
m_shift_252 <<= 1;
- m_shift_252 |= ((BIT(old_shift, 17) ^ BIT(old_shift, 9)) ^ (BIT(old_shift, 3) ^ BIT(old_shift, 4))) ^
+ m_shift_252 |= ((BIT(old_shift, 17) ^ BIT(old_shift, 9)) ^ (BIT(old_shift, 3) ^ BIT(old_shift, 4))) ^
((m_counter_250 & 0xc) == 0);
}
-
+
// rising edge clocks the counter
if (noise_clock_rising)
{
@@ -1004,7 +1004,7 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
else
m_counter_250 = (m_counter_250 + 1) & 0xf;
}
-
+
// compute final noise out signal
noise_out_digital = !(BIT(m_shift_252, 13) & (m_fgate | (m_va == 0)));
}
@@ -1132,9 +1132,9 @@ mame_printf_debug("[PH=%02X]\n", m_latch_80);
double s4_out = apply_filter(m_s4i_hist, m_s4_hist, a, b);
shift_hist(s4_out, m_s4_hist, 4);
-
+
// TODO: apply closure circuit (undocumented)
-
+
// output the current result
*dest++ = INT16(s4_out * 4000);
}
@@ -1168,24 +1168,24 @@ void votrax_sc01_device::device_start()
m_stream = stream_alloc(0, 1, m_master_clock_freq / 16);
m_phoneme_timer = timer_alloc();
m_rom = subregion("phoneme")->base();
-
+
// reset inputs
m_inflection = 0;
m_phoneme = 0x3f;
-
+
// reset outputs
m_request_func.resolve(m_request_cb, *this);
m_request_state = ASSERT_LINE;
m_internal_request = ASSERT_LINE;
-
+
// save inputs
save_item(NAME(m_inflection));
save_item(NAME(m_phoneme));
-
+
// save outputs
save_item(NAME(m_request_state));
save_item(NAME(m_internal_request));
-
+
// save timing circuit
save_item(NAME(m_master_clock_freq));
save_item(NAME(m_master_clock));
@@ -1203,14 +1203,14 @@ void votrax_sc01_device::device_start()
save_item(NAME(m_latch_42));
save_item(NAME(m_counter_84));
save_item(NAME(m_latch_92));
-
+
// save low parameter clocking
save_item(NAME(m_srff_132));
save_item(NAME(m_srff_114));
save_item(NAME(m_srff_112));
save_item(NAME(m_srff_142));
save_item(NAME(m_latch_80));
-
+
// save glottal circuit
save_item(NAME(m_counter_220));
save_item(NAME(m_counter_222));
@@ -1234,7 +1234,7 @@ void votrax_sc01_device::device_start()
save_item(NAME(m_f2q));
save_item(NAME(m_va));
save_item(NAME(m_fa));
-
+
// save noise generator circuit
save_item(NAME(m_noise_clock));
save_item(NAME(m_shift_252));
@@ -1263,11 +1263,11 @@ void votrax_sc01_device::device_reset()
{
// set the initial state
m_stream->update();
-
+
// reset inputs
m_phoneme = 0x3f;
m_request_func(m_internal_request = m_request_state = ASSERT_LINE);
-
+
// reset timing circuit
m_master_clock = 0;
m_counter_34 = 0;
@@ -1284,7 +1284,7 @@ void votrax_sc01_device::device_reset()
m_latch_42 = 0;
m_counter_84 = 0;
m_latch_92 = 0;
-
+
// reset low parameter clocking
m_srff_132 = 0;
m_srff_114 = 0;
@@ -1292,7 +1292,7 @@ void votrax_sc01_device::device_reset()
m_srff_142 = 0;
m_latch_80 = 50;
update_subphoneme_clock_period();
-
+
// reset glottal circuit
m_counter_220 = 0;
m_counter_222 = 0;
@@ -1301,7 +1301,7 @@ void votrax_sc01_device::device_reset()
m_counter_236 = 0;
m_fgate = 0;
m_glottal_sync = 0;
-
+
// reset transition circuit
m_0625_clock = 0;
m_counter_46 = 0;
@@ -1316,7 +1316,7 @@ void votrax_sc01_device::device_reset()
m_f2q = 0;
m_va = 0;
m_fa = 0;
-
+
// reset noise circuit
m_noise_clock = 0;
m_shift_252 = 0;
@@ -1339,7 +1339,7 @@ void votrax_sc01_device::device_reset()
//-------------------------------------------------
// device_clock_changed - handle dynamic clock
-// changes by altering our output frequency
+// changes by altering our output frequency
//-------------------------------------------------
void votrax_sc01_device::device_clock_changed()
@@ -1354,10 +1354,10 @@ void votrax_sc01_device::device_clock_changed()
m_stream->update();
m_stream->set_sample_rate(newfreq / 16);
}
-
+
// determine how many clock ticks remained on the phoneme timer
UINT64 remaining = m_phoneme_timer->remaining().as_ticks(m_master_clock_freq);
-
+
// recompute the master clock
m_master_clock_freq = newfreq;
@@ -1376,11 +1376,11 @@ void votrax_sc01_device::device_timer(emu_timer &timer, device_timer_id id, int
{
// force a stream update
m_stream->update();
-
+
// if we're requesting more data, no need for timing
if (m_request_state == ASSERT_LINE)
return;
-
+
// if we're supposed to have fired, do it now
if (m_internal_request == ASSERT_LINE)
{
@@ -1397,7 +1397,7 @@ mame_printf_debug("%s: REQUEST\n", timer.machine().time().as_string(3));
clocks_until_request += m_subphoneme_period - m_subphoneme_count;
clocks_until_request += m_subphoneme_period * (m_counter_84 - 1);
}
-
+
// plus 1/2
clocks_until_request = MAX(clocks_until_request, (1 << P_CLOCK_BIT) / 2);
timer.adjust(attotime::from_ticks(clocks_until_request, m_master_clock_freq));
diff --git a/src/emu/sound/votrax.h b/src/emu/sound/votrax.h
index cc757cf2905..f3cb53eb210 100644
--- a/src/emu/sound/votrax.h
+++ b/src/emu/sound/votrax.h
@@ -52,7 +52,7 @@
#define MCFG_VOTRAX_SC01_ADD(_tag, _clock, _interface) \
MCFG_DEVICE_ADD(_tag, VOTRAX_SC01, _clock) \
votrax_sc01_device::static_set_interface(*device, _interface); \
-
+
//**************************************************************************
@@ -117,7 +117,7 @@ private:
devcb_resolved_write_line m_request_func; // request callback
UINT8 m_request_state; // request as seen to the outside world
UINT8 m_internal_request; // request managed by stream timing
-
+
// timing circuit
UINT32 m_master_clock_freq; // frequency of the master clock
UINT8 m_master_clock; // master clock
@@ -137,14 +137,14 @@ private:
UINT8 m_latch_42; // D flip-flop @ 42
UINT8 m_counter_84; // 4-bit phoneme counter @ 84
UINT8 m_latch_92; // 2-bit latch @ 92
-
+
// low parameter clocking
UINT8 m_srff_132; // S/R flip-flop @ 132
UINT8 m_srff_114; // S/R flip-flop @ 114
UINT8 m_srff_112; // S/R flip-flop @ 112
UINT8 m_srff_142; // S/R flip-flop @ 142
UINT8 m_latch_80; // phoneme timing latch @ 80
-
+
// glottal circuit
UINT8 m_counter_220; // 4-bit counter @ 220
UINT8 m_counter_222; // 4-bit counter @ 222
@@ -153,7 +153,7 @@ private:
UINT8 m_counter_236; // 4-bit counter @ 236
UINT8 m_fgate; // FGATE signal
UINT8 m_glottal_sync; // Glottal Sync signal
-
+
// transition circuit
UINT8 m_0625_clock; // state of 0.625kHz clock
UINT8 m_counter_46; // 4-bit counter in block @ 46
@@ -168,24 +168,24 @@ private:
UINT8 m_f2q; // latched 4-bit F2Q value
UINT8 m_va; // latched 4-bit VA value
UINT8 m_fa; // latched 4-bit FA value
-
+
// noise generator circuit
UINT8 m_noise_clock; // clock input to noise generator
UINT32 m_shift_252; // shift register @ 252
UINT8 m_counter_250; // 4-bit counter @ 250
// stages outputs history
- double m_ni_hist[4];
- double m_no_hist[4];
- double m_va_hist[4];
- double m_s1_hist[4];
- double m_s2g_hist[4];
- double m_s2ni_hist[4];
- double m_s2n_hist[4];
- double m_s2_hist[4];
- double m_s3_hist[4];
- double m_s4i_hist[4];
- double m_s4_hist[4];
+ double m_ni_hist[4];
+ double m_no_hist[4];
+ double m_va_hist[4];
+ double m_s1_hist[4];
+ double m_s2g_hist[4];
+ double m_s2ni_hist[4];
+ double m_s2n_hist[4];
+ double m_s2_hist[4];
+ double m_s3_hist[4];
+ double m_s4i_hist[4];
+ double m_s4_hist[4];
// static tables
static const char *const s_phoneme_table[64];
diff --git a/src/emu/video/bufsprite.h b/src/emu/video/bufsprite.h
index 70efca6bda0..c841cf5bf79 100644
--- a/src/emu/video/bufsprite.h
+++ b/src/emu/video/bufsprite.h
@@ -89,12 +89,12 @@ public:
buffered_spriteram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, type, "Buffered Sprite RAM", tag, owner, clock),
m_spriteram(*owner, tag) { }
-
+
// getters
_Type *live() const { return m_spriteram; }
_Type *buffer() { return m_buffered; }
UINT32 bytes() const { return m_spriteram.bytes(); }
-
+
// operations
_Type *copy(UINT32 srcoffset = 0, UINT32 srclength = 0x7fffffff)
{
@@ -103,7 +103,7 @@ public:
memcpy(m_buffered, m_spriteram + srcoffset, MIN(srclength, m_spriteram.bytes() / sizeof(_Type) - srcoffset) * sizeof(_Type));
return m_buffered;
}
-
+
// read/write handlers
void write(address_space &space, offs_t offset, _Type data, _Type mem_mask = ~_Type(0)) { copy(); }
@@ -124,7 +124,7 @@ protected:
private:
// internal state
- required_shared_ptr<_Type> m_spriteram;
+ required_shared_ptr<_Type> m_spriteram;
dynamic_array<_Type> m_buffered;
};