Cleanups and version bump

This commit is contained in:
Miodrag Milanovic 2013-06-11 07:16:42 +00:00
parent 2dc6458ede
commit 16f5234d43
261 changed files with 3296 additions and 3347 deletions

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="ep64_cart" description="Enterprise Sixty Four cartridges">
<software name="basic">
<description>BASIC (v2.1)</description>
<year>198?</year>

View File

@ -16,7 +16,7 @@
#ifndef __RSP_H__
#define __RSP_H__
#define USE_SIMD (0)
#define USE_SIMD (0)
#if USE_SIMD
#include <tmmintrin.h>

View File

@ -2,7 +2,7 @@
dvpoints.c
Breakpoint debugger view.
Breakpoint debugger view.
****************************************************************************
@ -131,15 +131,15 @@ void debug_view_breakpoints::view_click(const int button, const debug_view_xy& p
void debug_view_breakpoints::pad_astring_to_length(astring& str, int len)
{
int diff = len - str.len();
if (diff > 0)
{
astring buffer;
buffer.expand(diff);
for (int i = 0; i < diff; i++)
buffer.catprintf(" ");
str.catprintf("%s", buffer.cstr());
}
int diff = len - str.len();
if (diff > 0)
{
astring buffer;
buffer.expand(diff);
for (int i = 0; i < diff; i++)
buffer.catprintf(" ");
str.catprintf("%s", buffer.cstr());
}
}
//-------------------------------------------------
@ -162,7 +162,7 @@ void debug_view_breakpoints::view_update()
for (device_debug::breakpoint *bp = debugInterface.breakpoint_first(); bp != NULL; bp = bp->next())
numBPs++;
bpList = new device_debug::breakpoint*[numBPs];
// Collect
int i = 1;
for (device_debug::breakpoint *bp = debugInterface.breakpoint_first(); bp != NULL; bp = bp->next())
@ -176,7 +176,7 @@ void debug_view_breakpoints::view_update()
for (int row = 0; row < m_visible.y; row++)
{
UINT32 effrow = m_topleft.y + row;
// Header
if (effrow == 0)
{
@ -195,8 +195,8 @@ void debug_view_breakpoints::view_update()
if (bpi < numBPs && bpi >= 0)
{
device_debug::breakpoint* bp = bpList[bpi];
astring buffer;
astring buffer;
buffer.printf("%x", bp->index());
pad_astring_to_length(buffer, 5);
buffer.catprintf("%c", bp->enabled() ? 'X' : 'O');
@ -213,7 +213,7 @@ void debug_view_breakpoints::view_update()
buffer.catprintf("%s", bp->action());
pad_astring_to_length(buffer, 60);
}
for (int i = 0; i < m_visible.x; i++)
{
dest->byte = (i < buffer.len()) ? buffer[i] : ' ';
@ -222,7 +222,7 @@ void debug_view_breakpoints::view_update()
}
continue;
}
// Fill the remaining vertical space
for (int i = 0; i < m_visible.x; i++)
{
@ -231,6 +231,6 @@ void debug_view_breakpoints::view_update()
dest++;
}
}
delete bpList;
}

View File

@ -2,7 +2,7 @@
dvpoints.h
Breakpoint debugger view.
Breakpoint debugger view.
****************************************************************************
@ -77,7 +77,7 @@ private:
// internal helpers
void enumerate_sources();
bool recompute(offs_t pc, int startline, int lines);
void pad_astring_to_length(astring& str, int len);
void pad_astring_to_length(astring& str, int len);
// internal state
};

View File

@ -43,7 +43,7 @@ device_card_options *device_slot_interface::static_alloc_card_options(device_t &
return options;
}
void device_slot_interface::static_set_card_machine_config(device_t &device, const char *card, const machine_config_constructor machine_config)
{
static_alloc_card_options(device, card)->m_machine_config = machine_config;

View File

@ -135,20 +135,20 @@ EMUSOUNDOBJS = \
$(EMUOBJ)/sound/flt_vol.o \
$(EMUOBJ)/sound/flt_rc.o \
$(EMUOBJ)/sound/wavwrite.o \
$(EMUOBJ)/sound/samples.o \
$(EMUOBJ)/sound/samples.o \
EMUDRIVEROBJS = \
$(EMUDRIVERS)/empty.o \
$(EMUDRIVERS)/testcpu.o \
EMUMACHINEOBJS = \
$(EMUMACHINE)/generic.o \
$(EMUMACHINE)/ram.o \
$(EMUMACHINE)/nvram.o \
$(EMUMACHINE)/generic.o \
$(EMUMACHINE)/ram.o \
$(EMUMACHINE)/nvram.o \
$(EMUMACHINE)/laserdsc.o \
$(EMUMACHINE)/net_lib.o \
$(EMUMACHINE)/netlist.o \
EMUIMAGEDEVOBJS = \
$(EMUIMAGEDEV)/bitbngr.o \
$(EMUIMAGEDEV)/cartslot.o \
@ -165,10 +165,10 @@ EMUIMAGEDEVOBJS = \
EMUVIDEOOBJS = \
$(EMUVIDEO)/generic.o \
$(EMUVIDEO)/resnet.o \
$(EMUVIDEO)/rgbutil.o \
$(EMUVIDEO)/vector.o \
$(EMUVIDEO)/generic.o \
$(EMUVIDEO)/resnet.o \
$(EMUVIDEO)/rgbutil.o \
$(EMUVIDEO)/vector.o \
LIBEMUOBJS = $(EMUOBJS) $(EMUSOUNDOBJS) $(EMUDRIVEROBJS) $(EMUMACHINEOBJS) $(EMUIMAGEDEVOBJS) $(EMUVIDEOOBJS)

View File

@ -559,16 +559,16 @@ astring running_machine::get_statename(const char *option)
statename_str.cpy("%g");
else
statename_str.cpy(option);
// strip any extension in the provided statename
int index = statename_str.rchr(0, '.');
if (index != -1)
statename_str.substr(0, index);
// handle %d in the template (for image devices)
astring statename_dev("%d_");
int pos = statename_str.find(0, statename_dev);
if (pos != -1)
{
// if more %d are found, revert to default and ignore them all
@ -578,12 +578,12 @@ astring running_machine::get_statename(const char *option)
else
{
int name_found = 0;
// find length of the device name
int end1 = statename_str.find(pos + 3, "/");
int end2 = statename_str.find(pos + 3, "%");
int end = -1;
if ((end1 != -1) && (end2 != -1))
end = MIN(end1, end2);
else if (end1 != -1)
@ -592,15 +592,15 @@ astring running_machine::get_statename(const char *option)
end = end2;
else
end = statename_str.len();
if (end - pos < 3)
fatalerror("Something very wrong is going on!!!\n");
// copy the device name to an astring
astring devname_str;
devname_str.cpysubstr(statename_str, pos + 3, end - pos - 3);
//printf("check template: %s\n", devname_str.cstr());
// verify that there is such a device for this system
image_interface_iterator iter(root_device());
for (device_image_interface *image = iter.first(); image != NULL; image = iter.next())
@ -608,30 +608,30 @@ astring running_machine::get_statename(const char *option)
// get the device name
astring tempdevname(image->brief_instance_name());
//printf("check device: %s\n", tempdevname.cstr());
if (devname_str.cmp(tempdevname) == 0)
{
// verify that such a device has an image mounted
if (image->basename_noext() != NULL)
{
astring filename(image->basename_noext());
// setup snapname and remove the %d_
statename_str.replace(0, devname_str, filename);
statename_str.del(pos, 3);
//printf("check image: %s\n", filename.cstr());
name_found = 1;
}
}
}
// or fallback to default
if (name_found == 0)
statename_str.cpy("%g");
}
}
// substitute path and gamename up front
statename_str.replace(0, "/", PATH_SEPARATOR);
statename_str.replace(0, "%g", basename());

View File

@ -41,7 +41,7 @@ void fifo7200_device::device_start()
m_ef_handler.resolve();
m_ff_handler.resolve();
m_hf_handler.resolve();
// state save
save_item(NAME(m_read_ptr));
save_item(NAME(m_write_ptr));
@ -60,11 +60,11 @@ void fifo7200_device::device_reset()
memset(m_buffer, 0, m_ram_size * sizeof(UINT16));
m_read_ptr = 0;
m_write_ptr = 0;
m_ef = 1;
m_ff = 0;
m_hf = 0;
if (!m_ef_handler.isnull()) m_ef_handler(m_ef);
if (!m_ff_handler.isnull()) m_ff_handler(m_ff);
if (!m_hf_handler.isnull()) m_hf_handler(m_hf);
@ -82,7 +82,7 @@ void fifo7200_device::fifo_write(UINT16 data)
m_buffer[m_write_ptr] = data & 0x1ff;
m_write_ptr = (m_write_ptr + 1) % m_ram_size;
// update flags
if (m_ef)
{
@ -110,7 +110,7 @@ UINT16 fifo7200_device::fifo_read()
logerror("IDT7200 %s fifo_read underflow!\n", tag());
return 0x1ff;
}
UINT16 ret = m_buffer[m_read_ptr];
m_read_ptr = (m_read_ptr + 1) % m_ram_size;
@ -126,12 +126,12 @@ UINT16 fifo7200_device::fifo_read()
m_ef = 1;
if (!m_ef_handler.isnull()) m_ef_handler(m_ef);
}
else if (((m_read_ptr + m_ram_size / 2) % m_ram_size) == m_write_ptr)
{
m_hf = 0;
if (!m_hf_handler.isnull()) m_hf_handler(m_hf);
}
return ret;
}

View File

@ -93,7 +93,7 @@ public:
DECLARE_READ_LINE_MEMBER( ef_r ) { return m_ef; }
DECLARE_READ_LINE_MEMBER( ff_r ) { return m_ff; }
DECLARE_READ_LINE_MEMBER( hf_r ) { return m_hf; }
// normal configuration
DECLARE_WRITE16_MEMBER( data_word_w ) { fifo_write(data); }
DECLARE_READ16_MEMBER( data_word_r ) { return (UINT16)fifo_read(); }
@ -113,14 +113,14 @@ private:
UINT16* m_buffer;
int m_ram_size;
int m_read_ptr;
int m_write_ptr;
int m_ef; // empty flag
int m_ff; // full flag
int m_hf; // half-full flag
devcb2_write_line m_ef_handler;
devcb2_write_line m_ff_handler;
devcb2_write_line m_hf_handler;

View File

@ -47,7 +47,7 @@ protected:
virtual void device_config_complete();
virtual void device_start();
virtual void device_reset();
adc1038_input_read_func m_input_callback_r_func;
private:

View File

@ -40,17 +40,17 @@ public:
DECLARE_WRITE8_MEMBER( conv_w );
DECLARE_READ8_MEMBER( do_r );
DECLARE_READ8_MEMBER( eoc_r );
protected:
// device-level overrides
virtual void device_config_complete();
virtual void device_start();
virtual void device_reset();
void convert(int channel, int bits16, int lsbfirst);
adc1213x_input_convert_func m_input_callback_r_func;
private:
// internal state
int m_cycle;

View File

@ -122,7 +122,7 @@ void ay31015_device::device_config_complete()
const ay31015_config *intf = reinterpret_cast<const ay31015_config *>(static_config());
if (intf != NULL)
*static_cast<ay31015_config *>(this) = *intf;
// or initialize to defaults if none provided
else
{
@ -143,13 +143,13 @@ void ay31015_device::device_start()
m_read_si.resolve(read_si_cb, *this);
m_write_so.resolve(write_so_cb, *this);
m_status_changed.resolve(status_changed_cb, *this);
m_tx_clock = transmitter_clock;
m_rx_clock = receiver_clock;
m_rx_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(ay31015_device::rx_process),this));
m_tx_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(ay31015_device::tx_process),this));
update_rx_timer();
update_tx_timer();
@ -184,7 +184,7 @@ void ay31015_device::device_reset()
{
m_control_reg = 0;
m_rx_data = 0;
internal_reset();
}
@ -566,12 +566,12 @@ void ay51013_device::internal_reset()
{
/* total pulses = 16 * data-bits */
UINT8 t1;
if (m_control_reg & CONTROL_NB2)
t1 = (m_control_reg & CONTROL_NB1) ? 8 : 7;
else
t1 = (m_control_reg & CONTROL_NB1) ? 6 : 5;
m_total_pulses = t1 << 4; /* total clock pulses to load a byte */
m_second_stop_bit = ((m_control_reg & CONTROL_TSB) ? 16 : 0); /* 2nd stop bit */
if ((t1 == 5) && (m_second_stop_bit == 16))
@ -730,4 +730,3 @@ void ay31015_device::set_transmit_data( UINT8 data )
update_status_pins();
}
}

View File

@ -74,32 +74,32 @@ public:
ay31015_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
~ay31015_device() {}
/* Set an input pin */
void set_input_pin( ay31015_input_pin_t pin, int data );
/* Get an output pin */
int get_output_pin( ay31015_output_pin_t pin );
/* Set a new transmitter clock (new_clock is in Hz) */
void set_transmitter_clock( double new_clock );
/* Set a new receiver clock (new_clock is in Hz) */
void set_receiver_clock( double new_clock );
/* Reead the received data */
/* The received data is available on RD8-RD1 (pins 5-12) */
UINT8 get_received_data();
/* Set the transmitter buffer */
/* The data to transmit is set on DB1-DB8 (pins 26-33) */
void set_transmit_data( UINT8 data );
protected:
// device-level overrides
virtual void device_config_complete();
@ -120,13 +120,13 @@ protected:
TIMER_CALLBACK_MEMBER(tx_process);
int m_pins[41];
UINT8 m_control_reg;
UINT8 m_status_reg;
UINT16 m_second_stop_bit; // 0, 8, 16
UINT16 m_total_pulses; // bits * 16
UINT8 m_internal_sample;
state_t m_rx_state;
UINT8 m_rx_data; // byte being received
UINT8 m_rx_buffer; // received byte waiting to be accepted by computer
@ -135,7 +135,7 @@ protected:
UINT16 m_rx_pulses; // total pulses left
double m_rx_clock;
emu_timer *m_rx_timer;
state_t m_tx_state;
UINT8 m_tx_data; // byte being sent
UINT8 m_tx_buffer; // next byte to send
@ -143,7 +143,7 @@ protected:
UINT16 m_tx_pulses; // total pulses left
double m_tx_clock;
emu_timer *m_tx_timer;
devcb_resolved_read8 m_read_si; /* SI - pin 20 - This will be called whenever the SI pin is sampled. Optional */
devcb_resolved_write8 m_write_so; /* SO - pin 25 - This will be called whenever data is put on the SO pin. Optional */
devcb_resolved_write8 m_status_changed; /* This will be called whenever one of the status pins may have changed. Optional */
@ -153,14 +153,14 @@ class ay51013_device : public ay31015_device
{
public:
ay51013_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
protected:
virtual void internal_reset();
};
extern const device_type AY31015; // For AY-3-1014A, AY-3-1015(D) and HD6402 variants
extern const device_type AY51013; // For AY-3-1014, AY-5-1013 and AY-6-1013 variants
extern const device_type AY31015; // For AY-3-1014A, AY-3-1015(D) and HD6402 variants
extern const device_type AY51013; // For AY-3-1014, AY-5-1013 and AY-6-1013 variants

View File

@ -48,9 +48,9 @@ const int com8116_device::divisors_32X_5_0688MHz[] =
com8116_device::com8116_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, COM8116, "COM8116", tag, owner, clock),
m_write_fx4(*this),
m_write_fr(*this),
m_write_ft(*this)
m_write_fx4(*this),
m_write_fr(*this),
m_write_ft(*this)
{
}

View File

@ -301,7 +301,7 @@ static astring &nvram_filename(astring &result, device_t &device)
running_machine &machine = device.machine();
// start with either basename or basename_biosnum
result.cpy(machine.basename());
result.cpy(machine.basename());
if (device.machine().root_device().system_bios() != 0 && device.machine().root_device().default_bios() != device.machine().root_device().system_bios())
result.catprintf("_%d", device.machine().root_device().system_bios() - 1);

View File

