mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
Cleanups and version bump.
This commit is contained in:
parent
32d55f53b0
commit
a2caa558e2
@ -7,38 +7,38 @@ T0 output clock
|
|||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
mcs48.c
|
mcs48.c
|
||||||
|
|
||||||
Intel MCS-48 Portable Emulator
|
Intel MCS-48 Portable Emulator
|
||||||
|
|
||||||
Copyright Mirko Buffoni
|
Copyright Mirko Buffoni
|
||||||
Based on the original work Copyright Dan Boris, an 8048 emulator
|
Based on the original work Copyright Dan Boris, an 8048 emulator
|
||||||
You are not allowed to distribute this software commercially
|
You are not allowed to distribute this software commercially
|
||||||
|
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
|
|
||||||
Note that the default internal divisor for this chip is by 3 and
|
Note that the default internal divisor for this chip is by 3 and
|
||||||
then again by 5, or by 15 total.
|
then again by 5, or by 15 total.
|
||||||
|
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
|
|
||||||
Chip RAM ROM I/O
|
Chip RAM ROM I/O
|
||||||
---- --- --- ---
|
---- --- --- ---
|
||||||
8021 64 1k 21 (ROM, reduced instruction set)
|
8021 64 1k 21 (ROM, reduced instruction set)
|
||||||
|
|
||||||
8035 64 0 27 (external ROM)
|
8035 64 0 27 (external ROM)
|
||||||
8041 64 1k 18 (ROM)
|
8041 64 1k 18 (ROM)
|
||||||
8048 64 1k 27 (ROM)
|
8048 64 1k 27 (ROM)
|
||||||
8648 64 1k 27 (OTPROM)
|
8648 64 1k 27 (OTPROM)
|
||||||
8741 64 1k 18 (EPROM)
|
8741 64 1k 18 (EPROM)
|
||||||
8748 64 1k 27 (EPROM)
|
8748 64 1k 27 (EPROM)
|
||||||
8884 64 1k
|
8884 64 1k
|
||||||
N7751 128 2k
|
N7751 128 2k
|
||||||
|
|
||||||
8039 128 0 27 (external ROM)
|
8039 128 0 27 (external ROM)
|
||||||
8049 128 2k 27 (ROM)
|
8049 128 2k 27 (ROM)
|
||||||
8749 128 2k 27 (EPROM)
|
8749 128 2k 27 (EPROM)
|
||||||
M58715 128 0 (external ROM)
|
M58715 128 0 (external ROM)
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -331,7 +331,7 @@ INLINE void execute_call(UINT16 address)
|
|||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
execute_jcc - perform the logic of a
|
execute_jcc - perform the logic of a
|
||||||
conditional jump instruction
|
conditional jump instruction
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
@ -599,7 +599,7 @@ static void ret(void) { pull_pc(); }
|
|||||||
static void retr(void)
|
static void retr(void)
|
||||||
{
|
{
|
||||||
pull_pc_psw();
|
pull_pc_psw();
|
||||||
|
|
||||||
/* implicitly clear the IRQ in progress flip flop and re-check interrupts */
|
/* implicitly clear the IRQ in progress flip flop and re-check interrupts */
|
||||||
mcs48.irq_in_progress = FALSE;
|
mcs48.irq_in_progress = FALSE;
|
||||||
check_irqs();
|
check_irqs();
|
||||||
@ -705,7 +705,7 @@ static const mcs48_opcode opcode_table[256]=
|
|||||||
static void mcs48_init(int index, int clock, const void *config, int (*irqcallback)(int), UINT16 romsize)
|
static void mcs48_init(int index, int clock, const void *config, int (*irqcallback)(int), UINT16 romsize)
|
||||||
{
|
{
|
||||||
memset(&mcs48, 0, sizeof(mcs48));
|
memset(&mcs48, 0, sizeof(mcs48));
|
||||||
|
|
||||||
mcs48.irq_callback = irqcallback;
|
mcs48.irq_callback = irqcallback;
|
||||||
mcs48.int_rom_size = romsize;
|
mcs48.int_rom_size = romsize;
|
||||||
|
|
||||||
@ -803,18 +803,18 @@ static void check_irqs(void)
|
|||||||
if (mcs48.irq_state && mcs48.xirq_enabled)
|
if (mcs48.irq_state && mcs48.xirq_enabled)
|
||||||
{
|
{
|
||||||
mcs48.irq_in_progress = TRUE;
|
mcs48.irq_in_progress = TRUE;
|
||||||
|
|
||||||
/* transfer to location 0x03 */
|
/* transfer to location 0x03 */
|
||||||
push_pc_psw();
|
push_pc_psw();
|
||||||
PC = 0x03;
|
PC = 0x03;
|
||||||
change_pc(0x03);
|
change_pc(0x03);
|
||||||
mcs48.inst_cycles += 2;
|
mcs48.inst_cycles += 2;
|
||||||
|
|
||||||
/* indicate we took the external IRQ */
|
/* indicate we took the external IRQ */
|
||||||
if (mcs48.irq_callback != NULL)
|
if (mcs48.irq_callback != NULL)
|
||||||
(*mcs48.irq_callback)(0);
|
(*mcs48.irq_callback)(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* timer overflow interrupts follow */
|
/* timer overflow interrupts follow */
|
||||||
if (mcs48.timer_overflow && mcs48.tirq_enabled)
|
if (mcs48.timer_overflow && mcs48.tirq_enabled)
|
||||||
{
|
{
|
||||||
@ -825,7 +825,7 @@ static void check_irqs(void)
|
|||||||
PC = 0x07;
|
PC = 0x07;
|
||||||
change_pc(0x07);
|
change_pc(0x07);
|
||||||
mcs48.inst_cycles += 2;
|
mcs48.inst_cycles += 2;
|
||||||
|
|
||||||
/* timer overflow flip-flop is reset once taken */
|
/* timer overflow flip-flop is reset once taken */
|
||||||
mcs48.timer_overflow = FALSE;
|
mcs48.timer_overflow = FALSE;
|
||||||
}
|
}
|
||||||
@ -840,7 +840,7 @@ static void check_irqs(void)
|
|||||||
static void burn_cycles(int count)
|
static void burn_cycles(int count)
|
||||||
{
|
{
|
||||||
int timerover = FALSE;
|
int timerover = FALSE;
|
||||||
|
|
||||||
/* if the timer is enabled, accumulate prescaler cycles */
|
/* if the timer is enabled, accumulate prescaler cycles */
|
||||||
if (mcs48.timecount_enabled & TIMER_ENABLED)
|
if (mcs48.timecount_enabled & TIMER_ENABLED)
|
||||||
{
|
{
|
||||||
@ -849,7 +849,7 @@ static void burn_cycles(int count)
|
|||||||
mcs48.prescaler &= 0x1f;
|
mcs48.prescaler &= 0x1f;
|
||||||
timerover = (mcs48.timer == 0);
|
timerover = (mcs48.timer == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if the counter is enabled, poll the T1 test input once for each cycle */
|
/* if the counter is enabled, poll the T1 test input once for each cycle */
|
||||||
else if (mcs48.timecount_enabled & COUNTER_ENABLED)
|
else if (mcs48.timecount_enabled & COUNTER_ENABLED)
|
||||||
for ( ; count > 0; count--)
|
for ( ; count > 0; count--)
|
||||||
@ -863,7 +863,7 @@ static void burn_cycles(int count)
|
|||||||
if (timerover)
|
if (timerover)
|
||||||
{
|
{
|
||||||
mcs48.timer_flag = TRUE;
|
mcs48.timer_flag = TRUE;
|
||||||
|
|
||||||
/* according to the docs, if an overflow occurs with interrupts disabled, the overflow is not stored */
|
/* according to the docs, if an overflow occurs with interrupts disabled, the overflow is not stored */
|
||||||
if (mcs48.tirq_enabled)
|
if (mcs48.tirq_enabled)
|
||||||
{
|
{
|
||||||
@ -895,7 +895,7 @@ static int mcs48_execute(int cycles)
|
|||||||
/* iterate over remaining cycles, guaranteeing at least one instruction */
|
/* iterate over remaining cycles, guaranteeing at least one instruction */
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
/* fetch next opcode */
|
/* fetch next opcode */
|
||||||
mcs48.prevpc = mcs48.pc;
|
mcs48.prevpc = mcs48.pc;
|
||||||
debugger_instruction_hook(Machine, PC);
|
debugger_instruction_hook(Machine, PC);
|
||||||
opcode = opcode_fetch(PC++);
|
opcode = opcode_fetch(PC++);
|
||||||
@ -903,7 +903,7 @@ static int mcs48_execute(int cycles)
|
|||||||
/* process opcode and count cycles */
|
/* process opcode and count cycles */
|
||||||
mcs48.inst_cycles = opcode_table[opcode].cycles;
|
mcs48.inst_cycles = opcode_table[opcode].cycles;
|
||||||
(*opcode_table[opcode].function)();
|
(*opcode_table[opcode].function)();
|
||||||
|
|
||||||
/* burn the cycles */
|
/* burn the cycles */
|
||||||
mcs48_icount -= mcs48.inst_cycles;
|
mcs48_icount -= mcs48.inst_cycles;
|
||||||
if (mcs48.timecount_enabled != 0)
|
if (mcs48.timecount_enabled != 0)
|
||||||
@ -1005,7 +1005,7 @@ static void mcs48_set_info(UINT32 state, cpuinfo *info)
|
|||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
mcs48_get_info - retrieve a piece of
|
mcs48_get_info - retrieve a piece of
|
||||||
information from the CPU core
|
information from the CPU core
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
@ -1067,7 +1067,7 @@ static void mcs48_get_info(UINT32 state, cpuinfo *info)
|
|||||||
case CPUINFO_PTR_BURN: info->burn = NULL; break;
|
case CPUINFO_PTR_BURN: info->burn = NULL; break;
|
||||||
case CPUINFO_PTR_DISASSEMBLE: info->disassemble = mcs48_dasm; break;
|
case CPUINFO_PTR_DISASSEMBLE: info->disassemble = mcs48_dasm; break;
|
||||||
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &mcs48_icount; break;
|
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &mcs48_icount; break;
|
||||||
|
|
||||||
case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: /*info->internal_map8 = address_map_program_10bit;*/ break;
|
case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: /*info->internal_map8 = address_map_program_10bit;*/ break;
|
||||||
case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: /*info->internal_map8 = address_map_data_7bit;*/ break;
|
case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: /*info->internal_map8 = address_map_data_7bit;*/ break;
|
||||||
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
mcs48.c
|
mcs48.c
|
||||||
|
|
||||||
Intel MCS-48 Portable Emulator
|
Intel MCS-48 Portable Emulator
|
||||||
|
|
||||||
Copyright Mirko Buffoni
|
Copyright Mirko Buffoni
|
||||||
Based on the original work Copyright Dan Boris, an 8048 emulator
|
Based on the original work Copyright Dan Boris, an 8048 emulator
|
||||||
You are not allowed to distribute this software commercially
|
You are not allowed to distribute this software commercially
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -31,13 +31,13 @@ enum
|
|||||||
MCS48_TC,
|
MCS48_TC,
|
||||||
MCS48_P1,
|
MCS48_P1,
|
||||||
MCS48_P2,
|
MCS48_P2,
|
||||||
MCS48_R0,
|
MCS48_R0,
|
||||||
MCS48_R1,
|
MCS48_R1,
|
||||||
MCS48_R2,
|
MCS48_R2,
|
||||||
MCS48_R3,
|
MCS48_R3,
|
||||||
MCS48_R4,
|
MCS48_R4,
|
||||||
MCS48_R5,
|
MCS48_R5,
|
||||||
MCS48_R6,
|
MCS48_R6,
|
||||||
MCS48_R7,
|
MCS48_R7,
|
||||||
MCS48_EA
|
MCS48_EA
|
||||||
};
|
};
|
||||||
|
@ -2140,11 +2140,11 @@ UINT64 debug_read_opcode(offs_t address, int size, int arg)
|
|||||||
static int expression_cpu_index(running_machine *machine, const char *tag)
|
static int expression_cpu_index(running_machine *machine, const char *tag)
|
||||||
{
|
{
|
||||||
int index;
|
int index;
|
||||||
|
|
||||||
for (index = 0; index < ARRAY_LENGTH(machine->config->cpu); index++)
|
for (index = 0; index < ARRAY_LENGTH(machine->config->cpu); index++)
|
||||||
if (machine->config->cpu[index].tag != NULL && mame_stricmp(machine->config->cpu[index].tag, tag) == 0)
|
if (machine->config->cpu[index].tag != NULL && mame_stricmp(machine->config->cpu[index].tag, tag) == 0)
|
||||||
return index;
|
return index;
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,11 +50,11 @@ WRITE8_DEVICE_HANDLER( at28c16_w )
|
|||||||
|
|
||||||
if( c->last_write >= 0 )
|
if( c->last_write >= 0 )
|
||||||
{
|
{
|
||||||
// logerror( "%08x: at28c16_write( %d, %04x, %02x ) busy\n", activecpu_get_pc(), chip, offset, data );
|
// logerror( "%08x: at28c16_write( %d, %04x, %02x ) busy\n", activecpu_get_pc(), chip, offset, data );
|
||||||
}
|
}
|
||||||
else if( c->oe_12v )
|
else if( c->oe_12v )
|
||||||
{
|
{
|
||||||
// logerror( "%08x: at28c16_write( %d, %04x, %02x ) erase\n", activecpu_get_pc(), chip, offset, data );
|
// logerror( "%08x: at28c16_write( %d, %04x, %02x ) erase\n", activecpu_get_pc(), chip, offset, data );
|
||||||
memset( c->data, 0xff, SIZE_DATA );
|
memset( c->data, 0xff, SIZE_DATA );
|
||||||
memset( c->id, 0xff, SIZE_ID );
|
memset( c->id, 0xff, SIZE_ID );
|
||||||
c->last_write = 0xff;
|
c->last_write = 0xff;
|
||||||
@ -62,7 +62,7 @@ WRITE8_DEVICE_HANDLER( at28c16_w )
|
|||||||
}
|
}
|
||||||
else if( offset >= OFFSET_ID && c->a9_12v )
|
else if( offset >= OFFSET_ID && c->a9_12v )
|
||||||
{
|
{
|
||||||
// logerror( "%08x: at28c16_write( %d, %04x, %02x ) id\n", activecpu_get_pc(), chip, offset, data );
|
// logerror( "%08x: at28c16_write( %d, %04x, %02x ) id\n", activecpu_get_pc(), chip, offset, data );
|
||||||
c->id[ offset - OFFSET_ID ] = data;
|
c->id[ offset - OFFSET_ID ] = data;
|
||||||
c->last_write = data;
|
c->last_write = data;
|
||||||
timer_adjust_oneshot( c->write_timer, ATTOTIME_IN_USEC( 200 ), 0 );
|
timer_adjust_oneshot( c->write_timer, ATTOTIME_IN_USEC( 200 ), 0 );
|
||||||
@ -83,12 +83,12 @@ READ8_DEVICE_HANDLER( at28c16_r )
|
|||||||
|
|
||||||
if( c->last_write >= 0 )
|
if( c->last_write >= 0 )
|
||||||
{
|
{
|
||||||
// logerror( "at28c16_read( %04x ) write status\n", offset );
|
// logerror( "at28c16_read( %04x ) write status\n", offset );
|
||||||
return c->last_write ^ 0x80;
|
return c->last_write ^ 0x80;
|
||||||
}
|
}
|
||||||
else if( offset >= OFFSET_ID && c->a9_12v )
|
else if( offset >= OFFSET_ID && c->a9_12v )
|
||||||
{
|
{
|
||||||
// logerror( "at28c16_read( %04x ) id\n", offset );
|
// logerror( "at28c16_read( %04x ) id\n", offset );
|
||||||
return c->id[ offset - OFFSET_ID ];
|
return c->id[ offset - OFFSET_ID ];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -124,7 +124,7 @@ static DEVICE_START(at28c16)
|
|||||||
|
|
||||||
/* validate some basic stuff */
|
/* validate some basic stuff */
|
||||||
assert(device != NULL);
|
assert(device != NULL);
|
||||||
// assert(device->static_config != NULL);
|
// assert(device->static_config != NULL);
|
||||||
assert(device->inline_config == NULL);
|
assert(device->inline_config == NULL);
|
||||||
assert(device->machine != NULL);
|
assert(device->machine != NULL);
|
||||||
assert(device->machine->config != NULL);
|
assert(device->machine->config != NULL);
|
||||||
|
@ -35,7 +35,7 @@ static void update(const device_config *device, UINT8 new_val, UINT8 mask)
|
|||||||
{
|
{
|
||||||
latch8_t *latch8 = get_safe_token(device);
|
latch8_t *latch8 = get_safe_token(device);
|
||||||
UINT8 old_val = latch8->value;
|
UINT8 old_val = latch8->value;
|
||||||
|
|
||||||
latch8->value = (latch8->value & ~mask) | (new_val & mask);
|
latch8->value = (latch8->value & ~mask) | (new_val & mask);
|
||||||
|
|
||||||
if (latch8->has_node_map)
|
if (latch8->has_node_map)
|
||||||
@ -53,7 +53,7 @@ static TIMER_CALLBACK( latch8_timerproc )
|
|||||||
const device_config *device = ptr;
|
const device_config *device = ptr;
|
||||||
UINT8 new_val = param & 0xFF;
|
UINT8 new_val = param & 0xFF;
|
||||||
UINT8 mask = param >> 8;
|
UINT8 mask = param >> 8;
|
||||||
|
|
||||||
update(device, new_val, mask);
|
update(device, new_val, mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ READ8_DEVICE_HANDLER( latch8_r )
|
|||||||
{
|
{
|
||||||
latch8_t *latch8 = get_safe_token(device);
|
latch8_t *latch8 = get_safe_token(device);
|
||||||
UINT8 res;
|
UINT8 res;
|
||||||
|
|
||||||
assert(offset == 0);
|
assert(offset == 0);
|
||||||
|
|
||||||
res = latch8->value;
|
res = latch8->value;
|
||||||
@ -119,14 +119,14 @@ WRITE8_DEVICE_HANDLER( latch8_reset)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* read bit x */
|
/* read bit x */
|
||||||
/* return (latch >> x) & 0x01 */
|
/* return (latch >> x) & 0x01 */
|
||||||
|
|
||||||
INLINE UINT8 latch8_bitx_r(const device_config *device, offs_t offset, int bit)
|
INLINE UINT8 latch8_bitx_r(const device_config *device, offs_t offset, int bit)
|
||||||
{
|
{
|
||||||
latch8_t *latch8 = get_safe_token(device);
|
latch8_t *latch8 = get_safe_token(device);
|
||||||
|
|
||||||
assert( offset == 0);
|
assert( offset == 0);
|
||||||
|
|
||||||
return (latch8->value >> bit) & 0x01;
|
return (latch8->value >> bit) & 0x01;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ INLINE void latch8_bitx_w(const device_config *device, int bit, offs_t offset, U
|
|||||||
UINT8 masked_data = (((data >> bit) & 0x01) << offset);
|
UINT8 masked_data = (((data >> bit) & 0x01) << offset);
|
||||||
|
|
||||||
assert( offset < 8);
|
assert( offset < 8);
|
||||||
|
|
||||||
/* No need to synchronize ? */
|
/* No need to synchronize ? */
|
||||||
if (latch8->intf->nosync & mask)
|
if (latch8->intf->nosync & mask)
|
||||||
update(device, masked_data, mask);
|
update(device, masked_data, mask);
|
||||||
@ -191,7 +191,7 @@ static DEVICE_START( latch8 )
|
|||||||
latch8->intf = device->inline_config;
|
latch8->intf = device->inline_config;
|
||||||
|
|
||||||
latch8->value = 0x0;
|
latch8->value = 0x0;
|
||||||
|
|
||||||
/* setup nodemap */
|
/* setup nodemap */
|
||||||
for (i=0; i<8; i++)
|
for (i=0; i<8; i++)
|
||||||
if (latch8->intf->node_map[i] )
|
if (latch8->intf->node_map[i] )
|
||||||
@ -203,7 +203,7 @@ static DEVICE_START( latch8 )
|
|||||||
{
|
{
|
||||||
if (latch8->devices[i] != NULL)
|
if (latch8->devices[i] != NULL)
|
||||||
fatalerror("Device %s: Bit %d already has a handler.\n", device->tag, i);
|
fatalerror("Device %s: Bit %d already has a handler.\n", device->tag, i);
|
||||||
latch8->devices[i] = devtag_get_device(device->machine,
|
latch8->devices[i] = devtag_get_device(device->machine,
|
||||||
latch8->intf->devread[i].type,
|
latch8->intf->devread[i].type,
|
||||||
latch8->intf->devread[i].tag);
|
latch8->intf->devread[i].tag);
|
||||||
if (latch8->devices[i] == NULL)
|
if (latch8->devices[i] == NULL)
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
|
|
||||||
8 bit latch interface and emulation
|
8 bit latch interface and emulation
|
||||||
|
|
||||||
Generic emulation of 74LS174/175, 74LS259 and other latches.
|
Generic emulation of 74LS174/175, 74LS259 and other latches.
|
||||||
Apart from providing synched latch operation, these
|
Apart from providing synched latch operation, these
|
||||||
latches can be configured to read their input bitwise from other
|
latches can be configured to read their input bitwise from other
|
||||||
devices as well and individual bits can be connected to
|
devices as well and individual bits can be connected to
|
||||||
discrete nodes.
|
discrete nodes.
|
||||||
|
|
||||||
Please see audio/dkong.c for examples.
|
Please see audio/dkong.c for examples.
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
#ifndef __LATCH8_H_
|
#ifndef __LATCH8_H_
|
||||||
@ -36,7 +36,7 @@ typedef struct _latch8_config latch8_config;
|
|||||||
struct _latch8_config
|
struct _latch8_config
|
||||||
{
|
{
|
||||||
/* only for byte reads, does not affect bit reads and node_map */
|
/* only for byte reads, does not affect bit reads and node_map */
|
||||||
UINT32 maskout;
|
UINT32 maskout;
|
||||||
UINT32 xor; /* after mask */
|
UINT32 xor; /* after mask */
|
||||||
UINT32 nosync;
|
UINT32 nosync;
|
||||||
UINT32 node_map[8];
|
UINT32 node_map[8];
|
||||||
@ -57,11 +57,11 @@ struct _latch8_config
|
|||||||
|
|
||||||
/* Bit mask specifying bits to be inverted */
|
/* Bit mask specifying bits to be inverted */
|
||||||
#define MDRV_LATCH8_INVERT(_xor) \
|
#define MDRV_LATCH8_INVERT(_xor) \
|
||||||
MDRV_DEVICE_CONFIG_DATA32(latch8_config, xor, _xor)
|
MDRV_DEVICE_CONFIG_DATA32(latch8_config, xor, _xor)
|
||||||
|
|
||||||
/* Bit mask specifying bits not needing cpu synchronization. */
|
/* Bit mask specifying bits not needing cpu synchronization. */
|
||||||
#define MDRV_LATCH8_NOSYNC(_nosync) \
|
#define MDRV_LATCH8_NOSYNC(_nosync) \
|
||||||
MDRV_DEVICE_CONFIG_DATA32(latch8_config, nosync, _nosync)
|
MDRV_DEVICE_CONFIG_DATA32(latch8_config, nosync, _nosync)
|
||||||
|
|
||||||
/* Write bit to discrete node */
|
/* Write bit to discrete node */
|
||||||
#define MDRV_LATCH8_DISCRETE_NODE(_bit, _node) \
|
#define MDRV_LATCH8_DISCRETE_NODE(_bit, _node) \
|
||||||
@ -110,7 +110,7 @@ WRITE8_DEVICE_HANDLER( latch8_w );
|
|||||||
WRITE8_DEVICE_HANDLER( latch8_reset );
|
WRITE8_DEVICE_HANDLER( latch8_reset );
|
||||||
|
|
||||||
/* read bit x */
|
/* read bit x */
|
||||||
/* return (latch >> x) & 0x01 */
|
/* return (latch >> x) & 0x01 */
|
||||||
|
|
||||||
READ8_DEVICE_HANDLER( latch8_bit0_r );
|
READ8_DEVICE_HANDLER( latch8_bit0_r );
|
||||||
READ8_DEVICE_HANDLER( latch8_bit1_r );
|
READ8_DEVICE_HANDLER( latch8_bit1_r );
|
||||||
@ -122,7 +122,7 @@ READ8_DEVICE_HANDLER( latch8_bit6_r );
|
|||||||
READ8_DEVICE_HANDLER( latch8_bit7_r );
|
READ8_DEVICE_HANDLER( latch8_bit7_r );
|
||||||
|
|
||||||
/* read inverted bit x */
|
/* read inverted bit x */
|
||||||
/* return (latch >> x) & 0x01 */
|
/* return (latch >> x) & 0x01 */
|
||||||
|
|
||||||
READ8_DEVICE_HANDLER( latch8_bit0_q_r );
|
READ8_DEVICE_HANDLER( latch8_bit0_q_r );
|
||||||
READ8_DEVICE_HANDLER( latch8_bit1_q_r );
|
READ8_DEVICE_HANDLER( latch8_bit1_q_r );
|
||||||
|
@ -126,7 +126,7 @@ INLINE float round_nearest(float f)
|
|||||||
|
|
||||||
INLINE UINT8 clamp16_shift8(UINT32 x)
|
INLINE UINT8 clamp16_shift8(UINT32 x)
|
||||||
{
|
{
|
||||||
return (((INT32) x < 0) ? 0 : (x > 65535 ? 255: x >> 8));
|
return (((INT32) x < 0) ? 0 : (x > 65535 ? 255: x >> 8));
|
||||||
}
|
}
|
||||||
|
|
||||||
INLINE UINT32 ycc_to_rgb(UINT32 ycc)
|
INLINE UINT32 ycc_to_rgb(UINT32 ycc)
|
||||||
@ -152,19 +152,19 @@ INLINE UINT32 ycc_to_rgb(UINT32 ycc)
|
|||||||
R = clip(( 298 * Y - 298 * 16 + 409 * Cr - 409 * 128 + 128) >> 8)
|
R = clip(( 298 * Y - 298 * 16 + 409 * Cr - 409 * 128 + 128) >> 8)
|
||||||
G = clip(( 298 * Y - 298 * 16 - 100 * Cb + 100 * 128 - 208 * Cr + 208 * 128 + 128) >> 8)
|
G = clip(( 298 * Y - 298 * 16 - 100 * Cb + 100 * 128 - 208 * Cr + 208 * 128 + 128) >> 8)
|
||||||
B = clip(( 298 * Y - 298 * 16 + 516 * Cb - 516 * 128 + 128) >> 8)
|
B = clip(( 298 * Y - 298 * 16 + 516 * Cb - 516 * 128 + 128) >> 8)
|
||||||
|
|
||||||
Now combine constants:
|
Now combine constants:
|
||||||
|
|
||||||
R = clip(( 298 * Y + 409 * Cr - 56992) >> 8)
|
R = clip(( 298 * Y + 409 * Cr - 56992) >> 8)
|
||||||
G = clip(( 298 * Y - 100 * Cb - 208 * Cr + 34784) >> 8)
|
G = clip(( 298 * Y - 100 * Cb - 208 * Cr + 34784) >> 8)
|
||||||
B = clip(( 298 * Y + 516 * Cb - 70688) >> 8)
|
B = clip(( 298 * Y + 516 * Cb - 70688) >> 8)
|
||||||
|
|
||||||
Define common = 298 * y - 56992. This will save one addition
|
Define common = 298 * y - 56992. This will save one addition
|
||||||
|
|
||||||
R = clip(( common + 409 * Cr - 0) >> 8)
|
R = clip(( common + 409 * Cr - 0) >> 8)
|
||||||
G = clip(( common - 100 * Cb - 208 * Cr + 91776) >> 8)
|
G = clip(( common - 100 * Cb - 208 * Cr + 91776) >> 8)
|
||||||
B = clip(( common + 516 * Cb - 13696) >> 8)
|
B = clip(( common + 516 * Cb - 13696) >> 8)
|
||||||
|
|
||||||
*/
|
*/
|
||||||
UINT8 y = ycc;
|
UINT8 y = ycc;
|
||||||
UINT8 cb = ycc >> 8;
|
UINT8 cb = ycc >> 8;
|
||||||
|
@ -1068,7 +1068,7 @@ static void dsd_555_vco1_step(node_description *node)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* if we are out of reset and the cap voltage is less then
|
/* if we are out of reset and the cap voltage is less then
|
||||||
* the lower threshold, toggle f/f and start charging */
|
* the lower threshold, toggle f/f and start charging */
|
||||||
if (v_cap <= context->trigger)
|
if (v_cap <= context->trigger)
|
||||||
{
|
{
|
||||||
if (context->flip_flop == 0)
|
if (context->flip_flop == 0)
|
||||||
|
@ -301,13 +301,13 @@ static void dst_dac_r1_step(node_description *node)
|
|||||||
if ((x_time != 0) && (bit_val != ((context->last_data >> bit) & 0x01)))
|
if ((x_time != 0) && (bit_val != ((context->last_data >> bit) & 0x01)))
|
||||||
{
|
{
|
||||||
/* there is x_time and a change in bit,
|
/* there is x_time and a change in bit,
|
||||||
* so anti-alias the current */
|
* so anti-alias the current */
|
||||||
i_bit *= bit_val ? x_time : 1.0 - x_time;
|
i_bit *= bit_val ? x_time : 1.0 - x_time;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* there is no x_time or a change in bit,
|
/* there is no x_time or a change in bit,
|
||||||
* so 0 the current if the bit value is 0 */
|
* so 0 the current if the bit value is 0 */
|
||||||
if (bit_val == 0) i_bit = 0;
|
if (bit_val == 0) i_bit = 0;
|
||||||
}
|
}
|
||||||
i_total += i_bit;
|
i_total += i_bit;
|
||||||
@ -1014,7 +1014,7 @@ static void dst_mixer_step(node_description *node)
|
|||||||
rTemp = info->r[bit];
|
rTemp = info->r[bit];
|
||||||
connected = 1;
|
connected = 1;
|
||||||
vTemp = DST_MIXER__IN(bit);
|
vTemp = DST_MIXER__IN(bit);
|
||||||
|
|
||||||
if (context->r_node[bit] != NULL)
|
if (context->r_node[bit] != NULL)
|
||||||
{
|
{
|
||||||
/* a node has the posibility of being disconnected from the circuit. */
|
/* a node has the posibility of being disconnected from the circuit. */
|
||||||
@ -1049,7 +1049,7 @@ static void dst_mixer_step(node_description *node)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (connected)
|
if (connected)
|
||||||
{
|
{
|
||||||
if (info->c[bit] != 0)
|
if (info->c[bit] != 0)
|
||||||
|
@ -697,7 +697,7 @@ static void dss_note_reset(node_description *node)
|
|||||||
|
|
||||||
context->clock_type = (int)DSS_NOTE__CLOCK_TYPE & DISC_CLK_MASK;
|
context->clock_type = (int)DSS_NOTE__CLOCK_TYPE & DISC_CLK_MASK;
|
||||||
context->out_type = (int)DSS_NOTE__CLOCK_TYPE & DISC_OUT_MASK;
|
context->out_type = (int)DSS_NOTE__CLOCK_TYPE & DISC_OUT_MASK;
|
||||||
|
|
||||||
context->last = (DSS_NOTE__CLOCK != 0);
|
context->last = (DSS_NOTE__CLOCK != 0);
|
||||||
context->t_left = 0;
|
context->t_left = 0;
|
||||||
context->t_clock = 1.0 / DSS_NOTE__CLOCK;
|
context->t_clock = 1.0 / DSS_NOTE__CLOCK;
|
||||||
@ -754,7 +754,7 @@ static void dss_op_amp_osc_step(node_description *node)
|
|||||||
case DISC_OP_AMP_OSCILLATOR_VCO_1:
|
case DISC_OP_AMP_OSCILLATOR_VCO_1:
|
||||||
/* Work out the charge rates. */
|
/* Work out the charge rates. */
|
||||||
/* i is not a current. It is being used as a temp variable. */
|
/* i is not a current. It is being used as a temp variable. */
|
||||||
i = DSS_OP_AMP_OSC__VMOD1 * context->temp1;
|
i = DSS_OP_AMP_OSC__VMOD1 * context->temp1;
|
||||||
iCharge[0] = (DSS_OP_AMP_OSC__VMOD1 - i) / info->r1;
|
iCharge[0] = (DSS_OP_AMP_OSC__VMOD1 - i) / info->r1;
|
||||||
iCharge[1] = (i - (DSS_OP_AMP_OSC__VMOD1 * context->temp2)) / context->temp3;
|
iCharge[1] = (i - (DSS_OP_AMP_OSC__VMOD1 * context->temp2)) / context->temp3;
|
||||||
break;
|
break;
|
||||||
|
@ -668,7 +668,7 @@ static void init_nodes(discrete_info *info, discrete_sound_block *block_list)
|
|||||||
node->context = NULL;
|
node->context = NULL;
|
||||||
info->discrete_input_streams++;
|
info->discrete_input_streams++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if no outputs, give an error */
|
/* if no outputs, give an error */
|
||||||
|
@ -160,13 +160,13 @@
|
|||||||
* Consider the following counter outputs vs DAC_R1
|
* Consider the following counter outputs vs DAC_R1
|
||||||
* calculations. The count changes from 9 to 10. It has
|
* calculations. The count changes from 9 to 10. It has
|
||||||
* been at the new state for 75% of the sample.
|
* been at the new state for 75% of the sample.
|
||||||
*
|
*
|
||||||
* counter binary x_time -- DAC_R1 bit energy --
|
* counter binary x_time -- DAC_R1 bit energy --
|
||||||
* out count D3 D2 D1 D0
|
* out count D3 D2 D1 D0
|
||||||
* 9.0 1001 0.0 1.0 0.0 0.0 1.0
|
* 9.0 1001 0.0 1.0 0.0 0.0 1.0
|
||||||
* 10.75 1010 0.75 1.0 0.0 0.75 0.25
|
* 10.75 1010 0.75 1.0 0.0 0.75 0.25
|
||||||
* 10.0 1010 0.0 1.0 0.0 1.0 0.0
|
* 10.0 1010 0.0 1.0 0.0 1.0 0.0
|
||||||
*
|
*
|
||||||
* The DAC_R1 uses these energy calculations to scale the
|
* The DAC_R1 uses these energy calculations to scale the
|
||||||
* voltages created on each of its resistors. This
|
* voltages created on each of its resistors. This
|
||||||
* anti-aliases the waveform no mater what the resistor
|
* anti-aliases the waveform no mater what the resistor
|
||||||
@ -2968,7 +2968,7 @@
|
|||||||
* address of discrete_555_cc_desc structure)
|
* address of discrete_555_cc_desc structure)
|
||||||
*
|
*
|
||||||
* discrete_555_cc_desc =
|
* discrete_555_cc_desc =
|
||||||
* {
|
* {
|
||||||
* options; - bit mapped options
|
* options; - bit mapped options
|
||||||
* v_pos; - B+ voltage of 555
|
* v_pos; - B+ voltage of 555
|
||||||
* v_cc_source; - Voltage of the Constant Current source
|
* v_cc_source; - Voltage of the Constant Current source
|
||||||
@ -2982,7 +2982,7 @@
|
|||||||
* DEFAULT_555_HIGH - to use the normal output voltage based on v_pos
|
* DEFAULT_555_HIGH - to use the normal output voltage based on v_pos
|
||||||
* or combine both as:
|
* or combine both as:
|
||||||
* DEFAULT_555_VALUES
|
* DEFAULT_555_VALUES
|
||||||
*
|
*
|
||||||
* Output Types:
|
* Output Types:
|
||||||
* See DISCRETE_555_ASTABLE for description.
|
* See DISCRETE_555_ASTABLE for description.
|
||||||
*
|
*
|
||||||
@ -3745,7 +3745,7 @@ typedef struct _discrete_555_vco1_desc discrete_555_vco1_desc;
|
|||||||
struct _discrete_555_vco1_desc
|
struct _discrete_555_vco1_desc
|
||||||
{
|
{
|
||||||
int options; /* bit mapped options */
|
int options; /* bit mapped options */
|
||||||
double r1, r2, r3, r4, c;
|
double r1, r2, r3, r4, c;
|
||||||
double v_pos; /* B+ voltage of 555 */
|
double v_pos; /* B+ voltage of 555 */
|
||||||
double v_charge; /* (ignored) */
|
double v_charge; /* (ignored) */
|
||||||
double v_out_high; /* High output voltage of 555 (Defaults to v_pos - 1.2V) */
|
double v_out_high; /* High output voltage of 555 (Defaults to v_pos - 1.2V) */
|
||||||
|
@ -1225,8 +1225,8 @@ static UINT32 handler_ingame(running_machine *machine, UINT32 state)
|
|||||||
return ui_set_handler(ui_menu_ui_handler, 0);
|
return ui_set_handler(ui_menu_ui_handler, 0);
|
||||||
|
|
||||||
/* if the on-screen display isn't up and the user has toggled it, turn it on */
|
/* if the on-screen display isn't up and the user has toggled it, turn it on */
|
||||||
// if ((machine->debug_flags & DEBUG_FLAG_ENABLED) == 0 && ui_input_pressed(machine, IPT_UI_ON_SCREEN_DISPLAY))
|
// if ((machine->debug_flags & DEBUG_FLAG_ENABLED) == 0 && ui_input_pressed(machine, IPT_UI_ON_SCREEN_DISPLAY))
|
||||||
// return ui_set_handler(ui_slider_ui_handler, 0);
|
// return ui_set_handler(ui_slider_ui_handler, 0);
|
||||||
|
|
||||||
/* handle a reset request */
|
/* handle a reset request */
|
||||||
if (ui_input_pressed(machine, IPT_UI_RESET_MACHINE))
|
if (ui_input_pressed(machine, IPT_UI_RESET_MACHINE))
|
||||||
|
@ -2667,14 +2667,14 @@ static void menu_sliders(running_machine *machine, ui_menu *menu, void *paramete
|
|||||||
const slider_state *slider = event->itemref;
|
const slider_state *slider = event->itemref;
|
||||||
INT32 curvalue = (*slider->update)(machine, slider->arg, NULL, SLIDER_NOCHANGE);
|
INT32 curvalue = (*slider->update)(machine, slider->arg, NULL, SLIDER_NOCHANGE);
|
||||||
INT32 increment = 0;
|
INT32 increment = 0;
|
||||||
|
|
||||||
switch (event->iptkey)
|
switch (event->iptkey)
|
||||||
{
|
{
|
||||||
/* toggle visibility */
|
/* toggle visibility */
|
||||||
case IPT_UI_ON_SCREEN_DISPLAY:
|
case IPT_UI_ON_SCREEN_DISPLAY:
|
||||||
*hidden = !*hidden;
|
*hidden = !*hidden;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* decrease value */
|
/* decrease value */
|
||||||
case IPT_UI_LEFT:
|
case IPT_UI_LEFT:
|
||||||
if (input_code_pressed(KEYCODE_LALT) || input_code_pressed(KEYCODE_RALT))
|
if (input_code_pressed(KEYCODE_LALT) || input_code_pressed(KEYCODE_RALT))
|
||||||
@ -2686,7 +2686,7 @@ static void menu_sliders(running_machine *machine, ui_menu *menu, void *paramete
|
|||||||
else
|
else
|
||||||
increment = -slider->incval;
|
increment = -slider->incval;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* increase value */
|
/* increase value */
|
||||||
case IPT_UI_RIGHT:
|
case IPT_UI_RIGHT:
|
||||||
if (input_code_pressed(KEYCODE_LALT) || input_code_pressed(KEYCODE_RALT))
|
if (input_code_pressed(KEYCODE_LALT) || input_code_pressed(KEYCODE_RALT))
|
||||||
@ -2698,7 +2698,7 @@ static void menu_sliders(running_machine *machine, ui_menu *menu, void *paramete
|
|||||||
else
|
else
|
||||||
increment = slider->incval;
|
increment = slider->incval;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* restore default */
|
/* restore default */
|
||||||
case IPT_UI_SELECT:
|
case IPT_UI_SELECT:
|
||||||
increment = slider->defval - curvalue;
|
increment = slider->defval - curvalue;
|
||||||
@ -2721,7 +2721,7 @@ static void menu_sliders(running_machine *machine, ui_menu *menu, void *paramete
|
|||||||
ui_menu_reset(menu, UI_MENU_RESET_REMEMBER_REF);
|
ui_menu_reset(menu, UI_MENU_RESET_REMEMBER_REF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if we are selecting an invalid item and we are hidden, skip to the next one */
|
/* if we are selecting an invalid item and we are hidden, skip to the next one */
|
||||||
else if (*hidden)
|
else if (*hidden)
|
||||||
{
|
{
|
||||||
@ -2752,7 +2752,7 @@ static void menu_sliders_populate(running_machine *machine, ui_menu *menu)
|
|||||||
{
|
{
|
||||||
astring *tempstring = astring_alloc();
|
astring *tempstring = astring_alloc();
|
||||||
const slider_state *curslider;
|
const slider_state *curslider;
|
||||||
|
|
||||||
/* add all sliders */
|
/* add all sliders */
|
||||||
for (curslider = ui_get_slider_list(); curslider != NULL; curslider = curslider->next)
|
for (curslider = ui_get_slider_list(); curslider != NULL; curslider = curslider->next)
|
||||||
{
|
{
|
||||||
@ -2834,7 +2834,7 @@ static void menu_sliders_custom_render(running_machine *machine, ui_menu *menu,
|
|||||||
/* draw the actual text */
|
/* draw the actual text */
|
||||||
ui_draw_text_full(astring_c(tempstring), space_width + UI_BOX_LR_BORDER, line_height + ui_height - UI_BOX_TB_BORDER - text_height, ui_width - 2.0f * UI_BOX_LR_BORDER,
|
ui_draw_text_full(astring_c(tempstring), space_width + UI_BOX_LR_BORDER, line_height + ui_height - UI_BOX_TB_BORDER - text_height, ui_width - 2.0f * UI_BOX_LR_BORDER,
|
||||||
JUSTIFY_CENTER, WRAP_WORD, DRAW_NORMAL, ARGB_WHITE, ARGB_BLACK, NULL, &text_height);
|
JUSTIFY_CENTER, WRAP_WORD, DRAW_NORMAL, ARGB_WHITE, ARGB_BLACK, NULL, &text_height);
|
||||||
|
|
||||||
astring_free(tempstring);
|
astring_free(tempstring);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ enum
|
|||||||
CMD_9,
|
CMD_9,
|
||||||
CMD_SEARCH
|
CMD_SEARCH
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
@ -215,7 +215,7 @@ INLINE void pr8210_add_command(UINT8 command)
|
|||||||
static TIMER_CALLBACK( pr8210_bit_off_callback )
|
static TIMER_CALLBACK( pr8210_bit_off_callback )
|
||||||
{
|
{
|
||||||
const device_config *laserdisc = ptr;
|
const device_config *laserdisc = ptr;
|
||||||
|
|
||||||
/* deassert the control line */
|
/* deassert the control line */
|
||||||
laserdisc_line_w(laserdisc, LASERDISC_LINE_CONTROL, CLEAR_LINE);
|
laserdisc_line_w(laserdisc, LASERDISC_LINE_CONTROL, CLEAR_LINE);
|
||||||
}
|
}
|
||||||
@ -227,7 +227,7 @@ static TIMER_CALLBACK( pr8210_bit_callback )
|
|||||||
const device_config *laserdisc = ptr;
|
const device_config *laserdisc = ptr;
|
||||||
UINT8 bitsleft = param >> 16;
|
UINT8 bitsleft = param >> 16;
|
||||||
UINT8 data = param;
|
UINT8 data = param;
|
||||||
|
|
||||||
/* if we have bits, process */
|
/* if we have bits, process */
|
||||||
if (bitsleft != 0)
|
if (bitsleft != 0)
|
||||||
{
|
{
|
||||||
@ -274,7 +274,7 @@ static void pr8210_execute(const device_config *laserdisc, int command)
|
|||||||
{
|
{
|
||||||
static const UINT8 digits[10] = { 0x01, 0x11, 0x09, 0x19, 0x05, 0x15, 0x0d, 0x1d, 0x03, 0x13 };
|
static const UINT8 digits[10] = { 0x01, 0x11, 0x09, 0x19, 0x05, 0x15, 0x0d, 0x1d, 0x03, 0x13 };
|
||||||
int prev_was_number = pr8210_last_was_number;
|
int prev_was_number = pr8210_last_was_number;
|
||||||
|
|
||||||
pr8210_last_was_number = FALSE;
|
pr8210_last_was_number = FALSE;
|
||||||
switch (command)
|
switch (command)
|
||||||
{
|
{
|
||||||
@ -282,12 +282,12 @@ static void pr8210_execute(const device_config *laserdisc, int command)
|
|||||||
pr8210_add_command(0x1c);
|
pr8210_add_command(0x1c);
|
||||||
playing = TRUE;
|
playing = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_SCAN_REVERSE_END:
|
case CMD_SCAN_REVERSE_END:
|
||||||
pr8210_add_command(0x14);
|
pr8210_add_command(0x14);
|
||||||
playing = TRUE;
|
playing = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_STEP_REVERSE:
|
case CMD_STEP_REVERSE:
|
||||||
pr8210_add_command(0x12);
|
pr8210_add_command(0x12);
|
||||||
playing = FALSE;
|
playing = FALSE;
|
||||||
@ -302,32 +302,32 @@ static void pr8210_execute(const device_config *laserdisc, int command)
|
|||||||
pr8210_add_command(0x14);
|
pr8210_add_command(0x14);
|
||||||
playing = TRUE;
|
playing = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_STEP_FORWARD:
|
case CMD_STEP_FORWARD:
|
||||||
pr8210_add_command(0x04);
|
pr8210_add_command(0x04);
|
||||||
playing = FALSE;
|
playing = FALSE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_PLAY:
|
case CMD_PLAY:
|
||||||
pr8210_add_command(0x14);
|
pr8210_add_command(0x14);
|
||||||
playing = TRUE;
|
playing = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_PAUSE:
|
case CMD_PAUSE:
|
||||||
pr8210_add_command(0x0a);
|
pr8210_add_command(0x0a);
|
||||||
playing = FALSE;
|
playing = FALSE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_DISPLAY_ON:
|
case CMD_DISPLAY_ON:
|
||||||
// pr8210_add_command(digits[1]);
|
// pr8210_add_command(digits[1]);
|
||||||
// pr8210_add_command(0xf1);
|
// pr8210_add_command(0xf1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_DISPLAY_OFF:
|
case CMD_DISPLAY_OFF:
|
||||||
// pr8210_add_command(digits[0]);
|
// pr8210_add_command(digits[0]);
|
||||||
// pr8210_add_command(0xf1);
|
// pr8210_add_command(0xf1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_0:
|
case CMD_0:
|
||||||
case CMD_1:
|
case CMD_1:
|
||||||
case CMD_2:
|
case CMD_2:
|
||||||
@ -343,7 +343,7 @@ static void pr8210_execute(const device_config *laserdisc, int command)
|
|||||||
pr8210_add_command(digits[command - CMD_0]);
|
pr8210_add_command(digits[command - CMD_0]);
|
||||||
pr8210_last_was_number = TRUE;
|
pr8210_last_was_number = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_SEARCH:
|
case CMD_SEARCH:
|
||||||
pr8210_add_command(0x1a);
|
pr8210_add_command(0x1a);
|
||||||
playing = FALSE;
|
playing = FALSE;
|
||||||
@ -368,12 +368,12 @@ static void ldv1000_execute(const device_config *laserdisc, int command)
|
|||||||
laserdisc_data_w(laserdisc, 0xf8);
|
laserdisc_data_w(laserdisc, 0xf8);
|
||||||
playing = TRUE;
|
playing = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_SCAN_REVERSE_END:
|
case CMD_SCAN_REVERSE_END:
|
||||||
laserdisc_data_w(laserdisc, 0xfd);
|
laserdisc_data_w(laserdisc, 0xfd);
|
||||||
playing = TRUE;
|
playing = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_STEP_REVERSE:
|
case CMD_STEP_REVERSE:
|
||||||
laserdisc_data_w(laserdisc, 0xfe);
|
laserdisc_data_w(laserdisc, 0xfe);
|
||||||
playing = FALSE;
|
playing = FALSE;
|
||||||
@ -388,17 +388,17 @@ static void ldv1000_execute(const device_config *laserdisc, int command)
|
|||||||
laserdisc_data_w(laserdisc, 0xfd);
|
laserdisc_data_w(laserdisc, 0xfd);
|
||||||
playing = TRUE;
|
playing = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_STEP_FORWARD:
|
case CMD_STEP_FORWARD:
|
||||||
laserdisc_data_w(laserdisc, 0xf6);
|
laserdisc_data_w(laserdisc, 0xf6);
|
||||||
playing = FALSE;
|
playing = FALSE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_PLAY:
|
case CMD_PLAY:
|
||||||
laserdisc_data_w(laserdisc, 0xfd);
|
laserdisc_data_w(laserdisc, 0xfd);
|
||||||
playing = TRUE;
|
playing = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_PAUSE:
|
case CMD_PAUSE:
|
||||||
laserdisc_data_w(laserdisc, 0xa0);
|
laserdisc_data_w(laserdisc, 0xa0);
|
||||||
playing = FALSE;
|
playing = FALSE;
|
||||||
@ -413,7 +413,7 @@ static void ldv1000_execute(const device_config *laserdisc, int command)
|
|||||||
laserdisc_data_w(laserdisc, digits[0]);
|
laserdisc_data_w(laserdisc, digits[0]);
|
||||||
laserdisc_data_w(laserdisc, 0xf1);
|
laserdisc_data_w(laserdisc, 0xf1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_0:
|
case CMD_0:
|
||||||
case CMD_1:
|
case CMD_1:
|
||||||
case CMD_2:
|
case CMD_2:
|
||||||
@ -426,7 +426,7 @@ static void ldv1000_execute(const device_config *laserdisc, int command)
|
|||||||
case CMD_9:
|
case CMD_9:
|
||||||
laserdisc_data_w(laserdisc, digits[command - CMD_0]);
|
laserdisc_data_w(laserdisc, digits[command - CMD_0]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_SEARCH:
|
case CMD_SEARCH:
|
||||||
laserdisc_data_w(laserdisc, 0xf7);
|
laserdisc_data_w(laserdisc, 0xf7);
|
||||||
playing = FALSE;
|
playing = FALSE;
|
||||||
@ -479,11 +479,11 @@ static READ8_HANDLER( pr8210_pia_r )
|
|||||||
switch (offset)
|
switch (offset)
|
||||||
{
|
{
|
||||||
case 0xa0:
|
case 0xa0:
|
||||||
// printf("%03X:pia_r(%02X) = %02X\n", activecpu_get_pc(), offset, pr8210_pia_porta);
|
// printf("%03X:pia_r(%02X) = %02X\n", activecpu_get_pc(), offset, pr8210_pia_porta);
|
||||||
result = pr8210_pia_porta;
|
result = pr8210_pia_porta;
|
||||||
pr8210_pia_porta = 0;
|
pr8210_pia_porta = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
printf("%03X:pia_r(%02X)\n", activecpu_get_pc(), offset);
|
printf("%03X:pia_r(%02X)\n", activecpu_get_pc(), offset);
|
||||||
break;
|
break;
|
||||||
@ -494,32 +494,32 @@ static READ8_HANDLER( pr8210_pia_r )
|
|||||||
static WRITE8_HANDLER( pr8210_pia_w )
|
static WRITE8_HANDLER( pr8210_pia_w )
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
$22-26 (R) = read and copied to memory $23-27
|
$22-26 (R) = read and copied to memory $23-27
|
||||||
$23 (R) = something compared against $F4
|
$23 (R) = something compared against $F4
|
||||||
$22-26 (W) = SRCH. text
|
$22-26 (W) = SRCH. text
|
||||||
$27-2B (W) = FRAME/CHAP. text
|
$27-2B (W) = FRAME/CHAP. text
|
||||||
$2C-30 (W) = frame or chapter number
|
$2C-30 (W) = frame or chapter number
|
||||||
$40 (W) = $CF at initialization, tracked by ($78)
|
$40 (W) = $CF at initialization, tracked by ($78)
|
||||||
$60 (W) = port B output, tracked by ($77)
|
$60 (W) = port B output, tracked by ($77)
|
||||||
$80 = n/c
|
$80 = n/c
|
||||||
$40 = (out) LED3
|
$40 = (out) LED3
|
||||||
$20 = (out) LED2
|
$20 = (out) LED2
|
||||||
$10 = (out) LED1
|
$10 = (out) LED1
|
||||||
123 -> LHL = Play
|
123 -> LHL = Play
|
||||||
-> HLL = Slow fwd
|
-> HLL = Slow fwd
|
||||||
-> LLL = Slow rev
|
-> LLL = Slow rev
|
||||||
-> HHL = Still
|
-> HHL = Still
|
||||||
-> LLH = Pause
|
-> LLH = Pause
|
||||||
-> HHH = all off
|
-> HHH = all off
|
||||||
$08 = (out) CAV LED
|
$08 = (out) CAV LED
|
||||||
$04 = (out) CLV LED
|
$04 = (out) CLV LED
|
||||||
$02 = (out) A2 LED/AUDIO 2
|
$02 = (out) A2 LED/AUDIO 2
|
||||||
$01 = (out) A1 LED/AUDIO 1
|
$01 = (out) A1 LED/AUDIO 1
|
||||||
$80 (W) = 0 or 1
|
$80 (W) = 0 or 1
|
||||||
$A0 (R) = port A input
|
$A0 (R) = port A input
|
||||||
$C0 (R) = stored to ($2E)
|
$C0 (R) = stored to ($2E)
|
||||||
$E0 (R) = stored to ($2F)
|
$E0 (R) = stored to ($2F)
|
||||||
*/
|
*/
|
||||||
if (pia[offset] != data)
|
if (pia[offset] != data)
|
||||||
{
|
{
|
||||||
switch (offset)
|
switch (offset)
|
||||||
@ -535,7 +535,7 @@ static WRITE8_HANDLER( pr8210_pia_w )
|
|||||||
printf(")\n");
|
printf(")\n");
|
||||||
pr8210_pia_portb = data;
|
pr8210_pia_portb = data;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
printf("%03X:pia_w(%02X) = %02X\n", activecpu_get_pc(), offset, data);
|
printf("%03X:pia_w(%02X) = %02X\n", activecpu_get_pc(), offset, data);
|
||||||
break;
|
break;
|
||||||
@ -547,19 +547,19 @@ static WRITE8_HANDLER( pr8210_pia_w )
|
|||||||
static READ8_HANDLER( pr8210_bus_r )
|
static READ8_HANDLER( pr8210_bus_r )
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
$80 = n/c
|
$80 = n/c
|
||||||
$40 = (in) slide pot interrupt source (slider position limit detector, inside and outside)
|
$40 = (in) slide pot interrupt source (slider position limit detector, inside and outside)
|
||||||
$20 = n/c
|
$20 = n/c
|
||||||
$10 = (in) /FOCUS LOCK
|
$10 = (in) /FOCUS LOCK
|
||||||
$08 = (in) /SPDL LOCK
|
$08 = (in) /SPDL LOCK
|
||||||
$04 = (in) SIZE 8/12
|
$04 = (in) SIZE 8/12
|
||||||
$02 = (in) FG via op-amp (spindle motor stop detector)
|
$02 = (in) FG via op-amp (spindle motor stop detector)
|
||||||
$01 = (in) SLOW TIMER OUT
|
$01 = (in) SLOW TIMER OUT
|
||||||
*/
|
*/
|
||||||
offs_t pc = activecpu_get_pc();
|
offs_t pc = activecpu_get_pc();
|
||||||
if (pc != 0x11c)
|
if (pc != 0x11c)
|
||||||
printf("%03X:bus_r\n", pc);
|
printf("%03X:bus_r\n", pc);
|
||||||
|
|
||||||
/* loop at beginning waits for $40=0, $02=1 */
|
/* loop at beginning waits for $40=0, $02=1 */
|
||||||
return 0xff & ~0x40 & ~0x04;
|
return 0xff & ~0x40 & ~0x04;
|
||||||
}
|
}
|
||||||
@ -567,15 +567,15 @@ static READ8_HANDLER( pr8210_bus_r )
|
|||||||
static WRITE8_HANDLER( pr8210_porta_w )
|
static WRITE8_HANDLER( pr8210_porta_w )
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
$80 = (out) SCAN C (F/R)
|
$80 = (out) SCAN C (F/R)
|
||||||
$40 = (out) AUDIO SQ
|
$40 = (out) AUDIO SQ
|
||||||
$20 = (out) VIDEO SQ
|
$20 = (out) VIDEO SQ
|
||||||
$10 = (out) /SPDL ON
|
$10 = (out) /SPDL ON
|
||||||
$08 = (out) /FOCUS ON
|
$08 = (out) /FOCUS ON
|
||||||
$04 = (out) SCAN B (L/H)
|
$04 = (out) SCAN B (L/H)
|
||||||
$02 = (out) SCAN A (/SCAN)
|
$02 = (out) SCAN A (/SCAN)
|
||||||
$01 = (out) JUMP TRG (jump back trigger, clock on high->low)
|
$01 = (out) JUMP TRG (jump back trigger, clock on high->low)
|
||||||
*/
|
*/
|
||||||
if (data != pr8210_porta)
|
if (data != pr8210_porta)
|
||||||
{
|
{
|
||||||
printf("%03X:porta_w = %02X", activecpu_get_pc(), data);
|
printf("%03X:porta_w = %02X", activecpu_get_pc(), data);
|
||||||
@ -596,15 +596,15 @@ static WRITE8_HANDLER( pr8210_porta_w )
|
|||||||
static WRITE8_HANDLER( pr8210_portb_w )
|
static WRITE8_HANDLER( pr8210_portb_w )
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
$80 = (out) /CS on PIA
|
$80 = (out) /CS on PIA
|
||||||
$40 = (out) 0 to self-generate IRQ
|
$40 = (out) 0 to self-generate IRQ
|
||||||
$20 = (out) SLOW TRG
|
$20 = (out) SLOW TRG
|
||||||
$10 = (out) STANDBY LED
|
$10 = (out) STANDBY LED
|
||||||
$08 = (out) TP2
|
$08 = (out) TP2
|
||||||
$04 = (out) TP1
|
$04 = (out) TP1
|
||||||
$02 = (out) ???
|
$02 = (out) ???
|
||||||
$01 = (out) LASER ON
|
$01 = (out) LASER ON
|
||||||
*/
|
*/
|
||||||
cputag_set_input_line(machine, "pr8210", 0, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
|
cputag_set_input_line(machine, "pr8210", 0, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
|
||||||
if ((data & 0x7f) != (pr8210_portb & 0x7f))
|
if ((data & 0x7f) != (pr8210_portb & 0x7f))
|
||||||
{
|
{
|
||||||
@ -616,7 +616,7 @@ static WRITE8_HANDLER( pr8210_portb_w )
|
|||||||
if (!(data & 0x10)) printf(" STANDBYLED");
|
if (!(data & 0x10)) printf(" STANDBYLED");
|
||||||
if (!(data & 0x20)) printf(" SLOWTRG");
|
if (!(data & 0x20)) printf(" SLOWTRG");
|
||||||
if (!(data & 0x40)) printf(" IRQGEN");
|
if (!(data & 0x40)) printf(" IRQGEN");
|
||||||
// if (data & 0x80) printf(" PIASEL");
|
// if (data & 0x80) printf(" PIASEL");
|
||||||
printf("\n");
|
printf("\n");
|
||||||
pr8210_portb = data;
|
pr8210_portb = data;
|
||||||
}
|
}
|
||||||
|
@ -1720,7 +1720,7 @@ static avi_error chunk_write(avi_file *file, UINT32 type, const void *data, UINT
|
|||||||
|
|
||||||
/* if we are getting too big, split the RIFF */
|
/* if we are getting too big, split the RIFF */
|
||||||
/* note that we ignore writes before the current RIFF base, as those are assumed to be
|
/* note that we ignore writes before the current RIFF base, as those are assumed to be
|
||||||
overwrites of a chunk from the previous RIFF */
|
overwrites of a chunk from the previous RIFF */
|
||||||
if ((file->riffbase == 0 && file->writeoffs + length + compute_idx1_size(file) >= MAX_RIFF_SIZE) ||
|
if ((file->riffbase == 0 && file->writeoffs + length + compute_idx1_size(file) >= MAX_RIFF_SIZE) ||
|
||||||
(file->writeoffs >= file->riffbase && file->writeoffs + length - file->riffbase >= MAX_RIFF_SIZE))
|
(file->writeoffs >= file->riffbase && file->writeoffs + length - file->riffbase >= MAX_RIFF_SIZE))
|
||||||
{
|
{
|
||||||
|
@ -1109,11 +1109,11 @@ static const nes_interface nes_interface_2 = { "n2a03b" };
|
|||||||
MACHINE_DRIVER_START( dkong2b_audio )
|
MACHINE_DRIVER_START( dkong2b_audio )
|
||||||
|
|
||||||
/* sound latches */
|
/* sound latches */
|
||||||
|
|
||||||
MDRV_LATCH8_ADD("ls175.3d") /* sound cmd latch */
|
MDRV_LATCH8_ADD("ls175.3d") /* sound cmd latch */
|
||||||
MDRV_LATCH8_MASKOUT(0xf0)
|
MDRV_LATCH8_MASKOUT(0xf0)
|
||||||
MDRV_LATCH8_INVERT(0x0F)
|
MDRV_LATCH8_INVERT(0x0F)
|
||||||
|
|
||||||
MDRV_LATCH8_ADD("ls259.6h")
|
MDRV_LATCH8_ADD("ls259.6h")
|
||||||
MDRV_LATCH8_DISCRETE_NODE(0, DS_SOUND0_INP)
|
MDRV_LATCH8_DISCRETE_NODE(0, DS_SOUND0_INP)
|
||||||
MDRV_LATCH8_DISCRETE_NODE(1, DS_SOUND1_INP)
|
MDRV_LATCH8_DISCRETE_NODE(1, DS_SOUND1_INP)
|
||||||
@ -1122,11 +1122,11 @@ MACHINE_DRIVER_START( dkong2b_audio )
|
|||||||
MDRV_LATCH8_DISCRETE_NODE(7, DS_SOUND7_INP)
|
MDRV_LATCH8_DISCRETE_NODE(7, DS_SOUND7_INP)
|
||||||
|
|
||||||
/* If P2.Bit7 -> is apparently an external signal decay or other output control
|
/* If P2.Bit7 -> is apparently an external signal decay or other output control
|
||||||
* If P2.Bit6 -> activates the external compressed sample ROM (not radarsc1)
|
* If P2.Bit6 -> activates the external compressed sample ROM (not radarsc1)
|
||||||
* If P2.Bit5 -> Signal ANSN ==> Grid enable (radarsc1)
|
* If P2.Bit5 -> Signal ANSN ==> Grid enable (radarsc1)
|
||||||
* If P2.Bit4 -> status code to main cpu
|
* If P2.Bit4 -> status code to main cpu
|
||||||
* P2.Bit2-0 -> select the 256 byte bank for external ROM
|
* P2.Bit2-0 -> select the 256 byte bank for external ROM
|
||||||
*/
|
*/
|
||||||
|
|
||||||
MDRV_LATCH8_ADD( "virtual_p2" ) /* virtual latch for port B */
|
MDRV_LATCH8_ADD( "virtual_p2" ) /* virtual latch for port B */
|
||||||
MDRV_LATCH8_INVERT( 0x20 ) /* signal is inverted */
|
MDRV_LATCH8_INVERT( 0x20 ) /* signal is inverted */
|
||||||
@ -1159,7 +1159,7 @@ MACHINE_DRIVER_START( radarsc1_audio )
|
|||||||
MDRV_IMPORT_FROM( radarscp_audio )
|
MDRV_IMPORT_FROM( radarscp_audio )
|
||||||
MDRV_CPU_MODIFY("sound")
|
MDRV_CPU_MODIFY("sound")
|
||||||
MDRV_CPU_IO_MAP(radarsc1_sound_io_map, 0)
|
MDRV_CPU_IO_MAP(radarsc1_sound_io_map, 0)
|
||||||
|
|
||||||
/* virtual_p2 is not read -see memory map-, all bits are output bits */
|
/* virtual_p2 is not read -see memory map-, all bits are output bits */
|
||||||
MDRV_LATCH8_ADD( "virtual_p1" ) /* virtual latch for port A */
|
MDRV_LATCH8_ADD( "virtual_p1" ) /* virtual latch for port A */
|
||||||
MDRV_LATCH8_INVERT( 0x80 ) /* signal is inverted */
|
MDRV_LATCH8_INVERT( 0x80 ) /* signal is inverted */
|
||||||
@ -1174,10 +1174,10 @@ MACHINE_DRIVER_END
|
|||||||
MACHINE_DRIVER_START( dkongjr_audio )
|
MACHINE_DRIVER_START( dkongjr_audio )
|
||||||
|
|
||||||
/* sound latches */
|
/* sound latches */
|
||||||
|
|
||||||
MDRV_LATCH8_ADD("ls174.3d")
|
MDRV_LATCH8_ADD("ls174.3d")
|
||||||
MDRV_LATCH8_MASKOUT(0xE0)
|
MDRV_LATCH8_MASKOUT(0xE0)
|
||||||
|
|
||||||
MDRV_LATCH8_ADD( "ls259.6h")
|
MDRV_LATCH8_ADD( "ls259.6h")
|
||||||
MDRV_LATCH8_DISCRETE_NODE(0, DS_SOUND0_INP)
|
MDRV_LATCH8_DISCRETE_NODE(0, DS_SOUND0_INP)
|
||||||
MDRV_LATCH8_DISCRETE_NODE(1, DS_SOUND1_INP)
|
MDRV_LATCH8_DISCRETE_NODE(1, DS_SOUND1_INP)
|
||||||
@ -1195,7 +1195,7 @@ MACHINE_DRIVER_START( dkongjr_audio )
|
|||||||
MDRV_LATCH8_DEVREAD(5, LATCH8, "ls259.6h", latch8_r, 3)
|
MDRV_LATCH8_DEVREAD(5, LATCH8, "ls259.6h", latch8_r, 3)
|
||||||
MDRV_LATCH8_DEVREAD(4, LATCH8, "ls259.6h", latch8_r, 6)
|
MDRV_LATCH8_DEVREAD(4, LATCH8, "ls259.6h", latch8_r, 6)
|
||||||
MDRV_LATCH8_DISCRETE_NODE(7, DS_DISCHARGE_INV)
|
MDRV_LATCH8_DISCRETE_NODE(7, DS_DISCHARGE_INV)
|
||||||
|
|
||||||
MDRV_CPU_ADD("sound", I8035,I8035_CLOCK)
|
MDRV_CPU_ADD("sound", I8035,I8035_CLOCK)
|
||||||
MDRV_CPU_PROGRAM_MAP(dkong_sound_map,0)
|
MDRV_CPU_PROGRAM_MAP(dkong_sound_map,0)
|
||||||
MDRV_CPU_IO_MAP(dkongjr_sound_io_map, 0)
|
MDRV_CPU_IO_MAP(dkongjr_sound_io_map, 0)
|
||||||
@ -1222,7 +1222,7 @@ MACHINE_DRIVER_START( dkong3_audio )
|
|||||||
MDRV_LATCH8_ADD( "latch1")
|
MDRV_LATCH8_ADD( "latch1")
|
||||||
MDRV_LATCH8_ADD( "latch2")
|
MDRV_LATCH8_ADD( "latch2")
|
||||||
MDRV_LATCH8_ADD( "latch3")
|
MDRV_LATCH8_ADD( "latch3")
|
||||||
|
|
||||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||||
MDRV_SOUND_ADD("nes1", NES, N2A03_DEFAULTCLOCK)
|
MDRV_SOUND_ADD("nes1", NES, N2A03_DEFAULTCLOCK)
|
||||||
MDRV_SOUND_CONFIG(nes_interface_1)
|
MDRV_SOUND_CONFIG(nes_interface_1)
|
||||||
|
@ -141,7 +141,7 @@ static const discrete_555_desc starshp1_555_b10 =
|
|||||||
DEFAULT_TTL_V_LOGIC_1 /* cheat and use and anti-alias IC A10 level */
|
DEFAULT_TTL_V_LOGIC_1 /* cheat and use and anti-alias IC A10 level */
|
||||||
};
|
};
|
||||||
|
|
||||||
static const discrete_mixer_desc starshp1_final_mix =
|
static const discrete_mixer_desc starshp1_final_mix =
|
||||||
{
|
{
|
||||||
DISC_MIXER_IS_RESISTOR,
|
DISC_MIXER_IS_RESISTOR,
|
||||||
{STARSHP1_R66, STARSHP1_R126, STARSHP1_R59 + STARSHP1_R60, STARSHP1_R74, STARSHP1_R75},
|
{STARSHP1_R66, STARSHP1_R126, STARSHP1_R59 + STARSHP1_R60, STARSHP1_R74, STARSHP1_R75},
|
||||||
@ -160,7 +160,7 @@ DISCRETE_SOUND_START( starshp1 )
|
|||||||
/************************************************
|
/************************************************
|
||||||
* Input register mapping
|
* Input register mapping
|
||||||
************************************************/
|
************************************************/
|
||||||
// DISCRETE_INPUTX_DATA(STARSHP1_NOISE_AMPLITUDE, STARSHP1_MC1408_GAIN * STARSHP1_NOISE_AMPLITUDE_GAIN, 0, 0)
|
// DISCRETE_INPUTX_DATA(STARSHP1_NOISE_AMPLITUDE, STARSHP1_MC1408_GAIN * STARSHP1_NOISE_AMPLITUDE_GAIN, 0, 0)
|
||||||
/* Fake the MC1408, no where near correct */
|
/* Fake the MC1408, no where near correct */
|
||||||
DISCRETE_INPUTX_DATA(STARSHP1_NOISE_AMPLITUDE, -4.0/255, 4, 0)
|
DISCRETE_INPUTX_DATA(STARSHP1_NOISE_AMPLITUDE, -4.0/255, 4, 0)
|
||||||
DISCRETE_INPUTX_DATA(STARSHP1_TONE_PITCH, STARSHP1_MC1408_GAIN * STARSHP1_TONE_PITCH_GAIN, 0, 0)
|
DISCRETE_INPUTX_DATA(STARSHP1_TONE_PITCH, STARSHP1_MC1408_GAIN * STARSHP1_TONE_PITCH_GAIN, 0, 0)
|
||||||
@ -280,7 +280,7 @@ DISCRETE_SOUND_START( starshp1 )
|
|||||||
STARSHP1_C47,
|
STARSHP1_C47,
|
||||||
&starshp1_555_b10)
|
&starshp1_555_b10)
|
||||||
/* use switch instead of logic AND, so we can switch between
|
/* use switch instead of logic AND, so we can switch between
|
||||||
* 0V and the anti-aliased TTL level out that we set NODE_51 to. */
|
* 0V and the anti-aliased TTL level out that we set NODE_51 to. */
|
||||||
DISCRETE_SWITCH( STARSHP1_SL1_SND, /* IC A10, pin 11 */
|
DISCRETE_SWITCH( STARSHP1_SL1_SND, /* IC A10, pin 11 */
|
||||||
1, /* ENAB */
|
1, /* ENAB */
|
||||||
STARSHP1_SL1,
|
STARSHP1_SL1,
|
||||||
|
@ -479,8 +479,8 @@ static INPUT_PORTS_START( spclaser )
|
|||||||
//PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2) /* This is not 2 Player ??? */
|
//PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2) /* This is not 2 Player ??? */
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||||
|
|
||||||
// PORT_START("IN2") /* referenced by invaders_io_map, used in several drivers; this is fairly hacky */
|
// PORT_START("IN2") /* referenced by invaders_io_map, used in several drivers; this is fairly hacky */
|
||||||
// PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
|
// PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
|
||||||
PORT_MODIFY("IN2")
|
PORT_MODIFY("IN2")
|
||||||
PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "SW1:1" )
|
PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "SW1:1" )
|
||||||
|
@ -355,32 +355,32 @@ return 0x4;
|
|||||||
/*
|
/*
|
||||||
static READ16_HANDLER(test1_r)
|
static READ16_HANDLER(test1_r)
|
||||||
{
|
{
|
||||||
if (input_code_pressed(KEYCODE_Q)) return 0x0001;
|
if (input_code_pressed(KEYCODE_Q)) return 0x0001;
|
||||||
if (input_code_pressed(KEYCODE_W)) return 0x0002;
|
if (input_code_pressed(KEYCODE_W)) return 0x0002;
|
||||||
if (input_code_pressed(KEYCODE_E)) return 0x0004;
|
if (input_code_pressed(KEYCODE_E)) return 0x0004;
|
||||||
if (input_code_pressed(KEYCODE_R)) return 0x0008;
|
if (input_code_pressed(KEYCODE_R)) return 0x0008;
|
||||||
if (input_code_pressed(KEYCODE_T)) return 0x0010;
|
if (input_code_pressed(KEYCODE_T)) return 0x0010;
|
||||||
if (input_code_pressed(KEYCODE_Y)) return 0x0020;
|
if (input_code_pressed(KEYCODE_Y)) return 0x0020;
|
||||||
if (input_code_pressed(KEYCODE_U)) return 0x0040;
|
if (input_code_pressed(KEYCODE_U)) return 0x0040;
|
||||||
if (input_code_pressed(KEYCODE_I)) return 0x0080;
|
if (input_code_pressed(KEYCODE_I)) return 0x0080;
|
||||||
if (input_code_pressed(KEYCODE_A)) return 0x0100;
|
if (input_code_pressed(KEYCODE_A)) return 0x0100;
|
||||||
if (input_code_pressed(KEYCODE_S)) return 0x0200;
|
if (input_code_pressed(KEYCODE_S)) return 0x0200;
|
||||||
if (input_code_pressed(KEYCODE_D)) return 0x0400;
|
if (input_code_pressed(KEYCODE_D)) return 0x0400;
|
||||||
if (input_code_pressed(KEYCODE_F)) return 0x0800;
|
if (input_code_pressed(KEYCODE_F)) return 0x0800;
|
||||||
if (input_code_pressed(KEYCODE_G)) return 0x1000;
|
if (input_code_pressed(KEYCODE_G)) return 0x1000;
|
||||||
if (input_code_pressed(KEYCODE_H)) return 0x2000;
|
if (input_code_pressed(KEYCODE_H)) return 0x2000;
|
||||||
if (input_code_pressed(KEYCODE_J)) return 0x4000;
|
if (input_code_pressed(KEYCODE_J)) return 0x4000;
|
||||||
if (input_code_pressed(KEYCODE_K)) return 0x8000;
|
if (input_code_pressed(KEYCODE_K)) return 0x8000;
|
||||||
|
|
||||||
switch (mame_rand(machine) & 3)
|
switch (mame_rand(machine) & 3)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
return 0;
|
return 0;
|
||||||
case 1:
|
case 1:
|
||||||
return 0xffff;
|
return 0xffff;
|
||||||
default:
|
default:
|
||||||
return mame_rand(machine) % 0xffff;
|
return mame_rand(machine) % 0xffff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -388,26 +388,26 @@ static READ16_HANDLER(rh1_r)
|
|||||||
{
|
{
|
||||||
// printf("ra=%04x ",register_active);
|
// printf("ra=%04x ",register_active);
|
||||||
/*
|
/*
|
||||||
if ((register_active == 0x0e) || (register_active == 0x0e) || (register_active == 0x0e))
|
if ((register_active == 0x0e) || (register_active == 0x0e) || (register_active == 0x0e))
|
||||||
{
|
{
|
||||||
if (input_code_pressed(KEYCODE_1)) return 0x0001 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_1)) return 0x0001 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_2)) return 0x0002 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_2)) return 0x0002 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_3)) return 0x0004 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_3)) return 0x0004 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_4)) return 0x0008 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_4)) return 0x0008 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_5)) return 0x0010 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_5)) return 0x0010 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_6)) return 0x0020 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_6)) return 0x0020 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_7)) return 0x0040 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_7)) return 0x0040 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_8)) return 0x0080 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_8)) return 0x0080 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_A)) return 0x0100 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_A)) return 0x0100 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_S)) return 0x0200 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_S)) return 0x0200 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_D)) return 0x0400 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_D)) return 0x0400 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_F)) return 0x0800 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_F)) return 0x0800 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_G)) return 0x1000 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_G)) return 0x1000 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_H)) return 0x2000 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_H)) return 0x2000 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_J)) return 0x4000 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_J)) return 0x4000 ^ 0xffff;
|
||||||
if (input_code_pressed(KEYCODE_K)) return 0x8000 ^ 0xffff;
|
if (input_code_pressed(KEYCODE_K)) return 0x8000 ^ 0xffff;
|
||||||
|
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
switch (mame_rand(machine) & 3)
|
switch (mame_rand(machine) & 3)
|
||||||
{
|
{
|
||||||
|
@ -747,8 +747,8 @@ static ADDRESS_MAP_START( guwange_writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
|||||||
AM_RANGE(0xb00000, 0xb00005) AM_WRITE(SMH_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control
|
AM_RANGE(0xb00000, 0xb00005) AM_WRITE(SMH_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control
|
||||||
AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
|
AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
|
||||||
AM_RANGE(0xd00010, 0xd00011) AM_WRITE(cave_eeprom_lsb_w ) // EEPROM
|
AM_RANGE(0xd00010, 0xd00011) AM_WRITE(cave_eeprom_lsb_w ) // EEPROM
|
||||||
// AM_RANGE(0xd00012, 0xd00013) AM_WRITE(SMH_NOP ) // ?
|
// AM_RANGE(0xd00012, 0xd00013) AM_WRITE(SMH_NOP ) // ?
|
||||||
// AM_RANGE(0xd00014, 0xd00015) AM_WRITE(SMH_NOP ) // ? $800068 in dfeveron ? probably Watchdog
|
// AM_RANGE(0xd00014, 0xd00015) AM_WRITE(SMH_NOP ) // ? $800068 in dfeveron ? probably Watchdog
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
@ -1371,7 +1371,7 @@ static ADDRESS_MAP_START( pwrinst2_sound_writeport, ADDRESS_SPACE_IO, 8 )
|
|||||||
AM_RANGE(0x40, 0x40) AM_WRITE(ym2203_control_port_0_w ) // YM2203
|
AM_RANGE(0x40, 0x40) AM_WRITE(ym2203_control_port_0_w ) // YM2203
|
||||||
AM_RANGE(0x41, 0x41) AM_WRITE(ym2203_write_port_0_w ) //
|
AM_RANGE(0x41, 0x41) AM_WRITE(ym2203_write_port_0_w ) //
|
||||||
AM_RANGE(0x50, 0x50) AM_WRITE(soundlatch_ack_w ) // To Main CPU
|
AM_RANGE(0x50, 0x50) AM_WRITE(soundlatch_ack_w ) // To Main CPU
|
||||||
// AM_RANGE(0x51, 0x51) AM_WRITE(SMH_NOP ) // ?? volume
|
// AM_RANGE(0x51, 0x51) AM_WRITE(SMH_NOP ) // ?? volume
|
||||||
AM_RANGE(0x80, 0x80) AM_WRITE(pwrinst2_rombank_w ) // ROM bank
|
AM_RANGE(0x80, 0x80) AM_WRITE(pwrinst2_rombank_w ) // ROM bank
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
@ -1859,7 +1859,7 @@ static INPUT_PORTS_START( 3wonders )
|
|||||||
|
|
||||||
PORT_START("DSWA")
|
PORT_START("DSWA")
|
||||||
CPS1_COINAGE_1( "SW(A)" )
|
CPS1_COINAGE_1( "SW(A)" )
|
||||||
PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_CONDITION("DSWA", 0x3f,PORTCOND_NOTEQUALS,0x00) PORT_DIPLOCATION("SW(A):7")
|
PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_CONDITION("DSWA", 0x3f,PORTCOND_NOTEQUALS,0x00) PORT_DIPLOCATION("SW(A):7")
|
||||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_CONDITION("DSWA", 0x3f, PORTCOND_EQUALS, 0x00) PORT_DIPLOCATION("SW(A):7")
|
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_CONDITION("DSWA", 0x3f, PORTCOND_EQUALS, 0x00) PORT_DIPLOCATION("SW(A):7")
|
||||||
|
@ -1249,15 +1249,15 @@ static MACHINE_DRIVER_START( cps2 )
|
|||||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||||
MDRV_SCREEN_RAW_PARAMS(XTAL_8MHz, 518, 64, 448, 259, 16, 240)
|
MDRV_SCREEN_RAW_PARAMS(XTAL_8MHz, 518, 64, 448, 259, 16, 240)
|
||||||
/*
|
/*
|
||||||
Measured clocks:
|
Measured clocks:
|
||||||
V = 59.6376Hz
|
V = 59.6376Hz
|
||||||
H = 15.4445kHz
|
H = 15.4445kHz
|
||||||
H/V = 258.973 ~ 259 lines
|
H/V = 258.973 ~ 259 lines
|
||||||
|
|
||||||
Possible video clocks:
|
Possible video clocks:
|
||||||
60MHz / 15.4445kHz = 3884.878 / 8 = 485.610 -> unlikely
|
60MHz / 15.4445kHz = 3884.878 / 8 = 485.610 -> unlikely
|
||||||
8MHz / 15.4445kHz = 517.983 ~ 518 -> likely
|
8MHz / 15.4445kHz = 517.983 ~ 518 -> likely
|
||||||
16MHz -> same as 8 but with a /2 divider; also a possibility
|
16MHz -> same as 8 but with a /2 divider; also a possibility
|
||||||
*/
|
*/
|
||||||
MDRV_GFXDECODE(cps2)
|
MDRV_GFXDECODE(cps2)
|
||||||
MDRV_PALETTE_LENGTH(0xc00)
|
MDRV_PALETTE_LENGTH(0xc00)
|
||||||
|
@ -2671,14 +2671,14 @@ static MACHINE_DRIVER_START( cps3 )
|
|||||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32)
|
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32)
|
||||||
MDRV_SCREEN_RAW_PARAMS(XTAL_60MHz/8, 486, 0, 384, 259, 0, 224)
|
MDRV_SCREEN_RAW_PARAMS(XTAL_60MHz/8, 486, 0, 384, 259, 0, 224)
|
||||||
/*
|
/*
|
||||||
Measured clocks:
|
Measured clocks:
|
||||||
V = 59.5992Hz
|
V = 59.5992Hz
|
||||||
H = 15.4335kHz
|
H = 15.4335kHz
|
||||||
H/V = 258.955 ~ 259 lines
|
H/V = 258.955 ~ 259 lines
|
||||||
|
|
||||||
Possible video clocks:
|
Possible video clocks:
|
||||||
60MHz / 15.4335kHz = 3887.647 / 8 = 485.956 ~ 486 -> likely
|
60MHz / 15.4335kHz = 3887.647 / 8 = 485.956 ~ 486 -> likely
|
||||||
42.9545MHz / 15.4445kHz = 2781.217 / 6 = 463.536 -> unlikely
|
42.9545MHz / 15.4445kHz = 2781.217 / 6 = 463.536 -> unlikely
|
||||||
*/
|
*/
|
||||||
|
|
||||||
MDRV_MACHINE_START(cps3)
|
MDRV_MACHINE_START(cps3)
|
||||||
|
@ -803,7 +803,7 @@ static ADDRESS_MAP_START( dkongjr_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0x7400, 0x77ff) AM_RAM_WRITE(dkong_videoram_w)
|
AM_RANGE(0x7400, 0x77ff) AM_RAM_WRITE(dkong_videoram_w)
|
||||||
AM_BASE_MEMBER(dkong_state, video_ram)
|
AM_BASE_MEMBER(dkong_state, video_ram)
|
||||||
AM_RANGE(0x7800, 0x780f) AM_DEVREADWRITE(DMA8257, "dma8257", dma8257_r, dma8257_w) /* P8257 control registers */
|
AM_RANGE(0x7800, 0x780f) AM_DEVREADWRITE(DMA8257, "dma8257", dma8257_r, dma8257_w) /* P8257 control registers */
|
||||||
|
|
||||||
AM_RANGE(0x7c00, 0x7c00) AM_READ_PORT("IN0") AM_LATCH8_WRITE("ls174.3d") /* IN0, sound interface */
|
AM_RANGE(0x7c00, 0x7c00) AM_READ_PORT("IN0") AM_LATCH8_WRITE("ls174.3d") /* IN0, sound interface */
|
||||||
|
|
||||||
AM_RANGE(0x7c80, 0x7c80) AM_READ_PORT("IN1") AM_WRITE(dkongjr_gfxbank_w)
|
AM_RANGE(0x7c80, 0x7c80) AM_READ_PORT("IN1") AM_WRITE(dkongjr_gfxbank_w)
|
||||||
@ -1910,9 +1910,9 @@ ROM_START( radarsc1 )
|
|||||||
ROM_LOAD( "trs01c2k.bin", 0x0100, 0x0100, CRC(650c5daf) SHA1(72f91ee2fab9eee58ee42881327e6345aa70b7f9) ) /* green */
|
ROM_LOAD( "trs01c2k.bin", 0x0100, 0x0100, CRC(650c5daf) SHA1(72f91ee2fab9eee58ee42881327e6345aa70b7f9) ) /* green */
|
||||||
ROM_LOAD( "trs01c2l.bin", 0x0200, 0x0100, CRC(23087910) SHA1(afc05c322b11fefaf0af857fee06a5afd0d4593e) ) /* red */
|
ROM_LOAD( "trs01c2l.bin", 0x0200, 0x0100, CRC(23087910) SHA1(afc05c322b11fefaf0af857fee06a5afd0d4593e) ) /* red */
|
||||||
/* Hack! The prom at pos 1D on video board has not been dumped
|
/* Hack! The prom at pos 1D on video board has not been dumped
|
||||||
* Rom 1D is a MB7051, only 5 address lines
|
* Rom 1D is a MB7051, only 5 address lines
|
||||||
* Rom below from TRS02 dump: rs2-v.1hc
|
* Rom below from TRS02 dump: rs2-v.1hc
|
||||||
*/
|
*/
|
||||||
ROM_LOAD( "trs01v1d.bin", 0x0300, 0x0100, BAD_DUMP CRC(1b828315) SHA1(00c9f8c5ae86b68d38c66f9071b5f1ef421c1005) ) /* character color codes on a per-column basis */
|
ROM_LOAD( "trs01v1d.bin", 0x0300, 0x0100, BAD_DUMP CRC(1b828315) SHA1(00c9f8c5ae86b68d38c66f9071b5f1ef421c1005) ) /* character color codes on a per-column basis */
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
@ -316,7 +316,7 @@ static DRIVER_INIT( lhzb2 )
|
|||||||
UINT16 *src = (UINT16 *) (memory_region(machine, "main"));
|
UINT16 *src = (UINT16 *) (memory_region(machine, "main"));
|
||||||
|
|
||||||
int rom_size = 0x80000;
|
int rom_size = 0x80000;
|
||||||
|
|
||||||
for (i=0; i<rom_size/2; i++)
|
for (i=0; i<rom_size/2; i++)
|
||||||
{
|
{
|
||||||
UINT16 x = src[i];
|
UINT16 x = src[i];
|
||||||
@ -396,7 +396,7 @@ static DRIVER_INIT( lhzb2 )
|
|||||||
src[i] = x;
|
src[i] = x;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static DRIVER_INIT( lhzb2a )
|
static DRIVER_INIT( lhzb2a )
|
||||||
@ -405,11 +405,11 @@ static DRIVER_INIT( lhzb2a )
|
|||||||
UINT16 *src = (UINT16 *) (memory_region(machine, "main"));
|
UINT16 *src = (UINT16 *) (memory_region(machine, "main"));
|
||||||
|
|
||||||
int rom_size = 0x80000;
|
int rom_size = 0x80000;
|
||||||
|
|
||||||
for (i=0; i<rom_size/2; i++)
|
for (i=0; i<rom_size/2; i++)
|
||||||
{
|
{
|
||||||
UINT16 x = src[i];
|
UINT16 x = src[i];
|
||||||
|
|
||||||
/* bit 0 xor layer */
|
/* bit 0 xor layer */
|
||||||
|
|
||||||
if( i & 0x20/2 )
|
if( i & 0x20/2 )
|
||||||
@ -465,7 +465,7 @@ static DRIVER_INIT( mgcs )
|
|||||||
UINT16 *src = (UINT16 *) (memory_region(machine, "main"));
|
UINT16 *src = (UINT16 *) (memory_region(machine, "main"));
|
||||||
|
|
||||||
int rom_size = 0x80000;
|
int rom_size = 0x80000;
|
||||||
|
|
||||||
for (i=0; i<rom_size/2; i++)
|
for (i=0; i<rom_size/2; i++)
|
||||||
{
|
{
|
||||||
UINT16 x = src[i];
|
UINT16 x = src[i];
|
||||||
@ -515,7 +515,7 @@ static DRIVER_INIT( slqz2 )
|
|||||||
UINT16 *src = (UINT16 *) (memory_region(machine, "main"));
|
UINT16 *src = (UINT16 *) (memory_region(machine, "main"));
|
||||||
|
|
||||||
int rom_size = 0x80000;
|
int rom_size = 0x80000;
|
||||||
|
|
||||||
for (i=0; i<rom_size/2; i++)
|
for (i=0; i<rom_size/2; i++)
|
||||||
{
|
{
|
||||||
UINT16 x = src[i];
|
UINT16 x = src[i];
|
||||||
@ -546,7 +546,7 @@ static DRIVER_INIT( slqz2 )
|
|||||||
{
|
{
|
||||||
x ^= 0x4000;
|
x ^= 0x4000;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( i & 0x200/2 )
|
if( i & 0x200/2 )
|
||||||
{
|
{
|
||||||
@ -592,7 +592,7 @@ static DRIVER_INIT( sdmg2 )
|
|||||||
UINT16 *src = (UINT16 *) (memory_region(machine, "main"));
|
UINT16 *src = (UINT16 *) (memory_region(machine, "main"));
|
||||||
|
|
||||||
int rom_size = 0x80000;
|
int rom_size = 0x80000;
|
||||||
|
|
||||||
for (i=0; i<rom_size/2; i++)
|
for (i=0; i<rom_size/2; i++)
|
||||||
{
|
{
|
||||||
UINT16 x = src[i];
|
UINT16 x = src[i];
|
||||||
|
@ -1,36 +1,36 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Megadrive / Genesis support
|
Megadrive / Genesis support
|
||||||
PRELIMINARY
|
PRELIMINARY
|
||||||
|
|
||||||
The Megadrive / Genesis form the basis of a number of official Sega Arcade PCBs
|
The Megadrive / Genesis form the basis of a number of official Sega Arcade PCBs
|
||||||
as well as a selection of bootlegs.
|
as well as a selection of bootlegs.
|
||||||
|
|
||||||
Current Issues
|
Current Issues
|
||||||
|
|
||||||
Timing is wrong
|
Timing is wrong
|
||||||
-- DMA timing not emulated
|
-- DMA timing not emulated
|
||||||
-- Sprite render timing incorrect
|
-- Sprite render timing incorrect
|
||||||
-- Interrupt Timing Problems
|
-- Interrupt Timing Problems
|
||||||
|
|
||||||
Known Problems
|
Known Problems
|
||||||
-- g_lem / Lemmings (JU) (REV01) [!]
|
-- g_lem / Lemmings (JU) (REV01) [!]
|
||||||
Rasters are off
|
Rasters are off
|
||||||
-- g_drac / Bram Stoker's Dracula (U) [!]
|
-- g_drac / Bram Stoker's Dracula (U) [!]
|
||||||
Doesn't work, Timing Sensisitve
|
Doesn't work, Timing Sensisitve
|
||||||
-- g_sscc / Sesame Street Counting Cafe (U) [!]
|
-- g_sscc / Sesame Street Counting Cafe (U) [!]
|
||||||
Doesn't work
|
Doesn't work
|
||||||
-- g_fatr / Fatal Rewind (UE) [!] (and clones)
|
-- g_fatr / Fatal Rewind (UE) [!] (and clones)
|
||||||
Doesn't work. Timing Sensitive
|
Doesn't work. Timing Sensitive
|
||||||
|
|
||||||
-- various
|
-- various
|
||||||
Rasters off by 1 line, bottom line corrupt? bad frame timing?
|
Rasters off by 1 line, bottom line corrupt? bad frame timing?
|
||||||
|
|
||||||
+ more
|
+ more
|
||||||
|
|
||||||
ToDo:
|
ToDo:
|
||||||
|
|
||||||
Fix bugs - comprehensive testing!
|
Fix bugs - comprehensive testing!
|
||||||
|
|
||||||
Add SegaCD / 32X support (not used by any arcade systems?)
|
Add SegaCD / 32X support (not used by any arcade systems?)
|
||||||
Add PicoDrive support (not arcade)
|
Add PicoDrive support (not arcade)
|
||||||
|
@ -1107,19 +1107,19 @@ static INPUT_PORTS_START( astyanax )
|
|||||||
PORT_DIPSETTING( 0x0400, DEF_STR( 3C_1C ) )
|
PORT_DIPSETTING( 0x0400, DEF_STR( 3C_1C ) )
|
||||||
PORT_DIPSETTING( 0x0200, DEF_STR( 2C_1C ) )
|
PORT_DIPSETTING( 0x0200, DEF_STR( 2C_1C ) )
|
||||||
PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) )
|
PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) )
|
||||||
// PORT_DIPSETTING( 0x0300, DEF_STR( 1C_1C ) ) // 1_2 shown in test mode
|
// PORT_DIPSETTING( 0x0300, DEF_STR( 1C_1C ) ) // 1_2 shown in test mode
|
||||||
// PORT_DIPSETTING( 0x0500, DEF_STR( 1C_1C ) ) // 1_3
|
// PORT_DIPSETTING( 0x0500, DEF_STR( 1C_1C ) ) // 1_3
|
||||||
// PORT_DIPSETTING( 0x0100, DEF_STR( 1C_1C ) ) // 1_4
|
// PORT_DIPSETTING( 0x0100, DEF_STR( 1C_1C ) ) // 1_4
|
||||||
// PORT_DIPSETTING( 0x0600, DEF_STR( 1C_1C ) ) // 1_5
|
// PORT_DIPSETTING( 0x0600, DEF_STR( 1C_1C ) ) // 1_5
|
||||||
PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) )
|
PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
|
||||||
PORT_DIPSETTING( 0x2000, DEF_STR( 3C_1C ) )
|
PORT_DIPSETTING( 0x2000, DEF_STR( 3C_1C ) )
|
||||||
PORT_DIPSETTING( 0x1000, DEF_STR( 2C_1C ) )
|
PORT_DIPSETTING( 0x1000, DEF_STR( 2C_1C ) )
|
||||||
PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) )
|
PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) )
|
||||||
// PORT_DIPSETTING( 0x1800, DEF_STR( 1C_1C ) ) // 1_2 shown in test mode
|
// PORT_DIPSETTING( 0x1800, DEF_STR( 1C_1C ) ) // 1_2 shown in test mode
|
||||||
// PORT_DIPSETTING( 0x2800, DEF_STR( 1C_1C ) ) // 1_3
|
// PORT_DIPSETTING( 0x2800, DEF_STR( 1C_1C ) ) // 1_3
|
||||||
// PORT_DIPSETTING( 0x0800, DEF_STR( 1C_1C ) ) // 1_4
|
// PORT_DIPSETTING( 0x0800, DEF_STR( 1C_1C ) ) // 1_4
|
||||||
// PORT_DIPSETTING( 0x3000, DEF_STR( 1C_1C ) ) // 1_5
|
// PORT_DIPSETTING( 0x3000, DEF_STR( 1C_1C ) ) // 1_5
|
||||||
PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Demo_Sounds ) )
|
PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Demo_Sounds ) )
|
||||||
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
@ -1506,11 +1506,11 @@ static INPUT_PORTS_START( bigstrik )
|
|||||||
PORT_DIPSETTING( 0x0009, DEF_STR( 2C_1C ) )
|
PORT_DIPSETTING( 0x0009, DEF_STR( 2C_1C ) )
|
||||||
PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) )
|
PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) )
|
||||||
PORT_DIPSETTING( 0x0005, DEF_STR( 2C_3C ) )
|
PORT_DIPSETTING( 0x0005, DEF_STR( 2C_3C ) )
|
||||||
// PORT_DIPSETTING( 0x0004, DEF_STR( 2C_3C ) )
|
// PORT_DIPSETTING( 0x0004, DEF_STR( 2C_3C ) )
|
||||||
// PORT_DIPSETTING( 0x0003, DEF_STR( 2C_3C ) )
|
// PORT_DIPSETTING( 0x0003, DEF_STR( 2C_3C ) )
|
||||||
// PORT_DIPSETTING( 0x0002, DEF_STR( 2C_3C ) )
|
// PORT_DIPSETTING( 0x0002, DEF_STR( 2C_3C ) )
|
||||||
// PORT_DIPSETTING( 0x0001, DEF_STR( 2C_3C ) )
|
// PORT_DIPSETTING( 0x0001, DEF_STR( 2C_3C ) )
|
||||||
// PORT_DIPSETTING( 0x0006, DEF_STR( 2C_3C ) )
|
// PORT_DIPSETTING( 0x0006, DEF_STR( 2C_3C ) )
|
||||||
PORT_DIPSETTING( 0x000e, DEF_STR( 1C_2C ) )
|
PORT_DIPSETTING( 0x000e, DEF_STR( 1C_2C ) )
|
||||||
PORT_DIPSETTING( 0x000d, DEF_STR( 1C_3C ) )
|
PORT_DIPSETTING( 0x000d, DEF_STR( 1C_3C ) )
|
||||||
PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
|
PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
|
||||||
@ -1523,11 +1523,11 @@ static INPUT_PORTS_START( bigstrik )
|
|||||||
PORT_DIPSETTING( 0x0090, DEF_STR( 2C_1C ) )
|
PORT_DIPSETTING( 0x0090, DEF_STR( 2C_1C ) )
|
||||||
PORT_DIPSETTING( 0x00f0, DEF_STR( 1C_1C ) )
|
PORT_DIPSETTING( 0x00f0, DEF_STR( 1C_1C ) )
|
||||||
PORT_DIPSETTING( 0x0050, DEF_STR( 2C_3C ) )
|
PORT_DIPSETTING( 0x0050, DEF_STR( 2C_3C ) )
|
||||||
// PORT_DIPSETTING( 0x0040, DEF_STR( 2C_3C ) )
|
// PORT_DIPSETTING( 0x0040, DEF_STR( 2C_3C ) )
|
||||||
// PORT_DIPSETTING( 0x0030, DEF_STR( 2C_3C ) )
|
// PORT_DIPSETTING( 0x0030, DEF_STR( 2C_3C ) )
|
||||||
// PORT_DIPSETTING( 0x0020, DEF_STR( 2C_3C ) )
|
// PORT_DIPSETTING( 0x0020, DEF_STR( 2C_3C ) )
|
||||||
// PORT_DIPSETTING( 0x0010, DEF_STR( 2C_3C ) )
|
// PORT_DIPSETTING( 0x0010, DEF_STR( 2C_3C ) )
|
||||||
// PORT_DIPSETTING( 0x0060, DEF_STR( 2C_3C ) )
|
// PORT_DIPSETTING( 0x0060, DEF_STR( 2C_3C ) )
|
||||||
PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_2C ) )
|
PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_2C ) )
|
||||||
PORT_DIPSETTING( 0x00d0, DEF_STR( 1C_3C ) )
|
PORT_DIPSETTING( 0x00d0, DEF_STR( 1C_3C ) )
|
||||||
PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) )
|
PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) )
|
||||||
@ -2418,9 +2418,9 @@ static INPUT_PORTS_START( jitsupro )
|
|||||||
PORT_DIPSETTING( 0x0014, "H" )
|
PORT_DIPSETTING( 0x0014, "H" )
|
||||||
PORT_DIPSETTING( 0x0010, "O (M)" )
|
PORT_DIPSETTING( 0x0010, "O (M)" )
|
||||||
PORT_DIPSETTING( 0x000c, "Bu" )
|
PORT_DIPSETTING( 0x000c, "Bu" )
|
||||||
// PORT_DIPSETTING( 0x0008, "13" )
|
// PORT_DIPSETTING( 0x0008, "13" )
|
||||||
// PORT_DIPSETTING( 0x0004, "14" )
|
// PORT_DIPSETTING( 0x0004, "14" )
|
||||||
// PORT_DIPSETTING( 0x0000, "15" )
|
// PORT_DIPSETTING( 0x0000, "15" )
|
||||||
PORT_DIPNAME( 0x0040, 0x0040, "Scroll Is Based On" )
|
PORT_DIPNAME( 0x0040, 0x0040, "Scroll Is Based On" )
|
||||||
PORT_DIPSETTING( 0x0040, "Shadow of Baseball" )
|
PORT_DIPSETTING( 0x0040, "Shadow of Baseball" )
|
||||||
PORT_DIPSETTING( 0x0000, "The Baseball Itself" )
|
PORT_DIPSETTING( 0x0000, "The Baseball Itself" )
|
||||||
|
@ -1229,8 +1229,8 @@ static INPUT_PORTS_START( connect4 )
|
|||||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p")PORT_IMPULSE(5)
|
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p")PORT_IMPULSE(5)
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static const stepper_interface barcrest_reel_interface =
|
static const stepper_interface barcrest_reel_interface =
|
||||||
{
|
{
|
||||||
BARCREST_48STEP_REEL,
|
BARCREST_48STEP_REEL,
|
||||||
0,
|
0,
|
||||||
8,
|
8,
|
||||||
|
@ -442,10 +442,10 @@ static void namconb1_cpureg8_w(running_machine *machine, int reg, UINT8 data)
|
|||||||
vblank_irq_active = 0;
|
vblank_irq_active = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x16: // Watchdog
|
case 0x16: // Watchdog
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x18: // C75 Control
|
case 0x18: // C75 Control
|
||||||
if(data & 1) {
|
if(data & 1) {
|
||||||
cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE);
|
cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE);
|
||||||
|
@ -1436,8 +1436,8 @@ static ADDRESS_MAP_START( readmem_mcu, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0x0008, 0x003f) AM_READ(SMH_RAM)
|
AM_RANGE(0x0008, 0x003f) AM_READ(SMH_RAM)
|
||||||
AM_RANGE(0x0040, 0x01bf) AM_READ(SMH_RAM)
|
AM_RANGE(0x0040, 0x01bf) AM_READ(SMH_RAM)
|
||||||
AM_RANGE(0x01c0, 0x1fff) AM_READ(SMH_ROM)
|
AM_RANGE(0x01c0, 0x1fff) AM_READ(SMH_ROM)
|
||||||
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("DSW")
|
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("DSW")
|
||||||
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("DIAL0")
|
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("DIAL0")
|
||||||
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DIAL1")
|
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DIAL1")
|
||||||
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DIAL2")
|
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DIAL2")
|
||||||
AM_RANGE(0x3003, 0x3003) AM_READ_PORT("DIAL3")
|
AM_RANGE(0x3003, 0x3003) AM_READ_PORT("DIAL3")
|
||||||
|
@ -271,7 +271,7 @@ static READ16_HANDLER( musobana_inputport_0_r )
|
|||||||
case 0x04: portdata = input_port_read(machine, "KEY2"); break;
|
case 0x04: portdata = input_port_read(machine, "KEY2"); break;
|
||||||
case 0x08: portdata = input_port_read(machine, "KEY3"); break;
|
case 0x08: portdata = input_port_read(machine, "KEY3"); break;
|
||||||
case 0x10: portdata = input_port_read(machine, "KEY4"); break;
|
case 0x10: portdata = input_port_read(machine, "KEY4"); break;
|
||||||
default: portdata = input_port_read(machine, "KEY0") & input_port_read(machine, "KEY1") & input_port_read(machine, "KEY2")
|
default: portdata = input_port_read(machine, "KEY0") & input_port_read(machine, "KEY1") & input_port_read(machine, "KEY2")
|
||||||
& input_port_read(machine, "KEY3") & input_port_read(machine, "KEY4"); break;
|
& input_port_read(machine, "KEY3") & input_port_read(machine, "KEY4"); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -765,7 +765,7 @@ static WRITE16_HANDLER( hachamf_mainram_w )
|
|||||||
static ADDRESS_MAP_START( hachamf_map, ADDRESS_SPACE_PROGRAM, 16 )
|
static ADDRESS_MAP_START( hachamf_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||||
/* I/O Region */
|
/* I/O Region */
|
||||||
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
|
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
|
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSW1")
|
AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSW1")
|
||||||
AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("UNK")
|
AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("UNK")
|
||||||
|
@ -237,7 +237,7 @@ static INPUT_PORTS_START( pandoras )
|
|||||||
PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) )
|
PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) )
|
||||||
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) )
|
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) )
|
||||||
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
|
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
|
||||||
// PORT_DIPSETTING( 0x00, "Invalid" )
|
// PORT_DIPSETTING( 0x00, "Invalid" )
|
||||||
|
|
||||||
PORT_START("DSW2")
|
PORT_START("DSW2")
|
||||||
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
|
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
|
||||||
|
@ -237,7 +237,7 @@ static INPUT_PORTS_START( parodius )
|
|||||||
PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) )
|
PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) )
|
||||||
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) )
|
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) )
|
||||||
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
|
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
|
||||||
// PORT_DIPSETTING( 0x00, "No Use" )
|
// PORT_DIPSETTING( 0x00, "No Use" )
|
||||||
|
|
||||||
PORT_START("DSW2")
|
PORT_START("DSW2")
|
||||||
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
|
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
|
||||||
|
@ -859,10 +859,10 @@ static INPUT_PORTS_START( pgm )
|
|||||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
|
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )
|
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )
|
||||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN4 )
|
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN4 )
|
||||||
// PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) // test 1p+2p
|
// PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) // test 1p+2p
|
||||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) // what should i use?
|
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) // what should i use?
|
||||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service 1p+2p
|
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service 1p+2p
|
||||||
// PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON6 ) // test 3p+4p
|
// PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON6 ) // test 3p+4p
|
||||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) // what should i use?
|
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) // what should i use?
|
||||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SERVICE2 ) // service 3p+4p
|
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SERVICE2 ) // service 3p+4p
|
||||||
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
|
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
|
||||||
@ -934,8 +934,8 @@ static INPUT_PORTS_START( olds )
|
|||||||
PORT_MODIFY("Region") /* Region - supplied by protection device */
|
PORT_MODIFY("Region") /* Region - supplied by protection device */
|
||||||
PORT_DIPNAME( 0x000f, 0x0006, DEF_STR( Region ) )
|
PORT_DIPNAME( 0x000f, 0x0006, DEF_STR( Region ) )
|
||||||
/* includes the following regions:
|
/* includes the following regions:
|
||||||
1 = taiwan, 2 = china, 3 = japan (title = orlegend special),
|
1 = taiwan, 2 = china, 3 = japan (title = orlegend special),
|
||||||
4 = korea, 5 = hong kong, 6 = world */
|
4 = korea, 5 = hong kong, 6 = world */
|
||||||
PORT_DIPSETTING( 0x0001, "Taiwan" )
|
PORT_DIPSETTING( 0x0001, "Taiwan" )
|
||||||
PORT_DIPSETTING( 0x0002, "China" )
|
PORT_DIPSETTING( 0x0002, "China" )
|
||||||
PORT_DIPSETTING( 0x0003, DEF_STR( Japan ) )
|
PORT_DIPSETTING( 0x0003, DEF_STR( Japan ) )
|
||||||
@ -979,7 +979,7 @@ INPUT_PORTS_END
|
|||||||
static INPUT_PORTS_START( ddp2 )
|
static INPUT_PORTS_START( ddp2 )
|
||||||
PORT_INCLUDE ( pgm )
|
PORT_INCLUDE ( pgm )
|
||||||
|
|
||||||
/* // probably not dsw related anyway
|
/* // probably not dsw related anyway
|
||||||
PORT_START("UNK0")
|
PORT_START("UNK0")
|
||||||
PORT_DIPNAME( 0x0001, 0x0001, "4" )
|
PORT_DIPNAME( 0x0001, 0x0001, "4" )
|
||||||
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
|
||||||
|
@ -122,20 +122,20 @@ static CUSTOM_INPUT( mcu_status_r )
|
|||||||
int ret = 0x00;
|
int ret = 0x00;
|
||||||
|
|
||||||
/* Don't know exactly what this bit is, but s1945 and tengai
|
/* Don't know exactly what this bit is, but s1945 and tengai
|
||||||
both spin waiting for it to go low during POST. Also,
|
both spin waiting for it to go low during POST. Also,
|
||||||
the following code in tengai (don't know where or if it is
|
the following code in tengai (don't know where or if it is
|
||||||
reached) waits for it to pulse:
|
reached) waits for it to pulse:
|
||||||
|
|
||||||
01A546: move.b (A2), D0 ; A2 = $c00003
|
01A546: move.b (A2), D0 ; A2 = $c00003
|
||||||
01A548: andi.b #$4, D0
|
01A548: andi.b #$4, D0
|
||||||
01A54C: beq $1a546
|
01A54C: beq $1a546
|
||||||
01A54E: move.b (A2), D0
|
01A54E: move.b (A2), D0
|
||||||
01A550: andi.b #$4, D0
|
01A550: andi.b #$4, D0
|
||||||
01A554: bne $1a54e
|
01A554: bne $1a54e
|
||||||
|
|
||||||
Interestingly, s1945jn has the code that spins on this bit,
|
Interestingly, s1945jn has the code that spins on this bit,
|
||||||
but said code is never reached. Prototype? */
|
but said code is never reached. Prototype? */
|
||||||
if (mcu_status)
|
if (mcu_status)
|
||||||
ret = 0x01;
|
ret = 0x01;
|
||||||
|
|
||||||
mcu_status = !mcu_status; /* hack */
|
mcu_status = !mcu_status; /* hack */
|
||||||
@ -678,7 +678,7 @@ static INPUT_PORTS_START( sngkace )
|
|||||||
PORT_DIPSETTING( 0x000000bf, "Hong Kong" )
|
PORT_DIPSETTING( 0x000000bf, "Hong Kong" )
|
||||||
PORT_DIPSETTING( 0x0000007f, "Taiwan" )
|
PORT_DIPSETTING( 0x0000007f, "Taiwan" )
|
||||||
#endif
|
#endif
|
||||||
PORT_BIT( 0x000000ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x000000ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -684,7 +684,7 @@ INPUT_PORTS_END
|
|||||||
|
|
||||||
|
|
||||||
static INPUT_PORTS_START( s1945ii )
|
static INPUT_PORTS_START( s1945ii )
|
||||||
PORT_INCLUDE( common )
|
PORT_INCLUDE( common )
|
||||||
|
|
||||||
PORT_MODIFY("INPUTS")
|
PORT_MODIFY("INPUTS")
|
||||||
PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* No button 3 */
|
PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* No button 3 */
|
||||||
@ -698,7 +698,7 @@ static INPUT_PORTS_START( s1945ii )
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( soldivid )
|
static INPUT_PORTS_START( soldivid )
|
||||||
PORT_INCLUDE( common )
|
PORT_INCLUDE( common )
|
||||||
|
|
||||||
PORT_START("JP4") /* jumper pads on the PCB */
|
PORT_START("JP4") /* jumper pads on the PCB */
|
||||||
PORT_DIPNAME( 0x01000000, 0x01000000, DEF_STR( Region ) )
|
PORT_DIPNAME( 0x01000000, 0x01000000, DEF_STR( Region ) )
|
||||||
@ -708,7 +708,7 @@ static INPUT_PORTS_START( soldivid )
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( daraku )
|
static INPUT_PORTS_START( daraku )
|
||||||
PORT_INCLUDE( common )
|
PORT_INCLUDE( common )
|
||||||
|
|
||||||
PORT_MODIFY("INPUTS")
|
PORT_MODIFY("INPUTS")
|
||||||
PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
|
PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
|
||||||
@ -726,7 +726,7 @@ static INPUT_PORTS_START( daraku )
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( sbomberb )
|
static INPUT_PORTS_START( sbomberb )
|
||||||
PORT_INCLUDE( common )
|
PORT_INCLUDE( common )
|
||||||
/* If Debug is HIGH then you can perform rom test, but EEPROM resets? */
|
/* If Debug is HIGH then you can perform rom test, but EEPROM resets? */
|
||||||
|
|
||||||
PORT_MODIFY("INPUTS")
|
PORT_MODIFY("INPUTS")
|
||||||
@ -741,7 +741,7 @@ static INPUT_PORTS_START( sbomberb )
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( gunbird2 ) /* Different Region */
|
static INPUT_PORTS_START( gunbird2 ) /* Different Region */
|
||||||
PORT_INCLUDE( common )
|
PORT_INCLUDE( common )
|
||||||
/* If Debug is HIGH then you can perform rom test, but EEPROM resets */
|
/* If Debug is HIGH then you can perform rom test, but EEPROM resets */
|
||||||
|
|
||||||
PORT_START("JP4") /* jumper pads on the PCB */
|
PORT_START("JP4") /* jumper pads on the PCB */
|
||||||
@ -753,7 +753,7 @@ static INPUT_PORTS_START( gunbird2 ) /* Different Region */
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( s1945iii ) /* Different Region again */
|
static INPUT_PORTS_START( s1945iii ) /* Different Region again */
|
||||||
PORT_INCLUDE( common )
|
PORT_INCLUDE( common )
|
||||||
/* If Debug is HIGH then you can perform rom test, EEPROM doesn't reset */
|
/* If Debug is HIGH then you can perform rom test, EEPROM doesn't reset */
|
||||||
|
|
||||||
PORT_START("JP4") /* jumper pads on the PCB */
|
PORT_START("JP4") /* jumper pads on the PCB */
|
||||||
@ -765,7 +765,7 @@ static INPUT_PORTS_START( s1945iii ) /* Different Region again */
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( dragnblz ) /* Security requires bit high */
|
static INPUT_PORTS_START( dragnblz ) /* Security requires bit high */
|
||||||
PORT_INCLUDE( common )
|
PORT_INCLUDE( common )
|
||||||
|
|
||||||
PORT_MODIFY("INPUTS")
|
PORT_MODIFY("INPUTS")
|
||||||
PORT_DIPNAME( 0x00000040, 0x00000000, "Debug" ) /* Must be HIGH (Or Security Error), so can perform test */
|
PORT_DIPNAME( 0x00000040, 0x00000000, "Debug" ) /* Must be HIGH (Or Security Error), so can perform test */
|
||||||
@ -781,7 +781,7 @@ static INPUT_PORTS_START( dragnblz ) /* Security requires bit high */
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( gnbarich ) /* Same as S1945iii except only one button */
|
static INPUT_PORTS_START( gnbarich ) /* Same as S1945iii except only one button */
|
||||||
PORT_INCLUDE( common )
|
PORT_INCLUDE( common )
|
||||||
/* If Debug is HIGH then you can perform rom test, but EEPROM resets? */
|
/* If Debug is HIGH then you can perform rom test, but EEPROM resets? */
|
||||||
|
|
||||||
PORT_START("JP4") /* jumper pads on the PCB */
|
PORT_START("JP4") /* jumper pads on the PCB */
|
||||||
@ -793,13 +793,13 @@ static INPUT_PORTS_START( gnbarich ) /* Same as S1945iii except only one button
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( mjgtaste ) /* This will need the Mahjong inputs */
|
static INPUT_PORTS_START( mjgtaste ) /* This will need the Mahjong inputs */
|
||||||
PORT_INCLUDE( common )
|
PORT_INCLUDE( common )
|
||||||
|
|
||||||
PORT_START("JP4") /* jumper pads on the PCB */
|
PORT_START("JP4") /* jumper pads on the PCB */
|
||||||
// PORT_DIPNAME( 0x03000000, 0x01000000, DEF_STR( Region ) )
|
// PORT_DIPNAME( 0x03000000, 0x01000000, DEF_STR( Region ) )
|
||||||
// PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) )
|
// PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) )
|
||||||
// PORT_DIPSETTING( 0x02000000, "International Ver A." )
|
// PORT_DIPSETTING( 0x02000000, "International Ver A." )
|
||||||
// PORT_DIPSETTING( 0x01000000, "International Ver B." )
|
// PORT_DIPSETTING( 0x01000000, "International Ver B." )
|
||||||
PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
@ -160,7 +160,7 @@ static ADDRESS_MAP_START( puckpkmn_readmem, ADDRESS_SPACE_PROGRAM, 16 )
|
|||||||
AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM) /* Main Ram */
|
AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM) /* Main Ram */
|
||||||
|
|
||||||
/* Unknown reads: */
|
/* Unknown reads: */
|
||||||
// AM_RANGE(0xa10000, 0xa10001) AM_READ(SMH_NOP) /* ? once */
|
// AM_RANGE(0xa10000, 0xa10001) AM_READ(SMH_NOP) /* ? once */
|
||||||
AM_RANGE(0xa10002, 0xa10005) AM_READ(SMH_NOP) /* ? alternative way of reading inputs ? */
|
AM_RANGE(0xa10002, 0xa10005) AM_READ(SMH_NOP) /* ? alternative way of reading inputs ? */
|
||||||
AM_RANGE(0xa11100, 0xa11101) AM_READ(SMH_NOP) /* ? */
|
AM_RANGE(0xa11100, 0xa11101) AM_READ(SMH_NOP) /* ? */
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
@ -188,7 +188,7 @@ static INPUT_PORTS_START( rockrage )
|
|||||||
PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) )
|
PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) )
|
||||||
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) )
|
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) )
|
||||||
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
|
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
|
||||||
// PORT_DIPSETTING( 0x00, "Invalid" )
|
// PORT_DIPSETTING( 0x00, "Invalid" )
|
||||||
|
|
||||||
PORT_START("DSW2")
|
PORT_START("DSW2")
|
||||||
PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
|
PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
|
||||||
|
@ -99,7 +99,7 @@ Notes:
|
|||||||
button (new style: newer games like gwar do it).
|
button (new style: newer games like gwar do it).
|
||||||
- some of the tiles in the fg ROM (letters saying "standard", "power",
|
- some of the tiles in the fg ROM (letters saying "standard", "power",
|
||||||
"hyper", "safety", "danger") are present in all sets, but are actually used
|
"hyper", "safety", "danger") are present in all sets, but are actually used
|
||||||
only in bermudat/bermudaj.
|
only in bermudat/bermudaj.
|
||||||
- the worldwar test mode shows wrong descriptions for the dip switches, which
|
- the worldwar test mode shows wrong descriptions for the dip switches, which
|
||||||
are actually correct for bermudaj.
|
are actually correct for bermudaj.
|
||||||
|
|
||||||
@ -303,24 +303,24 @@ static READ8_HANDLER( sgladiat_sound_irq_ack_r )
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
All the later games (from athena onwards) have the same sound status flag handling.
|
All the later games (from athena onwards) have the same sound status flag handling.
|
||||||
|
|
||||||
This 4 bit register is mapped at 0xf800.
|
This 4 bit register is mapped at 0xf800.
|
||||||
|
|
||||||
Writes to this register always contain 0x0f in the lower nibble.
|
Writes to this register always contain 0x0f in the lower nibble.
|
||||||
The upper nibble contains a mask, which clears bits
|
The upper nibble contains a mask, which clears bits
|
||||||
|
|
||||||
bit 0: irq request from first YM chip
|
bit 0: irq request from first YM chip
|
||||||
bit 1: irq request from second YM chip
|
bit 1: irq request from second YM chip
|
||||||
bit 2: sound cpu busy
|
bit 2: sound cpu busy
|
||||||
bit 3: sound command pending
|
bit 3: sound command pending
|
||||||
|
|
||||||
The main CPU can read the busy flag using an input port.
|
The main CPU can read the busy flag using an input port.
|
||||||
|
|
||||||
The earlier games are different. E.g. in tnk3 there are only three status
|
The earlier games are different. E.g. in tnk3 there are only three status
|
||||||
bits since there is only one YM chip, and the bits are cleared using
|
bits since there is only one YM chip, and the bits are cleared using
|
||||||
separate memory addresses. Additionally, clearing the cmd irq also
|
separate memory addresses. Additionally, clearing the cmd irq also
|
||||||
clears the sound latch.
|
clears the sound latch.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*********************************************************************/
|
/*********************************************************************/
|
||||||
@ -1172,7 +1172,7 @@ static ADDRESS_MAP_START( aso_YM3526_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0xe000, 0xe000) AM_READ(tnk3_busy_clear_r)
|
AM_RANGE(0xe000, 0xe000) AM_READ(tnk3_busy_clear_r)
|
||||||
AM_RANGE(0xf000, 0xf000) AM_READWRITE(ym3526_status_port_0_r, ym3526_control_port_0_w)
|
AM_RANGE(0xf000, 0xf000) AM_READWRITE(ym3526_status_port_0_r, ym3526_control_port_0_w)
|
||||||
AM_RANGE(0xf001, 0xf001) AM_WRITE(ym3526_write_port_0_w)
|
AM_RANGE(0xf001, 0xf001) AM_WRITE(ym3526_write_port_0_w)
|
||||||
// AM_RANGE(0xf002, 0xf002) AM_READNOP unknown
|
// AM_RANGE(0xf002, 0xf002) AM_READNOP unknown
|
||||||
AM_RANGE(0xf004, 0xf004) AM_READ(tnk3_cmdirq_ack_r)
|
AM_RANGE(0xf004, 0xf004) AM_READ(tnk3_cmdirq_ack_r)
|
||||||
AM_RANGE(0xf006, 0xf006) AM_READ(tnk3_ymirq_ack_r)
|
AM_RANGE(0xf006, 0xf006) AM_READ(tnk3_ymirq_ack_r)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -1264,7 +1264,7 @@ static INPUT_PORTS_START( jcross )
|
|||||||
PORT_START("DSW1")
|
PORT_START("DSW1")
|
||||||
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW1:1,2")
|
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW1:1,2")
|
||||||
PORT_DIPSETTING( 0x03, "Upright, Single Controls" )
|
PORT_DIPSETTING( 0x03, "Upright, Single Controls" )
|
||||||
// PORT_DIPSETTING( 0x01, "Upright, Single Controls" ) /* duplicated setting + unknown additional stuff (code at 0x03ff) */
|
// PORT_DIPSETTING( 0x01, "Upright, Single Controls" ) /* duplicated setting + unknown additional stuff (code at 0x03ff) */
|
||||||
PORT_DIPSETTING( 0x00, "Upright, Dual Controls" )
|
PORT_DIPSETTING( 0x00, "Upright, Dual Controls" )
|
||||||
PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
|
PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
|
||||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:3")
|
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:3")
|
||||||
@ -1277,8 +1277,8 @@ static INPUT_PORTS_START( jcross )
|
|||||||
PORT_DIPSETTING( 0x18, DEF_STR( 1C_2C ) )
|
PORT_DIPSETTING( 0x18, DEF_STR( 1C_2C ) )
|
||||||
PORT_DIPSETTING( 0x20, DEF_STR( 1C_3C ) )
|
PORT_DIPSETTING( 0x20, DEF_STR( 1C_3C ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
|
||||||
// PORT_DIPSETTING( 0x10, "INVALID !" ) /* settings table at 0x0378 is only 5 bytes wide */
|
// PORT_DIPSETTING( 0x10, "INVALID !" ) /* settings table at 0x0378 is only 5 bytes wide */
|
||||||
// PORT_DIPSETTING( 0x08, "INVALID !" ) /* settings table at 0x0378 is only 5 bytes wide */
|
// PORT_DIPSETTING( 0x08, "INVALID !" ) /* settings table at 0x0378 is only 5 bytes wide */
|
||||||
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_older_bonus_r, (void *)0xc0)
|
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_older_bonus_r, (void *)0xc0)
|
||||||
|
|
||||||
PORT_START("DSW2")
|
PORT_START("DSW2")
|
||||||
@ -1309,7 +1309,7 @@ static INPUT_PORTS_START( jcross )
|
|||||||
PORT_DIPSETTING( 0xc0, "20k" )
|
PORT_DIPSETTING( 0xc0, "20k" )
|
||||||
PORT_DIPSETTING( 0x80, "40k" )
|
PORT_DIPSETTING( 0x80, "40k" )
|
||||||
PORT_DIPSETTING( 0x40, "60k" )
|
PORT_DIPSETTING( 0x40, "60k" )
|
||||||
// PORT_DIPSETTING( 0x01, DEF_STR( None ) ) /* duplicated setting */
|
// PORT_DIPSETTING( 0x01, DEF_STR( None ) ) /* duplicated setting */
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( None ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( None ) )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
@ -1355,7 +1355,7 @@ static INPUT_PORTS_START( sgladiat )
|
|||||||
PORT_DIPSETTING( 0x00, "5" )
|
PORT_DIPSETTING( 0x00, "5" )
|
||||||
PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW1:4,5,6")
|
PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW1:4,5,6")
|
||||||
PORT_DIPSETTING( 0x10, DEF_STR( 5C_1C ) )
|
PORT_DIPSETTING( 0x10, DEF_STR( 5C_1C ) )
|
||||||
// PORT_DIPSETTING( 0x08, DEF_STR( 5C_1C ) ) /* duplicated setting */
|
// PORT_DIPSETTING( 0x08, DEF_STR( 5C_1C ) ) /* duplicated setting */
|
||||||
PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
|
PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
|
||||||
PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) )
|
PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) )
|
||||||
PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )
|
PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )
|
||||||
@ -1378,7 +1378,7 @@ static INPUT_PORTS_START( sgladiat )
|
|||||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSW2:6")
|
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSW2:6")
|
||||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:7") /* code at 0x4169 */
|
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:7") /* code at 0x4169 */
|
||||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x80, 0x80, "Debug Mode (No Opponents)" ) PORT_DIPLOCATION("DSW2:8")
|
PORT_DIPNAME( 0x80, 0x80, "Debug Mode (No Opponents)" ) PORT_DIPLOCATION("DSW2:8")
|
||||||
@ -1393,7 +1393,7 @@ static INPUT_PORTS_START( sgladiat )
|
|||||||
PORT_DIPSETTING( 0xc0, "20k" )
|
PORT_DIPSETTING( 0xc0, "20k" )
|
||||||
PORT_DIPSETTING( 0x80, "40k" )
|
PORT_DIPSETTING( 0x80, "40k" )
|
||||||
PORT_DIPSETTING( 0x40, "50k" )
|
PORT_DIPSETTING( 0x40, "50k" )
|
||||||
// PORT_DIPSETTING( 0x01, DEF_STR( None ) ) /* duplicated setting */
|
// PORT_DIPSETTING( 0x01, DEF_STR( None ) ) /* duplicated setting */
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( None ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( None ) )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
@ -2626,7 +2626,7 @@ static INPUT_PORTS_START( fsoccer )
|
|||||||
PORT_DIPSETTING( 0x04, DEF_STR( Europe ) )
|
PORT_DIPSETTING( 0x04, DEF_STR( Europe ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( USA ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( USA ) )
|
||||||
PORT_DIPSETTING( 0x08, DEF_STR( Japan ) )
|
PORT_DIPSETTING( 0x08, DEF_STR( Japan ) )
|
||||||
// PORT_DIPSETTING( 0x0c, DEF_STR( Europe ) )
|
// PORT_DIPSETTING( 0x0c, DEF_STR( Europe ) )
|
||||||
PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("DSW1:5,6")
|
PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("DSW1:5,6")
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
|
||||||
PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) )
|
PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) )
|
||||||
@ -2889,7 +2889,7 @@ static MACHINE_DRIVER_START( sgladiat )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
/* visible area is correct. Debug info is shown in the black bars at the sides
|
/* visible area is correct. Debug info is shown in the black bars at the sides
|
||||||
of the screen when the Debug dip switch is on */
|
of the screen when the Debug dip switch is on */
|
||||||
|
|
||||||
MDRV_VIDEO_START(sgladiat)
|
MDRV_VIDEO_START(sgladiat)
|
||||||
|
|
||||||
|
@ -710,7 +710,7 @@ static INPUT_PORTS_START( sunaq )
|
|||||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
|
||||||
PORT_START("DSW2") /* Unused? */
|
PORT_START("DSW2") /* Unused? */
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
@ -496,8 +496,8 @@ static INTERRUPT_GEN(skns_interrupt)
|
|||||||
|
|
||||||
Input port definitions
|
Input port definitions
|
||||||
|
|
||||||
NOTE: The driver reads data from eight 8bit input ports, even if they
|
NOTE: The driver reads data from eight 8bit input ports, even if they
|
||||||
are unused. So I left them mapped.
|
are unused. So I left them mapped.
|
||||||
|
|
||||||
**********************************************************************************/
|
**********************************************************************************/
|
||||||
|
|
||||||
|
@ -280,8 +280,8 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( sht_readport, ADDRESS_SPACE_IO, 8 )
|
static ADDRESS_MAP_START( sht_readport, ADDRESS_SPACE_IO, 8 )
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
/* AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") */
|
/* AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") */
|
||||||
/* AM_RANGE(0x04, 0x04) AM_READ_PORT("P2") */
|
/* AM_RANGE(0x04, 0x04) AM_READ_PORT("P2") */
|
||||||
AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM")
|
AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM")
|
||||||
AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2") /* DIP2 */
|
AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2") /* DIP2 */
|
||||||
AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1") /* DIP1 some games read it from here... */
|
AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1") /* DIP1 some games read it from here... */
|
||||||
|
@ -57,7 +57,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0x2001, 0x2001) AM_READ_PORT("P1") AM_WRITE(tagteam_control_w)
|
AM_RANGE(0x2001, 0x2001) AM_READ_PORT("P1") AM_WRITE(tagteam_control_w)
|
||||||
AM_RANGE(0x2002, 0x2002) AM_READ_PORT("DSW1") AM_WRITE(sound_command_w)
|
AM_RANGE(0x2002, 0x2002) AM_READ_PORT("DSW1") AM_WRITE(sound_command_w)
|
||||||
AM_RANGE(0x2003, 0x2003) AM_READ_PORT("DSW2")
|
AM_RANGE(0x2003, 0x2003) AM_READ_PORT("DSW2")
|
||||||
// AM_RANGE(0x2003, 0x2003) AM_WRITE(SMH_NOP) /* Appears to increment when you're out of the ring */
|
// AM_RANGE(0x2003, 0x2003) AM_WRITE(SMH_NOP) /* Appears to increment when you're out of the ring */
|
||||||
AM_RANGE(0x4000, 0x43ff) AM_READWRITE(tagteam_mirrorvideoram_r, tagteam_mirrorvideoram_w)
|
AM_RANGE(0x4000, 0x43ff) AM_READWRITE(tagteam_mirrorvideoram_r, tagteam_mirrorvideoram_w)
|
||||||
AM_RANGE(0x4400, 0x47ff) AM_READWRITE(tagteam_mirrorcolorram_r, tagteam_mirrorcolorram_w)
|
AM_RANGE(0x4400, 0x47ff) AM_READWRITE(tagteam_mirrorcolorram_r, tagteam_mirrorcolorram_w)
|
||||||
AM_RANGE(0x4800, 0x4fff) AM_READ(SMH_RAM)
|
AM_RANGE(0x4800, 0x4fff) AM_READ(SMH_RAM)
|
||||||
|
@ -135,7 +135,7 @@ static INPUT_PORTS_START( tail2nos )
|
|||||||
PORT_DIPSETTING( 0x000d, "5 Coins/6 Credits" )
|
PORT_DIPSETTING( 0x000d, "5 Coins/6 Credits" )
|
||||||
PORT_DIPSETTING( 0x000e, DEF_STR( 4C_5C ) )
|
PORT_DIPSETTING( 0x000e, DEF_STR( 4C_5C ) )
|
||||||
PORT_DIPSETTING( 0x000a, DEF_STR( 2C_3C ) )
|
PORT_DIPSETTING( 0x000a, DEF_STR( 2C_3C ) )
|
||||||
// PORT_DIPSETTING( 0x000f, DEF_STR( 2C_3C ) )
|
// PORT_DIPSETTING( 0x000f, DEF_STR( 2C_3C ) )
|
||||||
PORT_DIPSETTING( 0x0001, DEF_STR( 1C_2C ) )
|
PORT_DIPSETTING( 0x0001, DEF_STR( 1C_2C ) )
|
||||||
PORT_DIPSETTING( 0x0002, DEF_STR( 1C_3C ) )
|
PORT_DIPSETTING( 0x0002, DEF_STR( 1C_3C ) )
|
||||||
PORT_DIPSETTING( 0x0003, DEF_STR( 1C_4C ) )
|
PORT_DIPSETTING( 0x0003, DEF_STR( 1C_4C ) )
|
||||||
@ -152,7 +152,7 @@ static INPUT_PORTS_START( tail2nos )
|
|||||||
PORT_DIPSETTING( 0x00d0, "5 Coins/6 Credits" )
|
PORT_DIPSETTING( 0x00d0, "5 Coins/6 Credits" )
|
||||||
PORT_DIPSETTING( 0x00e0, DEF_STR( 4C_5C ) )
|
PORT_DIPSETTING( 0x00e0, DEF_STR( 4C_5C ) )
|
||||||
PORT_DIPSETTING( 0x00a0, DEF_STR( 2C_3C ) )
|
PORT_DIPSETTING( 0x00a0, DEF_STR( 2C_3C ) )
|
||||||
// PORT_DIPSETTING( 0x00f0, DEF_STR( 2C_3C ) )
|
// PORT_DIPSETTING( 0x00f0, DEF_STR( 2C_3C ) )
|
||||||
PORT_DIPSETTING( 0x0010, DEF_STR( 1C_2C ) )
|
PORT_DIPSETTING( 0x0010, DEF_STR( 1C_2C ) )
|
||||||
PORT_DIPSETTING( 0x0020, DEF_STR( 1C_3C ) )
|
PORT_DIPSETTING( 0x0020, DEF_STR( 1C_3C ) )
|
||||||
PORT_DIPSETTING( 0x0030, DEF_STR( 1C_4C ) )
|
PORT_DIPSETTING( 0x0030, DEF_STR( 1C_4C ) )
|
||||||
|
@ -54,7 +54,7 @@ static VIDEO_START( tattack )
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( mem, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( mem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
AM_RANGE(0x0000, 0x0fff) AM_ROM
|
AM_RANGE(0x0000, 0x0fff) AM_ROM
|
||||||
// AM_RANGE(0x4000, 0x4000) AM_READNOP $315
|
// AM_RANGE(0x4000, 0x4000) AM_READNOP $315
|
||||||
AM_RANGE(0x5000, 0x53ff) AM_RAM AM_BASE(&videoram)
|
AM_RANGE(0x5000, 0x53ff) AM_RAM AM_BASE(&videoram)
|
||||||
AM_RANGE(0x7000, 0x73ff) AM_RAM AM_BASE(&colorram) // color map ? something else .. only bits 1-3 are used
|
AM_RANGE(0x7000, 0x73ff) AM_RAM AM_BASE(&colorram) // color map ? something else .. only bits 1-3 are used
|
||||||
AM_RANGE(0x6000, 0x6000) AM_READ_PORT("DSW2")
|
AM_RANGE(0x6000, 0x6000) AM_READ_PORT("DSW2")
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
Games supported:
|
Games supported:
|
||||||
* Konek-Gorbunok
|
* Konek-Gorbunok
|
||||||
* S.O.S.
|
* S.O.S.
|
||||||
|
|
||||||
Other games known to exist on this hardware (interchangeable by the ROM swap):
|
Other games known to exist on this hardware (interchangeable by the ROM swap):
|
||||||
* Avtogonki
|
* Avtogonki
|
||||||
|
@ -191,9 +191,9 @@ INPUT_PORTS_END
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( topshoot_readmem, ADDRESS_SPACE_PROGRAM, 16 )
|
static ADDRESS_MAP_START( topshoot_readmem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||||
AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) /* Cartridge Program Rom */
|
AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) /* Cartridge Program Rom */
|
||||||
// AM_RANGE(0x200000, 0x20007f) AM_READ(SMH_RAM)
|
// AM_RANGE(0x200000, 0x20007f) AM_READ(SMH_RAM)
|
||||||
// AM_RANGE(0x200040, 0x200041) AM_READ_PORT("IN0") // ??
|
// AM_RANGE(0x200040, 0x200041) AM_READ_PORT("IN0") // ??
|
||||||
// AM_RANGE(0x200050, 0x200051) AM_READ_PORT("IN0") // ??
|
// AM_RANGE(0x200050, 0x200051) AM_READ_PORT("IN0") // ??
|
||||||
AM_RANGE(0x202000, 0x2023ff) AM_READ(SMH_RAM)
|
AM_RANGE(0x202000, 0x2023ff) AM_READ(SMH_RAM)
|
||||||
AM_RANGE(0x400004, 0x400005) AM_READ_PORT("IN0") // ??
|
AM_RANGE(0x400004, 0x400005) AM_READ_PORT("IN0") // ??
|
||||||
AM_RANGE(0xa10000, 0xa1001f) AM_READ_PORT("IN0")
|
AM_RANGE(0xa10000, 0xa1001f) AM_READ_PORT("IN0")
|
||||||
|
@ -150,68 +150,68 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static INPUT_PORTS_START(ttchamp)
|
static INPUT_PORTS_START(ttchamp)
|
||||||
PORT_START("SYSTEM")
|
PORT_START("SYSTEM")
|
||||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
|
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
|
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||||
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x0100, 0x0100, "0x000003" )
|
PORT_DIPNAME( 0x0100, 0x0100, "0x000003" )
|
||||||
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
|
||||||
PORT_START("P1_P2")
|
PORT_START("P1_P2")
|
||||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_8WAY
|
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_8WAY
|
||||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_8WAY
|
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_8WAY
|
||||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_8WAY
|
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_8WAY
|
||||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_8WAY
|
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_8WAY
|
||||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
|
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
|
||||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
|
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
|
||||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
|
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
|
||||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
|
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
|
||||||
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_8WAY
|
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_8WAY
|
||||||
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_8WAY
|
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_8WAY
|
||||||
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_8WAY
|
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_8WAY
|
||||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_8WAY
|
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_8WAY
|
||||||
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
|
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
|
||||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
|
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
|
||||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
|
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
|
||||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START1 )
|
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START1 )
|
||||||
|
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
@ -3942,7 +3942,7 @@ ROM_START( sncwgltd )
|
|||||||
ROM_LOAD( "ic15.bin", 0x1000000, 0x400000, CRC(2551d816) SHA1(e1500d4bfa8cc55220c366a5852263ac2070da82) )
|
ROM_LOAD( "ic15.bin", 0x1000000, 0x400000, CRC(2551d816) SHA1(e1500d4bfa8cc55220c366a5852263ac2070da82) )
|
||||||
ROM_LOAD( "ic16.bin", 0x1400000, 0x400000, CRC(21b401bc) SHA1(89374b80453c474aa1dd3a219422f557f95a262c) )
|
ROM_LOAD( "ic16.bin", 0x1400000, 0x400000, CRC(21b401bc) SHA1(89374b80453c474aa1dd3a219422f557f95a262c) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
/* Taito FX1a/FX1b */
|
/* Taito FX1a/FX1b */
|
||||||
|
|
||||||
|
@ -384,7 +384,7 @@ CUSTOM_INPUT( nb1413m3_busyflag_r )
|
|||||||
|
|
||||||
|
|
||||||
/* 2008-08 FP:
|
/* 2008-08 FP:
|
||||||
* In ALL games (but pastelg, hyhoo & hyhoo2) nb1413m3_outcoin_flag is read at inputport0.
|
* In ALL games (but pastelg, hyhoo & hyhoo2) nb1413m3_outcoin_flag is read at inputport0.
|
||||||
* However, a few games (lovehous, maiko, mmaiko, hanaoji and the ones using inputport3_r below)
|
* However, a few games (lovehous, maiko, mmaiko, hanaoji and the ones using inputport3_r below)
|
||||||
* read nb1413m3_outcoin_flag also at inputport3! Is this the correct behaviour for these games
|
* read nb1413m3_outcoin_flag also at inputport3! Is this the correct behaviour for these games
|
||||||
* or should they only check the flag at inputport3? */
|
* or should they only check the flag at inputport3? */
|
||||||
|
@ -37,7 +37,7 @@ typedef struct _stepper
|
|||||||
index_patt; /* pattern needed on coils (0=don't care) */
|
index_patt; /* pattern needed on coils (0=don't care) */
|
||||||
|
|
||||||
UINT8 optic;
|
UINT8 optic;
|
||||||
} stepper;
|
} stepper;
|
||||||
|
|
||||||
static stepper step[MAX_STEPPERS];
|
static stepper step[MAX_STEPPERS];
|
||||||
/* step table, use previouspattern::newpattern as index */
|
/* step table, use previouspattern::newpattern as index */
|
||||||
@ -593,8 +593,8 @@ static const int BarcrestStepTab[] =
|
|||||||
|
|
||||||
/* useful interfaces */
|
/* useful interfaces */
|
||||||
|
|
||||||
const stepper_interface starpoint_interface_48step =
|
const stepper_interface starpoint_interface_48step =
|
||||||
{
|
{
|
||||||
STARPOINT_48STEP_REEL,
|
STARPOINT_48STEP_REEL,
|
||||||
16,
|
16,
|
||||||
24,
|
24,
|
||||||
|
@ -744,8 +744,8 @@ static void radarscp_step(running_machine *machine, int line_cnt)
|
|||||||
state->sig30Hz = (1-state->sig30Hz);
|
state->sig30Hz = (1-state->sig30Hz);
|
||||||
|
|
||||||
/* Now mix with SND02 (sound 2) line - on 74ls259, bit2 */
|
/* Now mix with SND02 (sound 2) line - on 74ls259, bit2 */
|
||||||
state->rflip_sig = latch8_bit2_r(dev6h, 0) & state->sig30Hz;
|
state->rflip_sig = latch8_bit2_r(dev6h, 0) & state->sig30Hz;
|
||||||
|
|
||||||
sig = state->rflip_sig ^ ((line_cnt & 0x80)>>7);
|
sig = state->rflip_sig ^ ((line_cnt & 0x80)>>7);
|
||||||
|
|
||||||
if (state->hardware_type == HARDWARE_TRS01)
|
if (state->hardware_type == HARDWARE_TRS01)
|
||||||
@ -774,10 +774,10 @@ static void radarscp_step(running_machine *machine, int line_cnt)
|
|||||||
state->blue_level = (int)(vg3/5.0*255);
|
state->blue_level = (int)(vg3/5.0*255);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Grid signal
|
* Grid signal
|
||||||
*
|
*
|
||||||
* Mixed with ANS line (bit 5) from Port B of 8039
|
* Mixed with ANS line (bit 5) from Port B of 8039
|
||||||
*/
|
*/
|
||||||
if (state->grid_on && latch8_bit5_r(devvp2, 0))
|
if (state->grid_on && latch8_bit5_r(devvp2, 0))
|
||||||
{
|
{
|
||||||
diff = (0.0 - cv3);
|
diff = (0.0 - cv3);
|
||||||
|
@ -666,13 +666,13 @@ static void ptn(int opcode,int src_x,int src_y,INT16 _ax,INT16 _ay)
|
|||||||
case 0x0000: dst_step1_x = 1; dst_step1_y = 0; dst_step2_x = -ax_neg*ax; dst_step2_y = 1; break;
|
case 0x0000: dst_step1_x = 1; dst_step1_y = 0; dst_step2_x = -ax_neg*ax; dst_step2_y = 1; break;
|
||||||
case 0x0100: logerror("PTN: not supported"); break;
|
case 0x0100: logerror("PTN: not supported"); break;
|
||||||
case 0x0200: dst_step1_x = 0; dst_step1_y = 1; dst_step2_x = -1; dst_step2_y = -ax_neg*ax; break;
|
case 0x0200: dst_step1_x = 0; dst_step1_y = 1; dst_step2_x = -1; dst_step2_y = -ax_neg*ax; break;
|
||||||
case 0x0300: logerror("PTN: not supported"); break;
|
case 0x0300: logerror("PTN: not supported"); break;
|
||||||
case 0x0400: dst_step1_x = -1; dst_step1_y = 0; dst_step2_x = ax_neg*ax; dst_step2_y = -1; break;
|
case 0x0400: dst_step1_x = -1; dst_step1_y = 0; dst_step2_x = ax_neg*ax; dst_step2_y = -1; break;
|
||||||
case 0x0500: logerror("PTN: not supported"); break;
|
case 0x0500: logerror("PTN: not supported"); break;
|
||||||
case 0x0600: dst_step1_x = 0; dst_step1_y = -1; dst_step2_x = 1; dst_step2_y = ax_neg*ax; break;
|
case 0x0600: dst_step1_x = 0; dst_step1_y = -1; dst_step2_x = 1; dst_step2_y = ax_neg*ax; break;
|
||||||
case 0x0700: logerror("PTN: not supported"); break;
|
case 0x0700: logerror("PTN: not supported"); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
src_step1_x = 1; src_step1_y = 0; src_step2_x = -ax; src_step2_y = 1;
|
src_step1_x = 1; src_step1_y = 0; src_step2_x = -ax; src_step2_y = 1;
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
@ -680,7 +680,7 @@ static void ptn(int opcode,int src_x,int src_y,INT16 _ax,INT16 _ay)
|
|||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
getpixel = get_pixel_ptn(xxs,yys);
|
getpixel = get_pixel_ptn(xxs,yys);
|
||||||
switch ((opcode & 0x0018) >> 3)
|
switch ((opcode & 0x0018) >> 3)
|
||||||
{
|
{
|
||||||
case 0x0000:
|
case 0x0000:
|
||||||
if (getpixel)
|
if (getpixel)
|
||||||
|
@ -379,7 +379,7 @@ WRITE8_HANDLER( sgladiat_scroll_msb_w )
|
|||||||
WRITE8_HANDLER( aso_videoattrs_w )
|
WRITE8_HANDLER( aso_videoattrs_w )
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
video attributes:
|
video attributes:
|
||||||
X-------
|
X-------
|
||||||
-X------
|
-X------
|
||||||
--X----- flip screen
|
--X----- flip screen
|
||||||
@ -401,7 +401,7 @@ WRITE8_HANDLER( aso_videoattrs_w )
|
|||||||
WRITE8_HANDLER( tnk3_videoattrs_w )
|
WRITE8_HANDLER( tnk3_videoattrs_w )
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
video attributes:
|
video attributes:
|
||||||
X------- flip screen
|
X------- flip screen
|
||||||
-X------ character bank (for text layer)
|
-X------ character bank (for text layer)
|
||||||
--X-----
|
--X-----
|
||||||
@ -445,10 +445,10 @@ WRITE8_HANDLER( ikari_sp_scroll_msb_w )
|
|||||||
WRITE8_HANDLER( ikari_unknown_video_w )
|
WRITE8_HANDLER( ikari_unknown_video_w )
|
||||||
{
|
{
|
||||||
/* meaning of 0xc980 uncertain.
|
/* meaning of 0xc980 uncertain.
|
||||||
Normally 0x20, ikaria/ikarijp sets it to 0x31 during test mode.
|
Normally 0x20, ikaria/ikarijp sets it to 0x31 during test mode.
|
||||||
Changing char bank is necessary to fix the display during the
|
Changing char bank is necessary to fix the display during the
|
||||||
hard flags test and the test grid.
|
hard flags test and the test grid.
|
||||||
Changing palette bank is necessary to fix colors in test mode. */
|
Changing palette bank is necessary to fix colors in test mode. */
|
||||||
|
|
||||||
if (data != 0x20 && // normal
|
if (data != 0x20 && // normal
|
||||||
data != 0x31 && // ikari test
|
data != 0x31 && // ikari test
|
||||||
@ -506,7 +506,7 @@ WRITE8_HANDLER( tdfever_sp_scroll_msb_w )
|
|||||||
|
|
||||||
WRITE8_HANDLER( tdfever_spriteram_w )
|
WRITE8_HANDLER( tdfever_spriteram_w )
|
||||||
{
|
{
|
||||||
/* partial updates avoid flickers in the fsoccer radar. */
|
/* partial updates avoid flickers in the fsoccer radar. */
|
||||||
if (offset < 0x80 && spriteram[offset] != data)
|
if (offset < 0x80 && spriteram[offset] != data)
|
||||||
{
|
{
|
||||||
int vpos = video_screen_get_vpos(machine->primary_screen);
|
int vpos = video_screen_get_vpos(machine->primary_screen);
|
||||||
|
@ -1758,7 +1758,7 @@ static texture_info *texture_create(d3d_info *d3d, const render_texinfo *texsour
|
|||||||
// for the target surface, we allocate a render target texture
|
// for the target surface, we allocate a render target texture
|
||||||
scwidth = texture->rawwidth * texture->xprescale;
|
scwidth = texture->rawwidth * texture->xprescale;
|
||||||
scheight = texture->rawheight * texture->yprescale;
|
scheight = texture->rawheight * texture->yprescale;
|
||||||
|
|
||||||
// target surfaces typically cannot be YCbCr, so we always pick RGB in that case
|
// target surfaces typically cannot be YCbCr, so we always pick RGB in that case
|
||||||
finalfmt = (format != d3d->yuv_format) ? format : D3DFMT_A8R8G8B8;
|
finalfmt = (format != d3d->yuv_format) ? format : D3DFMT_A8R8G8B8;
|
||||||
result = (*d3dintf->device.create_texture)(d3d->device, scwidth, scheight, 1, D3DUSAGE_RENDERTARGET, finalfmt, D3DPOOL_DEFAULT, &texture->d3dfinaltex);
|
result = (*d3dintf->device.create_texture)(d3d->device, scwidth, scheight, 1, D3DUSAGE_RENDERTARGET, finalfmt, D3DPOOL_DEFAULT, &texture->d3dfinaltex);
|
||||||
|
@ -9,4 +9,4 @@
|
|||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
const char build_version[] = "0.127 ("__DATE__")";
|
const char build_version[] = "0.127u1 ("__DATE__")";
|
||||||
|
Loading…
Reference in New Issue
Block a user