@ -97,7 +97,7 @@ void ide_controller_device::set_irq(int state)
LOG(("IDE interrupt assert\n"));
else
LOG(("IDE interrupt clear\n"));
/* signal an interrupt */
m_irq_handler(state);
interrupt_pending = state;
@ -885,7 +885,7 @@ READ8_MEMBER( ide_controller_device::read_via_config )
break;
}
// printf( "read via config %04x %04x %04x\n", offset, result, mem_mask );
// printf( "read via config %04x %04x %04x\n", offset, result, mem_mask );
return result;
}
@ -1009,7 +1009,7 @@ READ16_MEMBER( ide_controller_device::read_cs0 )
break;
}
// printf( "read cs0 %04x %04x %04x\n", offset, result, mem_mask );
// printf( "read cs0 %04x %04x %04x\n", offset, result, mem_mask );
/* return the result */
return result;
@ -1071,7 +1071,7 @@ READ16_MEMBER( ide_controller_device::read_cs1 )
break;
}
// printf( "read cs1 %04x %04x %04x\n", offset, result, mem_mask );
// printf( "read cs1 %04x %04x %04x\n", offset, result, mem_mask );
/* return the result */
return result;
@ -1086,7 +1086,7 @@ READ16_MEMBER( ide_controller_device::read_cs1 )
WRITE8_MEMBER( ide_controller_device::write_via_config )
{
// printf( "write via config %04x %04x %04x\n", offset, data, mem_mask );
// printf( "write via config %04x %04x %04x\n", offset, data, mem_mask );
/* logit */
LOG(("%s:IDE via config write to %X = %08X, mem_mask=%d\n", machine().describe_context(), offset, data, mem_mask));
@ -1139,7 +1139,7 @@ void ide_controller_device::write_dma( UINT16 data )
WRITE16_MEMBER( ide_controller_device::write_cs0 )
{
// printf( "write cs0 %04x %04x %04x\n", offset, data, mem_mask );
// printf( "write cs0 %04x %04x %04x\n", offset, data, mem_mask );
switch (offset)
{
@ -1229,7 +1229,7 @@ WRITE16_MEMBER( ide_controller_device::write_cs1_pc )
WRITE16_MEMBER( ide_controller_device::write_cs1 )
{
// printf( "write cs1 %04x %04x %04x\n", offset, data, mem_mask );
// printf( "write cs1 %04x %04x %04x\n", offset, data, mem_mask );
/* logit */
LOG(("%s:IDE cs1 write to %X = %08X, mem_mask=%d\n", machine().describe_context(), offset, data, mem_mask));

View File

@ -100,7 +100,7 @@ public:
DECLARE_READ16_MEMBER(read_cs1_pc);
DECLARE_WRITE16_MEMBER(write_cs0_pc);
DECLARE_WRITE16_MEMBER(write_cs1_pc);
virtual void set_irq(int state);
virtual void set_dmarq(int state);
void read_sector_done();

View File

@ -239,7 +239,7 @@ ide_hdd_device::ide_hdd_device(const machine_config &mconfig, device_type type,
void ide_hdd_device::device_start()
{
// save_item(NAME(features));
// save_item(NAME(features));
save_item(NAME(cur_cylinder));
save_item(NAME(cur_sector));

View File

@ -278,7 +278,7 @@ WRITE8_MEMBER( im6402_device::write )
}
else
{
set_tbre(CLEAR_LINE);
set_tbre(CLEAR_LINE);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -12,7 +12,7 @@ class mb14241_device : public device_t
{
public:
mb14241_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
DECLARE_WRITE8_MEMBER ( shift_count_w );
DECLARE_WRITE8_MEMBER ( shift_data_w );
DECLARE_READ8_MEMBER( shift_result_r );
@ -25,7 +25,7 @@ protected:
private:
// internal state
UINT16 m_shift_data; /* 15 bits only */
UINT8 m_shift_count; /* 3 bits */
};

View File

@ -1232,7 +1232,7 @@ void mc68901_device::register_w(offs_t offset, UINT8 data)
if (data & UCR_PARITY_EVEN)
{
if (LOG) logerror("MC68901 '%s' Parity : Even\n", tag());
parity_code = SERIAL_PARITY_EVEN;
}
else

View File

@ -99,7 +99,7 @@ void mm58274c_device::device_start()
save_item(NAME(m_minutes2));
save_item(NAME(m_seconds1));
save_item(NAME(m_seconds2));
save_item(NAME(m_tenths));
save_item(NAME(m_tenths));
}
//-------------------------------------------------
@ -109,14 +109,14 @@ void mm58274c_device::device_start()
void mm58274c_device::device_reset()
{
system_time systime;
/* get the current date/time from the core */
machine().current_datetime(systime);
m_clk_set = systime.local_time.year & 3 << 2;
if (m_mode24)
m_clk_set |= clk_set_24;
/* The clock count starts on 1st January 1900 */
m_wday = 1 + ((systime.local_time.weekday - m_day1) % 7);
m_years1 = (systime.local_time.year / 10) % 10;
@ -175,75 +175,75 @@ READ8_MEMBER( mm58274c_device::read )
reply = m_status;
m_status = 0;
break;
case 0x01: /* Tenths of Seconds */
reply = m_tenths;
break;
case 0x02: /* Units Seconds */
reply = m_seconds2;
break;
case 0x03: /* Tens Seconds */
reply = m_seconds1;
break;
case 0x04: /* Units Minutes */
reply = m_minutes2;
break;
case 0x05: /* Tens Minutes */
reply = m_minutes1;
break;
case 0x06: /* Units Hours */
reply = m_hours2;
break;
case 0x07: /* Tens Hours */
reply = m_hours1;
break;
case 0x08: /* Units Days */
reply = m_days2;
break;
case 0x09: /* Tens Days */
reply = m_days1;
break;
case 0x0a: /* Units Months */
reply = m_months2;
break;
case 0x0b: /* Tens Months */
reply = m_months1;
break;
case 0x0c: /* Units Years */
reply = m_years2;
break;
case 0x0d: /* Tens Years */
reply = m_years1;
break;
case 0x0e: /* Day of Week */
reply = m_wday;
break;
case 0x0f: /* Clock Setting & Interrupt Registers */
if (m_control & ctl_intsel) /* interrupt register */
if (m_control & ctl_intsel) /* interrupt register */
reply = m_int_ctl;
else /* clock setting register */
else /* clock setting register */
{
if (m_clk_set & clk_set_24) /* 24-hour mode */
if (m_clk_set & clk_set_24) /* 24-hour mode */
reply = m_clk_set & ~clk_set_pm;
else /* 12-hour mode */
else /* 12-hour mode */
reply = m_clk_set;
}
break;
default:
reply = 0;
break;
@ -261,90 +261,90 @@ WRITE8_MEMBER( mm58274c_device::write )
switch (offset)
{
case 0x00: /* Control Register (test mode and interrupt not emulated) */
if ((!(m_control & ctl_intstop)) && (data & ctl_intstop)) /* interrupt stop */
if ((!(m_control & ctl_intstop)) && (data & ctl_intstop)) /* interrupt stop */
m_interrupt_timer->enable(0);
else if ((m_control & ctl_intstop) && (!(data & ctl_intstop))) /* interrupt run */
else if ((m_control & ctl_intstop) && (!(data & ctl_intstop))) /* interrupt run */
{
attotime period = interrupt_period_table(m_int_ctl & int_ctl_dly);
m_interrupt_timer->adjust(period, 0, m_int_ctl & int_ctl_rpt ? period : attotime::zero);
}
if (data & ctl_clkstop) /* stopping the clock clears the tenth counter */
if (data & ctl_clkstop) /* stopping the clock clears the tenth counter */
m_tenths = 0;
m_control = data;
break;
case 0x01: /* Tenths of Seconds: cannot be written */
break;
case 0x02: /* Units Seconds */
m_seconds2 = data;
break;
case 0x03: /* Tens Seconds */
m_seconds1 = data;
break;
case 0x04: /* Units Minutes */
m_minutes2 = data;
break;
case 0x05: /* Tens Minutes */
m_minutes1 = data;
break;
case 0x06: /* Units Hours */
m_hours2 = data;
break;
case 0x07: /* Tens Hours */
m_hours1 = data;
break;
case 0x08: /* Units Days */
m_days2 = data;
break;
case 0x09: /* Tens Days */
m_days1 = data;
break;
case 0x0a: /* Units Months */
m_months2 = data;
break;
case 0x0b: /* Tens Months */
m_months1 = data;
break;
case 0x0c: /* Units Years */
m_years2 = data;
break;
case 0x0d: /* Tens Years */
m_years1 = data;
break;
case 0x0e: /* Day of Week */
m_wday = data;
break;
case 0x0f: /* Clock Setting & Interrupt Registers */
if (m_control & ctl_intsel) /* interrupt register (not emulated) */
if (m_control & ctl_intsel) /* interrupt register (not emulated) */
{
m_int_ctl = data;
if (!(m_control & ctl_intstop)) /* interrupt run */
if (!(m_control & ctl_intstop)) /* interrupt run */
{
attotime period = interrupt_period_table(m_int_ctl & int_ctl_dly);
m_interrupt_timer->adjust(period, 0, m_int_ctl & int_ctl_rpt ? period : attotime::zero);
}
}
else /* clock setting register */
else /* clock setting register */
{
m_clk_set = data;
#if 0
if (m_clk_set & clk_set_24) /* 24-hour mode */
if (m_clk_set & clk_set_24) /* 24-hour mode */
m_clk_set &= ~clk_set_pm;
#endif
}
@ -482,4 +482,3 @@ TIMER_CALLBACK_MEMBER(mm58274c_device::rtc_increment_cb)
}
}
}

View File

@ -26,7 +26,7 @@ class mm58274c_device : public device_t,
public:
mm58274c_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
~mm58274c_device() {}
DECLARE_READ8_MEMBER(read);
DECLARE_WRITE8_MEMBER(write);
@ -42,14 +42,14 @@ protected:
private:
// internal state
attotime interrupt_period_table(int val);
int m_status; /* status register (*read* from address 0 = control register) */
int m_control; /* control register (*write* to address 0) */
int m_clk_set; /* clock setting register */
int m_int_ctl; /* interrupt control register */
int m_wday; /* day of the week (1-7 (1=day1 as set in init)) */
int m_years1; /* years (BCD: 0-99) */
int m_years2;
@ -64,7 +64,7 @@ private:
int m_seconds1; /* seconds (BCD : 0-59) */
int m_seconds2;
int m_tenths; /* tenths of second (BCD : 0-9) */
emu_timer *m_increment_rtc;
emu_timer *m_interrupt_timer;
};

View File

@ -75,24 +75,24 @@ void pit8253_device::device_config_complete()
// device_start - device-specific startup
//-------------------------------------------------
void pit8253_device::common_start( int device_type )
void pit8253_device::common_start( int device_type )
{
m_device_type = device_type;
/* register for state saving */
for (int timerno = 0; timerno < PIT8253_MAX_TIMER; timerno++)
{
pit8253_timer *timer = get_timer(timerno);
/* initialize timer */
timer->clockin = m_intf_timer[timerno].clockin;
timer->updatetimer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(pit8253_device::update_timer_cb),this));
timer->updatetimer->adjust(attotime::never, timerno);
/* resolve callbacks */
timer->in_gate_func.resolve(m_intf_timer[timerno].in_gate_func, *this);
timer->out_out_func.resolve(m_intf_timer[timerno].out_out_func, *this);
/* set up state save values */
save_item(NAME(timer->clockin), timerno);
save_item(NAME(timer->control), timerno);
@ -144,20 +144,20 @@ void pit8253_device::device_reset()
timer->rmsb = timer->wmsb = 0;
timer->count = timer->value = timer->latch = 0;
timer->lowcount = 0;
if (!timer->in_gate_func.isnull())
timer->gate = timer->in_gate_func();
else
timer->gate = 1;
timer->output = 2; /* output is undetermined */
timer->latched_count = 0;
timer->latched_status = 0;
timer->null_count = 1;
timer->cycles_to_output = CYCLES_NEVER;
timer->last_updated = machine().time();
update(timer);
}
}
@ -311,7 +311,7 @@ void pit8253_device::simulate2(pit8253_timer *timer, INT64 elapsed_cycles)
LOG2(("pit8253: simulate2(): simulating %d cycles for %d in mode %d, bcd = %d, phase = %d, gate = %d, output %d, value = 0x%04x\n",
(int)elapsed_cycles, timer->index, mode, bcd, timer->phase, pit8253_gate(timer), timer->output, timer->value));
switch (mode)
switch (mode)
{
case 0:
/* Mode 0: (Interrupt on Terminal Count)
@ -342,7 +342,7 @@ void pit8253_device::simulate2(pit8253_timer *timer, INT64 elapsed_cycles)
if (elapsed_cycles >= 0 && timer->phase == 1)
{
/* Counter load cycle */
if (elapsed_cycles > 0)
if (elapsed_cycles > 0)
{
--elapsed_cycles;
timer->phase = 2;
@ -406,7 +406,7 @@ void pit8253_device::simulate2(pit8253_timer *timer, INT64 elapsed_cycles)
if (elapsed_cycles >= 0 && timer->phase == 1)
{
/* Counter load cycle, output goes low */
if (elapsed_cycles > 0)
if (elapsed_cycles > 0)
{
--elapsed_cycles;
timer->phase = 2;
@ -472,7 +472,7 @@ void pit8253_device::simulate2(pit8253_timer *timer, INT64 elapsed_cycles)
{
if (elapsed_cycles >= 0 && timer->phase == 1)
{
if (elapsed_cycles > 0)
if (elapsed_cycles > 0)
{
--elapsed_cycles;
timer->phase = 2;
@ -552,7 +552,7 @@ void pit8253_device::simulate2(pit8253_timer *timer, INT64 elapsed_cycles)
{
if (elapsed_cycles >= 0 && timer->phase == 1)
{
if (elapsed_cycles > 0)
if (elapsed_cycles > 0)
{
--elapsed_cycles;
timer->phase = 2;
@ -560,7 +560,7 @@ void pit8253_device::simulate2(pit8253_timer *timer, INT64 elapsed_cycles)
load_counter_value(timer);
}
if (elapsed_cycles > 0)
if (elapsed_cycles > 0)
{
adjusted_value = adjusted_count(bcd, timer->value);
@ -635,7 +635,7 @@ void pit8253_device::simulate2(pit8253_timer *timer, INT64 elapsed_cycles)
{
if (elapsed_cycles >= 0 && timer->phase == 1)
{
if (elapsed_cycles > 0)
if (elapsed_cycles > 0)
{
--elapsed_cycles;
timer->phase = 2;
@ -799,12 +799,12 @@ READ8_MEMBER( pit8253_device::read )
timer->rmsb = 1 - timer->rmsb;
--timer->latched_count;
}
else
else
{
value = masked_value(timer);
/* Read back current count */
switch(CTRL_ACCESS(timer->control))
switch(CTRL_ACCESS(timer->control))
{
case 0:
default:
@ -892,7 +892,7 @@ void pit8253_device::readback(pit8253_timer *timer, int command)
if (timer->latched_count == 0)
{
value = masked_value(timer);
switch(CTRL_ACCESS(timer->control))
switch(CTRL_ACCESS(timer->control))
{
case 0:
/* This should never happen */
@ -928,7 +928,7 @@ WRITE8_MEMBER( pit8253_device::write )
LOG2(("pit8253: write(): offset=%d data=0x%02x\n", offset, data));
if (timer == NULL)
if (timer == NULL)
{
/* Write to mode control register */
timer = get_timer((data >> 6) & 3);
@ -982,7 +982,7 @@ WRITE8_MEMBER( pit8253_device::write )
if (machine().time() > timer->last_updated && timer->clockin != 0)
middle_of_a_cycle = 1;
switch(CTRL_ACCESS(timer->control))
switch(CTRL_ACCESS(timer->control))
{
case 0:
/* This should never happen */
@ -1124,4 +1124,3 @@ void pit8253_device::set_clock_signal(int timerno, int state)
WRITE_LINE_MEMBER( pit8253_device::clk0_w ) { set_clock_signal(0, state); }
WRITE_LINE_MEMBER( pit8253_device::clk1_w ) { set_clock_signal(1, state); }
WRITE_LINE_MEMBER( pit8253_device::clk2_w ) { set_clock_signal(2, state); }

View File

@ -29,7 +29,7 @@
/* device types */
enum
enum
{
TYPE_PIT8253 = 0,
TYPE_PIT8254
@ -52,14 +52,14 @@ struct pit8253_timer
int index; /* index number of the timer */
double clockin; /* input clock frequency in Hz */
int clock; /* clock signal when clockin is 0 */
devcb_resolved_read_line in_gate_func; /* callback for gate input */
devcb_resolved_write_line out_out_func; /* callback function for when output changes */
attotime last_updated; /* time when last updated */
emu_timer *updatetimer; /* MAME timer to process updates */
UINT16 value; /* current counter value ("CE" in Intel docs) */
UINT16 latch; /* latched counter value ("OL" in Intel docs) */
UINT16 count; /* new counter value ("CR" in Intel docs) */
@ -69,13 +69,13 @@ struct pit8253_timer
INT32 rmsb; /* 1 = Next read is MSB of 16-bit value */
INT32 wmsb; /* 1 = Next write is MSB of 16-bit value */
INT32 output; /* 0 = low, 1 = high */
INT32 gate; /* gate input (0 = low, 1 = high) */
INT32 latched_count; /* number of bytes of count latched */
INT32 latched_status; /* 1 = status latched (8254 only) */
INT32 null_count; /* 1 = mode control or count written, 0 = count loaded */
INT32 phase; /* see phase definition tables in simulate2(), below */
UINT32 cycles_to_output; /* cycles until output callback called */
};
@ -90,20 +90,20 @@ public:
DECLARE_READ8_MEMBER(read);
DECLARE_WRITE8_MEMBER(write);
WRITE_LINE_MEMBER(clk0_w);
WRITE_LINE_MEMBER(clk1_w);
WRITE_LINE_MEMBER(clk2_w);
WRITE_LINE_MEMBER(gate0_w);
WRITE_LINE_MEMBER(gate1_w);
WRITE_LINE_MEMBER(gate2_w);
/* In the 8253/8254 the CLKx input lines can be attached to a regular clock
signal. Another option is to use the output from one timer as the input
clock to another timer.
The functions below should supply both functionalities. If the signal is
a regular clock signal, use the pit8253_set_clockin function. If the
CLKx input signal is the output of the different source, set the new_clockin
@ -113,14 +113,14 @@ public:
int get_output(int timer);
void set_clockin(int timer, double new_clockin);
protected:
// device-level overrides
virtual void device_config_complete();
virtual void device_start();
virtual void device_reset();
// internal state
void common_start(int device_type);
pit8253_timer *get_timer(int which);
@ -138,7 +138,7 @@ protected:
void set_clock_signal(int timerno, int state);
TIMER_CALLBACK_MEMBER(update_timer_cb);
int m_device_type;
pit8253_timer m_timers[PIT8253_MAX_TIMER];

View File

@ -89,7 +89,7 @@ READ16_MEMBER(rf5c296_device::io_r)
case 0x3e1:
data = reg_r(m_rf5c296_reg);
break;
default:
data = m_pccard->read_memory(space, offset, mem_mask);
break;

View File

@ -3,8 +3,8 @@
RP5H01
TODO:
- follow the datasheet better (all dumps presumably needs to be redone
from scratch?)
- follow the datasheet better (all dumps presumably needs to be redone
from scratch?)
***************************************************************************/
@ -187,5 +187,3 @@ READ8_MEMBER( rp5h01_device::data_r )
/* return the data */
return (m_data[byte] >> bit) & 1;
}

View File

@ -27,7 +27,7 @@ class rp5h01_device : public device_t
{
public:
rp5h01_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
DECLARE_WRITE8_MEMBER( enable_w ); /* /CE */
DECLARE_WRITE8_MEMBER( reset_w ); /* RESET */
DECLARE_WRITE8_MEMBER( cs_w ); /* CS */

View File

@ -46,7 +46,7 @@ void serflash_device::device_reset()
{
m_flash_enab = 0;
flash_hard_reset(machine());
m_last_flash_cmd = 0x00;
m_flash_addr_seq = 0;
m_flash_addr = 0;
@ -61,7 +61,6 @@ void serflash_device::device_reset()
void serflash_device::nvram_default()
{
}
@ -98,7 +97,6 @@ void serflash_device::nvram_read(emu_file &file)
void serflash_device::nvram_write(emu_file &file)
{
if (m_length % FLASH_PAGE_SIZE) return; // region size must be multiple of flash page size
int size = m_length /= FLASH_PAGE_SIZE;
@ -167,7 +165,7 @@ WRITE8_MEMBER( serflash_device::flash_cmd_w )
switch (data)
{
case 0x00: // READ
case 0x00: // READ
m_flash_addr_seq = 0;
break;
@ -175,21 +173,21 @@ WRITE8_MEMBER( serflash_device::flash_cmd_w )
m_flash_addr_seq = 0;
break;
case 0x70: // READ STATUS
case 0x70: // READ STATUS
flash_change_state( space.machine(), STATE_READ_STATUS );
break;
case 0x80: // PAGE / CACHE PROGRAM
case 0x80: // PAGE / CACHE PROGRAM
m_flash_addr_seq = 0;
// this actually seems to be set with the next 2 writes?
m_flash_page_addr = 0;
break;
case 0x90: // READ ID
case 0x90: // READ ID
flash_change_state( space.machine(), STATE_READ_ID );
break;
case 0xff: // RESET
case 0xff: // RESET
flash_change_state( space.machine(), STATE_IDLE );
break;
@ -203,11 +201,9 @@ WRITE8_MEMBER( serflash_device::flash_cmd_w )
{
switch (m_flash_cmd_prev)
{
case 0x00: // READ
case 0x00: // READ
if (data == 0x30)
{
memcpy(m_flash_page_data, m_region + m_flash_row * FLASH_PAGE_SIZE, FLASH_PAGE_SIZE);
m_flash_page_addr = m_flash_col;
m_flash_page_index = m_flash_row;
@ -306,16 +302,16 @@ READ8_MEMBER( serflash_device::flash_io_r )
switch( m_flash_read_seq++ )
{
case 0:
data = 0xEC; // Manufacturer
data = 0xEC; // Manufacturer
break;
case 1:
data = 0xF1; // Device
data = 0xF1; // Device
break;
case 2:
data = 0x00; // XX
data = 0x00; // XX
break;
case 3:
data = 0x15; // Flags
data = 0x15; // Flags
m_flash_read_seq = 0;
break;
}
@ -342,7 +338,7 @@ READ8_MEMBER( serflash_device::flash_io_r )
default:
{
// logerror("%08x FLASH: unknown read in state %s\n",0x00/*m_maincpu->pc()*/, m_flash_state_name[m_flash_state]);
// logerror("%08x FLASH: unknown read in state %s\n",0x00/*m_maincpu->pc()*/, m_flash_state_name[m_flash_state]);
}
}
@ -412,4 +408,3 @@ WRITE8_MEMBER(serflash_device::n3d_flash_addr_w)
logerror("set flash block to %08x\n", m_flash_addr);
}
}

View File

@ -6,7 +6,7 @@
#define __SERFLASH_H__
#define FLASH_PAGE_SIZE (2048+64)
#define FLASH_PAGE_SIZE (2048+64)
@ -18,16 +18,15 @@
//**************************************************************************
#define MCFG_SERFLASH_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, SERFLASH, 0) \
MCFG_DEVICE_ADD(_tag, SERFLASH, 0)
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
class serflash_device;
typedef enum { STATE_IDLE = 0, STATE_READ, STATE_READ_ID, STATE_READ_STATUS, STATE_BLOCK_ERASE, STATE_PAGE_PROGRAM } flash_state_t;
//const char *m_flash_state_name[] = { "IDLE", "READ", "READ_ID", "READ_STATUS", "BLOCK ERASE", "PAGE PROGRAM" };
typedef enum { STATE_IDLE = 0, STATE_READ, STATE_READ_ID, STATE_READ_STATUS, STATE_BLOCK_ERASE, STATE_PAGE_PROGRAM } flash_state_t;
//const char *m_flash_state_name[] = { "IDLE", "READ", "READ_ID", "READ_STATUS", "BLOCK ERASE", "PAGE PROGRAM" };
// custom initialization for default state
typedef device_delegate<void (serflash_device &, void *, size_t)> serflash_init_delegate;
@ -105,4 +104,3 @@ extern const device_type SERFLASH;
#endif

View File

@ -85,14 +85,14 @@ tms6100_device::tms6100_device(const machine_config &mconfig, const char *tag, d
: device_t(mconfig, TMS6100, "TMS6100", tag, owner, clock)
{
}
const device_type M58819 = &device_creator<m58819_device>;
m58819_device::m58819_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: tms6100_device(mconfig, M58819, "M58819", tag, owner, clock)
{
}
//-------------------------------------------------
// device_config_complete - perform any
// operations now that the configuration is
@ -231,5 +231,3 @@ READ_LINE_MEMBER(tms6100_device::tms6100_data_r)
{
return m_data;
}

View File

@ -10,7 +10,7 @@ class tms6100_device : public device_t
public:
tms6100_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
tms6100_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
DECLARE_WRITE_LINE_MEMBER( tms6100_m0_w );
DECLARE_WRITE_LINE_MEMBER( tms6100_m1_w );
DECLARE_WRITE_LINE_MEMBER( tms6100_romclock_w );
@ -34,8 +34,8 @@ private:
UINT8 m_tms_clock;
UINT8 m_data;
UINT8 m_state;
const UINT8 *m_rom;
const UINT8 *m_rom;
};

View File

@ -20,8 +20,8 @@
TODO:
- devcb2
- i8274 DMA scheme
- devcb2
- i8274 DMA scheme
- break detection
- wr0 reset tx interrupt pending
- wait/ready
@ -494,7 +494,7 @@ z80dart_channel::z80dart_channel(const machine_config &mconfig, const char *tag,
{
m_rx_data_fifo[i] = 0;
m_rx_error_fifo[i] = 0;
}
}
}
@ -929,7 +929,7 @@ void z80dart_channel::control_write(UINT8 data)
LOG(("Z80DART \"%s\" Channel %c : Parity %s\n", m_owner->tag(), 'A' + m_index, (data & WR4_PARITY_EVEN) ? "Even" : "Odd"));
LOG(("Z80DART \"%s\" Channel %c : Stop Bits %f\n", m_owner->tag(), 'A' + m_index, get_stop_bits()));
LOG(("Z80DART \"%s\" Channel %c : Clock Mode %uX\n", m_owner->tag(), 'A' + m_index, get_clock_mode()));
update_serial();
break;
@ -1279,7 +1279,7 @@ void z80dart_channel::update_serial()
{
if (m_wr[1] & WR4_PARITY_EVEN)
parity_code = SERIAL_PARITY_EVEN;
else
else
parity_code = SERIAL_PARITY_ODD;
}

View File

@ -360,18 +360,18 @@ protected:
enum
{
WR2_DATA_XFER_INT = 0x00, // not supported
WR2_DATA_XFER_DMA_INT = 0x01, // not supported
WR2_DATA_XFER_DMA = 0x02, // not supported
WR2_DATA_XFER_ILLEGAL = 0x03, // not supported
WR2_DATA_XFER_MASK = 0x03, // not supported
WR2_PRIORITY = 0x04, // not supported
WR2_MODE_8085_1 = 0x00, // not supported
WR2_MODE_8085_2 = 0x08, // not supported
WR2_MODE_8086_8088 = 0x10, // not supported
WR2_MODE_ILLEGAL = 0x18, // not supported
WR2_MODE_MASK = 0x18, // not supported
WR2_VECTORED_INT = 0x20, // not supported
WR2_DATA_XFER_INT = 0x00, // not supported
WR2_DATA_XFER_DMA_INT = 0x01, // not supported
WR2_DATA_XFER_DMA = 0x02, // not supported
WR2_DATA_XFER_ILLEGAL = 0x03, // not supported
WR2_DATA_XFER_MASK = 0x03, // not supported
WR2_PRIORITY = 0x04, // not supported
WR2_MODE_8085_1 = 0x00, // not supported
WR2_MODE_8085_2 = 0x08, // not supported
WR2_MODE_8086_8088 = 0x10, // not supported
WR2_MODE_ILLEGAL = 0x18, // not supported
WR2_MODE_MASK = 0x18, // not supported
WR2_VECTORED_INT = 0x20, // not supported
WR2_PIN10_SYNDETB_RTSB = 0x80 // not supported
};

View File

@ -937,23 +937,23 @@ private:
// device delegate macros
#define READ8_DELEGATE(_class, _member) read8_delegate(FUNC(_class::_member), this)
#define WRITE8_DELEGATE(_class, _member) write8_delegate(FUNC(_class::_member), this)
#define READ16_DELEGATE(_class, _member) read16_delegate(FUNC(_class::_member), this)
#define WRITE16_DELEGATE(_class, _member) write16_delegate(FUNC(_class::_member), this)
#define READ32_DELEGATE(_class, _member) read32_delegate(FUNC(_class::_member), this)
#define WRITE32_DELEGATE(_class, _member) write32_delegate(FUNC(_class::_member), this)
#define READ64_DELEGATE(_class, _member) read64_delegate(FUNC(_class::_member), this)
#define WRITE64_DELEGATE(_class, _member) write64_delegate(FUNC(_class::_member), this)
#define READ8_DELEGATE(_class, _member) read8_delegate(FUNC(_class::_member), this)
#define WRITE8_DELEGATE(_class, _member) write8_delegate(FUNC(_class::_member), this)
#define READ16_DELEGATE(_class, _member) read16_delegate(FUNC(_class::_member), this)
#define WRITE16_DELEGATE(_class, _member) write16_delegate(FUNC(_class::_member), this)
#define READ32_DELEGATE(_class, _member) read32_delegate(FUNC(_class::_member), this)
#define WRITE32_DELEGATE(_class, _member) write32_delegate(FUNC(_class::_member), this)
#define READ64_DELEGATE(_class, _member) read64_delegate(FUNC(_class::_member), this)
#define WRITE64_DELEGATE(_class, _member) write64_delegate(FUNC(_class::_member), this)
#define READ8_DEVICE_DELEGATE(_device, _class, _member) read8_delegate(FUNC(_class::_member), (_class *)_device)
#define WRITE8_DEVICE_DELEGATE(_device, _class, _member) write8_delegate(FUNC(_class::_member), (_class *)_device)
#define READ16_DEVICE_DELEGATE(_device, _class, _member) read16_delegate(FUNC(_class::_member), (_class *)_device)
#define WRITE16_DEVICE_DELEGATE(_device, _class, _member) write16_delegate(FUNC(_class::_member), (_class *)_device)
#define READ32_DEVICE_DELEGATE(_device, _class, _member) read32_delegate(FUNC(_class::_member), (_class *)_device)
#define WRITE32_DEVICE_DELEGATE(_device, _class, _member) write32_delegate(FUNC(_class::_member), (_class *)_device)
#define READ64_DEVICE_DELEGATE(_device, _class, _member) read64_delegate(FUNC(_class::_member), (_class *)_device)
#define WRITE64_DEVICE_DELEGATE(_device, _class, _member) write64_delegate(FUNC(_class::_member), (_class *)_device)
#define READ8_DEVICE_DELEGATE(_device, _class, _member) read8_delegate(FUNC(_class::_member), (_class *)_device)
#define WRITE8_DEVICE_DELEGATE(_device, _class, _member) write8_delegate(FUNC(_class::_member), (_class *)_device)
#define READ16_DEVICE_DELEGATE(_device, _class, _member) read16_delegate(FUNC(_class::_member), (_class *)_device)
#define WRITE16_DEVICE_DELEGATE(_device, _class, _member) write16_delegate(FUNC(_class::_member), (_class *)_device)
#define READ32_DEVICE_DELEGATE(_device, _class, _member) read32_delegate(FUNC(_class::_member), (_class *)_device)
#define WRITE32_DEVICE_DELEGATE(_device, _class, _member) write32_delegate(FUNC(_class::_member), (_class *)_device)
#define READ64_DEVICE_DELEGATE(_device, _class, _member) read64_delegate(FUNC(_class::_member), (_class *)_device)
#define WRITE64_DEVICE_DELEGATE(_device, _class, _member) write64_delegate(FUNC(_class::_member), (_class *)_device)
// helper macro for merging data with the memory mask

View File

@ -85,14 +85,14 @@ void msm5205_device::device_config_complete()
const msm5205_interface *intf = reinterpret_cast<const msm5205_interface *>(static_config());
if (intf != NULL)
*static_cast<msm5205_interface *>(this) = *intf;
// or initialize to defaults if none provided
else
{
memset(&m_vclk_cb, 0, sizeof(m_vclk_cb));
m_select = 0;
}
}
//-------------------------------------------------
@ -103,14 +103,14 @@ void msm5205_device::device_start()
{
m_mod_clock = clock();
m_vclk_callback.resolve(m_vclk_cb, *this);
/* compute the difference tables */
compute_tables();
/* stream system initialize */
m_stream = machine().sound().stream_alloc(*this, 0, 1, clock(), this);
m_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(msm5205_device::vclk_callback), this));
/* register for save states */
save_item(NAME(m_mod_clock));
save_item(NAME(m_data));
@ -127,14 +127,14 @@ void msm5205_device::device_start()
//-------------------------------------------------
void msm5205_device::device_reset()
{
{
/* initialize work */
m_data = 0;
m_vclk = 0;
m_reset = 0;
m_signal = 0;
m_step = 0;
/* timer and bitwidth set */
playmode_w(m_select);
}
@ -189,7 +189,7 @@ TIMER_CALLBACK_MEMBER( msm5205_device::vclk_callback )
int new_signal;
/* callback user handler and latch next data */
if (!m_vclk_callback.isnull())
if (!m_vclk_callback.isnull())
m_vclk_callback(1);
/* reset check at last hiedge of VCLK */
@ -237,7 +237,7 @@ void msm5205_device::vclk_w(int vclk)
if (m_vclk != vclk)
{
m_vclk = vclk;
if (!vclk)
if (!vclk)
vclk_callback(this, 0);
}
}
@ -325,7 +325,7 @@ void msm5205_device::change_clock_w(INT32 clock)
void msm5205_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
{
stream_sample_t *buffer = outputs[0];
/* if this voice is active */
if(m_signal)
{

View File

@ -27,7 +27,7 @@
the sp0256_start() call.
If the memory map contents is modified during execution (accross of ROM
bank switching) the bitrevbuff() call must be called after the section
bank switching) the bitrevbuff() call must be called after the section
of ROM is modified.
*/
@ -112,14 +112,14 @@ void sp0256_device::device_config_complete()
const sp0256_interface *intf = reinterpret_cast<const sp0256_interface *>(static_config());
if (intf != NULL)
*static_cast<sp0256_interface *>(this) = *intf;
// or initialize to defaults if none provided
else
{
memset(&m_lrq_cb, 0, sizeof(m_lrq_cb));
memset(&m_sby_cb, 0, sizeof(m_sby_cb));
}
}
//-------------------------------------------------
@ -132,14 +132,14 @@ void sp0256_device::device_start()
m_sby.resolve(m_sby_cb, *this);
m_drq(1);
m_sby(1);
m_stream = machine().sound().stream_alloc(*this, 0, 1, clock() / CLOCK_DIVIDER, this);
/* -------------------------------------------------------------------- */
/* Configure our internal variables. */
/* -------------------------------------------------------------------- */
m_filt.rng = 1;
/* -------------------------------------------------------------------- */
/* Allocate a scratch buffer for generating ~10kHz samples. */
/* -------------------------------------------------------------------- */
@ -147,7 +147,7 @@ void sp0256_device::device_start()
save_pointer(NAME(m_scratch), SCBUF_SIZE);
m_sc_head = m_sc_tail = 0;
/* -------------------------------------------------------------------- */
/* Set up the microsequencer's initial state. */
/* -------------------------------------------------------------------- */
@ -156,7 +156,7 @@ void sp0256_device::device_start()
m_lrq = 0x8000;
m_page = 0x1000 << 3;
m_silent = 1;
/* -------------------------------------------------------------------- */
/* Setup the ROM. */
/* -------------------------------------------------------------------- */
@ -165,7 +165,7 @@ void sp0256_device::device_start()
// see http://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=72385#Post72385
// TODO: because of this, check if the bitrev functions are even used anywhere else
// bitrevbuff(m_rom, 0, 0xffff);
m_lrq_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sp0256_device::set_lrq_timer_proc),this));
// save device variables
@ -208,7 +208,7 @@ void sp0256_device::device_reset()
{
// reset FIFO and SP0256
m_fifo_head = m_fifo_tail = m_fifo_bitp = 0;
memset(&m_filt, 0, sizeof(m_filt));
m_halted = 1;
m_filt.rpt = -1;
@ -223,7 +223,7 @@ void sp0256_device::device_reset()
m_silent = 1;
m_drq(1);
SET_SBY(1)
m_lrq = 0;
m_lrq_timer->adjust(attotime::from_ticks(50, m_clock));
}
@ -1196,7 +1196,7 @@ WRITE8_MEMBER( sp0256_device::ald_w )
LOG(("sp0256: Droped ALD write\n"));
return;
}
/* ---------------------------------------------------------------- */
/* Set LRQ to "busy" and load the 8 LSBs of the data into the ALD */
/* reg. We take the command address, and multiply by 2 bytes to */
@ -1206,7 +1206,7 @@ WRITE8_MEMBER( sp0256_device::ald_w )
m_ald = (0xff & data) << 4;
m_drq(0);
SET_SBY(0)
return;
}
@ -1214,13 +1214,13 @@ READ_LINE_MEMBER( sp0256_device::lrq_r )
{
// force stream update
m_stream->update();
return m_lrq == 0x8000;
}
READ_LINE_MEMBER( sp0256_device::sby_r )
{
// TODO: force stream update??
// TODO: force stream update??
return m_sby_line;
}
@ -1234,7 +1234,7 @@ READ16_MEMBER( sp0256_device::spb640_r )
{
return m_lrq;
}
/* -------------------------------------------------------------------- */
/* Offset 1 returns the SPB640 FIFO full status on bit 15. */
/* -------------------------------------------------------------------- */
@ -1242,7 +1242,7 @@ READ16_MEMBER( sp0256_device::spb640_r )
{
return (m_fifo_head - m_fifo_tail) >= 64 ? 0x8000 : 0;
}
/* -------------------------------------------------------------------- */
/* Just return 255 for all other addresses in our range. */
/* -------------------------------------------------------------------- */
@ -1256,20 +1256,20 @@ WRITE16_MEMBER( sp0256_device::spb640_w )
ald_w(space, 0, data & 0xff);
return;
}
if (offset == 1)
{
/* ---------------------------------------------------------------- */
/* If Bit 10 is set, reset the FIFO, and SP0256. */
/* ---------------------------------------------------------------- */
if (data & 0x400)
{
m_fifo_head = m_fifo_tail = m_fifo_bitp = 0;
device_reset();
return;
}
/* ---------------------------------------------------------------- */
/* If the FIFO is full, drop the data. */
/* ---------------------------------------------------------------- */
@ -1278,16 +1278,16 @@ WRITE16_MEMBER( sp0256_device::spb640_w )
LOG(("spb640: Dropped FIFO write\n"));
return;
}
/* ---------------------------------------------------------------- */
/* FIFO up the lower 10 bits of the data. */
/* ---------------------------------------------------------------- */
LOG(("spb640: WR_FIFO %.3X %d.%d %d\n", data & 0x3ff,
m_fifo_tail, m_fifo_bitp, m_fifo_head));
m_fifo_tail, m_fifo_bitp, m_fifo_head));
m_fifo[m_fifo_head++ & 63] = data & 0x3ff;
return;
}
}
@ -1313,31 +1313,31 @@ void sp0256_device::sound_stream_update(sound_stream &stream, stream_sample_t **
stream_sample_t *output = outputs[0];
int output_index = 0;
int length, did_samp/*, old_idx*/;
while (output_index < samples)
{
/* ---------------------------------------------------------------- */
/* First, drain as much of our scratch buffer as we can into the */
/* sound buffer. */
/* ---------------------------------------------------------------- */
while (m_sc_tail != m_sc_head)
{
output[output_index++] = m_scratch[m_sc_tail++ & SCBUF_MASK];
m_sc_tail &= SCBUF_MASK;
if (output_index > samples)
break;
}
/* ---------------------------------------------------------------- */
/* If output outputs is full, then we're done. */
/* ---------------------------------------------------------------- */
if (output_index > samples)
break;
length = samples - output_index;
/* ---------------------------------------------------------------- */
/* Process the current set of filter coefficients as long as the */
/* repeat count holds up and we have room in our scratch buffer. */
@ -1347,26 +1347,26 @@ void sp0256_device::sound_stream_update(sound_stream &stream, stream_sample_t **
if (length > 0) do
{
int do_samp;
/* ------------------------------------------------------------ */
/* If our repeat count expired, emulate the microsequencer. */
/* ------------------------------------------------------------ */
if (m_filt.rpt <= 0)
micro();
/* ------------------------------------------------------------ */
/* Do as many samples as we can. */
/* ------------------------------------------------------------ */
do_samp = length - did_samp;
if (m_sc_head + do_samp - m_sc_tail > SCBUF_SIZE)
do_samp = m_sc_tail + SCBUF_SIZE - m_sc_head;
if (do_samp == 0) break;
if (m_silent && m_filt.rpt <= 0)
{
int y = m_sc_head;
for (int x = 0; x < do_samp; x++)
m_scratch[y++ & SCBUF_MASK] = 0;
m_sc_head += do_samp;
@ -1375,11 +1375,11 @@ void sp0256_device::sound_stream_update(sound_stream &stream, stream_sample_t **
else
{
did_samp += lpc12_update(&m_filt, do_samp,
m_scratch, &m_sc_head);
m_scratch, &m_sc_head);
}
m_sc_head &= SCBUF_MASK;
} while (m_filt.rpt >= 0 && length > did_samp);
}
}

View File

@ -81,11 +81,11 @@ public:
DECLARE_READ_LINE_MEMBER(sby_r);
DECLARE_READ16_MEMBER(spb640_r);
DECLARE_WRITE16_MEMBER(spb640_w);
TIMER_CALLBACK_MEMBER(set_lrq_timer_proc);
void set_clock(int clock);
void bitrevbuff(UINT8 *buffer, unsigned int start, unsigned int length);
protected:
// device-level overrides
virtual void device_config_complete();
@ -97,20 +97,20 @@ protected:
private:
UINT32 getb(int len);
void micro();
sound_stream *m_stream; /* MAME core sound stream */
devcb_resolved_write_line m_drq; /* Data request callback */
devcb_resolved_write_line m_sby; /* Standby callback */
int m_sby_line; /* Standby line state */
int m_cur_len; /* Fullness of current sound buffer. */
int m_silent; /* Flag: SP0256 is silent. */
INT16 *m_scratch; /* Scratch buffer for audio. */
UINT32 m_sc_head; /* Head pointer into scratch circular buf */
UINT32 m_sc_tail; /* Tail pointer into scratch circular buf */
struct lpc12_t m_filt; /* 12-pole filter */
int m_lrq; /* Load ReQuest. == 0 if we can accept a load */
int m_ald; /* Address LoaD. < 0 if no command pending. */
@ -120,12 +120,12 @@ private:
int m_halted; /* True when CPU is halted. */
UINT32 m_mode; /* Mode register. */
UINT32 m_page; /* Page set by SETPAGE */
UINT32 m_fifo_head; /* FIFO head pointer (where new data goes). */
UINT32 m_fifo_tail; /* FIFO tail pointer (where data comes from). */
UINT32 m_fifo_bitp; /* FIFO bit-pointer (for partial decles). */
UINT16 m_fifo[64]; /* The 64-decle FIFO. */
UINT8 *m_rom; /* 64K ROM. */
emu_timer *m_lrq_timer;

View File

@ -99,7 +99,7 @@ void speaker_sound_device::device_config_complete()
const speaker_interface *intf = reinterpret_cast<const speaker_interface *>(static_config());
if (intf != NULL)
*static_cast<speaker_interface *>(this) = *intf;
// or initialize to defaults if none provided
else
{
@ -116,7 +116,7 @@ void speaker_sound_device::device_start()
{
int i;
double x;
m_channel = machine().sound().stream_alloc(*this, 0, 1, machine().sample_rate(), this);
m_level = 0;
@ -137,7 +137,7 @@ void speaker_sound_device::device_start()
/* Note: To avoid time drift due to floating point inaccuracies,
* it is good if the speaker time synchronizes itself with the stream timing regularly.
*/
/* Compute filter kernel; */
/* (Done for each device though the data is shared...
* No problem really, but should be done as part of system init if I knew how)
@ -157,8 +157,8 @@ void speaker_sound_device::device_start()
#define FILTER_STEP (M_PI / 2 / RATE_MULTIPLIER)
/* Distribute symmetrically on x axis; center has x=0 if length is odd */
for (i = 0, x = (0.5 - FILTER_LENGTH / 2.) * FILTER_STEP;
i < FILTER_LENGTH;
i++, x += FILTER_STEP)
i < FILTER_LENGTH;
i++, x += FILTER_STEP)
{
if (x == 0)
m_ampl[i] = 1;
@ -180,7 +180,7 @@ void speaker_sound_device::device_start()
save_item(NAME(m_channel_last_sample_time));
save_item(NAME(m_interm_sample_index));
save_item(NAME(m_last_update_time));
machine().save().register_postload(save_prepost_delegate(FUNC(speaker_sound_device::speaker_postload), this));
}
@ -201,35 +201,35 @@ void speaker_sound_device::sound_stream_update(sound_stream &stream, stream_samp
int volume = m_levels[m_level];
double filtered_volume;
attotime sampled_time = attotime::zero;
if (samples > 0)
{
/* Prepare to update time state */
sampled_time = attotime(0, m_channel_sample_period);
if (samples > 1)
sampled_time *= samples;
/* Note: since the stream is in the process of being updated,
* stream->sample_time() will return the time before the update! (MAME 0.130)
* Avoid using it here in order to avoid a subtle dependence on the stream implementation.
*/
}
if (samples-- > 0)
{
/* Note that first interm. sample may be composed... */
filtered_volume = update_interm_samples_get_filtered_volume(volume);
/* Composite volume is now quantized to the stream resolution */
*buffer++ = (stream_sample_t)filtered_volume;
/* Any additional samples will be homogeneous, however may need filtering across samples: */
while (samples-- > 0)
{
filtered_volume = update_interm_samples_get_filtered_volume(volume);
*buffer++ = (stream_sample_t)filtered_volume;
}
/* Update the time state */
m_channel_last_sample_time += sampled_time;
m_channel_next_sample_time = m_channel_last_sample_time + attotime(0, m_channel_sample_period);
@ -289,7 +289,7 @@ void speaker_sound_device::level_w(int new_level)
/* Finally update speaker state before returning */
m_level = new_level;
}
@ -394,5 +394,3 @@ double speaker_sound_device::get_filtered_volume()
return filtered_volume;
}

View File

@ -12,7 +12,7 @@
#define __SOUND_SPEAKER_H__
// Length of anti-aliasing filter kernel, measured in number of intermediate samples
enum
enum
{
FILTER_LENGTH = 64
};
@ -48,21 +48,21 @@ private:
// Updates the composed volume array according to time
void update_interm_samples(attotime time, int volume);
// Updates the composed volume array and returns final filtered volume of next stream sample
double update_interm_samples_get_filtered_volume(int volume);
void finalize_interm_sample(int volume);
void init_next_interm_sample();
inline double make_fraction(attotime a, attotime b, double timediv);
double get_filtered_volume();
// Kernel (pulse response) for filtering across samples (while we avoid fancy filtering within samples)
double m_ampl[FILTER_LENGTH];
sound_stream *m_channel;
int m_level;
/* The volume of a composed sample grows incrementally each time the speaker is over-sampled.
* That is in effect a basic average filter.
* Another filter can and will be applied to the array of composed samples.

View File

@ -1136,7 +1136,7 @@ void ymf271_device::write_register(int slotnum, int reg, int data)
slot->ch3_level = data & 0xf;
break;
}
default:
break;
}
@ -1318,7 +1318,7 @@ void ymf271_device::device_timer(emu_timer &timer, device_timer_id id, int param
if (!m_irq_handler.isnull())
m_irq_handler(1);
}
// reload timer
m_timA->adjust(attotime::from_hz(m_clock) * (384 * 4 * (256 - m_timerA)), 0);
break;
@ -1334,7 +1334,7 @@ void ymf271_device::device_timer(emu_timer &timer, device_timer_id id, int param
if (!m_irq_handler.isnull())
m_irq_handler(1);
}
// reload timer
m_timB->adjust(attotime::from_hz(m_clock) * (384 * 16 * (256 - m_timerB)), 0);
break;
@ -1447,7 +1447,7 @@ void ymf271_device::ymf271_write_timer(int data)
if (!m_ext_rw && !m_ext_write_handler.isnull())
m_ext_write_handler(m_ext_address, data);
break;
default:
break;
}
@ -1737,11 +1737,11 @@ void ymf271_device::device_reset()
m_slots[i].active = 0;
m_slots[i].volume = 0;
}
// reset timers and IRQ
m_timA->reset();
m_timB->reset();
m_irqstate = 0;
m_status = 0;
m_enable = 0;

View File

@ -17,7 +17,7 @@
8-bit PCM, 16-bit PCM ...... 0.172 to 88.2kHz in 512 steps
256 steps total level and 16 steps panpot can be set
Voice signal is output in stereo 16-bit 2's complement MSB-first format
TODO:
- Is memory handling 100% correct? At the moment, Konami firebeat.c is the only
hardware currently emulated that uses external handlers.

View File

@ -41,9 +41,9 @@ const device_type CDP1861 = &device_creator<cdp1861_device>;
cdp1861_device::cdp1861_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, CDP1861, "CDP1861", tag, owner, clock),
m_write_irq(*this),
m_write_dma_out(*this),
m_write_efx(*this)
m_write_irq(*this),
m_write_dma_out(*this),
m_write_efx(*this)
{
}

View File

@ -78,9 +78,9 @@ inline void cdp1862_device::initialize_palette()
cdp1862_device::cdp1862_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, CDP1862, "CDP1862", tag, owner, clock),
m_read_rd(*this),
m_read_bd(*this),
m_read_gd(*this)
m_read_rd(*this),
m_read_bd(*this),
m_read_gd(*this)
{
}

View File

@ -67,7 +67,7 @@ private:
HUC6270_VDW,
HUC6270_VCR
};
enum huc6270_h_state {
HUC6270_HDS,
HUC6270_HDW,

View File

@ -198,7 +198,7 @@ READ8_MEMBER( msm6255_device::ir_r )
//-------------------------------------------------
// ir_w -
// ir_w -
//-------------------------------------------------
WRITE8_MEMBER( msm6255_device::ir_w )
@ -257,7 +257,7 @@ READ8_MEMBER( msm6255_device::dr_r )
//-------------------------------------------------
// dr_w -
// dr_w -
//-------------------------------------------------
WRITE8_MEMBER( msm6255_device::dr_w )

View File

@ -85,14 +85,14 @@ void tms9927_device::device_start()
{
assert(clock() > 0);
assert(m_hpixels_per_column > 0);
/* copy the initial parameters */
m_clock = clock();
/* get the screen device */
m_screen = downcast<screen_device *>(machine().device(m_screen_tag));
assert(m_screen != NULL);
/* get the self-load PROM */
if (m_selfload_region != NULL)
{
@ -102,7 +102,7 @@ void tms9927_device::device_start()
/* register for state saving */
machine().save().register_postload(save_prepost_delegate(FUNC(tms9927_device::state_postload), this));
save_item(NAME(m_reg));
save_item(NAME(m_start_datarow));
save_item(NAME(m_reset));
@ -123,11 +123,11 @@ void tms9927_device::device_reset()
void tms9927_device::device_stop()
{
mame_printf_debug("TMS9937: Final params: (%d, %d, %d, %d, %d, %d, %d)\n",
m_clock,
m_total_hpix,
0, m_visible_hpix,
m_total_vpix,
0, m_visible_vpix);
m_clock,
m_total_hpix,
0, m_visible_hpix,
m_total_vpix,
0, m_visible_vpix);
}
@ -300,4 +300,3 @@ void tms9927_device::recompute_parameters(int postload)
m_screen->configure(m_total_hpix, m_total_vpix, visarea, refresh);
}

View File

@ -33,7 +33,7 @@ public:
int screen_reset();
int upscroll_offset();
int cursor_bounds(rectangle &bounds);
protected:
// device-level overrides
virtual void device_config_complete();
@ -46,17 +46,17 @@ private:
void state_postload();
void recompute_parameters(int postload);
void generic_access(address_space &space, offs_t offset);
// internal state
screen_device *m_screen;
const UINT8 *m_selfload;
/* live state */
UINT32 m_clock;
UINT8 m_reg[9];
UINT8 m_start_datarow;
UINT8 m_reset;
/* derived state; no need to save */
UINT8 m_valid_config;
UINT16 m_total_hpix, m_total_vpix;

View File

@ -44,13 +44,13 @@ ADDRESS_MAP_END
upd7227_device::upd7227_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, UPD7227, "uPD7227", tag, owner, clock),
device_memory_interface(mconfig, *this),
m_space_config("videoram", ENDIANNESS_BIG, 8, 7, 0, *ADDRESS_MAP_NAME(upd7227_map)),
m_cs(1),
m_cd(1),
m_sck(1),
m_si(1),
m_so(1)
device_memory_interface(mconfig, *this),
m_space_config("videoram", ENDIANNESS_BIG, 8, 7, 0, *ADDRESS_MAP_NAME(upd7227_map)),
m_cs(1),
m_cd(1),
m_sck(1),
m_si(1),
m_so(1)
{
}

View File

@ -63,18 +63,18 @@ protected:
private:
enum
{
CMD_SMM = 0x18,
CMD_SFF = 0x10,
CMD_LDPI = 0x80,
CMD_SWM = 0x64,
CMD_SRM = 0x60,
CMD_SANDM = 0x6c,
CMD_SORM = 0x68,
CMD_SCM = 0x72,
CMD_BSET = 0x40,
CMD_BRESET = 0x20,
CMD_DISP_ON = 0x09,
CMD_DISP_OFF = 0x08
CMD_SMM = 0x18,
CMD_SFF = 0x10,
CMD_LDPI = 0x80,
CMD_SWM = 0x64,
CMD_SRM = 0x60,
CMD_SANDM = 0x6c,
CMD_SORM = 0x68,
CMD_SCM = 0x72,
CMD_BSET = 0x40,
CMD_BRESET = 0x20,
CMD_DISP_ON = 0x09,
CMD_DISP_OFF = 0x08
};
int m_sx;

View File

@ -15,15 +15,15 @@ VIDEOOBJ = $(EMUOBJ)/video
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter SEGA315_5124,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/315_5124.o
VIDEOOBJS+= $(VIDEOOBJ)/315_5124.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter BUFSPRITE,$(VIDEOS)),)
@ -31,47 +31,47 @@ VIDEOOBJS+= $(VIDEOOBJ)/bufsprite.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter CDP1861,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/cdp1861.o
VIDEOOBJS+= $(VIDEOOBJ)/cdp1861.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter CDP1862,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/cdp1862.o
VIDEOOBJS+= $(VIDEOOBJ)/cdp1862.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter CRT9007,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/crt9007.o
VIDEOOBJS+= $(VIDEOOBJ)/crt9007.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter CRT9021,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/crt9021.o
VIDEOOBJS+= $(VIDEOOBJ)/crt9021.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter CRT9212,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/crt9212.o
VIDEOOBJS+= $(VIDEOOBJ)/crt9212.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter DL1416,$(VIDEOS)),)
@ -79,7 +79,7 @@ VIDEOOBJS+= $(VIDEOOBJ)/dl1416.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter DM9368,$(VIDEOS)),)
@ -87,225 +87,225 @@ VIDEOOBJS+= $(VIDEOOBJ)/dm9368.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter EF9340_1,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/ef9340_1.o
VIDEOOBJS+= $(VIDEOOBJ)/ef9340_1.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter H63484,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/h63484.o
VIDEOOBJS+= $(VIDEOOBJ)/h63484.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter HD44102,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/hd44102.o
VIDEOOBJS+= $(VIDEOOBJ)/hd44102.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter HD44352,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/hd44352.o
VIDEOOBJS+= $(VIDEOOBJ)/hd44352.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter HD44780,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/hd44780.o
VIDEOOBJS+= $(VIDEOOBJ)/hd44780.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter HD61830,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/hd61830.o
VIDEOOBJS+= $(VIDEOOBJ)/hd61830.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter HD63484,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/hd63484.o
VIDEOOBJS+= $(VIDEOOBJ)/hd63484.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter HD66421,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/hd66421.o
VIDEOOBJS+= $(VIDEOOBJ)/hd66421.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter HUC6202,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/huc6202.o
VIDEOOBJS+= $(VIDEOOBJ)/huc6202.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter HUC6260,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/huc6260.o
VIDEOOBJS+= $(VIDEOOBJ)/huc6260.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter HUC6261,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/huc6261.o
VIDEOOBJS+= $(VIDEOOBJ)/huc6261.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter HUC6270,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/huc6270.o
VIDEOOBJS+= $(VIDEOOBJ)/huc6270.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter HUC6272,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/huc6272.o
VIDEOOBJS+= $(VIDEOOBJ)/huc6272.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter I8244,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/i8244.o
VIDEOOBJS+= $(VIDEOOBJ)/i8244.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter I8275,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/i8275.o \
$(VIDEOOBJ)/i8275x.o
$(VIDEOOBJ)/i8275x.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter K053250,$(VIDEOS)),)
ifneq ($(filter K053250,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/k053250.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter M50458,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/m50458.o
VIDEOOBJS+= $(VIDEOOBJ)/m50458.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter MB90082,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/mb90082.o
VIDEOOBJS+= $(VIDEOOBJ)/mb90082.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter MC6845,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/mc6845.o
VIDEOOBJS+= $(VIDEOOBJ)/mc6845.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter MC6847,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/mc6847.o
VIDEOOBJS+= $(VIDEOOBJ)/mc6847.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter MSM6255,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/msm6255.o
VIDEOOBJS+= $(VIDEOOBJ)/msm6255.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter PC_CGA,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/pc_cga.o \
$(VIDEOOBJ)/cgapal.o
$(VIDEOOBJ)/cgapal.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter PC_VGA,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/pc_vga.o
ifneq ($(filter PC_VGA,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/pc_vga.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter POLY,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/poly.o
VIDEOOBJS+= $(VIDEOOBJ)/poly.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter PSX,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/psx.o
VIDEOOBJS+= $(VIDEOOBJ)/psx.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter RAMDAC,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/ramdac.o
VIDEOOBJS+= $(VIDEOOBJ)/ramdac.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter S2636,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/s2636.o
VIDEOOBJS+= $(VIDEOOBJ)/s2636.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter SAA5050,$(VIDEOS)),)
@ -313,14 +313,14 @@ VIDEOOBJS+= $(VIDEOOBJ)/saa5050.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter SED1330,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/sed1330.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter STVVDP,$(VIDEOS)),)
@ -329,39 +329,39 @@ VIDEOOBJS+= $(VIDEOOBJ)/stvvdp1.o \
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter TLC34076,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/tlc34076.o
VIDEOOBJS+= $(VIDEOOBJ)/tlc34076.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter TMS34061,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/tms34061.o
VIDEOOBJS+= $(VIDEOOBJ)/tms34061.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter TMS3556,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/tms3556.o
VIDEOOBJS+= $(VIDEOOBJ)/tms3556.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter TMS9927,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/tms9927.o
VIDEOOBJS+= $(VIDEOOBJ)/tms9927.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter TMS9928A,$(VIDEOS)),)
@ -369,7 +369,7 @@ VIDEOOBJS+= $(VIDEOOBJ)/tms9928a.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter UPD3301,$(VIDEOS)),)
@ -377,15 +377,15 @@ VIDEOOBJS+= $(VIDEOOBJ)/upd3301.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter UPD7220,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/upd7220.o
VIDEOOBJS+= $(VIDEOOBJ)/upd7220.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter UPD7227,$(VIDEOS)),)
@ -393,15 +393,15 @@ VIDEOOBJS+= $(VIDEOOBJ)/upd7227.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter V9938,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/v9938.o
VIDEOOBJS+= $(VIDEOOBJ)/v9938.o
endif
#-------------------------------------------------
#
#
#-------------------------------------------------
ifneq ($(filter VOODOO,$(VIDEOS)),)

View File

@ -36,7 +36,7 @@ static FLOPPY_CONSTRUCT(bml3_dsk_construct)
LEGACY_FLOPPY_OPTIONS_START( bml3 )
LEGACY_FLOPPY_OPTION( bml3_dsk, "bm3", "BML3 floppy disk image", bml3_dsk_identify, bml3_dsk_construct, NULL,
LEGACY_FLOPPY_OPTION( bml3_dsk, "bm3", "BML3 floppy disk image", bml3_dsk_identify, bml3_dsk_construct, NULL,
HEADS([2])
TRACKS([40])
SECTORS([16])

View File

@ -1022,5 +1022,3 @@ bool td0_format::supports_save() const
}
const floppy_format_type FLOPPY_TD0_FORMAT = &floppy_image_format_creator<td0_format>;

View File

@ -140,7 +140,7 @@ void flower_sound_device::device_timer(emu_timer &timer, device_timer_id id, int
for (voice = m_channel_list; voice < m_last_channel; voice++)
voice->ecount += (voice->ecount < (1<<22));
break;
default:
assert_always(FALSE, "Unknown id in flower_sound_device::device_timer");
}

View File

@ -12,7 +12,7 @@
const device_type GEEBEE = &device_creator<geebee_sound_device>;
geebee_sound_device::geebee_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, GEEBEE, "Gee Bee Custom", tag, owner, clock),
device_sound_interface(mconfig, *this),
@ -26,17 +26,17 @@ geebee_sound_device::geebee_sound_device(const machine_config &mconfig, const ch
m_vcount(0)
{
}
//-------------------------------------------------
// device_config_complete - perform any
// operations now that the configuration is
// complete
//-------------------------------------------------
void geebee_sound_device::device_config_complete()
{
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@ -60,7 +60,7 @@ void geebee_sound_device::device_start()
save_item(NAME(m_noise));
save_item(NAME(m_vcount));
}
void geebee_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
switch (id)
@ -69,7 +69,7 @@ void geebee_sound_device::device_timer(emu_timer &timer, device_timer_id id, int
if (--m_volume < 0)
m_volume = 0;
break;
default:
assert_always(FALSE, "Unknown id in geebee_device::device_timer");
}
@ -81,11 +81,11 @@ WRITE8_MEMBER( geebee_sound_device::sound_w )
m_sound_latch = data;
m_volume = 0x7fff; /* set volume */
m_noise = 0x0000; /* reset noise shifter */
/* faster decay enabled? */
/* faster decay enabled? */
if( m_sound_latch & 8 )
{
/*
* R24 is 10k, Rb is 0, C57 is 1uF
{
/*
* R24 is 10k, Rb is 0, C57 is 1uF
* charge time t1 = 0.693 * (R24 + Rb) * C57 -> 0.22176s
* discharge time t2 = 0.693 * (Rb) * C57 -> 0
* Then C33 is only charged via D6 (1N914), not discharged!
@ -114,52 +114,52 @@ WRITE8_MEMBER( geebee_sound_device::sound_w )
//-------------------------------------------------
void geebee_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
{
stream_sample_t *buffer = outputs[0];
while (samples--)
{
{
stream_sample_t *buffer = outputs[0];
while (samples--)
{
*buffer++ = m_sound_signal;
/* 1V = HSYNC = 18.432MHz / 3 / 2 / 384 = 8000Hz */
{
/* 1V = HSYNC = 18.432MHz / 3 / 2 / 384 = 8000Hz */
{
m_vcount++;
/* noise clocked with raising edge of 2V */
/* noise clocked with raising edge of 2V */
if ((m_vcount & 3) == 2)
{
/* bit0 = bit0 ^ !bit10 */
{
/* bit0 = bit0 ^ !bit10 */
if ((m_noise & 1) == ((m_noise >> 10) & 1))
m_noise = ((m_noise << 1) & 0xfffe) | 1;
else
else
m_noise = (m_noise << 1) & 0xfffe;
}
}
switch (m_sound_latch & 7)
{
case 0: /* 4V */
{
case 0: /* 4V */
m_sound_signal = (m_vcount & 0x04) ? m_decay[m_volume] : 0;
break;
case 1: /* 8V */
break;
case 1: /* 8V */
m_sound_signal = (m_vcount & 0x08) ? m_decay[m_volume] : 0;
break;
case 2: /* 16V */
break;
case 2: /* 16V */
m_sound_signal = (m_vcount & 0x10) ? m_decay[m_volume] : 0;
break;
case 3: /* 32V */
break;
case 3: /* 32V */
m_sound_signal = (m_vcount & 0x20) ? m_decay[m_volume] : 0;
break;
case 4: /* TONE1 */
break;
case 4: /* TONE1 */
m_sound_signal = !(m_vcount & 0x01) && !(m_vcount & 0x10) ? m_decay[m_volume] : 0;
break;
case 5: /* TONE2 */
break;
case 5: /* TONE2 */
m_sound_signal = !(m_vcount & 0x02) && !(m_vcount & 0x20) ? m_decay[m_volume] : 0;
break;
case 6: /* TONE3 */
break;
case 6: /* TONE3 */
m_sound_signal = !(m_vcount & 0x04) && !(m_vcount & 0x40) ? m_decay[m_volume] : 0;
break;
default: /* NOISE */
/* QH of 74164 #4V */
break;
default: /* NOISE */
/* QH of 74164 #4V */
m_sound_signal = (m_noise & 0x8000) ? m_decay[m_volume] : 0;
}
}
}
}
}
}
}
}

View File

@ -9,9 +9,9 @@ class redbaron_sound_device : public device_t,
{
public:
redbaron_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
DECLARE_WRITE8_MEMBER( sounds_w );
protected:
// device-level overrides
virtual void device_start();

View File

@ -176,12 +176,12 @@ void snes_sound_device::device_config_complete()
void snes_sound_device::device_start()
{
m_channel = machine().sound().stream_alloc(*this, 0, 2, 32000, this);
m_ram = auto_alloc_array_clear(machine(), UINT8, SNES_SPCRAM_SIZE);
/* put IPL image at the top of RAM */
memcpy(m_ipl_region, machine().root_device().memregion("sound_ipl")->base(), 64);
/* Initialize the timers */
m_timer[0] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(snes_sound_device::spc_timer),this));
m_timer[0]->adjust(attotime::from_hz(8000), 0, attotime::from_hz(8000));
@ -192,7 +192,7 @@ void snes_sound_device::device_start()
m_timer[2] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(snes_sound_device::spc_timer),this));
m_timer[2]->adjust(attotime::from_hz(64000), 2, attotime::from_hz(64000));
m_timer[2]->enable(false);
state_register();
save_pointer(NAME(m_ram), SNES_SPCRAM_SIZE);
}
@ -205,14 +205,14 @@ void snes_sound_device::device_reset()
{
/* default to ROM visible */
m_ram[0xf1] = 0x80;
/* Sort out the ports */
for (int i = 0; i < 4; i++)
{
m_port_in[i] = 0;
m_port_out[i] = 0;
}
dsp_reset();
}
@ -1242,12 +1242,12 @@ void snes_sound_device::state_register()
void snes_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
{
short mix[2];
for (int i = 0; i < samples; i++)
{
mix[0] = mix[1] = 0;
dsp_update(mix);
/* Update the buffers */
outputs[0][i] = (stream_sample_t)mix[0];
outputs[1][i] = (stream_sample_t)mix[1];

View File

@ -73,8 +73,8 @@ public:
DECLARE_WRITE8_MEMBER( spc_io_w );
DECLARE_WRITE8_MEMBER( spc_ram_w );
DECLARE_WRITE8_MEMBER( spc_port_in );
// UINT8 *spc_get_ram() { return m_ram; }
// UINT8 *spc_get_ram() { return m_ram; }
protected:
// device-level overrides
@ -86,7 +86,7 @@ protected:
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
private:
DECLARE_READ8_MEMBER(dsp_io_r);
DECLARE_WRITE8_MEMBER(dsp_io_w);
TIMER_CALLBACK_MEMBER(spc_timer);
@ -94,21 +94,21 @@ private:
void dsp_update(short *sound_ptr);
int advance_envelope(int v);
void state_register();
// internal state
UINT8 *m_ram;
sound_stream *m_channel;
UINT8 m_dsp_regs[256]; /* DSP registers */
UINT8 m_ipl_region[64]; /* SPC top 64 bytes */
int m_keyed_on;
int m_keys; /* 8-bits for 8 voices */
voice_state_type m_voice_state[8];
/* Noise stuff */
int m_noise_cnt;
int m_noise_lev;
/* These are for the FIR echo filter */
#ifndef NO_ECHO
short m_fir_lbuf[8];
@ -116,12 +116,12 @@ private:
int m_fir_ptr;
int m_echo_ptr;
#endif
/* timers */
emu_timer *m_timer[3];
UINT8 m_enabled[3];
UINT16 m_counter[3];
/* IO ports */
UINT8 m_port_in[4]; /* SPC input ports */
UINT8 m_port_out[4]; /* SPC output ports */

View File

@ -15,7 +15,7 @@
const device_type WARPWARP = &device_creator<warpwarp_sound_device>;
warpwarp_sound_device::warpwarp_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, WARPWARP, "Warp Warp Custom", tag, owner, clock),
device_sound_interface(mconfig, *this),
@ -43,11 +43,11 @@ warpwarp_sound_device::warpwarp_sound_device(const machine_config &mconfig, cons
// operations now that the configuration is
// complete
//-------------------------------------------------
void warpwarp_sound_device::device_config_complete()
{
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@ -77,38 +77,38 @@ void warpwarp_sound_device::device_start()
save_item(NAME(m_mcarry));
save_item(NAME(m_mcount));
}
void warpwarp_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
switch (id)
{
case TIMER_SOUND_VOLUME_DECAY:
case TIMER_SOUND_VOLUME_DECAY:
if (--m_sound_volume < 0)
m_sound_volume = 0;
break;
case TIMER_MUSIC_VOLUME_DECAY:
if (--m_music_volume < 0)
m_music_volume = 0;
break;
default:
assert_always(FALSE, "Unknown id in warpwarp_sound_device::device_timer");
}
}
WRITE8_MEMBER( warpwarp_sound_device::sound_w )
{
m_channel->update();
m_sound_latch = data & 0x0f;
m_sound_volume = 0x7fff; /* set sound_volume */
m_noise = 0x0000; /* reset noise shifter */
/* faster decay enabled? */
/* faster decay enabled? */
if( m_sound_latch & 8 )
{
/*
* R85(?) is 10k, Rb is 0, C92 is 1uF
{
/*
* R85(?) is 10k, Rb is 0, C92 is 1uF
* charge time t1 = 0.693 * (R24 + Rb) * C57 -> 0.22176s
* discharge time t2 = 0.693 * (Rb) * C57 -> 0
* C90(?) is only charged via D17 (1N914), no discharge!
@ -139,17 +139,17 @@ WRITE8_MEMBER( warpwarp_sound_device::music1_w )
m_channel->update();
m_music1_latch = data & 0x3f;
}
WRITE8_MEMBER( warpwarp_sound_device::music2_w )
{
m_channel->update();
m_music2_latch = data & 0x3f;
m_music_volume = 0x7fff;
/* fast decay enabled? */
/* fast decay enabled? */
if( m_music2_latch & 0x10 )
{
/*
* Ra (R83?) is 10k, Rb is 0, C92 is 1uF
{
/*
* Ra (R83?) is 10k, Rb is 0, C92 is 1uF
* charge time t1 = 0.693 * (Ra + Rb) * C -> 0.22176s
* discharge time is (nearly) zero, because Rb is zero
* C95(?) is only charged via D17, not discharged!
@ -180,11 +180,11 @@ WRITE8_MEMBER( warpwarp_sound_device::music2_w )
//-------------------------------------------------
void warpwarp_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
{
stream_sample_t *buffer = outputs[0];
while (samples--)
{
{
stream_sample_t *buffer = outputs[0];
while (samples--)
{
*buffer++ = (m_sound_signal + m_music_signal) / 2;
/*
@ -198,65 +198,65 @@ void warpwarp_sound_device::sound_stream_update(sound_stream &stream, stream_sam
* ...
* 48 = 64 steps -> 3000 Hz
* ...
* 63 = 4 steps -> 48 kHz
*/
* 63 = 4 steps -> 48 kHz
*/
m_mcarry -= CLOCK_16H / (4 * (64 - m_music1_latch));
while( m_mcarry < 0 )
{
{
m_mcarry += CLOCK_16H;
m_mcount++;
m_music_signal = (m_mcount & ~m_music2_latch & 15) ? m_decay[m_music_volume] : 0;
/* override by noise gate? */
/* override by noise gate? */
if( (m_music2_latch & 32) && (m_noise & 0x8000) )
m_music_signal = m_decay[m_music_volume];
}
/* clock 1V = 8kHz */
}
/* clock 1V = 8kHz */
m_vcarry -= CLOCK_1V;
while (m_vcarry < 0)
{
{
m_vcarry += CLOCK_16H;
m_vcount++;
/* noise is clocked with raising edge of 2V */
/* noise is clocked with raising edge of 2V */
if ((m_vcount & 3) == 2)
{
/* bit0 = bit0 ^ !bit10 */
{
/* bit0 = bit0 ^ !bit10 */
if ((m_noise & 1) == ((m_noise >> 10) & 1))
m_noise = (m_noise << 1) | 1;
else
else
m_noise = m_noise << 1;
}
}
switch (m_sound_latch & 7)
{
case 0: /* 4V */
{
case 0: /* 4V */
m_sound_signal = (m_vcount & 0x04) ? m_decay[m_sound_volume] : 0;
break;
case 1: /* 8V */
break;
case 1: /* 8V */
m_sound_signal = (m_vcount & 0x08) ? m_decay[m_sound_volume] : 0;
break;
case 2: /* 16V */
break;
case 2: /* 16V */
m_sound_signal = (m_vcount & 0x10) ? m_decay[m_sound_volume] : 0;
break;
case 3: /* 32V */
break;
case 3: /* 32V */
m_sound_signal = (m_vcount & 0x20) ? m_decay[m_sound_volume] : 0;
break;
case 4: /* TONE1 */
break;
case 4: /* TONE1 */
m_sound_signal = !(m_vcount & 0x01) && !(m_vcount & 0x10) ? m_decay[m_sound_volume] : 0;
break;
case 5: /* TONE2 */
break;
case 5: /* TONE2 */
m_sound_signal = !(m_vcount & 0x02) && !(m_vcount & 0x20) ? m_decay[m_sound_volume] : 0;
break;
case 6: /* TONE3 */
break;
case 6: /* TONE3 */
m_sound_signal = !(m_vcount & 0x04) && !(m_vcount & 0x40) ? m_decay[m_sound_volume] : 0;
break;
default: /* NOISE */
/* QH of 74164 #4V */
break;
default: /* NOISE */
/* QH of 74164 #4V */
m_sound_signal = (m_noise & 0x8000) ? m_decay[m_sound_volume] : 0;
}
}
}
}
}
}
}
}

View File

@ -3,14 +3,14 @@ class geebee_sound_device : public device_t,
{
public:
geebee_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
enum
{
TIMER_VOLUME_DECAY
};
DECLARE_WRITE8_MEMBER( sound_w );
protected:
// device-level overrides
virtual void device_config_complete();
@ -18,9 +18,9 @@ protected:
// sound stream update overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
private:
// internal state
UINT16 *m_decay;
@ -49,8 +49,8 @@ public:
TIMER_SOUND_VOLUME_DECAY,
TIMER_MUSIC_VOLUME_DECAY
};
DECLARE_WRITE8_MEMBER( sound_w );
DECLARE_WRITE8_MEMBER( music1_w );
DECLARE_WRITE8_MEMBER( music2_w );
@ -59,12 +59,12 @@ protected:
// device-level overrides
virtual void device_config_complete();
virtual void device_start();
// sound stream update overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
private:
// internal state
INT16 *m_decay;

View File

@ -3023,9 +3023,9 @@ INPUT_PORTS_END
Attack Force, by E.G.S., Italy
Not much information is available for this game.
It may have had an amber monitor?
XTAL 20MHz
TODO: sound
*****************************************************/
@ -3073,7 +3073,7 @@ DRIVER_INIT_MEMBER(_8080bw_state,attackfc)
UINT8 *rom = memregion("maincpu")->base();
UINT32 len = memregion("maincpu")->bytes();
UINT8 *buffer = auto_alloc_array(machine(), UINT8, len);
// swap a8/a9
for (int i = 0; i < len; i++)
buffer[BITSWAP16(i, 15,14,13,12,11,10,8,9, 7,6,5,4,3,2,1,0)] = rom[i];
@ -4554,7 +4554,7 @@ ROM_START( attackfc )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "30a.bin", 0x0000, 0x0400, CRC(c12e3386) SHA1(72b1d3d67a83edf0be0b0c37ef6dcffba450f16f) )
ROM_LOAD( "36a.bin", 0x0400, 0x0400, CRC(6738dcb9) SHA1(e4c68553fc3f2d3db3d251b9cb325e2409d9c02a) )
ROM_LOAD( "31a.bin", 0x0800, 0x0400, CRC(787a4658) SHA1(5be3143bdba6a32256603be94400034a8ea1fda6) )
ROM_LOAD( "31a.bin", 0x0800, 0x0400, CRC(787a4658) SHA1(5be3143bdba6a32256603be94400034a8ea1fda6) )
ROM_LOAD( "37a.bin", 0x0c00, 0x0400, CRC(ad6bfbbe) SHA1(5f5437b6c8e7dfe9649b25040862f8a51d8c43ed) )
ROM_LOAD( "32a.bin", 0x1000, 0x0400, CRC(cbe0a711) SHA1(6e5f4214a4b48b70464005f4263c9b1ec3cbbeb1) )
ROM_LOAD( "33a.bin", 0x1800, 0x0400, CRC(53147393) SHA1(57e078f1734e382e8a46be09c133daab30c75681) )

View File

@ -2751,15 +2751,15 @@ ROM_END
ROM_START( skysoldrbl )
ROM_REGION( 0x80000, "maincpu", 0 )
ROM_LOAD16_BYTE( "g.bin", 0x00000, 0x10000, CRC(4d3273e9) SHA1(7ddaba59114180fe371d2326fc49d6274e58f5c9) ) //different from other set
ROM_LOAD16_BYTE( "c.bin", 0x00001, 0x10000, CRC(86c7af62) SHA1(4092558f3c11130e917d06b8d43f8f00815e4148) ) //different from other set
ROM_LOAD16_BYTE( "g.bin", 0x00000, 0x10000, CRC(4d3273e9) SHA1(7ddaba59114180fe371d2326fc49d6274e58f5c9) ) //different from other set
ROM_LOAD16_BYTE( "c.bin", 0x00001, 0x10000, CRC(86c7af62) SHA1(4092558f3c11130e917d06b8d43f8f00815e4148) ) //different from other set
ROM_LOAD16_BYTE( "e.bin", 0x20000, 0x10000, CRC(03115b75) SHA1(e36f2eab0198bf6b5b419aacc593b3790b479e81) )
ROM_LOAD16_BYTE( "a.bin", 0x20001, 0x10000, CRC(7aa103c7) SHA1(1907b92a3769089e01af36f74e0ff30e7a8f178c) )
ROM_LOAD16_BYTE( "h-gtop.bin", 0x40000, 0x10000, CRC(f41dfeab) SHA1(1b4f68c0f55e89a9dcd0fae8fb26074b97b5303a) )
ROM_LOAD16_BYTE( "d-ctop.bin", 0x40001, 0x10000, CRC(56560a3c) SHA1(c57c33d3935c23d56ae256981e4c3dcd80fb86a2) )
ROM_LOAD16_BYTE( "f-etop.bin", 0x60000, 0x10000, CRC(60a52583) SHA1(975d309ba55730c87cb5ea786c4d2d82358a1b73) )
ROM_LOAD16_BYTE( "b-atop.bin", 0x60001, 0x10000, CRC(028fd31b) SHA1(feb18a7217c107bb5f8e5c5ec5bc4173e977286b) )
ROM_REGION( 0x80000, "audiocpu", 0 ) /* Sound CPU */
ROM_LOAD( "33.ic11", 0x00000, 0x08000, CRC(b711fad4) SHA1(0a9515cb36b8d03ee5f7e0669a9948571b4ec34e) )
ROM_CONTINUE( 0x18000, 0x08000 )
@ -2781,7 +2781,7 @@ ROM_START( skysoldrbl )
ROM_LOAD( "30.ic43", 0x040000, 0x10000, CRC(9eb10d3d) SHA1(ba1445e2c166f72a67295d595990efbdd3460736) )
ROM_LOAD( "31.ic44", 0x050000, 0x10000, CRC(6b6c4e56) SHA1(1af79c5931be2eb1421172e6e7877a97681fdb84) )
ROM_LOAD( "32.ic45", 0x060000, 0x10000, CRC(fdf55eca) SHA1(0c61ab8fc60c69c4d3fa976976f42bda63c06549) )
ROM_LOAD( "29.ic42", 0x070000, 0x10000, CRC(cf888369) SHA1(d1ef5b2c81bbf4e039cc6cfee8339700a1dbb4ca) ) //different from other set (is one of them bad?)
ROM_LOAD( "29.ic42", 0x070000, 0x10000, CRC(cf888369) SHA1(d1ef5b2c81bbf4e039cc6cfee8339700a1dbb4ca) ) //different from other set (is one of them bad?)
ROM_LOAD( "18.ica1", 0x080000, 0x10000, CRC(08419273) SHA1(0ded4b60b0ce17a922fb7170f992c4f6c75be895) )
ROM_LOAD( "17.ic30", 0x090000, 0x10000, CRC(6258a61b) SHA1(d56a9f1dfa02dc59935f03b86a134076e3039bf4) )
ROM_LOAD( "20.ica3", 0x0a0000, 0x10000, CRC(5e716c62) SHA1(9427cd1578221ee48f4a8d8a24a232cb9e9b2206) )
@ -3377,7 +3377,7 @@ GAME( 1987, btlfield, timesold, alpha68k_II, btlfield, alpha68k_state, btlfi
GAME( 1987, btlfieldb, timesold, btlfieldb, btlfieldb, alpha68k_state,btlfieldb,ROT90, "bootleg", "Battle Field (bootleg)", GAME_SUPPORTS_SAVE )
GAME( 1988, skysoldr, 0, alpha68k_II, skysoldr, alpha68k_state, skysoldr, ROT90, "Alpha Denshi Co. (SNK of America/Romstar license)", "Sky Soldiers (US)", GAME_SUPPORTS_SAVE )
GAME( 1988, skysoldrbl,skysoldr, alpha68k_II, skysoldr, alpha68k_state, skysoldr, ROT90, "bootleg", "Sky Soldiers (bootleg)", GAME_SUPPORTS_SAVE )
GAME( 1988, skysoldrbl,skysoldr, alpha68k_II, skysoldr, alpha68k_state, skysoldr, ROT90, "bootleg", "Sky Soldiers (bootleg)", GAME_SUPPORTS_SAVE )
GAME( 1988, goldmedl, 0, alpha68k_II_gm, goldmedl, alpha68k_state, goldmedl, ROT0, "SNK", "Gold Medalist (set 1)", GAME_SUPPORTS_SAVE )

View File

@ -286,14 +286,14 @@ ROM_END
ROM_START( ambushh )
ROM_REGION( 0x10000, "maincpu", 0 )
/* displays an M ("Mal" is Bad in Spanish) next to ROM 1 during the test, why is internal checksum wrong (0x02 instead of 0x00) ?
/* displays an M ("Mal" is Bad in Spanish) next to ROM 1 during the test, why is internal checksum wrong (0x02 instead of 0x00) ?
I think the ROM has been hacked(?)
*/
ROM_LOAD( "a1_hack.i7", 0x0000, 0x2000, CRC(a7cd149d) SHA1(470ebe60bc23a7908fb96caef8074d65f8c57625) )
// 1A6D: 0C -> 00
// 1A75: 18 -> 0D
// 1A76: D5 -> 18
// 1A77: 00 -> D6
// 1A6D: 0C -> 00
// 1A75: 18 -> 0D
// 1A76: D5 -> 18
// 1A77: 00 -> D6
ROM_LOAD( "a2.g7", 0x2000, 0x2000, CRC(8328d88a) SHA1(690f0af10a0550566b67ee570f849b2764448d15) )
ROM_LOAD( "a3.f7", 0x4000, 0x2000, CRC(8db57ab5) SHA1(5cc7d7ebdfc91fb8d9ed52836d70c1de68001402) )

View File

@ -392,7 +392,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( aerolitos )
PORT_INCLUDE( asteroid )
PORT_MODIFY("DSW1") // this bootleg was for the Spanish market, so set it to Spanish by default
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Language ) ) PORT_DIPLOCATION("SW:1,2")
PORT_DIPSETTING ( 0x00, DEF_STR( English ) )

View File

@ -900,9 +900,9 @@ static INPUT_PORTS_START( bnj )
INPUT_PORTS_END
static INPUT_PORTS_START( caractn2 ) /* 2/3 Lives Dip changes in this set */
PORT_INCLUDE( bnj )
PORT_INCLUDE( bnj )
PORT_MODIFY("DSW2")
PORT_MODIFY("DSW2")
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("7D:1")
PORT_DIPSETTING( 0x01, "2" )
PORT_DIPSETTING( 0x00, "3" )

View File

@ -1,65 +1,65 @@
/*********************************************************************************************************
Double Dealer (c)NMK 1991
Double Dealer (c)NMK 1991
driver by Angelo Salese & David Haywood, based on early work by Tomasz Slanina
driver by Angelo Salese & David Haywood, based on early work by Tomasz Slanina
Appears to be a down-grade of the nmk16 HW
Appears to be a down-grade of the nmk16 HW
TODO:
-When you use the "gun card" the game gives "minus" points,but points are always added,inaccurate protection?
-Understand better the video emulation and convert it to tilemaps;
-A Double Dealer manual is needed for the coinage settings and coin/credit simulation;
-Decap + emulate MCU, required if the random number generation is going to be accurate;
TODO:
-When you use the "gun card" the game gives "minus" points,but points are always added,inaccurate protection?
-Understand better the video emulation and convert it to tilemaps;
-A Double Dealer manual is needed for the coinage settings and coin/credit simulation;
-Decap + emulate MCU, required if the random number generation is going to be accurate;
==========================================================================================================
--
--
pcb marked GD91071
pcb marked GD91071
68000P10
YM2203C
91071-3 (Mask ROM)
NMK-110 8131 ( Mitsubishi M50747 MCU ?)
NMK 901
NMK 902
NMK 903 x2
82S135N ("5")
82S129N ("6")
xtals 16.000 MHz and 6.000 MHz
DSW x2
68000P10
YM2203C
91071-3 (Mask ROM)
NMK-110 8131 ( Mitsubishi M50747 MCU ?)
NMK 901
NMK 902
NMK 903 x2
82S135N ("5")
82S129N ("6")
xtals 16.000 MHz and 6.000 MHz
DSW x2
--
--
Few words about protection:
Few words about protection:
- Work RAM at $fe000 - $fffff is shared with MCU . Maybe whole $f0000-$fffff is shared ...
- After boot, game writes random-looking data to work RAM:
- Work RAM at $fe000 - $fffff is shared with MCU . Maybe whole $f0000-$fffff is shared ...
- After boot, game writes random-looking data to work RAM:
00052C: 33FC 1234 000F E086 move.w #$1234, $fe086.l
000534: 33FC 5678 000F E164 move.w #$5678, $fe164.l
00053C: 33FC 9CA3 000F E62E move.w #$9ca3, $fe62e.l
000544: 33FC ABA2 000F E734 move.w #$aba2, $fe734.l
00054C: 33FC B891 000F E828 move.w #$b891, $fe828.l
000554: 33FC C760 000F E950 move.w #$c760, $fe950.l
00055C: 33FC D45F 000F EA7C move.w #$d45f, $fea7c.l
000564: 33FC E32E 000F ED4A move.w #$e32e, $fed4a.l
00052C: 33FC 1234 000F E086 move.w #$1234, $fe086.l
000534: 33FC 5678 000F E164 move.w #$5678, $fe164.l
00053C: 33FC 9CA3 000F E62E move.w #$9ca3, $fe62e.l
000544: 33FC ABA2 000F E734 move.w #$aba2, $fe734.l
00054C: 33FC B891 000F E828 move.w #$b891, $fe828.l
000554: 33FC C760 000F E950 move.w #$c760, $fe950.l
00055C: 33FC D45F 000F EA7C move.w #$d45f, $fea7c.l
000564: 33FC E32E 000F ED4A move.w #$e32e, $fed4a.l
Some (or maybe all ?) of above enables random generator at $fe010 - $fe017
Some (or maybe all ?) of above enables random generator at $fe010 - $fe017
- There's also MCU response (write/read/test) test just after these writes.
(probably data used in the check depends on above writes). It's similar to
jalmah.c tests, but num of responses is different, and shared ram is
used to communicate with MCU
- There's also MCU response (write/read/test) test just after these writes.
(probably data used in the check depends on above writes). It's similar to
jalmah.c tests, but num of responses is different, and shared ram is
used to communicate with MCU
- After last check (or maybe durning tests ... no idea)
MCU writes $4ef900000604 (jmp $604) to $fe000 and game jumps to this address.
- After last check (or maybe durning tests ... no idea)
MCU writes $4ef900000604 (jmp $604) to $fe000 and game jumps to this address.
- code at $604 writes $20.w to $fe018 and $1.w to $fe01e.
As result shared ram $fe000 - $fe007 is cleared.
- code at $604 writes $20.w to $fe018 and $1.w to $fe01e.
As result shared ram $fe000 - $fe007 is cleared.
Also many, many other reads/writes from/to shared mem.
Few checks every interrupt:
Also many, many other reads/writes from/to shared mem.
Few checks every interrupt:
interrupt, lvl1

View File

@ -1657,16 +1657,16 @@ DRIVER_INIT_MEMBER(decocass_state,cdsteljn)
/* 11 */ GAME( 1981, clocknch, decocass, clocknch, clocknch, decocass_state, decocass, ROT270, "Data East Corporation", "Lock'n'Chase (DECO Cassette)", 0 )
/* 12 */ // 1981.08 Flash Boy/DECO Kid
/* 13 */ GAME( 1981, cprogolf, decocass, cprogolf, cprogolf, decocass_state, decocass, ROT270, "Data East Corporation", "Tournament Pro Golf (DECO Cassette)", 0 )
GAME( 1981, cprogolfj, cprogolf, cprogolfj,cprogolf, decocass_state, decocass, ROT270, "Data East Corporation", "Tournament Pro Golf (DECO Cassette, Japan)", 0 )
GAME( 1981, cprogolfj, cprogolf, cprogolfj,cprogolf, decocass_state, decocass, ROT270, "Data East Corporation", "Tournament Pro Golf (DECO Cassette, Japan)", 0 )
/* 14 */ GAME( 1981, cdsteljn, decocass, cdsteljn, cdsteljn, decocass_state, cdsteljn, ROT270, "Data East Corporation", "DS Telejan (DECO Cassette, Japan)", 0 )
/* 15 */ GAME( 1981, cluckypo, decocass, cluckypo, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Lucky Poker (DECO Cassette)", 0 )
/* 16 */ GAME( 1981, ctisland, decocass, ctisland, decocass, decocass_state, decocrom, ROT270, "Data East Corporation", "Treasure Island (DECO Cassette, set 1)", 0 )
GAME( 1981, ctisland2, ctisland, ctisland, decocass, decocass_state, decocrom, ROT270, "Data East Corporation", "Treasure Island (DECO Cassette, set 2)", 0 )
GAME( 1981, ctisland3, ctisland, ctisland, decocass, decocass_state, decocrom, ROT270, "Data East Corporation", "Treasure Island (DECO Cassette, set 3)", GAME_NOT_WORKING ) /* Different Bitswap? */
GAME( 1981, ctisland2, ctisland, ctisland, decocass, decocass_state, decocrom, ROT270, "Data East Corporation", "Treasure Island (DECO Cassette, set 2)", 0 )
GAME( 1981, ctisland3, ctisland, ctisland, decocass, decocass_state, decocrom, ROT270, "Data East Corporation", "Treasure Island (DECO Cassette, set 3)", GAME_NOT_WORKING ) /* Different Bitswap? */
/* 17 */ // 1981.10 Bobbitto
/* 18 */ GAME( 1982, cexplore, decocass, cexplore, cexplore, decocass_state, decocass, ROT270, "Data East Corporation", "Explorer (DECO Cassette)", GAME_NOT_WORKING )
/* 19 */ GAME( 1982, cdiscon1, decocass, cdiscon1, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Disco No.1 (DECO Cassette)", 0 )
GAME( 1982, csweetht, cdiscon1, cdiscon1, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Sweet Heart (DECO Cassette)", 0 )
GAME( 1982, csweetht, cdiscon1, cdiscon1, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Sweet Heart (DECO Cassette)", 0 )
/* 20 */ GAME( 1982, ctornado, decocass, ctornado, ctornado, decocass_state, decocass, ROT270, "Data East Corporation", "Tornado (DECO Cassette)", 0 )
/* 21 */ GAME( 1982, cmissnx, decocass, cmissnx, cmissnx, decocass_state, decocass, ROT270, "Data East Corporation", "Mission-X (DECO Cassette)", 0 )
/* 22 */ GAME( 1982, cptennis, decocass, cptennis, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Pro Tennis (DECO Cassette)", 0 )
@ -1675,28 +1675,28 @@ DRIVER_INIT_MEMBER(decocass_state,cdsteljn)
/* 25 */ GAME( 1982, cadanglr, decocass, cfishing, cfishing, decocass_state, decocass, ROT270, "Data East Corporation", "Angler Dangler (DECO Cassette)", 0 )
/* 25 */ GAME( 1982, cfishing, cadanglr, cfishing, cfishing, decocass_state, decocass, ROT270, "Data East Corporation", "Fishing (DECO Cassette)", 0 )
/* 26 */ GAME( 1983, cbtime, decocass, cbtime, cbtime, decocass_state, decocass, ROT270, "Data East Corporation", "Burger Time (DECO Cassette)", 0 )
GAME( 1982, chamburger,cbtime, cbtime, cbtime, decocass_state, decocass, ROT270, "Data East Corporation", "Hamburger (DECO Cassette, Japan)", 0 )
GAME( 1982, chamburger,cbtime, cbtime, cbtime, decocass_state, decocass, ROT270, "Data East Corporation", "Hamburger (DECO Cassette, Japan)", 0 )
/* 27 */ GAME( 1982, cburnrub, decocass, cburnrub, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Burnin' Rubber (DECO Cassette, set 1)", 0 )
GAME( 1982, cburnrub2, cburnrub, cburnrub, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Burnin' Rubber (DECO Cassette, set 2)", 0 )
GAME( 1982, cbnj, cburnrub, cburnrub, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Bump 'n' Jump (DECO Cassette)", 0 )
GAME( 1982, cburnrub2, cburnrub, cburnrub, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Burnin' Rubber (DECO Cassette, set 2)", 0 )
GAME( 1982, cbnj, cburnrub, cburnrub, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Bump 'n' Jump (DECO Cassette)", 0 )
/* 28 */ GAME( 1983, cgraplop, decocass, cgraplop, cgraplop, decocass_state, decocass, ROT270, "Data East Corporation", "Cluster Buster (DECO Cassette)", 0 )
GAME( 1983, cgraplop2, cgraplop, cgraplop2,cgraplop, decocass_state, decocass, ROT270, "Data East Corporation", "Graplop (no title screen) (DECO Cassette)", 0 ) // a version with title screen exists, see reference videos
GAME( 1983, cgraplop2, cgraplop, cgraplop2,cgraplop, decocass_state, decocass, ROT270, "Data East Corporation", "Graplop (no title screen) (DECO Cassette)", 0 ) // a version with title screen exists, see reference videos
/* 29 */ GAME( 1983, clapapa, decocass, clapapa, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Rootin' Tootin' / La-Pa-Pa (DECO Cassette)" , 0) /* Displays 'La-Pa-Pa during attract */
GAME( 1983, clapapa2, clapapa, clapapa, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Rootin' Tootin' (DECO Cassette)" , 0) /* Displays 'Rootin' Tootin' during attract */
GAME( 1983, clapapa2, clapapa, clapapa, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Rootin' Tootin' (DECO Cassette)" , 0) /* Displays 'Rootin' Tootin' during attract */
/* 30 */ GAME( 1983, cskater, decocass, cskater, cskater, decocass_state, decocass, ROT270, "Data East Corporation", "Skater (DECO Cassette, Japan)", 0 )
/* 31 */ GAME( 1983, cprobowl, decocass, cprobowl, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Pro Bowling (DECO Cassette)", 0 )
/* 32 */ GAME( 1983, cnightst, decocass, cnightst, cnightst, decocass_state, decocass, ROT270, "Data East Corporation", "Night Star (DECO Cassette, set 1)", 0 )
GAME( 1983, cnightst2, cnightst, cnightst, cnightst, decocass_state, decocass, ROT270, "Data East Corporation", "Night Star (DECO Cassette, set 2)", 0 )
GAME( 1983, cnightst2, cnightst, cnightst, cnightst, decocass_state, decocass, ROT270, "Data East Corporation", "Night Star (DECO Cassette, set 2)", 0 )
/* 33 */ GAME( 1983, cpsoccer, decocass, cpsoccer, cpsoccer, decocass_state, decocass, ROT270, "Data East Corporation", "Pro Soccer (DECO Cassette)", 0 )
GAME( 1983, cpsoccerj, cpsoccer, cpsoccer, cpsoccer, decocass_state, decocass, ROT270, "Data East Corporation", "Pro Soccer (DECO Cassette, Japan)", 0 )
GAME( 1983, cpsoccerj, cpsoccer, cpsoccer, cpsoccer, decocass_state, decocass, ROT270, "Data East Corporation", "Pro Soccer (DECO Cassette, Japan)", 0 )
/* 34 */ GAME( 1983, csdtenis, decocass, csdtenis, csdtenis, decocass_state, decocass, ROT270, "Data East Corporation", "Super Doubles Tennis (DECO Cassette, Japan)", GAME_WRONG_COLORS )
/* 35 */ GAME( 1985, cflyball, decocass, cflyball, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Flying Ball (DECO Cassette)", 0 )
/* 36 */ // 1984.04 Genesis/Boomer Rang'r
/* 37 */ GAME( 1983, czeroize, decocass, czeroize, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Zeroize (DECO Cassette)", 0 )
/* 38 */ GAME( 1984, cscrtry, decocass, type4, cscrtry, decocass_state, decocass, ROT270, "Data East Corporation", "Scrum Try (DECO Cassette, set 1)", 0 )
GAME( 1984, cscrtry2, cscrtry, type4, cscrtry, decocass_state, decocass, ROT270, "Data East Corporation", "Scrum Try (DECO Cassette, set 2)", 0 )
GAME( 1984, cscrtry2, cscrtry, type4, cscrtry, decocass_state, decocass, ROT270, "Data East Corporation", "Scrum Try (DECO Cassette, set 2)", 0 )
/* 39 */ GAME( 1984, cppicf, decocass, cppicf, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Peter Pepper's Ice Cream Factory (DECO Cassette, set 1)", 0 )
GAME( 1984, cppicf2, cppicf, cppicf, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Peter Pepper's Ice Cream Factory (DECO Cassette, set 2)", 0 )
GAME( 1984, cppicf2, cppicf, cppicf, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Peter Pepper's Ice Cream Factory (DECO Cassette, set 2)", 0 )
/* 40 */ GAME( 1984, cfghtice, decocass, cfghtice, cfghtice, decocass_state, decocass, ROT270, "Data East Corporation", "Fighting Ice Hockey (DECO Cassette)", 0 )
/* 41 */ GAME( 1984, coozumou, decocass, type4, cscrtry, decocass_state, decocass, ROT270, "Data East Corporation", "Oozumou - The Grand Sumo (DECO Cassette, Japan)", 0 )
/* 42 */ // 1984.08 Hellow Gateball // not a typo, this is official spelling

View File

@ -193,7 +193,7 @@ public:
UINT8 m_extend_board_irq_enable;
UINT8 m_extend_board_irq_active;
// emu_timer *m_keyboard_timer;
// emu_timer *m_keyboard_timer;
GCU_REGS m_gcu[2];
int m_tick;
int m_layer;
@ -209,7 +209,7 @@ public:
UINT8 m_temp_data[64*1024];
int m_cab_data_ptr;
const int * m_cur_cab_data;
// int m_keyboard_state[2];
// int m_keyboard_state[2];
UINT8 m_spu_shared_ram[0x400];
IBUTTON m_ibutton;
int m_ibutton_state;
@ -239,8 +239,8 @@ public:
DECLARE_WRITE32_MEMBER(atapi_command_w);
DECLARE_READ32_MEMBER(atapi_control_r);
DECLARE_WRITE32_MEMBER(atapi_control_w);
// DECLARE_READ32_MEMBER(comm_uart_r);
// DECLARE_WRITE32_MEMBER(comm_uart_w);
// DECLARE_READ32_MEMBER(comm_uart_r);
// DECLARE_WRITE32_MEMBER(comm_uart_w);
DECLARE_READ32_MEMBER(cabinet_r);
DECLARE_READ32_MEMBER(keyboard_wheel_r);
DECLARE_READ8_MEMBER(midi_uart_r);
@ -257,7 +257,7 @@ public:
DECLARE_READ32_MEMBER(ppc_spu_share_r);
DECLARE_WRITE32_MEMBER(ppc_spu_share_w);
DECLARE_READ16_MEMBER(spu_unk_r);
// TIMER_CALLBACK_MEMBER(keyboard_timer_callback);
// TIMER_CALLBACK_MEMBER(keyboard_timer_callback);
void gcu_draw_object(bitmap_ind16 &bitmap, const rectangle &cliprect, int chip, UINT32 *cmd);
void gcu_fill_rect(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 *cmd);
void gcu_draw_character(bitmap_ind16 &bitmap, const rectangle &cliprect, int chip, UINT32 *cmd);
@ -1404,52 +1404,52 @@ WRITE32_MEMBER(firebeat_state::atapi_control_w )
/*
READ32_MEMBER(firebeat_state::comm_uart_r )
{
UINT32 r = 0;
UINT32 r = 0;
if (ACCESSING_BITS_24_31)
{
r |= pc16552d_0_r(space, (offset*4)+0) << 24;
}
if (ACCESSING_BITS_16_23)
{
r |= pc16552d_0_r(space, (offset*4)+1) << 16;
}
if (ACCESSING_BITS_8_15)
{
r |= pc16552d_0_r(space, (offset*4)+2) << 8;
}
if (ACCESSING_BITS_0_7)
{
r |= pc16552d_0_r(space, (offset*4)+3) << 0;
}
if (ACCESSING_BITS_24_31)
{
r |= pc16552d_0_r(space, (offset*4)+0) << 24;
}
if (ACCESSING_BITS_16_23)
{
r |= pc16552d_0_r(space, (offset*4)+1) << 16;
}
if (ACCESSING_BITS_8_15)
{
r |= pc16552d_0_r(space, (offset*4)+2) << 8;
}
if (ACCESSING_BITS_0_7)
{
r |= pc16552d_0_r(space, (offset*4)+3) << 0;
}
return r;
return r;
}
WRITE32_MEMBER(firebeat_state::comm_uart_w )
{
if (ACCESSING_BITS_24_31)
{
pc16552d_0_w(space, (offset*4)+0, (data >> 24) & 0xff);
}
if (ACCESSING_BITS_16_23)
{
pc16552d_0_w(space, (offset*4)+1, (data >> 16) & 0xff);
}
if (ACCESSING_BITS_8_15)
{
pc16552d_0_w(space, (offset*4)+2, (data >> 8) & 0xff);
}
if (ACCESSING_BITS_0_7)
{
pc16552d_0_w(space, (offset*4)+3, (data >> 0) & 0xff);
}
if (ACCESSING_BITS_24_31)
{
pc16552d_0_w(space, (offset*4)+0, (data >> 24) & 0xff);
}
if (ACCESSING_BITS_16_23)
{
pc16552d_0_w(space, (offset*4)+1, (data >> 16) & 0xff);
}
if (ACCESSING_BITS_8_15)
{
pc16552d_0_w(space, (offset*4)+2, (data >> 8) & 0xff);
}
if (ACCESSING_BITS_0_7)
{
pc16552d_0_w(space, (offset*4)+3, (data >> 0) & 0xff);
}
}
static void comm_uart_irq_callback(running_machine &machine, int channel, int value)
{
// TODO
//m_maincpu->set_input_line(INPUT_LINE_IRQ2, ASSERT_LINE);
// TODO
//m_maincpu->set_input_line(INPUT_LINE_IRQ2, ASSERT_LINE);
}
*/
static const ins8250_interface firebeat_com0_interface =
@ -1569,74 +1569,74 @@ static const ins8250_interface firebeat_midi1_interface =
/*
static const int keyboard_notes[24] =
{
0x3c, // C1
0x3d, // C1#
0x3e, // D1
0x3f, // D1#
0x40, // E1
0x41, // F1
0x42, // F1#
0x43, // G1
0x44, // G1#
0x45, // A1
0x46, // A1#
0x47, // B1
0x48, // C2
0x49, // C2#
0x4a, // D2
0x4b, // D2#
0x4c, // E2
0x4d, // F2
0x4e, // F2#
0x4f, // G2
0x50, // G2#
0x51, // A2
0x52, // A2#
0x53, // B2
0x3c, // C1
0x3d, // C1#
0x3e, // D1
0x3f, // D1#
0x40, // E1
0x41, // F1
0x42, // F1#
0x43, // G1
0x44, // G1#
0x45, // A1
0x46, // A1#
0x47, // B1
0x48, // C2
0x49, // C2#
0x4a, // D2
0x4b, // D2#
0x4c, // E2
0x4d, // F2
0x4e, // F2#
0x4f, // G2
0x50, // G2#
0x51, // A2
0x52, // A2#
0x53, // B2
};
TIMER_CALLBACK_MEMBER(firebeat_state::keyboard_timer_callback)
{
static const int kb_uart_channel[2] = { 1, 0 };
static const char *const keynames[] = { "KEYBOARD_P1", "KEYBOARD_P2" };
int keyboard;
int i;
static const int kb_uart_channel[2] = { 1, 0 };
static const char *const keynames[] = { "KEYBOARD_P1", "KEYBOARD_P2" };
int keyboard;
int i;
for (keyboard=0; keyboard < 2; keyboard++)
{
UINT32 kbstate = ioport(keynames[keyboard])->read();
int uart_channel = kb_uart_channel[keyboard];
for (keyboard=0; keyboard < 2; keyboard++)
{
UINT32 kbstate = ioport(keynames[keyboard])->read();
int uart_channel = kb_uart_channel[keyboard];
if (kbstate != m_keyboard_state[keyboard])
{
for (i=0; i < 24; i++)
{
int kbnote = keyboard_notes[i];
if (kbstate != m_keyboard_state[keyboard])
{
for (i=0; i < 24; i++)
{
int kbnote = keyboard_notes[i];
if ((m_keyboard_state[keyboard] & (1 << i)) != 0 && (kbstate & (1 << i)) == 0)
{
// key was on, now off -> send Note Off message
pc16552d_rx_data(machine(), 1, uart_channel, 0x80);
pc16552d_rx_data(machine(), 1, uart_channel, kbnote);
pc16552d_rx_data(machine(), 1, uart_channel, 0x7f);
}
else if ((m_keyboard_state[keyboard] & (1 << i)) == 0 && (kbstate & (1 << i)) != 0)
{
// key was off, now on -> send Note On message
pc16552d_rx_data(machine(), 1, uart_channel, 0x90);
pc16552d_rx_data(machine(), 1, uart_channel, kbnote);
pc16552d_rx_data(machine(), 1, uart_channel, 0x7f);
}
}
}
else
{
// no messages, send Active Sense message instead
pc16552d_rx_data(machine(), 1, uart_channel, 0xfe);
}
if ((m_keyboard_state[keyboard] & (1 << i)) != 0 && (kbstate & (1 << i)) == 0)
{
// key was on, now off -> send Note Off message
pc16552d_rx_data(machine(), 1, uart_channel, 0x80);
pc16552d_rx_data(machine(), 1, uart_channel, kbnote);
pc16552d_rx_data(machine(), 1, uart_channel, 0x7f);
}
else if ((m_keyboard_state[keyboard] & (1 << i)) == 0 && (kbstate & (1 << i)) != 0)
{
// key was off, now on -> send Note On message
pc16552d_rx_data(machine(), 1, uart_channel, 0x90);
pc16552d_rx_data(machine(), 1, uart_channel, kbnote);
pc16552d_rx_data(machine(), 1, uart_channel, 0x7f);
}
}
}
else
{
// no messages, send Active Sense message instead
pc16552d_rx_data(machine(), 1, uart_channel, 0xfe);
}
m_keyboard_state[keyboard] = kbstate;
}
m_keyboard_state[keyboard] = kbstate;
}
}
*/
// Extend board IRQs
@ -1984,57 +1984,57 @@ static INPUT_PORTS_START(kbm)
PORT_BIT( 0xff, 0x80, IPT_PADDLE_V ) PORT_MINMAX(0xff, 0x00) PORT_SENSITIVITY(30) PORT_KEYDELTA(10)
/*
PORT_START("KEYBOARD_P1")
PORT_BIT( 0x000001, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 C1") PORT_CODE(KEYCODE_Q)
PORT_BIT( 0x000002, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 C1#") PORT_CODE(KEYCODE_W)
PORT_BIT( 0x000004, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 D1") PORT_CODE(KEYCODE_E)
PORT_BIT( 0x000008, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 D1#") PORT_CODE(KEYCODE_R)
PORT_BIT( 0x000010, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 E1") PORT_CODE(KEYCODE_T)
PORT_BIT( 0x000020, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 F1") PORT_CODE(KEYCODE_Y)
PORT_BIT( 0x000040, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 F1#") PORT_CODE(KEYCODE_U)
PORT_BIT( 0x000080, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 G1") PORT_CODE(KEYCODE_I)
PORT_BIT( 0x000100, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 G1#") PORT_CODE(KEYCODE_O)
PORT_BIT( 0x000200, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 A1") PORT_CODE(KEYCODE_A)
PORT_BIT( 0x000400, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 A1#") PORT_CODE(KEYCODE_S)
PORT_BIT( 0x000800, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 B1") PORT_CODE(KEYCODE_D)
PORT_BIT( 0x001000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 C2") PORT_CODE(KEYCODE_F)
PORT_BIT( 0x002000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 C2#") PORT_CODE(KEYCODE_G)
PORT_BIT( 0x004000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 D2") PORT_CODE(KEYCODE_H)
PORT_BIT( 0x008000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 D2#") PORT_CODE(KEYCODE_J)
PORT_BIT( 0x010000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 E2") PORT_CODE(KEYCODE_K)
PORT_BIT( 0x020000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 F2") PORT_CODE(KEYCODE_L)
PORT_BIT( 0x040000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 F2#") PORT_CODE(KEYCODE_Z)
PORT_BIT( 0x080000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 G2") PORT_CODE(KEYCODE_X)
PORT_BIT( 0x100000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 G2#") PORT_CODE(KEYCODE_C)
PORT_BIT( 0x200000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 A2") PORT_CODE(KEYCODE_V)
PORT_BIT( 0x400000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 A2#") PORT_CODE(KEYCODE_B)
PORT_BIT( 0x800000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 B2") PORT_CODE(KEYCODE_N)
PORT_START("KEYBOARD_P1")
PORT_BIT( 0x000001, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 C1") PORT_CODE(KEYCODE_Q)
PORT_BIT( 0x000002, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 C1#") PORT_CODE(KEYCODE_W)
PORT_BIT( 0x000004, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 D1") PORT_CODE(KEYCODE_E)
PORT_BIT( 0x000008, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 D1#") PORT_CODE(KEYCODE_R)
PORT_BIT( 0x000010, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 E1") PORT_CODE(KEYCODE_T)
PORT_BIT( 0x000020, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 F1") PORT_CODE(KEYCODE_Y)
PORT_BIT( 0x000040, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 F1#") PORT_CODE(KEYCODE_U)
PORT_BIT( 0x000080, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 G1") PORT_CODE(KEYCODE_I)
PORT_BIT( 0x000100, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 G1#") PORT_CODE(KEYCODE_O)
PORT_BIT( 0x000200, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 A1") PORT_CODE(KEYCODE_A)
PORT_BIT( 0x000400, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 A1#") PORT_CODE(KEYCODE_S)
PORT_BIT( 0x000800, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 B1") PORT_CODE(KEYCODE_D)
PORT_BIT( 0x001000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 C2") PORT_CODE(KEYCODE_F)
PORT_BIT( 0x002000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 C2#") PORT_CODE(KEYCODE_G)
PORT_BIT( 0x004000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 D2") PORT_CODE(KEYCODE_H)
PORT_BIT( 0x008000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 D2#") PORT_CODE(KEYCODE_J)
PORT_BIT( 0x010000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 E2") PORT_CODE(KEYCODE_K)
PORT_BIT( 0x020000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 F2") PORT_CODE(KEYCODE_L)
PORT_BIT( 0x040000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 F2#") PORT_CODE(KEYCODE_Z)
PORT_BIT( 0x080000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 G2") PORT_CODE(KEYCODE_X)
PORT_BIT( 0x100000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 G2#") PORT_CODE(KEYCODE_C)
PORT_BIT( 0x200000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 A2") PORT_CODE(KEYCODE_V)
PORT_BIT( 0x400000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 A2#") PORT_CODE(KEYCODE_B)
PORT_BIT( 0x800000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 B2") PORT_CODE(KEYCODE_N)
PORT_START("KEYBOARD_P2")
PORT_BIT( 0x000001, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 C1") PORT_CODE(KEYCODE_Q)
PORT_BIT( 0x000002, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 C1#") PORT_CODE(KEYCODE_W)
PORT_BIT( 0x000004, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 D1") PORT_CODE(KEYCODE_E)
PORT_BIT( 0x000008, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 D1#") PORT_CODE(KEYCODE_R)
PORT_BIT( 0x000010, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 E1") PORT_CODE(KEYCODE_T)
PORT_BIT( 0x000020, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 F1") PORT_CODE(KEYCODE_Y)
PORT_BIT( 0x000040, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 F1#") PORT_CODE(KEYCODE_U)
PORT_BIT( 0x000080, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 G1") PORT_CODE(KEYCODE_I)
PORT_BIT( 0x000100, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 G1#") PORT_CODE(KEYCODE_O)
PORT_BIT( 0x000200, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 A1") PORT_CODE(KEYCODE_A)
PORT_BIT( 0x000400, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 A1#") PORT_CODE(KEYCODE_S)
PORT_BIT( 0x000800, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 B1") PORT_CODE(KEYCODE_D)
PORT_BIT( 0x001000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 C2") PORT_CODE(KEYCODE_F)
PORT_BIT( 0x002000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 C2#") PORT_CODE(KEYCODE_G)
PORT_BIT( 0x004000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 D2") PORT_CODE(KEYCODE_H)
PORT_BIT( 0x008000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 D2#") PORT_CODE(KEYCODE_J)
PORT_BIT( 0x010000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 E2") PORT_CODE(KEYCODE_K)
PORT_BIT( 0x020000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 F2") PORT_CODE(KEYCODE_L)
PORT_BIT( 0x040000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 F2#") PORT_CODE(KEYCODE_Z)
PORT_BIT( 0x080000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 G2") PORT_CODE(KEYCODE_X)
PORT_BIT( 0x100000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 G2#") PORT_CODE(KEYCODE_C)
PORT_BIT( 0x200000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 A2") PORT_CODE(KEYCODE_V)
PORT_BIT( 0x400000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 A2#") PORT_CODE(KEYCODE_B)
PORT_BIT( 0x800000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 B2") PORT_CODE(KEYCODE_N)
PORT_START("KEYBOARD_P2")
PORT_BIT( 0x000001, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 C1") PORT_CODE(KEYCODE_Q)
PORT_BIT( 0x000002, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 C1#") PORT_CODE(KEYCODE_W)
PORT_BIT( 0x000004, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 D1") PORT_CODE(KEYCODE_E)
PORT_BIT( 0x000008, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 D1#") PORT_CODE(KEYCODE_R)
PORT_BIT( 0x000010, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 E1") PORT_CODE(KEYCODE_T)
PORT_BIT( 0x000020, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 F1") PORT_CODE(KEYCODE_Y)
PORT_BIT( 0x000040, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 F1#") PORT_CODE(KEYCODE_U)
PORT_BIT( 0x000080, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 G1") PORT_CODE(KEYCODE_I)
PORT_BIT( 0x000100, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 G1#") PORT_CODE(KEYCODE_O)
PORT_BIT( 0x000200, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 A1") PORT_CODE(KEYCODE_A)
PORT_BIT( 0x000400, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 A1#") PORT_CODE(KEYCODE_S)
PORT_BIT( 0x000800, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 B1") PORT_CODE(KEYCODE_D)
PORT_BIT( 0x001000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 C2") PORT_CODE(KEYCODE_F)
PORT_BIT( 0x002000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 C2#") PORT_CODE(KEYCODE_G)
PORT_BIT( 0x004000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 D2") PORT_CODE(KEYCODE_H)
PORT_BIT( 0x008000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 D2#") PORT_CODE(KEYCODE_J)
PORT_BIT( 0x010000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 E2") PORT_CODE(KEYCODE_K)
PORT_BIT( 0x020000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 F2") PORT_CODE(KEYCODE_L)
PORT_BIT( 0x040000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 F2#") PORT_CODE(KEYCODE_Z)
PORT_BIT( 0x080000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 G2") PORT_CODE(KEYCODE_X)
PORT_BIT( 0x100000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 G2#") PORT_CODE(KEYCODE_C)
PORT_BIT( 0x200000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 A2") PORT_CODE(KEYCODE_V)
PORT_BIT( 0x400000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 A2#") PORT_CODE(KEYCODE_B)
PORT_BIT( 0x800000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 B2") PORT_CODE(KEYCODE_N)
*/
INPUT_PORTS_END
@ -2355,8 +2355,8 @@ void firebeat_state::init_firebeat()
atapi_init();
// pc16552d_init(machine(), 0, 19660800, comm_uart_irq_callback, 0); // Network UART
// pc16552d_init(machine(), 1, 24000000, midi_uart_irq_callback, 0); // MIDI UART
// pc16552d_init(machine(), 0, 19660800, comm_uart_irq_callback, 0); // Network UART
// pc16552d_init(machine(), 1, 24000000, midi_uart_irq_callback, 0); // MIDI UART
m_extend_board_irq_enable = 0x3f;
m_extend_board_irq_active = 0x00;
@ -2387,8 +2387,8 @@ DRIVER_INIT_MEMBER(firebeat_state,ppd)
void firebeat_state::init_keyboard()
{
// set keyboard timer
// m_keyboard_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(firebeat_state::keyboard_timer_callback),this));
// m_keyboard_timer->adjust(attotime::from_msec(10), 0, attotime::from_msec(10));
// m_keyboard_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(firebeat_state::keyboard_timer_callback),this));
// m_keyboard_timer->adjust(attotime::from_msec(10), 0, attotime::from_msec(10));
}
DRIVER_INIT_MEMBER(firebeat_state,kbm)

View File

@ -84,21 +84,21 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( fruitpc )
PORT_START("pc_keyboard_0")
// PORT_BIT ( 0x0001, 0x0000, IPT_UNUSED ) /* unused scancode 0 */
// AT_KEYB_HELPER( 0x0002, "Esc", KEYCODE_Q ) /* Esc 01 81 */
// PORT_BIT ( 0x0001, 0x0000, IPT_UNUSED ) /* unused scancode 0 */
// AT_KEYB_HELPER( 0x0002, "Esc", KEYCODE_Q ) /* Esc 01 81 */
PORT_START("pc_keyboard_1")
// AT_KEYB_HELPER( 0x0010, "T", KEYCODE_T ) /* T 14 94 */
// AT_KEYB_HELPER( 0x0020, "Y", KEYCODE_Y ) /* Y 15 95 */
// AT_KEYB_HELPER( 0x0100, "O", KEYCODE_O ) /* O 18 98 */
// AT_KEYB_HELPER( 0x1000, "Enter", KEYCODE_ENTER ) /* Enter 1C 9C */
// AT_KEYB_HELPER( 0x0010, "T", KEYCODE_T ) /* T 14 94 */
// AT_KEYB_HELPER( 0x0020, "Y", KEYCODE_Y ) /* Y 15 95 */
// AT_KEYB_HELPER( 0x0100, "O", KEYCODE_O ) /* O 18 98 */
// AT_KEYB_HELPER( 0x1000, "Enter", KEYCODE_ENTER ) /* Enter 1C 9C */
PORT_START("pc_keyboard_2")
PORT_START("pc_keyboard_3")
// AT_KEYB_HELPER( 0x0001, "B", KEYCODE_B ) /* B 30 B0 */
// AT_KEYB_HELPER( 0x0002, "N", KEYCODE_N ) /* N 31 B1 */
// AT_KEYB_HELPER( 0x0800, "F1", KEYCODE_S ) /* F1 3B BB */
// AT_KEYB_HELPER( 0x0001, "B", KEYCODE_B ) /* B 30 B0 */
// AT_KEYB_HELPER( 0x0002, "N", KEYCODE_N ) /* N 31 B1 */
// AT_KEYB_HELPER( 0x0800, "F1", KEYCODE_S ) /* F1 3B BB */
// AT_KEYB_HELPER( 0x8000, "F5", KEYCODE_F5 )
PORT_START("pc_keyboard_4")
@ -107,13 +107,13 @@ static INPUT_PORTS_START( fruitpc )
PORT_START("pc_keyboard_5")
PORT_START("pc_keyboard_6")
// AT_KEYB_HELPER( 0x0040, "(MF2)Cursor Up", KEYCODE_UP ) /* Up 67 e7 */
// AT_KEYB_HELPER( 0x0080, "(MF2)Page Up", KEYCODE_PGUP ) /* Page Up 68 e8 */
// AT_KEYB_HELPER( 0x0100, "(MF2)Cursor Left", KEYCODE_LEFT ) /* Left 69 e9 */
// AT_KEYB_HELPER( 0x0200, "(MF2)Cursor Right", KEYCODE_RIGHT ) /* Right 6a ea */
// AT_KEYB_HELPER( 0x0800, "(MF2)Cursor Down", KEYCODE_DOWN ) /* Down 6c ec */
// AT_KEYB_HELPER( 0x1000, "(MF2)Page Down", KEYCODE_PGDN ) /* Page Down 6d ed */
// AT_KEYB_HELPER( 0x4000, "Del", KEYCODE_A ) /* Delete 6f ef */
// AT_KEYB_HELPER( 0x0040, "(MF2)Cursor Up", KEYCODE_UP ) /* Up 67 e7 */
// AT_KEYB_HELPER( 0x0080, "(MF2)Page Up", KEYCODE_PGUP ) /* Page Up 68 e8 */
// AT_KEYB_HELPER( 0x0100, "(MF2)Cursor Left", KEYCODE_LEFT ) /* Left 69 e9 */
// AT_KEYB_HELPER( 0x0200, "(MF2)Cursor Right", KEYCODE_RIGHT ) /* Right 6a ea */
// AT_KEYB_HELPER( 0x0800, "(MF2)Cursor Down", KEYCODE_DOWN ) /* Down 6c ec */
// AT_KEYB_HELPER( 0x1000, "(MF2)Page Down", KEYCODE_PGDN ) /* Page Down 6d ed */
// AT_KEYB_HELPER( 0x4000, "Del", KEYCODE_A ) /* Delete 6f ef */
PORT_START("pc_keyboard_7")

View File

@ -637,7 +637,7 @@ static ADDRESS_MAP_START( scrambler_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x6805, 0x6805) AM_DEVWRITE_LEGACY(GAL_AUDIO, galaxian_shoot_enable_w)
AM_RANGE(0x6806, 0x6807) AM_DEVWRITE_LEGACY(GAL_AUDIO, galaxian_vol_w)
AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN2") AM_WRITE(galaxold_nmi_enable_w)
// AM_RANGE(0x7001, 0x7001)
// AM_RANGE(0x7001, 0x7001)
AM_RANGE(0x7002, 0x7002) AM_WRITE(galaxold_coin_counter_w)
AM_RANGE(0x7003, 0x7003) AM_WRITE(scrambold_background_enable_w)
AM_RANGE(0x7004, 0x7004) AM_WRITE(galaxold_stars_enable_w)
@ -645,13 +645,13 @@ static ADDRESS_MAP_START( scrambler_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x7007, 0x7007) AM_WRITE(galaxold_flip_screen_y_w)
AM_RANGE(0x7800, 0x7800) AM_READ(watchdog_reset_r)
AM_RANGE(0x7800, 0x7800) AM_DEVWRITE_LEGACY(GAL_AUDIO, galaxian_pitch_w)
// AM_RANGE(0x8102, 0x8102) AM_READ(scramblb_protection_1_r)
// AM_RANGE(0x8102, 0x8102) AM_READ(scramblb_protection_1_r)
AM_RANGE(0x8202, 0x8202) AM_READ(scrambler_protection_2_r)
ADDRESS_MAP_END
WRITE8_MEMBER( galaxold_state::guttang_rombank_w )
{
// printf("rombank %02x\n",data);
// printf("rombank %02x\n",data);
if (data&1)
{
UINT8 *rom = memregion("maincpu")->base();
@ -2104,7 +2104,7 @@ static INPUT_PORTS_START( guttangt )
PORT_DIPNAME( 0x40, 0x40, "IN1:7" )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, "IN1:8" )
PORT_DIPNAME( 0x80, 0x80, "IN1:8" )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@ -2130,7 +2130,7 @@ static INPUT_PORTS_START( guttangt )
PORT_DIPNAME( 0x40, 0x40, "IN2:7" )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, "IN2:8" )
PORT_DIPNAME( 0x80, 0x80, "IN2:8" )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2368,7 +2368,7 @@ static MACHINE_CONFIG_DERIVED( guttang, galaxian )
/* video hardware */
MCFG_PALETTE_LENGTH(32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */
// MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,scrambold)
// MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,scrambold)
MCFG_VIDEO_START_OVERRIDE(galaxold_state,mooncrst)
MACHINE_CONFIG_END
@ -3282,7 +3282,7 @@ ROM_START( guttangt )
ROM_REGION( 0x2000, "gfx1", 0 )
ROM_LOAD( "gg9-2732.rom", 0x0000, 0x1000, CRC(be6bf522) SHA1(23a09409b7de4bfdb970e4ff23d89a2439a0aee5) )
ROM_LOAD( "gg10-2732.rom", 0x1000, 0x1000, CRC(b04c34c5) SHA1(a37db70ce67d64daa5f0c41cce1136d1c9d8c175) )
ROM_REGION( 0x0020, "proms", 0 ) // no PROM was present..
ROM_LOAD( "mmi6331.6l", 0x0000, 0x0020, BAD_DUMP CRC(6a0c7d87) SHA1(140335d85c67c75b65689d4e76d29863c209cf32) )
ROM_END

View File

@ -46,7 +46,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( galaxianbl )
PORT_INCLUDE(galaxian)
PORT_MODIFY("IN2")
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) )
PORT_DIPSETTING( 0x00, DEF_STR(None) )
@ -5075,7 +5075,7 @@ ROM_START( mooncrsl ) // similar to above
ROM_LOAD( "07.bin", 0x3000, 0x0800, CRC(8e9ac0fc) SHA1(ddc11ad20ecbd954098becf7d7a1bbe6cddeda1b) )
ROM_LOAD( "08.bin", 0x3800, 0x0800, CRC(020a8e2f) SHA1(b64438cb043252565d8a4f3f58f4a4f78a276ba2) )
ROM_REGION( 0x2000, "gfx1", 0 ) // not present in this set
ROM_REGION( 0x2000, "gfx1", 0 ) // not present in this set
ROM_LOAD( "mcs_b", 0x0000, 0x0800, CRC(fb0f1f81) SHA1(38a6679a8b69bc1870a0e67e692131c42f9535c8) )
ROM_LOAD( "mcs_d", 0x0800, 0x0800, CRC(13932a15) SHA1(b8885c555c6ad7021be55c6925a0a0872c1b6abd) )
ROM_LOAD( "mcs_a", 0x1000, 0x0800, CRC(631ebb5a) SHA1(5bc9493afa76c55858b8c8849524cbc77dc838fc) )

View File

@ -272,10 +272,10 @@ INTERRUPT_GEN_MEMBER(gaplus_state::gapluso_vblank_main_irq)
{
if(m_main_irq_mask)
m_maincpu->set_input_line(0, ASSERT_LINE);
if (!m_namco58xx->read_reset_line()) /* give the cpu a tiny bit of time to write the command before processing it */
timer_set(attotime::from_usec(50), TIMER_NAMCOIO_RUN, 1);
if (!m_namco56xx->read_reset_line()) /* give the cpu a tiny bit of time to write the command before processing it */
timer_set(attotime::from_usec(50), TIMER_NAMCOIO_RUN, 0);
}
@ -960,15 +960,15 @@ ROM_END
DRIVER_INIT_MEMBER(gaplus_state,gaplus)
{
UINT8 *rom;
rom = memregion("gfx1")->base();
for (int i = 0;i < 0x2000;i++)
rom[i + 0x2000] = rom[i] >> 4;
rom = memregion("gfx2")->base() + 0x6000;
for (int i = 0;i < 0x2000;i++)
rom[i + 0x2000] = rom[i] << 4;
m_type = GAME_GAPLUS;
}

View File

@ -182,7 +182,7 @@ GAME(198?, j_nuddup ,0 ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "J
GAME(198?, j_nuddup2,j_nuddup ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM","Nudge Double Up (JPM SRU, set 2)", GAME_IS_SKELETON_MECHANICAL )
GAME(198?, j_unk ,0 ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM?","Unknown SRU Game (JPM?)", GAME_IS_SKELETON_MECHANICAL )
GAME(198?, j_unk ,0 ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM?","Unknown SRU Game (JPM?)", GAME_IS_SKELETON_MECHANICAL )
// this one is different again?
GAME(198?, j_plus2 ,0 ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM","Plus 2 (JPM)", GAME_IS_SKELETON_MECHANICAL )

View File

@ -578,7 +578,7 @@ TODO:
void mappy_state::common_latch_w(UINT32 offset)
{
int bit = offset & 1;
switch (offset & 0x0e)
{
case 0x00: /* INT ON 2 */
@ -586,27 +586,27 @@ void mappy_state::common_latch_w(UINT32 offset)
if (!bit)
m_subcpu->set_input_line(0, CLEAR_LINE);
break;
case 0x02: /* INT ON */
m_main_irq_mask = bit;
if (!bit)
m_maincpu->set_input_line(0, CLEAR_LINE);
break;
case 0x04: /* n.c. */
break;
case 0x06: /* SOUND ON */
mappy_sound_enable(machine().device("namco"), bit);
break;
case 0x0a: /* SUB RESET */
m_subcpu->set_input_line(INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
break;
case 0x0c: /* n.c. */
break;
case 0x0e: /* n.c. */
break;
}
@ -638,7 +638,7 @@ WRITE8_MEMBER(mappy_state::superpac_latch_w)
default:
common_latch_w(offset);
break;
break;
}
}
@ -662,10 +662,10 @@ WRITE8_MEMBER(mappy_state::phozon_latch_w)
case 0x0c:
m_subcpu2->set_input_line(INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
break;
default:
common_latch_w(offset);
break;
break;
}
}
@ -697,10 +697,10 @@ WRITE8_MEMBER(mappy_state::mappy_latch_w)
break;
}
break;
default:
common_latch_w(offset);
break;
break;
}
}
@ -1714,7 +1714,7 @@ static MACHINE_CONFIG_FRAGMENT( superpac_common )
MCFG_WATCHDOG_VBLANK_INIT(8)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
/* synchronization of the CPUs */
MCFG_MACHINE_START_OVERRIDE(mappy_state,mappy)
MCFG_MACHINE_RESET_OVERRIDE(mappy_state,superpac)
@ -1792,7 +1792,7 @@ static MACHINE_CONFIG_START( phozon, mappy_state )
MCFG_WATCHDOG_VBLANK_INIT(8)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
/* synchronization of the CPUs */
MCFG_MACHINE_START_OVERRIDE(mappy_state,mappy)
MCFG_MACHINE_RESET_OVERRIDE(mappy_state,phozon)
@ -1832,7 +1832,7 @@ static MACHINE_CONFIG_FRAGMENT( mappy_common )
MCFG_WATCHDOG_VBLANK_INIT(8)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
/* synchronization of the CPUs */
MCFG_MACHINE_START_OVERRIDE(mappy_state,mappy)
MCFG_MACHINE_RESET_OVERRIDE(mappy_state,mappy)

View File

@ -6604,7 +6604,7 @@ ROM_END
#define EP_TREAS_SOUND \
ROM_REGION( 0x100000, "ymz", 0 ) \
ROM_LOAD( "treas1_6.s0", 0x000000, 0x080000, CRC(df792dc0) SHA1(96647eb579a3a60f1a4a2bea53d7a13030838437) )
ROM_LOAD( "treas1_6.s0", 0x000000, 0x080000, CRC(df792dc0) SHA1(96647eb579a3a60f1a4a2bea53d7a13030838437) )
ROM_START( ep_treas )
ROM_REGION( 0x080000, "maincpu", 0 )

View File

@ -20,7 +20,7 @@ ZPU-2000 - main cpu board
- four 'test button' style switches
- one 4Mhz xtal @A1
- this same board is shared with cliff hanger (clifhgr.c)
CFB-1000 - video/subcpu board
- this board has a sub-cpu on it and four roms (six sockets for roms, two empty)
- the roms go in sockets "ROM0"@G8, "ROM2"@K8, "ROM3"@K10, "ROM4"@K11

View File

@ -502,7 +502,7 @@ ROM_END
Sound: 1x U6295 (U53)
RAM: 2x 6116.
RAM: 2x 6116.
2x 6264 (prg RAM)
2x 62256 (near battery)
@ -518,27 +518,27 @@ ROM_END
*/
ROM_START( top21 )
ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "odd_1-2.u75", 0x000001, 0x80000, CRC(ce4f2a74) SHA1(f9a9043da924ddba16f49d6856dbcfd8f066c824) )
ROM_LOAD16_BYTE( "even_1-2.u76", 0x000000, 0x80000, CRC(8d645456) SHA1(06c59816f259168f15503b276fc28c947e17cc60) )
ROM_COPY( "maincpu", 0x080000, 0x00000, 0x80000 ) // copying the second halves to the right offset
ROM_COPY( "maincpu", 0x080000, 0x00000, 0x80000 ) // copying the second halves to the right offset
ROM_REGION( 0xa0000, "gfx1", 0 )
ROM_LOAD( "36.u36", 0x000000, 0x20000, CRC(071883f7) SHA1(16b5c251975394bb94c0d32277912ea99280c21c) )
ROM_LOAD( "35.u35", 0x020000, 0x20000, CRC(cdc8cc44) SHA1(ce703e7f050465b1bc07800eb84eb7f127ebbddb) ) // double size. 2nd half empty
ROM_LOAD( "35.u35", 0x020000, 0x20000, CRC(cdc8cc44) SHA1(ce703e7f050465b1bc07800eb84eb7f127ebbddb) ) // double size. 2nd half empty
ROM_IGNORE( 0x20000)
ROM_LOAD( "34.u34", 0x040000, 0x20000, CRC(bdbe7360) SHA1(3038f66d57a43afea9d6c05908bfb50167a881c2) )
ROM_LOAD( "33.u33", 0x060000, 0x20000, CRC(670584b0) SHA1(23772404b5e5066828c59d9baa03b732a80db676) )
ROM_LOAD( "32.u32", 0x080000, 0x20000, CRC(c5bc3950) SHA1(aebaae91ade0c221ba14186fde78206996cdec30) )
ROM_REGION( 0x80000, "oki", 0 ) // 6295 samples (first half empty)
ROM_REGION( 0x80000, "oki", 0 ) // 6295 samples (first half empty)
ROM_LOAD( "audio.u64", 0x00000, 0x80000, CRC(4f70a9bc) SHA1(83f0664eadf923ed45e3e18bfcefafb85163c4a0) )
ROM_COPY( "oki", 0x40000, 0x00000, 0x40000 ) // copying the second half to the right offset
ROM_COPY( "oki", 0x40000, 0x00000, 0x40000 ) // copying the second half to the right offset
ROM_REGION( 0x4000, "mcu", 0 ) // MCU code
ROM_REGION( 0x4000, "mcu", 0 ) // MCU code
ROM_LOAD( "pic16c65b_top21.u60", 0x0000, 0x4000, NO_DUMP )
ROM_REGION( 0x10000, "nvram", 0 ) // default NVRAM (2x 62256)
ROM_REGION( 0x10000, "nvram", 0 ) // default NVRAM (2x 62256)
ROM_LOAD( "top21_nvram.bin", 0x00000, 0x10000, CRC(638726ce) SHA1(c55c77df5fbddfb19acf50f1b4467c63c818d5e7) )
ROM_END

View File

@ -1885,27 +1885,27 @@ ROM_END
/*
Coinworld data
Error Number Cause of alarm Comments
11 1 GBP coin in These alarms go off when a coin is jammed in the mech, or if the Mars anti-strimming alarm is activated.
Error Number Cause of alarm Comments
11 1 GBP coin in These alarms go off when a coin is jammed in the mech, or if the Mars anti-strimming alarm is activated.
12 50p coin in The machine will lock up for a short amount of time, whilst sounding as alarm tone.
13 20p coin in Error 15 can be caused by having DIL switch 6 in the wrong position for your coin mech loom.
14 10p coin in
15 5p coin in
16 2 GBP coin in
16 2 GBP coin in
21 Reel 1 alarm The faulty reel will flash. Nothing more will happen until the machine is reset
22 Reel 2 alarm
23 Reel 3 alarm
42 Ram Cleared The RAM is cleared when the machine is turned on for the first time, or when the price of play is changed. The alarm
23 Reel 3 alarm
42 Ram Cleared The RAM is cleared when the machine is turned on for the first time, or when the price of play is changed. The alarm
clears after a short time
51 Checksum error The machine will lock up completely if the eprom has failed, or if the security chip is missing or has failed
51 Checksum error The machine will lock up completely if the eprom has failed, or if the security chip is missing or has failed
54 Security chip fail
61 Cash in meter failure The machine will not run if the cash in, or cash out meters are not connected properly.
62 Cash out meter failure
71 Datapack error If the machine is in protocol mode, and a datapack is not connected, then the machine alarms. It will reset after a
62 Cash out meter failure
71 Datapack error If the machine is in protocol mode, and a datapack is not connected, then the machine alarms. It will reset after a
time, and have another go at transmitting the data
72 Sound card fail If the sound card is missing, or the wrong sound eprom is fitted, the machine alarms on power on. The machine will then
72 Sound card fail If the sound card is missing, or the wrong sound eprom is fitted, the machine alarms on power on. The machine will then
operate in silence.
99 Payout tubes empty If one of the tubes runs dry, the machine will attempt to compensate by paying from the other tube. If this runs dry
99 Payout tubes empty If one of the tubes runs dry, the machine will attempt to compensate by paying from the other tube. If this runs dry
as well, the machine will lock up, requiring a refill before games can continue. The alarm tone is a softer, more friendly one.
*/

View File

@ -1801,7 +1801,7 @@ INPUT_PORTS_START( mpu4_cw )
PORT_DIPNAME( 0x0C, 0x00, "Jackpot" ) PORT_DIPLOCATION("DIL1:03,04")
PORT_DIPSETTING( 0x04, "15 GBP" )
PORT_DIPSETTING( 0x00, "10 GBP" )
PORT_DIPSETTING( 0x08, "5 GBP" )
PORT_DIPSETTING( 0x08, "5 GBP" )
PORT_DIPNAME( 0x10, 0x00, "Hold Mode" ) PORT_DIPLOCATION("DIL1:05")
PORT_DIPSETTING( 0x00, "Show Hints" )
PORT_DIPSETTING( 0x10, "Auto Hold" )
@ -1813,18 +1813,18 @@ INPUT_PORTS_START( mpu4_cw )
PORT_DIPSETTING( 0x40, "Fat motor" )
PORT_DIPNAME( 0x80, 0x00, "Payout Tube" ) PORT_DIPLOCATION("DIL1:05")
PORT_DIPSETTING( 0x00, "20p" )
PORT_DIPSETTING( 0x80, "10p" )
PORT_DIPSETTING( 0x80, "10p" )
PORT_MODIFY("DIL2")
PORT_DIPNAME( 0x07, 0x00, "Stake Setting" )
PORT_DIPSETTING( 0x00, "Not fitted / 5p" )
PORT_DIPSETTING( 0x01, "10p" )
PORT_DIPSETTING( 0x02, "20p" )
PORT_DIPSETTING( 0x03, "25p" )
PORT_DIPSETTING( 0x03, "25p" )
PORT_DIPSETTING( 0x04, "30p" )
PORT_BIT(0xE0, IP_ACTIVE_HIGH, IPT_UNUSED)
INPUT_PORTS_END
INPUT_PORTS_START( mpu4jackpot8tkn )
PORT_INCLUDE( mpu4 )

View File

@ -5,20 +5,20 @@
what's the difference between the platforms, sound hardware?
Some early Proconn hardware was used for Maygay stuff, so this may be a bit of a mix.
Error codes:
ERROR 1 EPROM FAILED
ERROR 3 RAM CORRUPTION DETECTED (common on PC90 boards)
ERROR 10 RAM FAILURE
ERROR 20 METERS DISCONNECTED
ERROR 21 CASH IN METER FAIL
ERROR 22 CASH OUT METER FAIL
ERROR 25 REFILL METER FAIL
ERROR 30 REEL 1 FAIL
ERROR 31 REEL 2 FAIL
ERROR 32 REEL 3 FAIL
ERROR 99 SECURITY CARD MISSING OR FAILED, OR INCORRECT FOR PROGRAM
ERROR 1 EPROM FAILED
ERROR 3 RAM CORRUPTION DETECTED (common on PC90 boards)
ERROR 10 RAM FAILURE
ERROR 20 METERS DISCONNECTED
ERROR 21 CASH IN METER FAIL
ERROR 22 CASH OUT METER FAIL
ERROR 25 REFILL METER FAIL
ERROR 30 REEL 1 FAIL
ERROR 31 REEL 2 FAIL
ERROR 32 REEL 3 FAIL
ERROR 99 SECURITY CARD MISSING OR FAILED, OR INCORRECT FOR PROGRAM
*/

View File

@ -31,7 +31,7 @@
The kram3 set used to be playable with the implementation in the MAME M6809
CPU core, encrypting only the first byte in 10 xx and 11 xx opcodes.
This should get a cleaner implementation. Until then, kram3 is broken on purpose.
According to the QIX and Kram schematics, these games should be using 68A90Es.
The 6809E has a 'Last Instruction Cycle' pin that is likely tied in with the encryption:
"LIC is HIGH during the last cycle of every instruction and its transition from

View File

@ -92,7 +92,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( quake_io, AS_IO, 32, quakeat_state )
AM_IMPORT_FROM(pcat32_io_common)
AM_RANGE(0x00e8, 0x00eb) AM_NOP
// AM_RANGE(0x01f0, 0x01f7) AM_DEVREADWRITE16("ide", ide_controller_device, read_cs0_pc, write_cs0_pc, 0xffffffff)
// AM_RANGE(0x01f0, 0x01f7) AM_DEVREADWRITE16("ide", ide_controller_device, read_cs0_pc, write_cs0_pc, 0xffffffff)
AM_RANGE(0x0300, 0x03af) AM_NOP
AM_RANGE(0x03b0, 0x03df) AM_NOP
// AM_RANGE(0x0278, 0x027b) AM_WRITE(pnp_config_w)

View File

@ -423,24 +423,24 @@ WRITE32_MEMBER(savquest_state::parallel_port_w)
*/
if ((data8 == 0x94)
|| (data8 == 0x9e)
|| (data8 == 0xa4)
|| (data8 == 0xb2)
|| (data8 == 0xbe)
|| (data8 == 0xd0)
)
|| (data8 == 0x9e)
|| (data8 == 0xa4)
|| (data8 == 0xb2)
|| (data8 == 0xbe)
|| (data8 == 0xd0)
)
{
return;
}
if ((data8 == 0x8a)
|| (data8 == 0x8e)
|| (data8 == 0xca)
|| (data8 == 0xd2)
|| (data8 == 0xe2)
|| (data8 == 0xf0)
|| (data8 == 0xfc)
)
|| (data8 == 0x8e)
|| (data8 == 0xca)
|| (data8 == 0xd2)
|| (data8 == 0xe2)
|| (data8 == 0xf0)
|| (data8 == 0xfc)
)
{
/* someone with access to the actual dongle could dump the true values
I've never seen it so I just determined the relevant bits instead
@ -509,8 +509,8 @@ WRITE32_MEMBER(savquest_state::parallel_port_w)
}
if ((m_haspstate == HASPSTATE_PASSBEG)
&& (data8 & 1)
)
&& (data8 & 1)
)
{
m_hasp_tmppass[m_hasp_passind] = data8;

View File

@ -30,7 +30,7 @@
This code is also in the main PRG ROM at offset 0x1ffffc, even on single
board games. Known regions are:
0x01 Japan
0x10 US
0x20 Taiwan
@ -951,8 +951,8 @@ WRITE32_MEMBER(seibuspi_state::ejsakura_input_select_w)
static ADDRESS_MAP_START( base_map, AS_PROGRAM, 32, seibuspi_state )
// AM_RANGE(0x00000104, 0x00000107) AM_WRITENOP // ?
// AM_RANGE(0x00000108, 0x0000010b) AM_WRITENOP // ?
// AM_RANGE(0x00000104, 0x00000107) AM_WRITENOP // ?
// AM_RANGE(0x00000108, 0x0000010b) AM_WRITENOP // ?
AM_RANGE(0x00000000, 0x000003ff) AM_RAM
AM_RANGE(0x00000414, 0x00000417) AM_WRITENOP // bg gfx decryption key, see machine/seibuspi.c
AM_RANGE(0x00000418, 0x0000041b) AM_READWRITE(spi_layer_bank_r, spi_layer_bank_w)
@ -1059,7 +1059,7 @@ WRITE8_MEMBER(seibuspi_state::z80_bank_w)
m_z80_lastbank = bank;
membank("bank1")->set_entry(bank);
}
// d3: watchdog?
}
@ -1067,7 +1067,7 @@ WRITE8_MEMBER(seibuspi_state::spi_coin_w)
{
coin_counter_w(machine(), 0, data & 1);
coin_counter_w(machine(), 1, data & 2);
// coin latch used by single boards
if (data)
m_sb_coin_latch = 0xa0 | data;
@ -1903,7 +1903,7 @@ static MACHINE_CONFIG_DERIVED( sxx2f, sxx2e )
MCFG_DEVICE_REMOVE("ds2404")
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
// Z80 is Z84C0006PCS instead of Z84C0008PEC
// clock is unknown, possibly slower than 7.159MHz
MACHINE_CONFIG_END

View File

@ -80,7 +80,7 @@ WRITE8_MEMBER(speedbal_state::leds_output_block)
{
if (!m_leds_start)
return;
m_leds_start = false;
// Each hypothetical led block has 3 7seg leds.
@ -362,11 +362,10 @@ DRIVER_INIT_MEMBER(speedbal_state,musicbal)
for (int i=0;i<0x8000;i++)
{
// some bits are ^ 0x05
/*if ((i&0x30) == 0x00)
{
if ((( i & 0x0f ) > 0x08) && (( i & 0x0f ) < 0x0f)) MUSICBALL_XOR05
if ((( i & 0x0f ) > 0x08) && (( i & 0x0f ) < 0x0f)) MUSICBALL_XOR05
}
*/

View File

@ -85,7 +85,7 @@ public:
m_tms(*this, "tms"),
m_videoram(*this, "videoram"),
m_question_offset(*this, "question_offset")
{ }
{ }
required_device<cpu_device> m_maincpu;
required_device<tms9927_device> m_tms;

View File

@ -149,7 +149,7 @@ PALETTE_INIT( stuntair )
int b = (data&0xc0)>>6;
int g = (data&0x38)>>3;
int r = (data&0x07)>>0;
palette_set_color(machine,i,MAKE_RGB(r<<5,g<<5,b<<6));
}

View File

@ -1,7 +1,7 @@
/***************************************************************************
Taito F3 Package System (aka F3 Cybercore System)
Emulation by Bryan McPhail, mish@tendril.co.uk/mish@mame.net
Thanks to Ian Schmidt and Stiletto for sound information!
Major thanks to Aaron Giles for sound info, figuring out the 68K/ES5505

View File

@ -288,11 +288,11 @@ public:
tempest_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_mathbox(*this, "mathbox") { }
m_mathbox(*this, "mathbox") { }
required_device<cpu_device> m_maincpu;
required_device<mathbox_device> m_mathbox;
UINT8 m_player_select;
DECLARE_WRITE8_MEMBER(wdclr_w);
DECLARE_WRITE8_MEMBER(tempest_led_w);

View File

@ -2132,7 +2132,7 @@ static ADDRESS_MAP_START(coh1001l_map, AS_PROGRAM, 32, zn_state)
AM_RANGE(0x1f000000, 0x1f7fffff) AM_ROMBANK("bankedroms")
AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITE16(coh1001l_latch_w, 0x0000ffff)
AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITE8(coh1001l_bank_w, 0x00ff0000)
AM_IMPORT_FROM(zn_map)
ADDRESS_MAP_END
@ -2368,7 +2368,7 @@ WRITE8_MEMBER(zn_state::coh1002m_bank_w)
static ADDRESS_MAP_START(coh1002m_map, AS_PROGRAM, 32, zn_state)
AM_RANGE(0x1f000000, 0x1f7fffff) AM_ROMBANK("bankedroms")
AM_RANGE(0x1fb00004, 0x1fb00007) AM_WRITE8(coh1002m_bank_w, 0x00ff0000)
AM_IMPORT_FROM(zn_map)
ADDRESS_MAP_END
@ -2394,7 +2394,7 @@ static ADDRESS_MAP_START(coh1002msnd_map, AS_PROGRAM, 32, zn_state)
AM_RANGE(0x1fb00000, 0x1fb00003) AM_DEVREAD8("cbaj_fifo2", fifo7200_device, data_byte_r, 0x000000ff)
AM_RANGE(0x1fb00000, 0x1fb00003) AM_DEVWRITE8("cbaj_fifo1", fifo7200_device, data_byte_w, 0x000000ff)
AM_RANGE(0x1fb00000, 0x1fb00003) AM_READ8(cbaj_sound_main_status_r, 0xff000000)
AM_IMPORT_FROM(coh1002m_map)
ADDRESS_MAP_END
@ -2426,7 +2426,7 @@ static MACHINE_CONFIG_DERIVED( coh1002msnd, coh1002m )
MCFG_CPU_ADD("audiocpu", Z80, XTAL_32MHz/8)
MCFG_CPU_PROGRAM_MAP(cbaj_z80_map)
MCFG_CPU_IO_MAP(cbaj_z80_port_map)
MCFG_FIFO7200_ADD("cbaj_fifo1", 0x400) // LH540202
MCFG_FIFO7200_ADD("cbaj_fifo2", 0x400) // "

View File

@ -21,7 +21,7 @@ public:
m_discrete(*this, "discrete"),
m_redbaronsound(*this, "custom")
{ }
required_device<cpu_device> m_maincpu;
required_device<mathbox_device> m_mathbox;
optional_device<discrete_device> m_discrete;
@ -45,7 +45,3 @@ public:
/*----------- defined in audio/bzone.c -----------*/
MACHINE_CONFIG_EXTERN( bzone_audio );

View File

@ -104,11 +104,11 @@ public:
device_t *m_dev_vp2; /* virtual port 2 */
device_t *m_dev_6h;
optional_device<discrete_device> m_discrete;
/* memory pointers */
required_shared_ptr<UINT8> m_video_ram;
required_shared_ptr<UINT8> m_sprite_ram;
/* machine states */
UINT8 m_hardware_type;
UINT8 m_nmi_mask;

View File

@ -1,6 +1,6 @@
/*************************************************************************
Exidy 440 hardware
Exidy 440 hardware
*************************************************************************/

View File

@ -78,7 +78,7 @@ public:
{
TIMER_CLOCK_EFFECT
};
DECLARE_WRITE8_MEMBER( sound1_w );
DECLARE_WRITE8_MEMBER( sound2_w );
@ -87,7 +87,7 @@ protected:
virtual void device_config_complete();
virtual void device_start();
virtual void device_reset();
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
// sound stream update overrides
@ -96,7 +96,7 @@ protected:
private:
void make_mixer_table(int voices, int gain);
void show_soundregs();
// internal state
emu_timer *m_effect_timer;

View File

@ -129,7 +129,7 @@ public:
DECLARE_WRITE8_MEMBER(rockclim_scroll_w);
DECLARE_WRITE8_MEMBER(guttang_rombank_w);
DECLARE_READ8_MEMBER(rockclim_videoram_r);
DECLARE_WRITE8_MEMBER(dambustr_bg_split_line_w);

View File

@ -16,14 +16,14 @@ public:
{
TIMER_NAMCOIO_RUN
};
enum
{
GAME_GAPLUS = 0,
GAME_GAPLUSD,
GAME_GALAGA3
};
gaplus_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
@ -33,7 +33,7 @@ public:
m_customio_3(*this,"customio_3"),
m_videoram(*this,"videoram"),
m_spriteram(*this,"spriteram") { }
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_subcpu;
required_device<cpu_device> m_subcpu2;
@ -45,7 +45,7 @@ public:
namco56xx_device *m_namco56xx;
int m_type;
tilemap_t *m_bg_tilemap;
UINT8 m_starfield_control[4];
int m_total_stars;
@ -86,7 +86,7 @@ public:
void starfield_init();
void starfield_render(bitmap_ind16 &bitmap);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
};

View File

@ -26,7 +26,7 @@ public:
GAME_DIGDUG2,
GAME_MOTOS
};
mappy_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_videoram(*this, "videoram"),
@ -38,7 +38,7 @@ public:
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_spriteram;
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_subcpu;
optional_device<cpu_device> m_subcpu2;
@ -49,7 +49,7 @@ public:
namco58xx_device *m_namco58xx_1;
namco58xx_device *m_namco58xx_2;
namco59xx_device *m_namco59xx;
// per-game variable to distinguish between the various IO chip config
int m_type;

View File

@ -192,5 +192,5 @@ public:
void decode_tdragonb();
void decode_ssmissin();
DECLARE_WRITE_LINE_MEMBER(ym2203_irqhandler);
};

View File

@ -400,9 +400,9 @@ public:
const UINT8 (*m_drgw2_source_data)[0xec];
UINT16 m_drgw2_prot_hold;
UINT16 m_drgw2_prot_hilo;
UINT16 m_drgw2_prot_hilo_select;
UINT16 m_drgw2_prot_hold;
UINT16 m_drgw2_prot_hilo;
UINT16 m_drgw2_prot_hilo_select;
int m_drgw2_cmd;
int m_drgw2_ptr;

Some files were not shown because too many files have changed in this diff Show More