mirror of
https://github.com/holub/mame
synced 2025-07-06 10:29:38 +03:00
Merge branch 'master' of https://github.com/mamedev/mame
This commit is contained in:
commit
ab826e5594
@ -4502,6 +4502,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/midas.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/miniboy7.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/mirax.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/mjsenpu.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/mole.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/mosaic.cpp",
|
||||
MAME_DIR .. "src/mame/includes/mosaic.h",
|
||||
|
@ -421,7 +421,6 @@ void dsp56k_device::device_reset()
|
||||
logerror("Dsp56k reset\n");
|
||||
|
||||
m_dsp56k_core.interrupt_cycles = 0;
|
||||
m_dsp56k_core.ppc = 0x0000;
|
||||
|
||||
m_dsp56k_core.repFlag = 0;
|
||||
m_dsp56k_core.repAddr = 0x0000;
|
||||
@ -431,6 +430,8 @@ void dsp56k_device::device_reset()
|
||||
agu_reset(&m_dsp56k_core);
|
||||
alu_reset(&m_dsp56k_core);
|
||||
|
||||
m_dsp56k_core.ppc = m_dsp56k_core.PCU.pc;
|
||||
|
||||
/* HACK - Put a jump to 0x0000 at 0x0000 - this keeps the CPU locked to the instruction at address 0x0000 */
|
||||
m_dsp56k_core.program->write_word(0x0000, 0x0124);
|
||||
}
|
||||
@ -450,9 +451,10 @@ void dsp56k_device::device_reset()
|
||||
static size_t execute_one_new(dsp56k_core* cpustate)
|
||||
{
|
||||
// For MAME
|
||||
cpustate->op = ROPCODE(ADDRESS(PC));
|
||||
cpustate->ppc = PC;
|
||||
debugger_instruction_hook(cpustate->device, PC);
|
||||
|
||||
cpustate->op = ROPCODE(ADDRESS(PC));
|
||||
UINT16 w0 = ROPCODE(ADDRESS(PC));
|
||||
UINT16 w1 = ROPCODE(ADDRESS(PC) + ADDRESS(1));
|
||||
|
||||
|
@ -240,9 +240,10 @@ static void execute_one(dsp56k_core* cpustate)
|
||||
UINT8 cycle_count = 0;
|
||||
|
||||
/* For MAME */
|
||||
cpustate->op = ROPCODE(ADDRESS(PC));
|
||||
cpustate->ppc = PC;
|
||||
debugger_instruction_hook(cpustate->device, PC);
|
||||
|
||||
cpustate->op = ROPCODE(ADDRESS(PC));
|
||||
/* The words we're going to be working with */
|
||||
op = ROPCODE(ADDRESS(PC));
|
||||
op2 = ROPCODE(ADDRESS(PC) + ADDRESS(1));
|
||||
@ -2499,10 +2500,7 @@ static size_t dsp56k_op_bcc(dsp56k_core* cpustate, const UINT16 op, const UINT16
|
||||
{
|
||||
INT16 offset = (INT16)op2;
|
||||
|
||||
PC += 2;
|
||||
|
||||
cpustate->ppc = PC;
|
||||
PC += offset;
|
||||
PC += offset + 2;
|
||||
|
||||
cycles += 4;
|
||||
return 0;
|
||||
@ -2527,10 +2525,7 @@ static size_t dsp56k_op_bcc_1(dsp56k_core* cpustate, const UINT16 op, UINT8* cyc
|
||||
{
|
||||
INT16 offset = (INT16)assemble_address_from_6bit_signed_relative_short_address(cpustate, BITS(op,0x003f));
|
||||
|
||||
PC += 1;
|
||||
|
||||
cpustate->ppc = PC;
|
||||
PC += offset;
|
||||
PC += offset + 1;
|
||||
|
||||
cycles += 4;
|
||||
return 0;
|
||||
@ -2572,7 +2567,6 @@ static size_t dsp56k_op_bra_1(dsp56k_core* cpustate, const UINT16 op, UINT8* cyc
|
||||
PC += 1;
|
||||
|
||||
/* Jump */
|
||||
cpustate->ppc = PC;
|
||||
PC += branchOffset;
|
||||
|
||||
/* S L E U N Z V C */
|
||||
@ -2597,7 +2591,6 @@ static size_t dsp56k_op_brkcc(dsp56k_core* cpustate, const UINT16 op, UINT8* cyc
|
||||
if (shouldBreak)
|
||||
{
|
||||
/* TODO: I think this PC = LA thing is off-by-1, but it's working this way because its consistently so */
|
||||
cpustate->ppc = PC;
|
||||
PC = LA;
|
||||
|
||||
SR = SSL; /* TODO: A-83. I believe only the Loop Flag and Forever Flag come back here. */
|
||||
@ -2637,7 +2630,6 @@ static size_t dsp56k_op_bscc(dsp56k_core* cpustate, const UINT16 op, const UINT1
|
||||
SSL = SR;
|
||||
|
||||
/* Change */
|
||||
cpustate->ppc = PC;
|
||||
PC = PC + (INT16)op2;
|
||||
|
||||
/* S L E U N Z V C */
|
||||
@ -2672,7 +2664,6 @@ static size_t dsp56k_op_bsr(dsp56k_core* cpustate, const UINT16 op, const UINT16
|
||||
SSL = SR;
|
||||
|
||||
/* Change */
|
||||
cpustate->ppc = PC;
|
||||
PC = PC + (INT16)op2;
|
||||
|
||||
/* S L E U N Z V C */
|
||||
@ -2838,7 +2829,6 @@ static size_t dsp56k_op_do_1(dsp56k_core* cpustate, const UINT16 op, const UINT1
|
||||
else
|
||||
{
|
||||
/* Skip over the contents of the loop */
|
||||
cpustate->ppc = PC;
|
||||
PC = PC + 2 + op2;
|
||||
|
||||
cycles += 10; /* TODO: + mv oscillator cycles */
|
||||
@ -2908,7 +2898,6 @@ static size_t dsp56k_op_do_2(dsp56k_core* cpustate, const UINT16 op, const UINT1
|
||||
else
|
||||
{
|
||||
/* Skip over the contents of the loop */
|
||||
cpustate->ppc = PC;
|
||||
PC = PC + 2 + op2;
|
||||
|
||||
cycles += 10; /* TODO: + mv oscillator cycles */
|
||||
@ -3048,7 +3037,6 @@ static size_t dsp56k_op_jcc_1(dsp56k_core* cpustate, const UINT16 op, UINT8* cyc
|
||||
/* JMP : 0000 0001 0011 01-- xxxx xxxx xxxx xxxx : A-110 */
|
||||
static size_t dsp56k_op_jmp(dsp56k_core* cpustate, const UINT16 op, const UINT16 op2, UINT8* cycles)
|
||||
{
|
||||
cpustate->ppc = PC;
|
||||
PC = op2;
|
||||
|
||||
/* S L E U N Z V C */
|
||||
@ -3064,7 +3052,6 @@ static size_t dsp56k_op_jmp_1(dsp56k_core* cpustate, const UINT16 op, UINT8* cyc
|
||||
typed_pointer R = { nullptr, DT_BYTE };
|
||||
decode_RR_table(cpustate, BITS(op,0x0003), &R);
|
||||
|
||||
cpustate->ppc = PC;
|
||||
PC = *((UINT16*)R.addr);
|
||||
|
||||
/* S L E U N Z V C */
|
||||
@ -3091,7 +3078,6 @@ static size_t dsp56k_op_jscc(dsp56k_core* cpustate, const UINT16 op, const UINT1
|
||||
SSH = PC;
|
||||
SSL = SR;
|
||||
|
||||
cpustate->ppc = PC;
|
||||
PC = branchOffset;
|
||||
|
||||
cycles += 4; /* TODO: +jx oscillator clock cycles */
|
||||
@ -3133,7 +3119,6 @@ static size_t dsp56k_op_jsr(dsp56k_core* cpustate, const UINT16 op, const UINT16
|
||||
SSH = cpustate->ppc;
|
||||
SSL = SR;
|
||||
|
||||
cpustate->ppc = cpustate->ppc;
|
||||
PC = branchOffset;
|
||||
}
|
||||
else
|
||||
@ -3143,7 +3128,6 @@ static size_t dsp56k_op_jsr(dsp56k_core* cpustate, const UINT16 op, const UINT16
|
||||
SSH = PC;
|
||||
SSL = SR;
|
||||
|
||||
cpustate->ppc = PC;
|
||||
PC = branchOffset;
|
||||
}
|
||||
|
||||
@ -3863,7 +3847,6 @@ static size_t dsp56k_op_rti(dsp56k_core* cpustate, const UINT16 op, UINT8* cycle
|
||||
return 0;
|
||||
}
|
||||
|
||||
cpustate->ppc = PC;
|
||||
PC = SSH;
|
||||
|
||||
SR = SSL;
|
||||
@ -3880,7 +3863,6 @@ static size_t dsp56k_op_rti(dsp56k_core* cpustate, const UINT16 op, UINT8* cycle
|
||||
static size_t dsp56k_op_rts(dsp56k_core* cpustate, const UINT16 op, UINT8* cycles)
|
||||
{
|
||||
/* Pop */
|
||||
cpustate->ppc = PC;
|
||||
PC = SSH;
|
||||
|
||||
/* SR = SSL; The status register is not affected. */
|
||||
@ -4586,7 +4568,6 @@ static void dsp56k_process_loop(dsp56k_core* cpustate)
|
||||
{
|
||||
LC--;
|
||||
|
||||
cpustate->ppc = PC;
|
||||
PC = SSH;
|
||||
}
|
||||
}
|
||||
|
@ -273,7 +273,6 @@ void pcu_service_interrupts(dsp56k_core* cpustate)
|
||||
{
|
||||
/* TODO: Implement long interrupts & fast interrupts correctly! */
|
||||
/* Right now they are handled in the JSR & BSR ops. SupahLame. */
|
||||
cpustate->ppc = PC;
|
||||
|
||||
/* Are you anything but the Host Command interrupt? */
|
||||
if (interrupt_index != 22)
|
||||
|
@ -1524,7 +1524,6 @@ public:
|
||||
}
|
||||
void evaluate(dsp56k_core* cpustate) override
|
||||
{
|
||||
cpustate->ppc = PC;
|
||||
PC = m_displacement;
|
||||
|
||||
/* S L E U N Z V C */
|
||||
@ -1557,7 +1556,6 @@ public:
|
||||
}
|
||||
void evaluate(dsp56k_core* cpustate) override
|
||||
{
|
||||
cpustate->ppc = PC;
|
||||
PC = regValue16(cpustate, m_destination);
|
||||
|
||||
/* S L E U N Z V C */
|
||||
|
@ -450,8 +450,7 @@ void sh2_device::BFS(UINT32 d)
|
||||
if ((m_sh2_state->sr & T) == 0)
|
||||
{
|
||||
INT32 disp = ((INT32)d << 24) >> 24;
|
||||
m_delay = m_sh2_state->pc;
|
||||
m_sh2_state->pc = m_sh2_state->ea = m_sh2_state->pc + disp * 2 + 2;
|
||||
m_delay = m_sh2_state->ea = m_sh2_state->pc + disp * 2 + 2;
|
||||
m_sh2_state->icount--;
|
||||
}
|
||||
}
|
||||
@ -467,7 +466,7 @@ void sh2_device::BRA(UINT32 d)
|
||||
#if BUSY_LOOP_HACKS
|
||||
if (disp == -2)
|
||||
{
|
||||
UINT32 next_opcode = RW( m_sh2_state->ppc & AM );
|
||||
UINT32 next_opcode = RW(m_sh2_state->pc & AM);
|
||||
/* BRA $
|
||||
* NOP
|
||||
*/
|
||||
@ -475,8 +474,7 @@ void sh2_device::BRA(UINT32 d)
|
||||
m_sh2_state->icount %= 3; /* cycles for BRA $ and NOP taken (3) */
|
||||
}
|
||||
#endif
|
||||
m_delay = m_sh2_state->pc;
|
||||
m_sh2_state->pc = m_sh2_state->ea = m_sh2_state->pc + disp * 2 + 2;
|
||||
m_delay = m_sh2_state->ea = m_sh2_state->pc + disp * 2 + 2;
|
||||
m_sh2_state->icount--;
|
||||
}
|
||||
|
||||
@ -486,8 +484,7 @@ void sh2_device::BRA(UINT32 d)
|
||||
*/
|
||||
void sh2_device::BRAF(UINT32 m)
|
||||
{
|
||||
m_delay = m_sh2_state->pc;
|
||||
m_sh2_state->pc += m_sh2_state->r[m] + 2;
|
||||
m_delay = m_sh2_state->pc + m_sh2_state->r[m] + 2;
|
||||
m_sh2_state->icount--;
|
||||
}
|
||||
|
||||
@ -500,8 +497,7 @@ void sh2_device::BSR(UINT32 d)
|
||||
INT32 disp = ((INT32)d << 20) >> 20;
|
||||
|
||||
m_sh2_state->pr = m_sh2_state->pc + 2;
|
||||
m_delay = m_sh2_state->pc;
|
||||
m_sh2_state->pc = m_sh2_state->ea = m_sh2_state->pc + disp * 2 + 2;
|
||||
m_delay = m_sh2_state->ea = m_sh2_state->pc + disp * 2 + 2;
|
||||
m_sh2_state->icount--;
|
||||
}
|
||||
|
||||
@ -512,8 +508,7 @@ void sh2_device::BSR(UINT32 d)
|
||||
void sh2_device::BSRF(UINT32 m)
|
||||
{
|
||||
m_sh2_state->pr = m_sh2_state->pc + 2;
|
||||
m_delay = m_sh2_state->pc;
|
||||
m_sh2_state->pc += m_sh2_state->r[m] + 2;
|
||||
m_delay = m_sh2_state->pc + m_sh2_state->r[m] + 2;
|
||||
m_sh2_state->icount--;
|
||||
}
|
||||
|
||||
@ -540,8 +535,7 @@ void sh2_device::BTS(UINT32 d)
|
||||
if ((m_sh2_state->sr & T) != 0)
|
||||
{
|
||||
INT32 disp = ((INT32)d << 24) >> 24;
|
||||
m_delay = m_sh2_state->pc;
|
||||
m_sh2_state->pc = m_sh2_state->ea = m_sh2_state->pc + disp * 2 + 2;
|
||||
m_delay = m_sh2_state->ea = m_sh2_state->pc + disp * 2 + 2;
|
||||
m_sh2_state->icount--;
|
||||
}
|
||||
}
|
||||
@ -895,7 +889,7 @@ void sh2_device::DT(UINT32 n)
|
||||
m_sh2_state->sr &= ~T;
|
||||
#if BUSY_LOOP_HACKS
|
||||
{
|
||||
UINT32 next_opcode = RW( m_sh2_state->ppc & AM );
|
||||
UINT32 next_opcode = RW(m_sh2_state->pc & AM);
|
||||
/* DT Rn
|
||||
* BF $-2
|
||||
*/
|
||||
@ -955,17 +949,15 @@ void sh2_device::ILLEGAL()
|
||||
/* JMP @Rm */
|
||||
void sh2_device::JMP(UINT32 m)
|
||||
{
|
||||
m_delay = m_sh2_state->pc;
|
||||
m_sh2_state->pc = m_sh2_state->ea = m_sh2_state->r[m];
|
||||
m_delay = m_sh2_state->ea = m_sh2_state->r[m];
|
||||
m_sh2_state->icount--;
|
||||
}
|
||||
|
||||
/* JSR @Rm */
|
||||
void sh2_device::JSR(UINT32 m)
|
||||
{
|
||||
m_delay = m_sh2_state->pc;
|
||||
m_sh2_state->pr = m_sh2_state->pc + 2;
|
||||
m_sh2_state->pc = m_sh2_state->ea = m_sh2_state->r[m];
|
||||
m_delay = m_sh2_state->ea = m_sh2_state->r[m];
|
||||
m_sh2_state->icount--;
|
||||
}
|
||||
|
||||
@ -1575,8 +1567,7 @@ void sh2_device::ROTR(UINT32 n)
|
||||
void sh2_device::RTE()
|
||||
{
|
||||
m_sh2_state->ea = m_sh2_state->r[15];
|
||||
m_delay = m_sh2_state->pc;
|
||||
m_sh2_state->pc = RL( m_sh2_state->ea );
|
||||
m_delay = RL( m_sh2_state->ea );
|
||||
m_sh2_state->r[15] += 4;
|
||||
m_sh2_state->ea = m_sh2_state->r[15];
|
||||
m_sh2_state->sr = RL( m_sh2_state->ea ) & FLAGS;
|
||||
@ -1588,8 +1579,7 @@ void sh2_device::RTE()
|
||||
/* RTS */
|
||||
void sh2_device::RTS()
|
||||
{
|
||||
m_delay = m_sh2_state->pc;
|
||||
m_sh2_state->pc = m_sh2_state->ea = m_sh2_state->pr;
|
||||
m_delay = m_sh2_state->ea = m_sh2_state->pr;
|
||||
m_sh2_state->icount--;
|
||||
}
|
||||
|
||||
@ -2262,7 +2252,7 @@ void sh2_device::op1111(UINT16 opcode)
|
||||
|
||||
void sh2_device::device_reset()
|
||||
{
|
||||
m_sh2_state->ppc = m_sh2_state->pc = m_sh2_state->pr = m_sh2_state->sr = m_sh2_state->gbr = m_sh2_state->vbr = m_sh2_state->mach = m_sh2_state->macl = 0;
|
||||
m_sh2_state->pc = m_sh2_state->pr = m_sh2_state->sr = m_sh2_state->gbr = m_sh2_state->vbr = m_sh2_state->mach = m_sh2_state->macl = 0;
|
||||
m_sh2_state->evec = m_sh2_state->irqsr = 0;
|
||||
memset(&m_sh2_state->r[0], 0, sizeof(m_sh2_state->r[0])*16);
|
||||
m_sh2_state->ea = m_delay = m_cpu_off = m_dvsr = m_dvdnth = m_dvdntl = m_dvcr = 0;
|
||||
@ -2319,19 +2309,17 @@ void sh2_device::execute_run()
|
||||
{
|
||||
UINT32 opcode;
|
||||
|
||||
debugger_instruction_hook(this, m_sh2_state->pc & AM);
|
||||
|
||||
opcode = m_program->read_word(m_sh2_state->pc & AM);
|
||||
|
||||
if (m_delay)
|
||||
{
|
||||
opcode = m_program->read_word(((UINT32)(m_delay & AM)));
|
||||
m_sh2_state->pc -= 2;
|
||||
m_sh2_state->pc = m_delay;
|
||||
m_delay = 0;
|
||||
}
|
||||
else
|
||||
opcode = m_program->read_word(((UINT32)(m_sh2_state->pc & AM)));
|
||||
|
||||
debugger_instruction_hook(this, m_sh2_state->pc);
|
||||
|
||||
m_delay = 0;
|
||||
m_sh2_state->pc += 2;
|
||||
m_sh2_state->ppc = m_sh2_state->pc;
|
||||
m_sh2_state->pc += 2;
|
||||
|
||||
switch (opcode & ( 15 << 12))
|
||||
{
|
||||
@ -2459,14 +2447,13 @@ void sh2_device::device_start()
|
||||
state_add( SH2_EA, "EA", m_sh2_state->ea).formatstr("%08X");
|
||||
|
||||
state_add( STATE_GENPC, "GENPC", m_sh2_state->pc ).noshow();
|
||||
state_add( STATE_GENPCBASE, "CURPC", m_sh2_state->ppc ).noshow();
|
||||
state_add( STATE_GENPCBASE, "CURPC", m_sh2_state->pc ).noshow();
|
||||
state_add( STATE_GENSP, "GENSP", m_sh2_state->r[15] ).noshow();
|
||||
state_add( STATE_GENFLAGS, "GENFLAGS", m_sh2_state->sr ).formatstr("%6s").noshow();
|
||||
|
||||
m_icountptr = &m_sh2_state->icount;
|
||||
|
||||
// Clear state
|
||||
m_sh2_state->ppc = 0;
|
||||
m_sh2_state->pc = 0;
|
||||
m_sh2_state->pr = 0;
|
||||
m_sh2_state->sr = 0;
|
||||
@ -2620,7 +2607,7 @@ void sh2_device::state_export(const device_state_entry &entry)
|
||||
switch (entry.index())
|
||||
{
|
||||
case SH2_PC:
|
||||
m_debugger_temp = (m_delay) ? (m_delay & AM) : (m_sh2_state->pc & AM);
|
||||
m_debugger_temp = m_sh2_state->pc & AM;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -145,7 +145,6 @@ private:
|
||||
// Data that needs to be stored close to the generated DRC code
|
||||
struct internal_sh2_state
|
||||
{
|
||||
UINT32 ppc;
|
||||
UINT32 pc;
|
||||
UINT32 pr;
|
||||
UINT32 sr;
|
||||
|
@ -533,8 +533,7 @@ inline void sh34_base_device::BFS(const UINT16 opcode)
|
||||
if ((m_sr & T) == 0)
|
||||
{
|
||||
INT32 disp = ((INT32)(opcode&0xff) << 24) >> 24;
|
||||
m_delay = m_pc;
|
||||
m_pc = m_ea = m_pc + disp * 2 + 2;
|
||||
m_delay = m_ea = m_pc + disp * 2 + 2;
|
||||
m_sh4_icount--;
|
||||
}
|
||||
}
|
||||
@ -550,7 +549,7 @@ inline void sh34_base_device::BRA(const UINT16 opcode)
|
||||
#if BUSY_LOOP_HACKS
|
||||
if (disp == -2)
|
||||
{
|
||||
UINT32 next_opcode = RW(m_ppc & AM);
|
||||
UINT32 next_opcode = RW(m_pc & AM);
|
||||
/* BRA $
|
||||
* NOP
|
||||
*/
|
||||
@ -558,8 +557,7 @@ inline void sh34_base_device::BRA(const UINT16 opcode)
|
||||
m_sh4_icount %= 3; /* cycles for BRA $ and NOP taken (3) */
|
||||
}
|
||||
#endif
|
||||
m_delay = m_pc;
|
||||
m_pc = m_ea = m_pc + disp * 2 + 2;
|
||||
m_delay = m_ea = m_pc + disp * 2 + 2;
|
||||
m_sh4_icount--;
|
||||
}
|
||||
|
||||
@ -569,8 +567,7 @@ inline void sh34_base_device::BRA(const UINT16 opcode)
|
||||
*/
|
||||
inline void sh34_base_device::BRAF(const UINT16 opcode)
|
||||
{
|
||||
m_delay = m_pc;
|
||||
m_pc += m_r[Rn] + 2;
|
||||
m_delay = m_pc + m_r[Rn] + 2;
|
||||
m_sh4_icount--;
|
||||
}
|
||||
|
||||
@ -583,8 +580,7 @@ inline void sh34_base_device::BSR(const UINT16 opcode)
|
||||
INT32 disp = ((INT32)(opcode&0xfff) << 20) >> 20;
|
||||
|
||||
m_pr = m_pc + 2;
|
||||
m_delay = m_pc;
|
||||
m_pc = m_ea = m_pc + disp * 2 + 2;
|
||||
m_delay = m_ea = m_pc + disp * 2 + 2;
|
||||
m_sh4_icount--;
|
||||
}
|
||||
|
||||
@ -595,8 +591,7 @@ inline void sh34_base_device::BSR(const UINT16 opcode)
|
||||
inline void sh34_base_device::BSRF(const UINT16 opcode)
|
||||
{
|
||||
m_pr = m_pc + 2;
|
||||
m_delay = m_pc;
|
||||
m_pc += m_r[Rn] + 2;
|
||||
m_delay = m_pc + m_r[Rn] + 2;
|
||||
m_sh4_icount--;
|
||||
}
|
||||
|
||||
@ -623,8 +618,7 @@ inline void sh34_base_device::BTS(const UINT16 opcode)
|
||||
if ((m_sr & T) != 0)
|
||||
{
|
||||
INT32 disp = ((INT32)(opcode&0xff) << 24) >> 24;
|
||||
m_delay = m_pc;
|
||||
m_pc = m_ea = m_pc + disp * 2 + 2;
|
||||
m_delay = m_ea = m_pc + disp * 2 + 2;
|
||||
m_sh4_icount--;
|
||||
}
|
||||
}
|
||||
@ -988,7 +982,7 @@ inline void sh34_base_device::DT(const UINT16 opcode)
|
||||
m_sr &= ~T;
|
||||
#if BUSY_LOOP_HACKS
|
||||
{
|
||||
UINT32 next_opcode = RW(m_ppc & AM);
|
||||
UINT32 next_opcode = RW(m_pc & AM);
|
||||
/* DT Rn
|
||||
* BF $-2
|
||||
*/
|
||||
@ -1031,16 +1025,14 @@ inline void sh34_base_device::EXTUW(const UINT16 opcode)
|
||||
/* JMP @Rm */
|
||||
inline void sh34_base_device::JMP(const UINT16 opcode)
|
||||
{
|
||||
m_delay = m_pc;
|
||||
m_pc = m_ea = m_r[Rn];
|
||||
m_delay = m_ea = m_r[Rn];
|
||||
}
|
||||
|
||||
/* JSR @Rm */
|
||||
inline void sh34_base_device::JSR(const UINT16 opcode)
|
||||
{
|
||||
m_delay = m_pc;
|
||||
m_pr = m_pc + 2;
|
||||
m_pc = m_ea = m_r[Rn];
|
||||
m_delay = m_ea = m_r[Rn];
|
||||
m_sh4_icount--;
|
||||
}
|
||||
|
||||
@ -1680,8 +1672,7 @@ inline void sh34_base_device::ROTR(const UINT16 opcode)
|
||||
/* RTE */
|
||||
inline void sh34_base_device::RTE(const UINT16 opcode)
|
||||
{
|
||||
m_delay = m_pc;
|
||||
m_pc = m_ea = m_spc;
|
||||
m_delay = m_ea = m_spc;
|
||||
if ((machine().debug_flags & DEBUG_FLAG_ENABLED) != 0)
|
||||
sh4_syncronize_register_bank((m_sr & sRB) >> 29);
|
||||
if ((m_ssr & sRB) != (m_sr & sRB))
|
||||
@ -1694,8 +1685,7 @@ inline void sh34_base_device::RTE(const UINT16 opcode)
|
||||
/* RTS */
|
||||
inline void sh34_base_device::RTS(const UINT16 opcode)
|
||||
{
|
||||
m_delay = m_pc;
|
||||
m_pc = m_ea = m_pr;
|
||||
m_delay = m_ea = m_pr;
|
||||
m_sh4_icount--;
|
||||
}
|
||||
|
||||
@ -3075,7 +3065,6 @@ inline void sh34_base_device::op1111_0x13(UINT16 opcode)
|
||||
|
||||
void sh34_base_device::device_reset()
|
||||
{
|
||||
m_ppc = 0;
|
||||
m_spc = 0;
|
||||
m_pr = 0;
|
||||
m_sr = 0;
|
||||
@ -3153,6 +3142,7 @@ void sh34_base_device::device_reset()
|
||||
m_rtc_timer->adjust(attotime::from_hz(128));
|
||||
|
||||
m_pc = 0xa0000000;
|
||||
m_ppc = m_pc & AM;
|
||||
m_r[15] = RL(4);
|
||||
m_sr = 0x700000f0;
|
||||
m_fpscr = 0x00040001;
|
||||
@ -3946,37 +3936,24 @@ void sh34_base_device::execute_run()
|
||||
|
||||
do
|
||||
{
|
||||
m_ppc = m_pc & AM;
|
||||
debugger_instruction_hook(this, m_pc & AM);
|
||||
|
||||
const UINT16 opcode = m_direct->read_word(m_pc & AM, WORD2_XOR_LE(0));
|
||||
|
||||
if (m_delay)
|
||||
{
|
||||
const UINT16 opcode = m_direct->read_word((UINT32)(m_delay & AM), WORD2_XOR_LE(0));
|
||||
|
||||
debugger_instruction_hook(this, (m_pc-2) & AM);
|
||||
|
||||
m_pc = m_delay;
|
||||
m_delay = 0;
|
||||
m_ppc = m_pc;
|
||||
|
||||
execute_one(opcode);
|
||||
|
||||
if (m_test_irq && !m_delay)
|
||||
{
|
||||
sh4_check_pending_irq("mame_sh4_execute");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const UINT16 opcode = m_direct->read_word((UINT32)(m_pc & AM), WORD2_XOR_LE(0));
|
||||
|
||||
debugger_instruction_hook(this, m_pc & AM);
|
||||
|
||||
m_pc += 2;
|
||||
m_ppc = m_pc;
|
||||
|
||||
execute_one(opcode);
|
||||
execute_one(opcode);
|
||||
|
||||
if (m_test_irq && !m_delay)
|
||||
{
|
||||
sh4_check_pending_irq("mame_sh4_execute");
|
||||
}
|
||||
if (m_test_irq && !m_delay)
|
||||
{
|
||||
sh4_check_pending_irq("mame_sh4_execute");
|
||||
}
|
||||
|
||||
m_sh4_icount--;
|
||||
@ -3993,40 +3970,24 @@ void sh3be_device::execute_run()
|
||||
|
||||
do
|
||||
{
|
||||
m_ppc = m_pc & AM;
|
||||
debugger_instruction_hook(this, m_pc & AM);
|
||||
|
||||
const UINT16 opcode = m_direct->read_word(m_pc & AM, WORD_XOR_LE(6));
|
||||
|
||||
if (m_delay)
|
||||
{
|
||||
const UINT16 opcode = m_direct->read_word((UINT32)(m_delay & AM), WORD_XOR_LE(6));
|
||||
|
||||
debugger_instruction_hook(this, m_delay & AM);
|
||||
|
||||
m_pc = m_delay;
|
||||
m_delay = 0;
|
||||
m_ppc = m_pc;
|
||||
|
||||
execute_one(opcode);
|
||||
|
||||
|
||||
if (m_test_irq && !m_delay)
|
||||
{
|
||||
sh4_check_pending_irq("mame_sh4_execute");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
const UINT16 opcode = m_direct->read_word((UINT32)(m_pc & AM), WORD_XOR_LE(6));
|
||||
|
||||
debugger_instruction_hook(this, m_pc & AM);
|
||||
|
||||
m_pc += 2;
|
||||
m_ppc = m_pc;
|
||||
|
||||
execute_one(opcode);
|
||||
execute_one(opcode);
|
||||
|
||||
if (m_test_irq && !m_delay)
|
||||
{
|
||||
sh4_check_pending_irq("mame_sh4_execute");
|
||||
}
|
||||
if (m_test_irq && !m_delay)
|
||||
{
|
||||
sh4_check_pending_irq("mame_sh4_execute");
|
||||
}
|
||||
|
||||
m_sh4_icount--;
|
||||
@ -4043,40 +4004,24 @@ void sh4be_device::execute_run()
|
||||
|
||||
do
|
||||
{
|
||||
m_ppc = m_pc & AM;
|
||||
debugger_instruction_hook(this, m_pc & AM);
|
||||
|
||||
const UINT16 opcode = m_direct->read_word(m_pc & AM, WORD_XOR_LE(6));
|
||||
|
||||
if (m_delay)
|
||||
{
|
||||
const UINT16 opcode = m_direct->read_word((UINT32)(m_delay & AM), WORD_XOR_LE(6));
|
||||
|
||||
debugger_instruction_hook(this, m_delay & AM);
|
||||
|
||||
m_pc = m_delay;
|
||||
m_delay = 0;
|
||||
m_ppc = m_pc;
|
||||
|
||||
execute_one(opcode);
|
||||
|
||||
|
||||
if (m_test_irq && !m_delay)
|
||||
{
|
||||
sh4_check_pending_irq("mame_sh4_execute");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
const UINT16 opcode = m_direct->read_word((UINT32)(m_pc & AM), WORD_XOR_LE(6));
|
||||
|
||||
debugger_instruction_hook(this, m_pc & AM);
|
||||
|
||||
m_pc += 2;
|
||||
m_ppc = m_pc;
|
||||
|
||||
execute_one(opcode);
|
||||
execute_one(opcode);
|
||||
|
||||
if (m_test_irq && !m_delay)
|
||||
{
|
||||
sh4_check_pending_irq("mame_sh4_execute");
|
||||
}
|
||||
if (m_test_irq && !m_delay)
|
||||
{
|
||||
sh4_check_pending_irq("mame_sh4_execute");
|
||||
}
|
||||
|
||||
m_sh4_icount--;
|
||||
@ -4440,9 +4385,9 @@ void sh34_base_device::state_export(const device_state_entry &entry)
|
||||
{
|
||||
switch (entry.index())
|
||||
{
|
||||
case STATE_GENPC:
|
||||
m_debugger_temp = (m_delay) ? (m_delay & AM) : (m_pc & AM);
|
||||
break;
|
||||
case STATE_GENPC:
|
||||
m_debugger_temp = (m_pc & AM);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -433,7 +433,8 @@ void dmg_ppu_device::common_start()
|
||||
save_item(NAME(m_next_state));
|
||||
save_item(NAME(m_old_curline));
|
||||
|
||||
for (int i = 0; i < ARRAY_LENGTH(m_layer); i++) {
|
||||
for (int i = 0; i < ARRAY_LENGTH(m_layer); i++)
|
||||
{
|
||||
save_item(NAME(m_layer[i].enabled), i);
|
||||
save_item(NAME(m_layer[i].xindex), i);
|
||||
save_item(NAME(m_layer[i].xshift), i);
|
||||
@ -468,7 +469,8 @@ void dmg_ppu_device::common_start()
|
||||
save_item(NAME(m_line.window_enable));
|
||||
save_item(NAME(m_line.window_enable_index));
|
||||
save_item(NAME(m_line.window_should_trigger));
|
||||
for (int i = 0; i < ARRAY_LENGTH(m_line.sprite); i++) {
|
||||
for (int i = 0; i < ARRAY_LENGTH(m_line.sprite); i++)
|
||||
{
|
||||
save_item(NAME(m_line.sprite[i].enabled), i);
|
||||
save_item(NAME(m_line.sprite[i].x), i);
|
||||
save_item(NAME(m_line.sprite[i].y), i);
|
||||
@ -822,7 +824,7 @@ void dmg_ppu_device::update_line_state(UINT64 cycles)
|
||||
if (m_line.scrollx_to_apply > 0)
|
||||
{
|
||||
// TODO: Determine when the scrollx shifts are applied when window-x is <= 0x07
|
||||
//logerror("scrollx_to_apply: %u\n", m_line.scrollx_to_apply);
|
||||
LOG(("scrollx_to_apply: %u\n", m_line.scrollx_to_apply));
|
||||
if (!m_line.window_active)
|
||||
{
|
||||
m_line.shift_register <<= 2;
|
||||
@ -969,6 +971,15 @@ void dmg_ppu_device::update_line_state(UINT64 cycles)
|
||||
next_tile_cycle = m_line.sprite_delay_cycles == 0 ? 0 : 8;
|
||||
break;
|
||||
|
||||
case 9: // eat scrollx delay cycles before starting window
|
||||
LOG(("eating scrollx_to_apply: %u\n", m_line.scrollx_to_apply));
|
||||
m_line.window_compare_position--;
|
||||
m_line.scrollx_to_apply--;
|
||||
m_cycles_left++;
|
||||
m_scrollx_adjust++;
|
||||
next_tile_cycle = m_line.scrollx_to_apply == 0 ? 0 : 9;
|
||||
break;
|
||||
|
||||
default:
|
||||
next_tile_cycle &= 7;
|
||||
break;
|
||||
@ -1013,7 +1024,7 @@ LOG(("enable window, m_current_line = %u, WNDPOSY = %u, WNDPOSX = %u, m_line.win
|
||||
m_line.starting = true;
|
||||
m_line.window_active = true;
|
||||
m_frame_window_active = true;
|
||||
m_line.tile_cycle = 0;
|
||||
m_line.tile_cycle = !m_line.drawing && m_line.scrollx_to_apply > 0 ? 9 : 0;
|
||||
m_line.tile_count = 0;
|
||||
m_window_cycles = 6;
|
||||
m_cycles_left += 6;
|
||||
|
@ -77,9 +77,9 @@ device_state_entry::device_state_entry(int index, const char *symbol, void *data
|
||||
|
||||
// override well-known symbols
|
||||
if (index == STATE_GENPC)
|
||||
m_symbol.assign("CURPC");
|
||||
m_symbol.assign("GENPC");
|
||||
else if (index == STATE_GENPCBASE)
|
||||
m_symbol.assign("CURPCBASE");
|
||||
m_symbol.assign("CURPC");
|
||||
else if (index == STATE_GENSP)
|
||||
m_symbol.assign("CURSP");
|
||||
else if (index == STATE_GENFLAGS)
|
||||
|
@ -45,12 +45,18 @@ const UINT32 MACHINE_TYPE_OTHER = 0x00200000; // any other emul
|
||||
const UINT32 MACHINE_IMPERFECT_KEYBOARD = 0x00400000; // keyboard is known to be wrong
|
||||
const UINT32 MACHINE_CLICKABLE_ARTWORK = 0x00800000; // marking that artwork is clickable and require mouse cursor
|
||||
const UINT32 MACHINE_IS_INCOMPLETE = 0x01000000; // any official game/system with blantantly incomplete HW or SW should be marked with this
|
||||
const UINT32 MACHINE_NODEVICE_MICROPHONE = 0x02000000; // any game/system that has unemulated recording voice device peripheral
|
||||
const UINT32 MACHINE_NODEVICE_CAMERA = 0x04000000; // any game/system that has unemulated capturing image device peripheral
|
||||
const UINT32 MACHINE_NODEVICE_PRINTER = 0x08000000; // any game/system that has unemulated grabbing of screen content device
|
||||
const UINT32 MACHINE_NODEVICE_LAN = 0x10000000; // any game/system that has unemulated multi-linking capability
|
||||
const UINT32 MACHINE_NODEVICE_WAN = 0x20000000; // any game/system that has unemulated networking capability
|
||||
|
||||
// useful combinations of flags
|
||||
const UINT32 MACHINE_IS_SKELETON = MACHINE_NO_SOUND | MACHINE_NOT_WORKING; // mask for skelly games
|
||||
const UINT32 MACHINE_IS_SKELETON_MECHANICAL = MACHINE_IS_SKELETON | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK; // mask for skelly mechanical games
|
||||
|
||||
|
||||
const UINT32 MACHINE_FATAL_FLAGS = MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_MECHANICAL; // red disclaimer
|
||||
const UINT32 MACHINE_WARNING_FLAGS = MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_COLORS | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_KEYBOARD | MACHINE_NO_SOUND | MACHINE_NO_COCKTAIL | MACHINE_NODEVICE_MICROPHONE | MACHINE_NODEVICE_CAMERA | MACHINE_NODEVICE_PRINTER | MACHINE_NODEVICE_LAN | MACHINE_NODEVICE_WAN; // yellow disclaimer
|
||||
const UINT32 MACHINE_BTANB_FLAGS = MACHINE_IS_INCOMPLETE | MACHINE_NO_SOUND_HW; // default disclaimer
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
|
@ -59,19 +59,7 @@ machine_info::machine_info(running_machine &machine)
|
||||
|
||||
std::string machine_info::warnings_string()
|
||||
{
|
||||
constexpr UINT32 warning_flags = ( MACHINE_NOT_WORKING |
|
||||
MACHINE_UNEMULATED_PROTECTION |
|
||||
MACHINE_MECHANICAL |
|
||||
MACHINE_WRONG_COLORS |
|
||||
MACHINE_IMPERFECT_COLORS |
|
||||
MACHINE_REQUIRES_ARTWORK |
|
||||
MACHINE_NO_SOUND |
|
||||
MACHINE_IMPERFECT_SOUND |
|
||||
MACHINE_IMPERFECT_GRAPHICS |
|
||||
MACHINE_IMPERFECT_KEYBOARD |
|
||||
MACHINE_NO_COCKTAIL |
|
||||
MACHINE_IS_INCOMPLETE |
|
||||
MACHINE_NO_SOUND_HW );
|
||||
constexpr UINT32 warning_flags = ( MACHINE_FATAL_FLAGS | MACHINE_WARNING_FLAGS | MACHINE_BTANB_FLAGS );
|
||||
|
||||
// if no warnings, nothing to return
|
||||
if (m_machine.rom_load().warnings() == 0 && m_machine.rom_load().knownbad() == 0 && !(m_machine.system().flags & warning_flags) && m_machine.rom_load().software_load_warnings_message().length() == 0)
|
||||
@ -120,7 +108,7 @@ std::string machine_info::warnings_string()
|
||||
|
||||
// check if external artwork is present before displaying this warning?
|
||||
if (m_machine.system().flags & MACHINE_REQUIRES_ARTWORK) {
|
||||
buf << _("The machine requires external artwork files\n");
|
||||
buf << _("The machine requires external artwork files.\n");
|
||||
}
|
||||
|
||||
if (m_machine.system().flags & MACHINE_IS_INCOMPLETE )
|
||||
@ -128,13 +116,29 @@ std::string machine_info::warnings_string()
|
||||
buf << _("This machine was never completed. It may exhibit strange behavior or missing elements that are not bugs in the emulation.\n");
|
||||
}
|
||||
|
||||
if (m_machine.system().flags & MACHINE_NODEVICE_MICROPHONE )
|
||||
buf << _("This machine has unemulated microphone device.\n");
|
||||
|
||||
if (m_machine.system().flags & MACHINE_NODEVICE_CAMERA )
|
||||
buf << _("This machine has unemulated camera device.\n");
|
||||
|
||||
if (m_machine.system().flags & MACHINE_NODEVICE_PRINTER )
|
||||
buf << _("This machine has unemulated printer device.\n");
|
||||
|
||||
if (m_machine.system().flags & MACHINE_NODEVICE_LAN )
|
||||
buf << _("This machine has unemulated linking capabilities.\n");
|
||||
|
||||
if (m_machine.system().flags & MACHINE_NODEVICE_WAN )
|
||||
buf << _("This machine has unemulated networking capabilities.\n");
|
||||
|
||||
if (m_machine.system().flags & MACHINE_NO_SOUND_HW )
|
||||
{
|
||||
buf << _("This machine has no sound hardware, MAME will produce no sounds, this is expected behaviour.\n");
|
||||
}
|
||||
|
||||
|
||||
// if there's a NOT WORKING, UNEMULATED PROTECTION or GAME MECHANICAL warning, make it stronger
|
||||
if (m_machine.system().flags & (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_MECHANICAL))
|
||||
if (m_machine.system().flags & (MACHINE_FATAL_FLAGS))
|
||||
{
|
||||
// add the strings for these warnings
|
||||
if (m_machine.system().flags & MACHINE_UNEMULATED_PROTECTION) {
|
||||
|
@ -313,9 +313,10 @@ void mame_ui_manager::display_startup_screens(bool first_time)
|
||||
if (!messagebox_text.empty())
|
||||
{
|
||||
set_handler(ui_callback_type::MODAL, std::bind(&mame_ui_manager::handler_messagebox_anykey, this, _1));
|
||||
if (machine().system().flags & (MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_COLORS | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_KEYBOARD | MACHINE_NO_SOUND))
|
||||
// TODO: don't think BTANB should be marked yellow? Also move this snippet to specific getter
|
||||
if (machine().system().flags & (MACHINE_WARNING_FLAGS|MACHINE_BTANB_FLAGS))
|
||||
messagebox_backcolor = UI_YELLOW_COLOR;
|
||||
if (machine().system().flags & (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_MECHANICAL))
|
||||
if (machine().system().flags & (MACHINE_FATAL_FLAGS))
|
||||
messagebox_backcolor = UI_RED_COLOR;
|
||||
}
|
||||
break;
|
||||
|
@ -1735,15 +1735,15 @@ GAME( 1988, asukaj, asuka, asuka, asuka, driver_device, 0, ROT270, "
|
||||
|
||||
GAME( 1989, mofflott, 0, mofflott, mofflott, driver_device, 0, ROT270, "Taito Corporation", "Maze of Flott (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1989, cadash, 0, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (World)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1989, cadashj, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, version 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1989, cadashj1, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, version 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1989, cadashjo, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, oldest version)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1989, cadashu, cadash, cadash, cadashu, driver_device, 0, ROT0, "Taito America Corporation", "Cadash (US, version 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1989, cadashi, cadash, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (Italy)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1989, cadashf, cadash, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (France)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1989, cadashg, cadash, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (Germany, version 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1989, cadashp, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (World, prototype)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1989, cadash, 0, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashj, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashj1, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashjo, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, oldest version)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashu, cadash, cadash, cadashu, driver_device, 0, ROT0, "Taito America Corporation", "Cadash (US, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashi, cadash, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashf, cadash, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (France)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashg, cadash, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (Germany, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashp, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (World, prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN)
|
||||
|
||||
GAME( 1992, galmedes, 0, galmedes, galmedes, driver_device, 0, ROT270, "Visco", "Galmedes (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
|
@ -108,7 +108,7 @@ ROM R 000000-03ffff <
|
||||
Work RAM RW 0c0000-0c3fff 180000-183fff
|
||||
Shared RAM RW 040000-047fff 080000-087fff
|
||||
Road RAM RW 080000-0807ff 100000-1007ff
|
||||
Whatchdog 100000-100001 200000-200001
|
||||
Watchdog 100000-100001 200000-200001
|
||||
----------------------------------------------------------------
|
||||
|
||||
----------------------------------------------------------------
|
||||
@ -218,7 +218,7 @@ static ADDRESS_MAP_START( bigrun_map, AS_PROGRAM, 16, cischeat_state )
|
||||
Each board expects reads from the other boards and writes to own bank.
|
||||
Amusingly, if you run the communication test as ID = X then soft reset -> ID = Y, what was at ID = X gets an OK in the second test
|
||||
so it's likely to be the only thing needed. */
|
||||
AM_RANGE(0x084000, 0x087fff) AM_RAM // Linking with other units
|
||||
AM_RANGE(0x084000, 0x0847ff) AM_RAM // Linking with other units
|
||||
AM_RANGE(0x088000, 0x08bfff) AM_RAM AM_SHARE("share2") // Sharedram with sub CPU#2
|
||||
AM_RANGE(0x08c000, 0x08ffff) AM_RAM AM_SHARE("share1") // Sharedram with sub CPU#1
|
||||
|
||||
@ -268,7 +268,7 @@ static ADDRESS_MAP_START( cischeat_map, AS_PROGRAM, 16, cischeat_state )
|
||||
AM_RANGE(0x082308, 0x082309) AM_WRITE(cischeat_comms_w)
|
||||
AM_RANGE(0x082400, 0x082401) AM_WRITE(active_layers_w)
|
||||
|
||||
AM_RANGE(0x088000, 0x088fff) AM_RAM // Linking with other units
|
||||
AM_RANGE(0x088000, 0x0887ff) AM_RAM // Linking with other units
|
||||
|
||||
/* Only the first 0x800 bytes are tested but:
|
||||
CPU #0 PC 0000278c: warning - write 68c0 to unmapped memory address 0009c7fe
|
||||
@ -330,7 +330,7 @@ static ADDRESS_MAP_START( f1gpstar_map, AS_PROGRAM, 16, cischeat_state )
|
||||
AM_RANGE(0x082308, 0x082309) AM_READNOP AM_WRITE(f1gpstar_comms_w)
|
||||
AM_RANGE(0x082400, 0x082401) AM_WRITE(active_layers_w)
|
||||
|
||||
AM_RANGE(0x088000, 0x088fff) AM_RAM // Linking with other units
|
||||
AM_RANGE(0x088000, 0x0883ff) AM_RAM // Linking with other units
|
||||
|
||||
AM_RANGE(0x090000, 0x097fff) AM_RAM AM_SHARE("share2") // Sharedram with sub CPU#2
|
||||
AM_RANGE(0x098000, 0x09ffff) AM_RAM AM_SHARE("share1") // Sharedram with sub CPU#1
|
||||
@ -351,15 +351,47 @@ ADDRESS_MAP_END
|
||||
Wild Pilot
|
||||
**************************************************************************/
|
||||
|
||||
// ad stick read select
|
||||
READ16_MEMBER(cischeat_state::wildplt_xy_r)
|
||||
{
|
||||
switch(m_ip_select)
|
||||
{
|
||||
case 1: return ioport("P2Y")->read() | (ioport("P2X")->read()<<8);
|
||||
case 2: return ioport("P1Y")->read() | (ioport("P1X")->read()<<8);
|
||||
}
|
||||
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
// buttons & sensors are
|
||||
READ16_MEMBER(cischeat_state::wildplt_mux_r)
|
||||
{
|
||||
UINT16 split_in = 0xffff;
|
||||
switch(m_wildplt_output & 0xc)
|
||||
{
|
||||
// case 0: return ioport("IN1")->read();
|
||||
case 4: split_in = ioport("IN1_1")->read(); break;
|
||||
case 8: split_in = ioport("IN1_2")->read(); break;
|
||||
}
|
||||
|
||||
return split_in & ioport("IN1_COMMON")->read();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(cischeat_state::wildplt_mux_w)
|
||||
{
|
||||
m_wildplt_output = data & 0xc;
|
||||
}
|
||||
|
||||
|
||||
// Same as f1gpstar, but vregs are slightly different:
|
||||
static ADDRESS_MAP_START( wildplt_map, AS_PROGRAM, 16, cischeat_state )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
|
||||
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") AM_WRITE(f1gpstr2_io_w) // DSW 1 & 2
|
||||
AM_RANGE(0x080004, 0x080005) AM_READ_PORT("IN1") AM_WRITE(f1gpstar_motor_w) // Buttons
|
||||
AM_RANGE(0x080004, 0x080005) AM_READ(wildplt_mux_r) AM_WRITE(wildplt_mux_w) // Buttons
|
||||
AM_RANGE(0x080008, 0x080009) AM_DEVREAD("soundlatch2", generic_latch_16_device, read) // From sound cpu
|
||||
AM_RANGE(0x080008, 0x080009) AM_DEVWRITE("soundlatch", generic_latch_16_device, write) // To sound cpu
|
||||
AM_RANGE(0x08000c, 0x08000d) AM_WRITENOP // 1000, 3000
|
||||
AM_RANGE(0x080010, 0x080011) AM_READ(wildplt_xy_r) AM_WRITENOP // X, Y
|
||||
AM_RANGE(0x080010, 0x080011) AM_READ(wildplt_xy_r) AM_WRITE(ip_select_w) // X, Y
|
||||
AM_RANGE(0x080014, 0x080015) AM_WRITENOP
|
||||
AM_RANGE(0x080018, 0x080019) AM_READWRITE(f1gpstr2_ioready_r, f1gpstar_soundint_w)
|
||||
|
||||
@ -373,7 +405,7 @@ static ADDRESS_MAP_START( wildplt_map, AS_PROGRAM, 16, cischeat_state )
|
||||
AM_RANGE(0x082308, 0x082309) AM_READNOP AM_WRITE(f1gpstar_comms_w)
|
||||
AM_RANGE(0x082400, 0x082401) AM_WRITE(active_layers_w)
|
||||
|
||||
AM_RANGE(0x088000, 0x088fff) AM_RAM // Linking with other units
|
||||
// AM_RANGE(0x088000, 0x088fff) AM_RAM // Linking with other units
|
||||
|
||||
AM_RANGE(0x090000, 0x097fff) AM_RAM AM_SHARE("share2") // Sharedram with sub CPU#2
|
||||
AM_RANGE(0x098000, 0x09ffff) AM_RAM AM_SHARE("share1") // Sharedram with sub CPU#1
|
||||
@ -417,7 +449,8 @@ static ADDRESS_MAP_START( f1gpstr2_map, AS_PROGRAM, 16, cischeat_state )
|
||||
AM_RANGE(0x082308, 0x082309) AM_READNOP AM_WRITE(f1gpstar_comms_w)
|
||||
AM_RANGE(0x082400, 0x082401) AM_WRITE(active_layers_w)
|
||||
|
||||
AM_RANGE(0x088000, 0x088fff) AM_RAM // Linking with other units
|
||||
// 0x100 RAM banks instead of 0x200
|
||||
AM_RANGE(0x088000, 0x0887ff) AM_RAM // Linking with other units
|
||||
|
||||
AM_RANGE(0x090000, 0x097fff) AM_RAM AM_SHARE("share2") // Sharedram with sub CPU#2
|
||||
AM_RANGE(0x098000, 0x09ffff) AM_RAM AM_SHARE("share1") // Sharedram with sub CPU#1
|
||||
@ -1381,6 +1414,20 @@ static INPUT_PORTS_START( f1gpstar )
|
||||
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_REVERSE
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( f1gpstr2 )
|
||||
PORT_INCLUDE( f1gpstar )
|
||||
|
||||
PORT_MODIFY("IN4")
|
||||
PORT_DIPNAME( 0x0e, 0x00, "Unit ID" ) PORT_DIPLOCATION("SW03:2,3,4") // -> !f901c
|
||||
PORT_DIPSETTING( 0x00, "1 (McLaren)" )
|
||||
PORT_DIPSETTING( 0x02, "2 (Williams)" )
|
||||
PORT_DIPSETTING( 0x04, "3 (Benetton)" )
|
||||
PORT_DIPSETTING( 0x06, "4 (Ferrari)" )
|
||||
PORT_DIPSETTING( 0x08, "5 (Tyrrell)" )
|
||||
PORT_DIPSETTING( 0x0a, "6 (Lotus)" )
|
||||
PORT_DIPSETTING( 0x0c, "7 (Jordan)" )
|
||||
PORT_DIPSETTING( 0x0e, "8 (Ligier)" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
/**************************************************************************
|
||||
Wild Pilot
|
||||
@ -1436,29 +1483,44 @@ static INPUT_PORTS_START( wildplt )
|
||||
PORT_DIPSETTING( 0xc000, DEF_STR( Japan ) )
|
||||
PORT_DIPSETTING( 0x0000, "France?" )
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_START("IN1_COMMON")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) //service 1 too
|
||||
PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW ) //start 2 too
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0xfffe, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("IN1_1")
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
|
||||
PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW )
|
||||
PORT_BIT( 0xfff3, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("IN1_2")
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("P1 Bomb")
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Shot")
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Missile")
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Shot")
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Missile")
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Bomb")
|
||||
PORT_BIT( 0xfe01, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
#if 0
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Up Limit SW.
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Dow Limit SW.
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Center SW.
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Senser SW. #1
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Senser SW. #2
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Emergency Button") //E Stop for motors? ( Senser SW. #3 )
|
||||
#endif
|
||||
PORT_START("P1Y")
|
||||
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1)
|
||||
|
||||
PORT_START("IN2")
|
||||
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_REVERSE
|
||||
PORT_START("P1X")
|
||||
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_PLAYER(1)
|
||||
|
||||
PORT_START("IN3")
|
||||
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_SENSITIVITY(35) PORT_KEYDELTA(15)
|
||||
PORT_START("P2Y")
|
||||
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(2)
|
||||
|
||||
PORT_START("P2X")
|
||||
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_PLAYER(2)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -1819,19 +1881,22 @@ GFXDECODE_END
|
||||
Big Run, Cisco Heat, F1 GrandPrix Star
|
||||
**************************************************************************/
|
||||
|
||||
/* TODO: this is hackish */
|
||||
/*
|
||||
irq 1 is comms related, presumably the bridge chip is capable of sending the irq signal at given times. Wild Pilot of course doesn't need it.
|
||||
irq 2/4 controls gameplay speed, currently unknown about the timing
|
||||
*/
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(cischeat_state::bigrun_scanline)
|
||||
{
|
||||
int scanline = param;
|
||||
|
||||
if(scanline == 240) // vblank-out irq
|
||||
m_cpu1->set_input_line(4, HOLD_LINE);
|
||||
m_cpu1->set_input_line(m_screen->frame_number() & 1 ? 4 : 1, HOLD_LINE);
|
||||
|
||||
if(scanline == 154)
|
||||
if(scanline == 0)
|
||||
m_cpu1->set_input_line(2, HOLD_LINE);
|
||||
|
||||
if(scanline == 69)
|
||||
m_cpu1->set_input_line(1, HOLD_LINE);
|
||||
// if(scanline == 69)
|
||||
// m_cpu1->set_input_line(1, HOLD_LINE);
|
||||
}
|
||||
|
||||
|
||||
@ -1866,7 +1931,7 @@ static MACHINE_CONFIG_START( bigrun, cischeat_state )
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
|
||||
MCFG_SCREEN_REFRESH_RATE(30) //TODO: wrong!
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(256, 256)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
|
||||
@ -1874,7 +1939,7 @@ static MACHINE_CONFIG_START( bigrun, cischeat_state )
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", bigrun)
|
||||
MCFG_PALETTE_ADD("palette", 0x4000/2)
|
||||
MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x4000/2)
|
||||
MCFG_PALETTE_ENABLE_SHADOWS()
|
||||
MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
|
||||
|
||||
@ -2040,7 +2105,7 @@ static MACHINE_CONFIG_START( scudhamm, cischeat_state )
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", scudhamm)
|
||||
MCFG_PALETTE_ADD("palette", 0x8000/2)
|
||||
MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x8000/2)
|
||||
MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
|
||||
MCFG_PALETTE_ENABLE_SHADOWS()
|
||||
|
||||
@ -2129,7 +2194,7 @@ static MACHINE_CONFIG_START( captflag, cischeat_state )
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", scudhamm)
|
||||
MCFG_PALETTE_ADD("palette", 0x8000/2)
|
||||
MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x8000/2)
|
||||
MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
|
||||
MCFG_PALETTE_ENABLE_SHADOWS()
|
||||
|
||||
@ -3451,12 +3516,12 @@ DRIVER_INIT_MEMBER(cischeat_state, captflag)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
GAMEL( 1989, bigrun, 0, bigrun, bigrun, cischeat_state, bigrun, ROT0, "Jaleco", "Big Run (11th Rallye version)", MACHINE_IMPERFECT_GRAPHICS, layout_cischeat ) // there's a 13th Rallye version (1991) (only on the SNES?)
|
||||
GAMEL( 1989, bigrun, 0, bigrun, bigrun, cischeat_state, bigrun, ROT0, "Jaleco", "Big Run (11th Rallye version)", MACHINE_IMPERFECT_GRAPHICS, layout_cischeat ) // there's a 13th Rallye version (1991) (only on the SNES? Could just be updated title, 1989 -> 11th Paris-Dakar ...)
|
||||
GAMEL( 1990, cischeat, 0, cischeat, cischeat, cischeat_state, cischeat, ROT0, "Jaleco", "Cisco Heat", MACHINE_IMPERFECT_GRAPHICS, layout_cischeat )
|
||||
GAMEL( 1991, f1gpstar, 0, f1gpstar, f1gpstar, cischeat_state, f1gpstar, ROT0, "Jaleco", "Grand Prix Star", MACHINE_IMPERFECT_GRAPHICS, layout_f1gpstar )
|
||||
GAME ( 1992, armchmp2, 0, armchmp2, armchmp2, driver_device, 0, ROT270, "Jaleco", "Arm Champs II v2.6", MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAME ( 1992, armchmp2o,armchmp2, armchmp2, armchmp2, driver_device, 0, ROT270, "Jaleco", "Arm Champs II v1.7", MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAME ( 1992, wildplt, 0, wildplt, wildplt, cischeat_state, f1gpstar, ROT0, "Jaleco", "Wild Pilot", MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAMEL( 1993, f1gpstr2, 0, f1gpstr2, f1gpstar, cischeat_state, f1gpstar, ROT0, "Jaleco", "F-1 Grand Prix Star II", MACHINE_IMPERFECT_GRAPHICS, layout_f1gpstar )
|
||||
GAME ( 1992, wildplt, 0, wildplt, wildplt, cischeat_state, f1gpstar, ROT0, "Jaleco", "Wild Pilot", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // busted timings
|
||||
GAMEL( 1993, f1gpstr2, 0, f1gpstr2, f1gpstr2, cischeat_state, f1gpstar, ROT0, "Jaleco", "F-1 Grand Prix Star II", MACHINE_IMPERFECT_GRAPHICS, layout_f1gpstar )
|
||||
GAME ( 1993, captflag, 0, captflag, captflag, cischeat_state, captflag, ROT270, "Jaleco", "Captain Flag (Japan)", MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAME ( 1994, scudhamm, 0, scudhamm, scudhamm, driver_device, 0, ROT270, "Jaleco", "Scud Hammer", MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
@ -158,6 +158,12 @@ WRITE16_MEMBER( cninja_state::cninja_protection_region_0_104_w )
|
||||
m_deco104->write_data( space, deco146_addr, data, mem_mask, cs );
|
||||
}
|
||||
|
||||
READ16_MEMBER(cninja_state::cninjabl2_sprite_dma_r)
|
||||
{
|
||||
m_spriteram->copy();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( cninja_map, AS_PROGRAM, 16, cninja_state )
|
||||
AM_RANGE(0x000000, 0x0bffff) AM_ROM
|
||||
@ -1009,6 +1015,11 @@ static MACHINE_CONFIG_START( stoneage, cninja_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( cninjabl2, stoneage )
|
||||
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninjabl2)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( cninjabl, cninja_state )
|
||||
|
||||
@ -2291,6 +2302,12 @@ DRIVER_INIT_MEMBER(cninja_state,stoneage)
|
||||
m_maincpu->space(AS_PROGRAM).install_write_handler(0x1bc0a8, 0x1bc0a9, write16_delegate(FUNC(cninja_state::stoneage_sound_w),this));
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(cninja_state,cninjabl2)
|
||||
{
|
||||
m_maincpu->space(AS_PROGRAM).install_ram(0x180000, 0x18ffff);
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b4000, 0x1b4001, read16_delegate(FUNC(cninja_state::cninjabl2_sprite_dma_r),this));
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(cninja_state,mutantf)
|
||||
{
|
||||
const UINT8 *src = memregion("gfx2")->base();
|
||||
@ -2318,7 +2335,7 @@ GAME( 1991, cninjau, cninja, cninja, cninjau, cninja_state, cninja, ROT0
|
||||
GAME( 1991, joemac, cninja, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Tatakae Genshizin Joe & Mac (Japan ver 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, stoneage, cninja, stoneage, cninja, cninja_state, stoneage, ROT0, "bootleg", "Stoneage (bootleg of Caveman Ninja)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, cninjabl, cninja, cninjabl, cninja, driver_device, 0, ROT0, "bootleg", "Caveman Ninja (bootleg)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, cninjabl2,cninja, cninjabl, cninja, driver_device, 0, ROT0, "bootleg", "Caveman Ninja (bootleg, alt)", MACHINE_NOT_WORKING )
|
||||
GAME( 1991, cninjabl2,cninja, cninjabl2,cninja, cninja_state, cninjabl2,ROT0, "bootleg", "Tatakae Genshizin Joe & Mac (Japan, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // tile layers need adjusting, sound is wrong
|
||||
|
||||
GAME( 1991, robocop2, 0, robocop2, robocop2, driver_device, 0, ROT0, "Data East Corporation", "Robocop 2 (Euro/Asia v0.10)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, robocop2u,robocop2,robocop2, robocop2, driver_device, 0, ROT0, "Data East Corporation", "Robocop 2 (US v0.10)", MACHINE_SUPPORTS_SAVE )
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -286,89 +286,99 @@ ADDRESS_MAP_END
|
||||
Input Ports
|
||||
******************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( eag )
|
||||
static INPUT_PORTS_START( cb_magnets )
|
||||
PORT_START("IN.0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square h1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square g1")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square f1")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square e1")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square d1")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square c1")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square b1")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square a1")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_NAME("CL")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square h2")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square g2")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square f2")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square e2")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square d2")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square c2")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square b2")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square a2")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("DM")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square h3")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square g3")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square f3")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square e3")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square d3")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square c3")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square b3")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square a3")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_CODE(KEYCODE_N) PORT_NAME("New Game")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.3")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square h4")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square g4")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square f4")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square e4")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square d4")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square c4")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square b4")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square a4")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.4")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square h5")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square g5")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square f5")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square e5")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square d5")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square c5")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square b5")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square a5")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.5")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square h6")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square g6")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square f6")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square e6")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square d6")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square c6")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square b6")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square a6")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.6")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square h7")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square g7")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square f7")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square e7")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square d7")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square c7")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square b7")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square a7")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.7")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square h8")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square g8")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square f8")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square e8")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square d8")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square c8")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square b8")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Square a8")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( eag )
|
||||
PORT_INCLUDE( cb_magnets )
|
||||
|
||||
PORT_MODIFY("IN.0")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_NAME("CL")
|
||||
|
||||
PORT_MODIFY("IN.1")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("DM")
|
||||
|
||||
PORT_MODIFY("IN.2")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_CODE(KEYCODE_N) PORT_NAME("New Game")
|
||||
|
||||
PORT_START("IN.8")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("PB / King")
|
||||
|
@ -551,7 +551,7 @@ public:
|
||||
DECLARE_READ8_MEMBER(vsc_pio_portb_r);
|
||||
DECLARE_WRITE8_MEMBER(vsc_pio_portb_w);
|
||||
|
||||
// VBRC/7014
|
||||
// VBRC
|
||||
void vbrc_prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(vbrc_speech_w);
|
||||
DECLARE_WRITE8_MEMBER(vbrc_mcu_p1_w);
|
||||
@ -882,17 +882,9 @@ READ8_MEMBER(fidelz80_state::bcc_input_r)
|
||||
|
||||
void fidelz80_state::vsc_prepare_display()
|
||||
{
|
||||
// 4 7seg leds + H
|
||||
for (int i = 0; i < 4; i++)
|
||||
m_display_state[i] = (m_led_select >> i & 1) ? m_7seg_data : 0;
|
||||
|
||||
// 8*8 chessboard leds
|
||||
for (int i = 0; i < 8; i++)
|
||||
m_display_state[i+4] = (m_led_select >> i & 1) ? m_led_data : 0;
|
||||
|
||||
set_display_size(8, 12);
|
||||
// 4 7seg leds+H, 8*8 chessboard leds
|
||||
set_display_segmask(0xf, 0x7f);
|
||||
display_update();
|
||||
display_matrix(16, 8, m_led_data << 8 | m_7seg_data, m_led_select);
|
||||
}
|
||||
|
||||
|
||||
@ -963,7 +955,7 @@ WRITE8_MEMBER(fidelz80_state::vsc_pio_portb_w)
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
VBRC/7014
|
||||
VBRC
|
||||
******************************************************************************/
|
||||
|
||||
// misc handlers
|
||||
@ -1092,7 +1084,7 @@ static ADDRESS_MAP_START( vsc_io, AS_IO, 8, fidelz80_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
// VBRC/7014
|
||||
// VBRC
|
||||
|
||||
WRITE8_MEMBER(fidelz80_state::vbrc_speech_w)
|
||||
{
|
||||
@ -1127,6 +1119,8 @@ ADDRESS_MAP_END
|
||||
Input Ports
|
||||
******************************************************************************/
|
||||
|
||||
// static or boardless games
|
||||
|
||||
static INPUT_PORTS_START( vcc_base )
|
||||
PORT_START("IN.0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
@ -1241,125 +1235,6 @@ static INPUT_PORTS_START( bcc )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( vsc )
|
||||
PORT_START("IN.0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a2")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a3")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a4")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a5")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a6")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a7")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a8")
|
||||
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b2")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b3")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b4")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b5")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b6")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b7")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b8")
|
||||
|
||||
PORT_START("IN.2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c2")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c3")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c4")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c5")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c6")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c7")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c8")
|
||||
|
||||
PORT_START("IN.3")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d2")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d3")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d4")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d5")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d6")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d7")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d8")
|
||||
|
||||
PORT_START("IN.4")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e2")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e3")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e4")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e5")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e6")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e7")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e8")
|
||||
|
||||
PORT_START("IN.5")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f2")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f3")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f4")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f5")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f6")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f7")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f8")
|
||||
|
||||
PORT_START("IN.6")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g2")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g3")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g4")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g5")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g6")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g7")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g8")
|
||||
|
||||
PORT_START("IN.7")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h2")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h3")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h4")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h5")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h6")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h7")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h8")
|
||||
|
||||
PORT_START("IN.8") // buttons on the right
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Pawn")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Rook")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Knight")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Bishop")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Queen")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("King")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_NAME("CL")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("RE")
|
||||
|
||||
PORT_START("IN.9") // buttons beside the display
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("TM")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("RV")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_SPACE) PORT_NAME("Speaker")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("LV")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("DM")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("ST")
|
||||
PORT_BIT(0xc0, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("IN.10") // hardwired (2 diodes)
|
||||
PORT_CONFNAME( 0x01, 0x00, "Language" )
|
||||
PORT_CONFSETTING( 0x00, "English" )
|
||||
PORT_CONFSETTING( 0x01, "Other" )
|
||||
PORT_CONFNAME( 0x02, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_CONFSETTING( 0x02, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( vscg )
|
||||
PORT_INCLUDE( vsc )
|
||||
|
||||
PORT_MODIFY("IN.10")
|
||||
PORT_CONFNAME( 0x01, 0x01, "Language" )
|
||||
PORT_CONFSETTING( 0x00, "English" )
|
||||
PORT_CONFSETTING( 0x01, "Other" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( vbrc )
|
||||
PORT_START("IN.0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("A")
|
||||
@ -1414,6 +1289,131 @@ static INPUT_PORTS_START( vbrc )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
// sensory board games
|
||||
|
||||
static INPUT_PORTS_START( cb_buttons )
|
||||
PORT_START("IN.0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.3")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.4")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.5")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.6")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.7")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( vsc )
|
||||
PORT_INCLUDE( cb_buttons )
|
||||
|
||||
PORT_START("IN.8") // buttons on the right
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Pawn")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Rook")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Knight")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Bishop")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Queen")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("King")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_NAME("CL")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("RE")
|
||||
|
||||
PORT_START("IN.9") // buttons beside the display
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("TM")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("RV")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_SPACE) PORT_NAME("Speaker")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("LV")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("DM")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("ST")
|
||||
PORT_BIT(0xc0, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("IN.10") // hardwired (2 diodes)
|
||||
PORT_CONFNAME( 0x01, 0x00, "Language" )
|
||||
PORT_CONFSETTING( 0x00, "English" )
|
||||
PORT_CONFSETTING( 0x01, "Other" )
|
||||
PORT_CONFNAME( 0x02, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_CONFSETTING( 0x02, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( vscg )
|
||||
PORT_INCLUDE( vsc )
|
||||
|
||||
PORT_MODIFY("IN.10")
|
||||
PORT_CONFNAME( 0x01, 0x01, "Language" )
|
||||
PORT_CONFSETTING( 0x00, "English" )
|
||||
PORT_CONFSETTING( 0x01, "Other" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Machine Drivers
|
||||
|
@ -1465,6 +1465,19 @@ ROM_START( gepoker2 ) /* v50.02 with control dated 9-30-84 */
|
||||
ROM_LOAD( "horserace_icb_1-1-87", 0x12000, 0x2000, CRC(6d5092e3) SHA1(ef99d1b858aef3c438c61c2b17e371dc6aca6623) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( gepoker3 ) /* v50.02 with control dated 9-30-84 */
|
||||
ROM_REGION( 0x1b000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "cont_9-30_m105_pts.2c", 0x00000, 0x2000, CRC(08b996f2) SHA1(5f5efb5015ec9571cc94734c18debfadaa28f585) )
|
||||
ROM_LOAD( "hrom_6-25_m105_pts.1c", 0x0e000, 0x2000, CRC(6ddc1750) SHA1(ee19206b7f4a98e3e7647414127f4e09b3e9134f) )
|
||||
/* Banked roms */
|
||||
ROM_LOAD( "pokr_chig_2-12_m105.1", 0x10000, 0x2000, CRC(a1cbf67b) SHA1(a6cd081bbb19b2dd1a84b7750eac8a5258a663eb) )//not original sticker, twice the size of a regular rom, but still don't match
|
||||
ROM_CONTINUE( 0x10000, 0x2000) /* Discarding 1nd half, 0xff filled*/
|
||||
ROM_LOAD( "bljk_9-30_m105_pts.2", 0x12000, 0x2000, CRC(82804184) SHA1(2e2e6a80c99c8eb226dc54c1d32d0bf24de300a4) )
|
||||
ROM_LOAD( "bone_8-16_m105_pts.3", 0x14000, 0x2000, CRC(52d66cb6) SHA1(57db34906fcafd37f3a361df209dafe080aeac16) )
|
||||
ROM_LOAD( "slot_9-30_m105_pts.4", 0x16000, 0x2000, CRC(713c3963) SHA1(a9297c04fc44522ca6891516a2c744712132896a) )
|
||||
ROM_LOAD( "bingo_8-16_m105.5", 0x18000, 0x2000, CRC(de87ed0a) SHA1(4a26d93368c1a39dd38aabe450c34203101f0ef7) ) //not original sticker selftest report 10-7-86 date!!
|
||||
ROM_END
|
||||
|
||||
ROM_START( amuse ) /* v50.08 with most roms for IAM dated 8-16-84 */
|
||||
ROM_REGION( 0x24000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "control_iam_8-16", 0x00000, 0x4000, CRC(345434b9) SHA1(ec880f6f5e90aa971937e0270701e323f6a83671) ) /* all roms were 27128, twice the size of other sets */
|
||||
@ -1889,6 +1902,7 @@ GAME( 1983, amuse1a, amuse, amuse1, gepoker, driver_device, 0, ROT0
|
||||
GAME( 1984, gepoker, 0, gepoker, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gepoker1, gepoker, gepoker, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gepoker2, gepoker, gepoker, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gepoker3, gepoker, gepoker, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
GAME( 1984, gtsers1, 0, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers2, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
|
@ -6,7 +6,6 @@
|
||||
|
||||
TODO:
|
||||
sound emulation
|
||||
check sprite priorities
|
||||
accurate sprite collision
|
||||
|
||||
how to play:
|
||||
@ -16,6 +15,10 @@
|
||||
test mode:
|
||||
insert 12 or more coins then press 2 player start
|
||||
|
||||
note:
|
||||
dumped PCB is early game version, have several bugs, possible test/prototype.
|
||||
later version was seen in St.Petersburg arcade museum.
|
||||
|
||||
**************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
@ -158,26 +161,27 @@ public:
|
||||
tilemap_t *m_tilemap;
|
||||
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
UINT8 m_spr0_ctrl;
|
||||
UINT8 m_spr1_ctrl;
|
||||
UINT8 coin_count;
|
||||
UINT8 m_spr_ctrl[2];
|
||||
UINT8 m_spr_collision[2];
|
||||
UINT8 m_spr_xy[8];
|
||||
UINT8 m_tileram[16];
|
||||
};
|
||||
|
||||
void istrebiteli_state::machine_start()
|
||||
{
|
||||
save_item(NAME(m_spr0_ctrl));
|
||||
save_item(NAME(m_spr1_ctrl));
|
||||
save_item(NAME(coin_count));
|
||||
save_item(NAME(m_spr_ctrl));
|
||||
save_item(NAME(m_spr_collision));
|
||||
save_item(NAME(m_spr_xy));
|
||||
save_item(NAME(m_tileram));
|
||||
}
|
||||
|
||||
void istrebiteli_state::machine_reset()
|
||||
{
|
||||
m_spr0_ctrl = m_spr1_ctrl = 0;
|
||||
coin_count = 0;
|
||||
memset(m_spr_ctrl, 0, sizeof(m_spr_ctrl));
|
||||
memset(m_spr_collision, 0, sizeof(m_spr_collision));
|
||||
memset(m_spr_xy, 0, sizeof(m_spr_xy));
|
||||
memset(m_tileram, 0, sizeof(m_tileram));
|
||||
}
|
||||
@ -213,7 +217,7 @@ void istrebiteli_state::video_start()
|
||||
memcpy(&gfx[offs], &temp[0], 64);
|
||||
}
|
||||
|
||||
m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(istrebiteli_state::get_tile_info), this), TILEMAP_SCAN_ROWS_FLIP_X,
|
||||
m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(istrebiteli_state::get_tile_info), this), TILEMAP_SCAN_ROWS,
|
||||
8, 16, 16, 1);
|
||||
m_tilemap->set_scrolldx(96, 96);
|
||||
}
|
||||
@ -227,21 +231,22 @@ UINT32 istrebiteli_state::screen_update(screen_device &screen, bitmap_ind16 &bit
|
||||
rect.set_size(16*8, 16);
|
||||
m_tilemap->draw(screen, bitmap, rect, 0, 0);
|
||||
|
||||
m_gfxdecode->gfx(3)->transpen(bitmap, cliprect, (m_spr_ctrl[0] & 0x40) ? 5 : 7, 0, 0, 0, m_spr_xy[4], m_spr_xy[5], 1);
|
||||
m_gfxdecode->gfx(3)->transpen(bitmap, cliprect, (m_spr_ctrl[1] & 0x40) ? 4 : 6, 0, 0, 0, m_spr_xy[6], m_spr_xy[7], 1);
|
||||
|
||||
int spritecode;
|
||||
|
||||
spritecode = (m_spr0_ctrl & 0x1f) + ((m_spr0_ctrl & 0x80) >> 2);
|
||||
m_gfxdecode->gfx(1)->transpen(bitmap, cliprect, spritecode, 0, 0, 0, m_spr_xy[7], m_spr_xy[6], 1);
|
||||
spritecode = (m_spr1_ctrl & 0x1f) + ((m_spr1_ctrl & 0x80) >> 2);
|
||||
m_gfxdecode->gfx(2)->transpen(bitmap, cliprect, spritecode, 0, 0, 0, m_spr_xy[5], m_spr_xy[4], 1);
|
||||
|
||||
m_gfxdecode->gfx(3)->transpen(bitmap, cliprect, (m_spr0_ctrl & 0x40) ? 5:7, 0, 0, 0, m_spr_xy[3], m_spr_xy[2], 1);
|
||||
m_gfxdecode->gfx(3)->transpen(bitmap, cliprect, (m_spr1_ctrl & 0x40) ? 4:6, 0, 0, 0, m_spr_xy[1], m_spr_xy[0], 1);
|
||||
spritecode = (m_spr_ctrl[0] & 0x1f) + ((m_spr_ctrl[0] & 0x80) >> 2);
|
||||
m_gfxdecode->gfx(1)->transpen(bitmap, cliprect, spritecode, 0, 0, 0, m_spr_xy[0], m_spr_xy[1], 1);
|
||||
spritecode = (m_spr_ctrl[1] & 0x1f) + ((m_spr_ctrl[1] & 0x80) >> 2);
|
||||
m_gfxdecode->gfx(2)->transpen(bitmap, cliprect, spritecode, 0, 0, 0, m_spr_xy[2], m_spr_xy[3], 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(istrebiteli_state::tileram_w)
|
||||
{
|
||||
offset ^= 15;
|
||||
m_tileram[offset] = data;
|
||||
m_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
@ -273,17 +278,21 @@ WRITE8_MEMBER(istrebiteli_state::sound_w)
|
||||
|
||||
WRITE8_MEMBER(istrebiteli_state::spr0_ctrl_w)
|
||||
{
|
||||
m_spr0_ctrl = data;
|
||||
m_spr_ctrl[0] = data;
|
||||
if (data & 0x80)
|
||||
m_spr_collision[0] = 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(istrebiteli_state::spr1_ctrl_w)
|
||||
{
|
||||
m_spr1_ctrl = data;
|
||||
m_spr_ctrl[1] = data;
|
||||
if (data & 0x80)
|
||||
m_spr_collision[1] = 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(istrebiteli_state::spr_xy_w)
|
||||
{
|
||||
m_spr_xy[offset] = data;
|
||||
m_spr_xy[offset ^ 7] = data;
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 8, istrebiteli_state)
|
||||
@ -304,20 +313,19 @@ CUSTOM_INPUT_MEMBER(istrebiteli_state::collision_r)
|
||||
{
|
||||
// piece of HACK
|
||||
// real hardware does per-pixel sprite collision detection
|
||||
int id = *(int*)¶m * 2;
|
||||
int id = *(int*)¶m;
|
||||
|
||||
int sx = m_spr_xy[5 + id];
|
||||
int sy = m_spr_xy[4 + id];
|
||||
int px = m_spr_xy[3 - id] + 3;
|
||||
int py = m_spr_xy[2 - id] + 3;
|
||||
if ((m_spr_ctrl[id] & 0x80) == 0)
|
||||
{
|
||||
int sx = m_spr_xy[0 + id * 2];
|
||||
int sy = m_spr_xy[1 + id * 2];
|
||||
int px = m_spr_xy[6 - id * 2] + 3;
|
||||
int py = m_spr_xy[7 - id * 2] + 3;
|
||||
|
||||
if (sx < 56)
|
||||
return 0;
|
||||
|
||||
if (px >= sx && px < (sx + 8) && py >= sy && py < (sy + 8))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
if (sx > 56 && px >= sx && px < (sx + 8) && py >= sy && py < (sy + 8))
|
||||
m_spr_collision[id] |= 1;
|
||||
}
|
||||
return m_spr_collision[id];
|
||||
}
|
||||
|
||||
CUSTOM_INPUT_MEMBER(istrebiteli_state::coin_r)
|
||||
@ -338,7 +346,7 @@ static INPUT_PORTS_START( istreb )
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(1)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(1)
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1)
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, istrebiteli_state, collision_r, 0)
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, istrebiteli_state, collision_r, 1)
|
||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
|
||||
@ -348,7 +356,7 @@ static INPUT_PORTS_START( istreb )
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2)
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2)
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, istrebiteli_state, collision_r, 1)
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, istrebiteli_state, collision_r, 0)
|
||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
|
||||
|
502
src/mame/drivers/mjsenpu.cpp
Normal file
502
src/mame/drivers/mjsenpu.cpp
Normal file
@ -0,0 +1,502 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood
|
||||
/********************************************************************
|
||||
|
||||
PCB is marked 'Ver 1.8 B/D-' on 2 of the edges
|
||||
|
||||
Custom chip marked
|
||||
ORIENTAL SOFT
|
||||
SPR800F1
|
||||
0011E
|
||||
|
||||
inputs need finishing off
|
||||
|
||||
-- Test Mode Note --
|
||||
|
||||
The test mode for this game is very buggy, this is not a MAME bug
|
||||
the same behavior has been observed on the original PCB.
|
||||
|
||||
One example of this is the dipswitch viewer, which should show 3
|
||||
rows of 8 1/0 values, one for each switch. ie
|
||||
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
|
||||
However..
|
||||
|
||||
Instead of properly representing each of the dips, the 1st switch in
|
||||
each bank ends up turning on/off the entire row display (for rows 2/3
|
||||
it shifts row 1 by one pixel)
|
||||
|
||||
This then means the 2nd switch changes the digit in the 1st position
|
||||
so
|
||||
|
||||
10000000
|
||||
|
||||
the 8th switch changes the 7th digit so
|
||||
|
||||
10000010
|
||||
|
||||
and there's no way at all to change the last digit.
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/e132xs/e132xs.h"
|
||||
#include "sound/okim6295.h"
|
||||
#include "machine/nvram.h"
|
||||
|
||||
class mjsenpu_state : public driver_device
|
||||
{
|
||||
public:
|
||||
mjsenpu_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_oki(*this, "oki"),
|
||||
m_mainram(*this, "mainram"),
|
||||
// m_vram(*this, "vram"),
|
||||
m_palette(*this, "palette")
|
||||
{
|
||||
}
|
||||
|
||||
/* devices */
|
||||
required_device<e132xt_device> m_maincpu;
|
||||
required_device<okim6295_device> m_oki;
|
||||
|
||||
required_shared_ptr<UINT32> m_mainram;
|
||||
// required_shared_ptr<UINT32> m_vram;
|
||||
UINT8 m_pal[0x200];
|
||||
UINT32 m_vram0[0x20000 / 4];
|
||||
UINT32 m_vram1[0x20000 / 4];
|
||||
UINT8 m_control;
|
||||
UINT8 m_mux;
|
||||
|
||||
DECLARE_READ8_MEMBER(palette_low_r);
|
||||
DECLARE_READ8_MEMBER(palette_high_r);
|
||||
DECLARE_WRITE8_MEMBER(palette_low_w);
|
||||
DECLARE_WRITE8_MEMBER(palette_high_w);
|
||||
void set_palette(int offset);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(control_w);
|
||||
DECLARE_WRITE8_MEMBER(mux_w);
|
||||
|
||||
DECLARE_READ32_MEMBER(muxed_inputs_r);
|
||||
|
||||
DECLARE_READ32_MEMBER(mjsenpu_speedup_r);
|
||||
|
||||
DECLARE_READ32_MEMBER(vram_r);
|
||||
DECLARE_WRITE32_MEMBER(vram_w);
|
||||
|
||||
DECLARE_DRIVER_INIT(mjsenpu);
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
UINT32 screen_update_mjsenpu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
required_device<palette_device> m_palette;
|
||||
};
|
||||
|
||||
|
||||
READ8_MEMBER(mjsenpu_state::palette_low_r)
|
||||
{
|
||||
return m_pal[(offset * 2) + 0];
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER(mjsenpu_state::palette_high_r)
|
||||
{
|
||||
return m_pal[(offset * 2) + 1];
|
||||
}
|
||||
|
||||
void mjsenpu_state::set_palette(int offset)
|
||||
{
|
||||
UINT16 paldata = (m_pal[(offset * 2) + 0] << 8) | (m_pal[(offset * 2) + 1]);
|
||||
m_palette->set_pen_color(offset, pal5bit(paldata >> 0), pal5bit(paldata >> 5), pal6bit(paldata >> 10));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(mjsenpu_state::palette_low_w)
|
||||
{
|
||||
m_pal[(offset * 2)+0] = data;
|
||||
set_palette(offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(mjsenpu_state::palette_high_w)
|
||||
{
|
||||
m_pal[(offset * 2)+1] = data;
|
||||
set_palette(offset);
|
||||
}
|
||||
|
||||
|
||||
READ32_MEMBER(mjsenpu_state::vram_r)
|
||||
{
|
||||
if (m_control & 0x01) return m_vram1[offset];
|
||||
else return m_vram0[offset];
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(mjsenpu_state::vram_w)
|
||||
{
|
||||
if (m_control & 0x01) COMBINE_DATA(&m_vram1[offset]);
|
||||
else COMBINE_DATA(&m_vram0[offset]);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(mjsenpu_state::control_w)
|
||||
{
|
||||
m_control = data;
|
||||
// bit 0x80 is always set?
|
||||
|
||||
// bit 0x40 not used?
|
||||
// bit 0x20 not used?
|
||||
|
||||
// bit 0x10 is the M6295 bank, samples <26 are the same in both banks and so bank switch isn't written for them, not even in sound test.
|
||||
m_oki->set_rom_bank((data&0x10)>>4);
|
||||
|
||||
// bits 0x08 and 0x04 seem to be hopper/ticket related? different ones get used depending on the dips
|
||||
|
||||
// bit 0x02 could be coin counter?
|
||||
// bit 0x01 alternates frequently, using as video buffer, but that's a complete guess
|
||||
|
||||
// if (data &~0x9e)
|
||||
// printf("control_w %02x\n", data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(mjsenpu_state::mux_w)
|
||||
{
|
||||
if ((data != 0x80) &&
|
||||
(data != 0x9e) &&
|
||||
(data != 0x9d) &&
|
||||
(data != 0x9b) &&
|
||||
(data != 0x97) &&
|
||||
(data != 0x8f))
|
||||
printf("mux_w %02x\n", data);
|
||||
|
||||
m_mux = data;
|
||||
}
|
||||
|
||||
READ32_MEMBER(mjsenpu_state::muxed_inputs_r)
|
||||
{
|
||||
switch (m_mux)
|
||||
{
|
||||
case 0x80: // not read
|
||||
break;
|
||||
|
||||
case 0x9e:
|
||||
return ioport("MUX_9E")->read();
|
||||
|
||||
case 0x9d:
|
||||
return ioport("MUX_9D")->read();
|
||||
|
||||
case 0x9b:
|
||||
return ioport("MUX_9B")->read();
|
||||
|
||||
case 0x97:
|
||||
return ioport("MUX_97")->read();
|
||||
|
||||
case 0x8f:
|
||||
return ioport("MUX_8F")->read();
|
||||
}
|
||||
|
||||
logerror("muxed_inputs_r with %02x\n", m_mux);
|
||||
|
||||
return 0x00000000;// 0xffffffff;
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( mjsenpu_32bit_map, AS_PROGRAM, 32, mjsenpu_state )
|
||||
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("mainram")
|
||||
AM_RANGE(0x40000000, 0x401fffff) AM_ROM AM_REGION("user2",0) // main game rom
|
||||
|
||||
AM_RANGE(0x80000000, 0x8001ffff) AM_READWRITE(vram_r,vram_w)
|
||||
|
||||
AM_RANGE(0xffc00000, 0xffc000ff) AM_READWRITE8(palette_low_r, palette_low_w, 0xffffffff)
|
||||
AM_RANGE(0xffd00000, 0xffd000ff) AM_READWRITE8(palette_high_r, palette_high_w, 0xffffffff)
|
||||
|
||||
AM_RANGE(0xffe00000, 0xffe007ff) AM_RAM AM_SHARE("nvram")
|
||||
|
||||
AM_RANGE(0xfff80000, 0xffffffff) AM_ROM AM_REGION("user1",0) // boot rom
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( mjsenpu_io, AS_IO, 32, mjsenpu_state )
|
||||
AM_RANGE(0x4000, 0x4003) AM_READ(muxed_inputs_r)
|
||||
AM_RANGE(0x4010, 0x4013) AM_READ_PORT("IN1")
|
||||
|
||||
AM_RANGE(0x4020, 0x4023) AM_WRITE8( control_w, 0x000000ff)
|
||||
|
||||
AM_RANGE(0x4030, 0x4033) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0x4040, 0x4043) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0x4050, 0x4053) AM_READ_PORT("DSW3")
|
||||
|
||||
AM_RANGE(0x4060, 0x4063) AM_WRITE8( mux_w, 0x000000ff)
|
||||
|
||||
AM_RANGE(0x4070, 0x4073) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x000000ff)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static INPUT_PORTS_START( mjsenpu )
|
||||
|
||||
PORT_START("MUX_8F") // in joystick mode?
|
||||
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_START1 ) // or button1? seems to have multiple uses
|
||||
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
|
||||
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
|
||||
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
|
||||
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
|
||||
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
||||
PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON3 )
|
||||
PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("MUX_9E")
|
||||
PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("MUX_9D")
|
||||
PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("MUX_9B")
|
||||
PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("MUX_97")
|
||||
PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 ) // or maybe service?
|
||||
PORT_DIPNAME( 0x00000002, 0x00000002, "IN1" )
|
||||
PORT_DIPSETTING( 0x00000002, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00000004, 0x00000004, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00000004, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00000008, 0x00000008, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00000008, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_SERVICE_NO_TOGGLE( 0x00000010, IP_ACTIVE_LOW )
|
||||
PORT_DIPNAME( 0x00000020, 0x00000020, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00000020, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) // not on the mahjong panel? used when in Joystick mode
|
||||
PORT_DIPNAME( 0x00000080, 0x00000080, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00000080, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("DSW1")
|
||||
PORT_DIPNAME( 0x00000003, 0x00000003, DEF_STR( Coin_A ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x00000003, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x00000002, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x00000001, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPNAME( 0x0000000c, 0x0000000c, "Value 1" )
|
||||
PORT_DIPSETTING( 0x00000000, "100" )
|
||||
PORT_DIPSETTING( 0x00000004, "50" )
|
||||
PORT_DIPSETTING( 0x00000008, "10" )
|
||||
PORT_DIPSETTING( 0x0000000c, "5" )
|
||||
PORT_DIPNAME( 0x00000030, 0x00000030, "Ratio 2" )
|
||||
PORT_DIPSETTING( 0x00000000, "1:10" )
|
||||
PORT_DIPSETTING( 0x00000010, "1:5" )
|
||||
PORT_DIPSETTING( 0x00000020, "1:2" )
|
||||
PORT_DIPSETTING( 0x00000030, "1:1" )
|
||||
PORT_DIPNAME( 0x000000c0, 0x000000c0, "Percentage 1" )
|
||||
PORT_DIPSETTING( 0x00000000, "96" )
|
||||
PORT_DIPSETTING( 0x00000040, "92" )
|
||||
PORT_DIPSETTING( 0x00000080, "88" )
|
||||
PORT_DIPSETTING( 0x000000c0, "84" )
|
||||
PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x00000003, 0x00000003, "Value 2" )
|
||||
PORT_DIPSETTING( 0x00000000, "5" )
|
||||
PORT_DIPSETTING( 0x00000001, "3" )
|
||||
PORT_DIPSETTING( 0x00000002, "2" )
|
||||
PORT_DIPSETTING( 0x00000003, "1" )
|
||||
PORT_DIPNAME( 0x00000004, 0x00000004, "Value 3" )
|
||||
PORT_DIPSETTING( 0x00000004, "10" )
|
||||
PORT_DIPSETTING( 0x00000000, "20" )
|
||||
PORT_DIPNAME( 0x00000008, 0x00000000, DEF_STR( Demo_Sounds ) )
|
||||
PORT_DIPSETTING( 0x00000008, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00000010, 0x00000010, DEF_STR( Flip_Screen ) )
|
||||
PORT_DIPSETTING( 0x00000010, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x000000e0, 0x000000e0, "Percentage 2" )
|
||||
PORT_DIPSETTING( 0x00000000, "60" )
|
||||
PORT_DIPSETTING( 0x00000020, "65" )
|
||||
PORT_DIPSETTING( 0x00000040, "70" )
|
||||
PORT_DIPSETTING( 0x00000060, "75" )
|
||||
PORT_DIPSETTING( 0x00000080, "80" )
|
||||
PORT_DIPSETTING( 0x000000a0, "85" )
|
||||
PORT_DIPSETTING( 0x000000c0, "90" )
|
||||
PORT_DIPSETTING( 0x000000e0, "95" )
|
||||
PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("DSW3")
|
||||
PORT_DIPNAME( 0x00000001, 0x00000001, "Value 4" )
|
||||
PORT_DIPSETTING( 0x00000001, "100" )
|
||||
PORT_DIPSETTING( 0x00000000, "500" )
|
||||
PORT_DIPNAME( 0x00000002, 0x00000002, "Symbol 2" )
|
||||
PORT_DIPSETTING( 0x00000002, "0" )
|
||||
PORT_DIPSETTING( 0x00000000, "1" )
|
||||
PORT_DIPNAME( 0x00000004, 0x00000004, "Symbol 3" )
|
||||
PORT_DIPSETTING( 0x00000004, "0" )
|
||||
PORT_DIPSETTING( 0x00000000, "1" )
|
||||
PORT_DIPNAME( 0x00000008, 0x00000000, "Control Type" )
|
||||
PORT_DIPSETTING( 0x00000008, "Mahjong Panel" )
|
||||
PORT_DIPSETTING( 0x00000000, "Joystick" )
|
||||
PORT_DIPNAME( 0x00000010, 0x00000010, "Symbol 5" )
|
||||
PORT_DIPSETTING( 0x00000010, "0" )
|
||||
PORT_DIPSETTING( 0x00000000, "1" )
|
||||
PORT_DIPNAME( 0x00000060, 0x00000060, "Percentage 3" )
|
||||
PORT_DIPSETTING( 0x00000000, "92" )
|
||||
PORT_DIPSETTING( 0x00000020, "88" )
|
||||
PORT_DIPSETTING( 0x00000040, "84" )
|
||||
PORT_DIPSETTING( 0x00000060, "80" )
|
||||
PORT_DIPNAME( 0x00000080, 0x00000080, "Symbol 6" )
|
||||
PORT_DIPSETTING( 0x00000080, "0" )
|
||||
PORT_DIPSETTING( 0x00000000, "1" )
|
||||
PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
void mjsenpu_state::video_start()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
UINT32 mjsenpu_state::screen_update_mjsenpu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int x,y,count;
|
||||
int color;
|
||||
|
||||
UINT32* vram;
|
||||
|
||||
if (m_control & 0x01) vram = m_vram0;
|
||||
else vram = m_vram1;
|
||||
|
||||
|
||||
|
||||
count = 0;
|
||||
for (y=0;y < 256;y++)
|
||||
{
|
||||
for (x=0;x < 512/4;x++)
|
||||
{
|
||||
color = vram[count] & 0x000000ff;
|
||||
bitmap.pix16(y, x*4 + 2) = color;
|
||||
|
||||
color = (vram[count] & 0x0000ff00) >> 8;
|
||||
bitmap.pix16(y, x*4 + 3) = color;
|
||||
|
||||
color = (vram[count] & 0x00ff0000) >> 16;
|
||||
bitmap.pix16(y, x*4 + 0) = color;
|
||||
|
||||
color = (vram[count] & 0xff000000) >> 24;
|
||||
bitmap.pix16(y, x*4 + 1) = color;
|
||||
|
||||
count++;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void mjsenpu_state::machine_start()
|
||||
{
|
||||
save_item(NAME(m_pal));
|
||||
save_item(NAME(m_vram0));
|
||||
save_item(NAME(m_vram1));
|
||||
save_item(NAME(m_control));
|
||||
save_item(NAME(m_mux));
|
||||
}
|
||||
|
||||
void mjsenpu_state::machine_reset()
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
following clocks are on the PCB
|
||||
|
||||
22.1184
|
||||
27.000
|
||||
1.0000000
|
||||
|
||||
*/
|
||||
|
||||
static MACHINE_CONFIG_START( mjsenpu, mjsenpu_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", E132XT, 27000000*2) /* ?? Mhz */
|
||||
MCFG_CPU_PROGRAM_MAP(mjsenpu_32bit_map)
|
||||
MCFG_CPU_IO_MAP(mjsenpu_io)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", mjsenpu_state, irq0_line_hold)
|
||||
|
||||
MCFG_NVRAM_ADD_1FILL("nvram")
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(512, 256)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(mjsenpu_state, screen_update_mjsenpu)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 0x100)
|
||||
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) /* 1 Mhz? */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
ROM_START( mjsenpu )
|
||||
ROM_REGION32_BE( 0x80000, "user1", 0 ) /* Hyperstone CPU Code */
|
||||
ROM_LOAD( "U1", 0x000000, 0x080000, CRC(ebfb1079) SHA1(9d676c635d5ee464df5730518399e141ebc515ed) )
|
||||
|
||||
ROM_REGION32_BE( 0x200000, "user2", 0 ) /* Hyperstone CPU Code */
|
||||
ROM_LOAD16_WORD_SWAP( "U13", 0x000000, 0x200000, CRC(a803c5a5) SHA1(61c7386a1bb6224b788de01293697d0e896839a8) )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 )
|
||||
ROM_LOAD( "SU2", 0x000000, 0x080000, CRC(848045d5) SHA1(4d32e1a5bd0937069dd8d50dfd8b63d4a45e40e6) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
READ32_MEMBER(mjsenpu_state::mjsenpu_speedup_r)
|
||||
{
|
||||
int pc = m_maincpu->pc();
|
||||
|
||||
if (pc == 0xadb8)
|
||||
{
|
||||
space.device().execute().spin_until_interrupt();
|
||||
}
|
||||
else
|
||||
{
|
||||
// printf("%08x\n", pc);
|
||||
}
|
||||
|
||||
return m_mainram[0x23468/4];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
DRIVER_INIT_MEMBER(mjsenpu_state,mjsenpu)
|
||||
{
|
||||
/*
|
||||
0000ADAE: LDHU.D L42, L38, $0
|
||||
0000ADB2: LDW.A 0, L39, $23468
|
||||
0000ADB8: ADDI L38, $1
|
||||
0000ADBA: STHU.D L42, L38, $0
|
||||
0000ADBE: CMPI L39, $0
|
||||
0000ADC0: BNE $adae
|
||||
|
||||
(loops for 744256 instructions)
|
||||
*/
|
||||
// not especially effective, might be wrong.
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0x23468, 0x2346b, read32_delegate(FUNC(mjsenpu_state::mjsenpu_speedup_r), this));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
GAME( 2002, mjsenpu, 0, mjsenpu, mjsenpu, mjsenpu_state, mjsenpu, ROT0, "Oriental Soft", "Mahjong Senpu", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
@ -337,7 +337,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static INPUT_PORTS_START( mjsister )
|
||||
PORT_START("DSW1")
|
||||
PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
|
||||
PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW1:8,7,6")
|
||||
PORT_DIPSETTING( 0x03, DEF_STR( 5C_1C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) )
|
||||
@ -346,55 +346,31 @@ static INPUT_PORTS_START( mjsister )
|
||||
PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, "Unknown 1-4" )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "DSW1:5")
|
||||
PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSW1:4,3") // see code at $141C
|
||||
PORT_DIPSETTING( 0x30, "0" )
|
||||
PORT_DIPSETTING( 0x20, "1" )
|
||||
PORT_DIPSETTING( 0x10, "2" )
|
||||
PORT_DIPSETTING( 0x00, "3" )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Test ) ) PORT_DIPLOCATION("DSW1:2")
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, "Unknown 1-5" )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, "Unknown 1-6" )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* service mode */
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSW1:1")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x01, 0x01, "Unknown 2-1" )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, "Unknown 2-2" )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x04, "Unknown 2-3" )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, "Unknown 2-4" )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, "Unknown 2-5" )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, "Unknown 2-6" )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, "Unknown 2-7" )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, "Unknown 2-8" )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_START("DSW2") /* not on PCB */
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* memory reset 1 */
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* analyzer */
|
||||
PORT_SERVICE( 0x08, IP_ACTIVE_HIGH )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* memory reset 2 */
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* pay out */
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE3 ) PORT_OPTIONAL PORT_NAME("Memory Reset 1") // only tested in service mode?
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_GAMBLE_BOOK ) PORT_OPTIONAL PORT_NAME("Analyzer") // only tested in service mode?
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_TOGGLE
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SERVICE4 ) PORT_OPTIONAL PORT_NAME("Memory Reset 2") // only tested in service mode?
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_GAMBLE_PAYOUT ) PORT_OPTIONAL // only tested in service mode?
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* hopper */
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Hopper") PORT_CODE(KEYCODE_8) // only tested in service mode?
|
||||
|
||||
PORT_START("KEY0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_MAHJONG_A )
|
||||
|
@ -562,7 +562,7 @@ CUSTOM_INPUT_MEMBER( nbmj8891_state::nb1413m3_outcoin_flag_r )
|
||||
|
||||
static INPUT_PORTS_START( hanamomo )
|
||||
PORT_START("DSWA")
|
||||
PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSWA:1,2,3")
|
||||
PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSWA:1,2,3")
|
||||
PORT_DIPSETTING( 0x07, "1 (Easy)" )
|
||||
PORT_DIPSETTING( 0x06, "2" )
|
||||
PORT_DIPSETTING( 0x05, "3" )
|
||||
@ -571,24 +571,25 @@ static INPUT_PORTS_START( hanamomo )
|
||||
PORT_DIPSETTING( 0x02, "6" )
|
||||
PORT_DIPSETTING( 0x01, "7" )
|
||||
PORT_DIPSETTING( 0x00, "8 (Hard)" )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSWA:4")
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSWA:4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DSWA:5")
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DSWA:5")
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, "Game Sounds" ) PORT_DIPLOCATION("DSWA:6")
|
||||
PORT_DIPNAME( 0x20, 0x00, "Game Sounds" ) PORT_DIPLOCATION("DSWA:6")
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSWA:7")
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSWA:7")
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, "Character Display Test" ) PORT_DIPLOCATION("DSWA:8")
|
||||
PORT_DIPNAME( 0x80, 0x80, "Character Display Test" ) PORT_DIPLOCATION("DSWA:8")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
/* does not physically exist on PCB */
|
||||
PORT_START("DSWB")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("SYSTEM")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, nullptr) // DRAW BUSY
|
||||
@ -1854,10 +1855,10 @@ static INPUT_PORTS_START( maiko )
|
||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSWB:2")
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, "Oyaken" ) PORT_DIPLOCATION("DSWB:3")
|
||||
PORT_DIPNAME( 0x04, 0x00, "Oyaken" ) PORT_DIPLOCATION("DSWB:3")
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, "Local Rule" ) PORT_DIPLOCATION("DSWB:4")
|
||||
PORT_DIPNAME( 0x08, 0x00, "Local Rule" ) PORT_DIPLOCATION("DSWB:4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, "Graphic ROM Test" ) PORT_DIPLOCATION("DSWB:5")
|
||||
@ -1901,7 +1902,7 @@ static INPUT_PORTS_START( mmaiko )
|
||||
// I don't have manual for this game.
|
||||
|
||||
PORT_START("DSWA")
|
||||
PORT_DIPNAME( 0x07, 0x07, "Game Out" )
|
||||
PORT_DIPNAME( 0x07, 0x07, "Game Out" ) PORT_DIPLOCATION("DSWA:1,2,3")
|
||||
PORT_DIPSETTING( 0x07, "90% (Easy)" )
|
||||
PORT_DIPSETTING( 0x06, "85%" )
|
||||
PORT_DIPSETTING( 0x05, "80%" )
|
||||
@ -1910,42 +1911,42 @@ static INPUT_PORTS_START( mmaiko )
|
||||
PORT_DIPSETTING( 0x02, "65%" )
|
||||
PORT_DIPSETTING( 0x01, "60%" )
|
||||
PORT_DIPSETTING( 0x00, "55% (Hard)" )
|
||||
PORT_DIPNAME( 0x18, 0x18, "Bet Min" )
|
||||
PORT_DIPNAME( 0x18, 0x18, "Bet Min" ) PORT_DIPLOCATION("DSWA:4,5")
|
||||
PORT_DIPSETTING( 0x18, "1" )
|
||||
PORT_DIPSETTING( 0x10, "2" )
|
||||
PORT_DIPSETTING( 0x08, "3" )
|
||||
PORT_DIPSETTING( 0x00, "5" )
|
||||
PORT_DIPNAME( 0x60, 0x60, "Bet Max" )
|
||||
PORT_DIPNAME( 0x60, 0x60, "Bet Max" ) PORT_DIPLOCATION("DSWA:6,7")
|
||||
PORT_DIPSETTING( 0x60, "8" )
|
||||
PORT_DIPSETTING( 0x40, "10" )
|
||||
PORT_DIPSETTING( 0x20, "12" )
|
||||
PORT_DIPSETTING( 0x00, "20" )
|
||||
PORT_DIPNAME( 0x80, 0x00, "DIPSW 1-8" )
|
||||
PORT_DIPNAME( 0x80, 0x00, "DIPSW 1-8" ) PORT_DIPLOCATION("DSWA:8")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_START("DSWB")
|
||||
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
|
||||
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSWB:1,2")
|
||||
PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
|
||||
PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
|
||||
PORT_DIPNAME( 0x04, 0x04, "DIPSW 2-3" )
|
||||
PORT_DIPNAME( 0x04, 0x04, "DIPSW 2-3" ) PORT_DIPLOCATION("DSWB:3")
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, "DIPSW 2-4" )
|
||||
PORT_DIPNAME( 0x08, 0x08, "DIPSW 2-4" ) PORT_DIPLOCATION("DSWB:4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, "DIPSW 2-5" )
|
||||
PORT_DIPNAME( 0x10, 0x10, "DIPSW 2-5" ) PORT_DIPLOCATION("DSWB:5")
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, "DIPSW 2-6" )
|
||||
PORT_DIPNAME( 0x20, 0x20, "DIPSW 2-6" ) PORT_DIPLOCATION("DSWB:6")
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, "Graphic ROM Test" )
|
||||
PORT_DIPNAME( 0x40, 0x40, "Graphic ROM Test" ) PORT_DIPLOCATION("DSWB:7")
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSWB:8")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
|
@ -537,10 +537,10 @@ INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( finalbny )
|
||||
|
||||
// I don't have manual for this game.
|
||||
|
||||
// I don't have manual for this game. (finalbny)
|
||||
// Lady Maker manual matches this, identical PCB
|
||||
PORT_START("DSWA")
|
||||
PORT_DIPNAME( 0x07, 0x07, "Game Out" )
|
||||
PORT_DIPNAME( 0x07, 0x07, "Game Out" ) PORT_DIPLOCATION("DSWA:1,2,3")
|
||||
PORT_DIPSETTING( 0x07, "90% (Easy)" )
|
||||
PORT_DIPSETTING( 0x06, "85%" )
|
||||
PORT_DIPSETTING( 0x05, "80%" )
|
||||
@ -549,43 +549,43 @@ static INPUT_PORTS_START( finalbny )
|
||||
PORT_DIPSETTING( 0x02, "65%" )
|
||||
PORT_DIPSETTING( 0x01, "60%" )
|
||||
PORT_DIPSETTING( 0x00, "55% (Hard)" )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Coinage ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSWA:4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, "Last Chance" )
|
||||
PORT_DIPNAME( 0x10, 0x00, "Last Chance" ) PORT_DIPLOCATION("DSWA:5")
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, "Last chance needs 1credit" )
|
||||
PORT_DIPNAME( 0x20, 0x20, "Last chance needs 1credit" ) PORT_DIPLOCATION("DSWA:6")
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, "DIPSW 1-7" )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSWA:7")
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, "DIPSW 1-8" )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSWA:8")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_START("DSWB")
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSWB:1")
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, "Graphic ROM Test" )
|
||||
PORT_DIPNAME( 0x02, 0x02, "Graphic ROM Test" ) PORT_DIPLOCATION("DSWB:2")
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x04, "Bet1 Only" )
|
||||
PORT_DIPNAME( 0x04, 0x04, "Bet1 Only" ) PORT_DIPLOCATION("DSWB:3")
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x18, 0x18, "Bet Min" )
|
||||
PORT_DIPNAME( 0x18, 0x18, "Bet Min" ) PORT_DIPLOCATION("DSWB:4,5")
|
||||
PORT_DIPSETTING( 0x18, "1" )
|
||||
PORT_DIPSETTING( 0x10, "2" )
|
||||
PORT_DIPSETTING( 0x08, "3" )
|
||||
PORT_DIPSETTING( 0x00, "5" )
|
||||
PORT_DIPNAME( 0x60, 0x00, "Bet Max" )
|
||||
PORT_DIPNAME( 0x60, 0x00, "Bet Max" ) PORT_DIPLOCATION("DSWB:6,7")
|
||||
PORT_DIPSETTING( 0x60, "8" )
|
||||
PORT_DIPSETTING( 0x40, "10" )
|
||||
PORT_DIPSETTING( 0x20, "12" )
|
||||
PORT_DIPSETTING( 0x00, "20" )
|
||||
PORT_DIPNAME( 0x80, 0x00, "Score Pool" )
|
||||
PORT_DIPNAME( 0x80, 0x00, "Score Pool" ) PORT_DIPLOCATION("DSWB:8")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
@ -604,53 +604,54 @@ INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( qmhayaku )
|
||||
PORT_START("DSWA")
|
||||
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSWA:1,2")
|
||||
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSWA:1,2")
|
||||
PORT_DIPSETTING( 0x03, "1 (Easy)" )
|
||||
PORT_DIPSETTING( 0x02, "2" )
|
||||
PORT_DIPSETTING( 0x01, "3" )
|
||||
PORT_DIPSETTING( 0x00, "4 (Hard)" )
|
||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSWA:3")
|
||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSWA:3")
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DSWA:4")
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DSWA:4")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, "Game Sounds" ) PORT_DIPLOCATION("DSWA:5")
|
||||
PORT_DIPNAME( 0x10, 0x10, "Game Sounds" ) PORT_DIPLOCATION("DSWA:5")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSWA:6")
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSWA:6")
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, "Character Display Test" ) PORT_DIPLOCATION("DSWA:7")
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, "Graphic ROM Test" ) PORT_DIPLOCATION("DSWA:8")
|
||||
PORT_DIPNAME( 0x80, 0x80, "Graphic ROM Test" ) PORT_DIPLOCATION("DSWA:8") // manual states this is unused
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
/* manual says this does not exist but it is physically present */
|
||||
PORT_START("DSWB")
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSWB:1")
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSWB:2")
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )
|
||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSWB:3")
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSWB:4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSWB:5")
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSWB:6")
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSWB:7")
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSWB:8")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
@ -2127,7 +2128,7 @@ GAME( 1990, pstadium, 0, pstadium, pstadium, driver_device, 0, RO
|
||||
GAME( 1990, triplew2, 0, triplew2, triplew1, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Triple Wars 2 (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1990, ntopstar, 0, ntopstar, ntopstar, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Nerae! Top Star (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, mjlstory, 0, mjlstory, mjlstory, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Jikken Love Story (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, ladymakr, mjlstory, mjlstory, mjlstory, driver_device, 0, ROT180, "Nichibutsu", "Lady Maker [BET] (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, ladymakr, mjlstory, mjlstory, finalbny, driver_device, 0, ROT180, "Nichibutsu", "Lady Maker [BET] (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, vanilla, 0, vanilla, vanilla, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Vanilla Syndrome (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, finalbny, vanilla, finalbny, finalbny, nbmj8991_state, finalbny, ROT180, "Nichibutsu", "Mahjong Final Bunny [BET] (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, qmhayaku, 0, qmhayaku, qmhayaku, driver_device, 0, ROT180, "Nichibutsu", "Quiz-Mahjong Hayaku Yatteyo! (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -519,7 +519,7 @@ INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( 4psimasy )
|
||||
PORT_START("DSWA")
|
||||
PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSWA:1,2,3")
|
||||
PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSWA:1,2,3")
|
||||
PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) )
|
||||
PORT_DIPSETTING( 0x06, DEF_STR( Easy ) )
|
||||
PORT_DIPSETTING( 0x05, DEF_STR( Medium_Easy ) )
|
||||
@ -528,27 +528,33 @@ static INPUT_PORTS_START( 4psimasy )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Very_Hard ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, "Game Sounds" ) PORT_DIPLOCATION("DSWA:4")
|
||||
PORT_DIPNAME( 0x08, 0x00, "Game Sounds" ) PORT_DIPLOCATION("DSWA:4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DSWA:5")
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DSWA:5")
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSWA:6")
|
||||
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSWA:6")
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSWA:7,8")
|
||||
PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSWA:7,8")
|
||||
PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) )
|
||||
|
||||
/* this switch not mentioned by the manual */
|
||||
PORT_START("DSWB")
|
||||
PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_DIPNAME( 0x40, 0x40, "Option Test" ) PORT_DIPLOCATION("DSWB:7")
|
||||
PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "DSWB:1" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "DSWB:2" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "DSWB:3" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "DSWB:4" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "DSWB:5" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "DSWB:6" )
|
||||
PORT_DIPNAME( 0x40, 0x40, "Option Test" ) PORT_DIPLOCATION("DSWB:7")
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, "Graphic ROM Test" ) PORT_DIPLOCATION("DSWB:8")
|
||||
PORT_DIPNAME( 0x80, 0x80, "Graphic ROM Test" ) PORT_DIPLOCATION("DSWB:8")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
|
@ -293,100 +293,120 @@ ADDRESS_MAP_END
|
||||
Input Ports
|
||||
******************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( supercon )
|
||||
static INPUT_PORTS_START( cb_buttons )
|
||||
PORT_START("IN.0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h8")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g8")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f8")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e8")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d8")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c8")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b8")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a8")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.3")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.4")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.5")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.6")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.7")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( supercon )
|
||||
PORT_INCLUDE( cb_buttons )
|
||||
|
||||
PORT_MODIFY("IN.0")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("New Game")
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_NAME("King / Multi Move / Player/Player")
|
||||
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h7")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g7")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f7")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e7")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d7")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c7")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b7")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a7")
|
||||
PORT_MODIFY("IN.1")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) PORT_NAME("Verify / Set Up")
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_NAME("Queen / Best Move/Random / Training Level")
|
||||
|
||||
PORT_START("IN.2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h6")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g6")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f6")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e6")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d6")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c6")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b6")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a6")
|
||||
PORT_MODIFY("IN.2")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) PORT_NAME("Change Color")
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_NAME("Bishop / Sound / Depth Search")
|
||||
|
||||
PORT_START("IN.3")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h5")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g5")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f5")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e5")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d5")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c5")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b5")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a5")
|
||||
PORT_MODIFY("IN.3")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Clear Board")
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_NAME("Knight / Solve Mate")
|
||||
|
||||
PORT_START("IN.4")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h4")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g4")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f4")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e4")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d4")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c4")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b4")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a4")
|
||||
PORT_MODIFY("IN.4")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Print Moves")
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_NAME("Rook / Print Board")
|
||||
|
||||
PORT_START("IN.5")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h3")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g3")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f3")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e3")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d3")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c3")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b3")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a3")
|
||||
PORT_MODIFY("IN.5")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("Form Size")
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_NAME("Pion / Print List / Acc. Time")
|
||||
|
||||
PORT_START("IN.6")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h2")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g2")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f2")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e2")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d2")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c2")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b2")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a2")
|
||||
PORT_MODIFY("IN.6")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("Hint")
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_NAME("Set Level")
|
||||
|
||||
PORT_START("IN.7")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square h1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square g1")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square f1")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square e1")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square d1")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square c1")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square b1")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square a1")
|
||||
PORT_MODIFY("IN.7")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("Go")
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_NAME("Take Back")
|
||||
INPUT_PORTS_END
|
||||
|
@ -2521,7 +2521,7 @@ GAME( 1994, puyopuy2, 0, segac2, puyopuy2, segac2_state, puyopuy2, ROT0,
|
||||
GAME( 1994, zunkyou, 0, segac2, zunkyou, segac2_state, zunkyou, ROT0, "Sega", "Zunzunkyou No Yabou (Japan)", 0 )
|
||||
|
||||
/* Atlus Print Club 'Games' (C-2 Hardware, might not be possible to support them because they use camera + printer, really just put here for reference) */
|
||||
GAME( 1995, pclubj, 0, segac2, pclub, segac2_state, pclub, ROT0, "Atlus", "Print Club (Japan Vol.1)", MACHINE_NOT_WORKING )
|
||||
GAME( 1995, pclubjv2, pclubj, segac2, pclubjv2, segac2_state, pclubjv2, ROT0, "Atlus", "Print Club (Japan Vol.2)", MACHINE_NOT_WORKING )
|
||||
GAME( 1996, pclubjv4, pclubj, segac2, pclubjv2, segac2_state, pclubjv4, ROT0, "Atlus", "Print Club (Japan Vol.4)", MACHINE_NOT_WORKING )
|
||||
GAME( 1996, pclubjv5, pclubj, segac2, pclubjv2, segac2_state, pclubjv5, ROT0, "Atlus", "Print Club (Japan Vol.5)", MACHINE_NOT_WORKING )
|
||||
GAME( 1995, pclubj, 0, segac2, pclub, segac2_state, pclub, ROT0, "Atlus", "Print Club (Japan Vol.1)", MACHINE_NOT_WORKING | MACHINE_NODEVICE_PRINTER | MACHINE_NODEVICE_CAMERA )
|
||||
GAME( 1995, pclubjv2, pclubj, segac2, pclubjv2, segac2_state, pclubjv2, ROT0, "Atlus", "Print Club (Japan Vol.2)", MACHINE_NOT_WORKING | MACHINE_NODEVICE_PRINTER | MACHINE_NODEVICE_CAMERA )
|
||||
GAME( 1996, pclubjv4, pclubj, segac2, pclubjv2, segac2_state, pclubjv4, ROT0, "Atlus", "Print Club (Japan Vol.4)", MACHINE_NOT_WORKING | MACHINE_NODEVICE_PRINTER | MACHINE_NODEVICE_CAMERA )
|
||||
GAME( 1996, pclubjv5, pclubj, segac2, pclubjv2, segac2_state, pclubjv5, ROT0, "Atlus", "Print Club (Japan Vol.5)", MACHINE_NOT_WORKING | MACHINE_NODEVICE_PRINTER | MACHINE_NODEVICE_CAMERA )
|
||||
|
@ -2809,7 +2809,7 @@ GAMEL(1988, pdrift, 0, yboard, pdrift, segaybd_state, pdrift,
|
||||
GAMEL(1988, pdrifta, pdrift, yboard, pdrift, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (World)", MACHINE_SUPPORTS_SAVE, layout_pdrift )
|
||||
GAMEL(1988, pdrifte, pdrift, yboard, pdrifte, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (World, Earlier)", MACHINE_SUPPORTS_SAVE, layout_pdrift )
|
||||
GAMEL(1988, pdriftj, pdrift, yboard, pdriftj, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (Japan)", MACHINE_SUPPORTS_SAVE, layout_pdrift )
|
||||
GAMEL(1988, pdriftl, pdrift, yboard_link, pdriftl, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (Japan, Link Version)", MACHINE_SUPPORTS_SAVE|MACHINE_NOT_WORKING, layout_pdrift)
|
||||
GAMEL(1988, pdriftl, pdrift, yboard_link, pdriftl, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (Japan, Link Version)", MACHINE_SUPPORTS_SAVE, layout_pdrift)
|
||||
|
||||
GAME( 1991, rchase, 0, yboard, rchase, segaybd_state, rchase, ROT0, "Sega", "Rail Chase (World)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, rchasej, rchase, yboard, rchase, segaybd_state, rchase, ROT0, "Sega", "Rail Chase (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -928,6 +928,35 @@ ROM_START( quaquiz2 )
|
||||
ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
|
||||
ROM_END
|
||||
|
||||
// Dumper's note: I got the pcb with Triv Quiz (trivquiz) question rom pcb, but I don't think that's the correct one.
|
||||
// If you use Triv Quiz question data the game will boot to playable state
|
||||
|
||||
ROM_START( supertr )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "u07.bin", 0x00000, 0x01000, CRC(6573d17c) SHA1(0ec4a572312393c9efbf580f015bcf418d867079) )
|
||||
ROM_LOAD( "u08.bin", 0x01000, 0x01000, CRC(734f7e0a) SHA1(42b4ec0396a7150b78901e0279fc7904abd94d06) )
|
||||
ROM_LOAD( "u09.bin", 0x02000, 0x01000, CRC(41b9bb46) SHA1(d440ec19c9962b3e35c50e2cc1ba0c218c05c0e1) )
|
||||
ROM_LOAD( "u10.bin", 0x03000, 0x01000, CRC(2f7b2207) SHA1(2c58fde128824fb553a6ec5336cadbf194ec81b7) )
|
||||
|
||||
ROM_REGION( 0x1000, "tiles", ROMREGION_INVERT )
|
||||
ROM_LOAD( "u36.bin", 0x00000, 0x01000, CRC(01f30203) SHA1(b902845af0e4d96446550539596354d9962d78be) )
|
||||
|
||||
ROM_REGION( 0x40000, "questions", 0 )
|
||||
ROM_LOAD( "q1.rom", 0x00000, 0x08000, NO_DUMP )
|
||||
ROM_LOAD( "q2.rom", 0x08000, 0x08000, NO_DUMP )
|
||||
ROM_LOAD( "q3.rom", 0x10000, 0x08000, NO_DUMP )
|
||||
ROM_LOAD( "q4.rom", 0x18000, 0x08000, NO_DUMP )
|
||||
ROM_LOAD( "q5.rom", 0x20000, 0x08000, NO_DUMP )
|
||||
ROM_LOAD( "q6.rom", 0x28000, 0x08000, NO_DUMP )
|
||||
ROM_LOAD( "q7.rom", 0x30000, 0x08000, NO_DUMP )
|
||||
ROM_LOAD( "q8.rom", 0x38000, 0x08000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x0140, "proms", 0 )
|
||||
ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed, verified */
|
||||
ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) /* Soldered in (Color?) */
|
||||
ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
|
||||
ROM_END
|
||||
|
||||
ROM_START( supertr2 )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "ast2-1d.rom", 0x00000, 0x01000, CRC(e9f0e271) SHA1(c2bae7d5ef04aed3ce14c403c70d2acc1831b763) )
|
||||
@ -1152,6 +1181,7 @@ GAME( 1985, statriv2v,statriv2, statriv2v, statriv2, statriv2_state, addr_xlh,
|
||||
GAME( 1985, statriv4, 0, statriv2, statriv4, statriv2_state, addr_xhl, ROT0, "Status Games", "Triv Four", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, sextriv, 0, statriv2, sextriv, statriv2_state, addr_lhx, ROT0, "Status Games", "Sex Triv", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, quaquiz2, 0, statriv2, quaquiz2, statriv2_state, addr_lmh, ROT0, "Status Games", "Quadro Quiz II", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
|
||||
GAME( 1985, supertr, 0, statriv2, supertr2, statriv2_state, addr_lhx, ROT0, "Status Games", "Super Triv Quiz I", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING) // missing questions' ROMs
|
||||
GAME( 1986, supertr2, 0, statriv2, supertr2, statriv2_state, addr_lmhe, ROT0, "Status Games", "Super Triv II", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, supertr3, 0, statriv2, supertr2, statriv2_state, addr_lmh, ROT0, "Status Games", "Super Triv III", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1990, cstripxi, 0, statriv2, funcsino, statriv2_state, laserdisc, ROT0, "Status Games", "Casino Strip XI", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
|
||||
|
@ -3609,7 +3609,7 @@ GAME( 1996, decathlto, decathlt,stv_5838, stv, stv_state, decathlt, ROT
|
||||
GAME( 1998, twcup98, stvbios, stv_5881, stv, stv_state, twcup98, ROT0, "Tecmo", "Tecmo World Cup '98 (JUET 980410 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // some situations with the GK result in the game stalling, maybe CPU core bug??
|
||||
GAME( 1998, twsoc98, twcup98, stv_5881, stv, stv_state, twcup98, ROT0, "Tecmo", "Tecmo World Soccer '98 (JUET 980410 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // ^^ (check)
|
||||
/* Gives I/O errors */
|
||||
GAME( 1996, magzun, stvbios, stv, stv, stv_state, magzun, ROT0, "Sega", "Magical Zunou Power (J 961031 V1.000)", MACHINE_NOT_WORKING )
|
||||
GAME( 1996, magzun, stvbios, stv, stv, stv_state, magzun, ROT0, "Sega", "Magical Zunou Power (J 961031 V1.000)", MACHINE_NOT_WORKING | MACHINE_NODEVICE_MICROPHONE )
|
||||
GAME( 1997, techbowl, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Technical Bowling (J 971212 V1.000)", MACHINE_NOT_WORKING )
|
||||
GAME( 1999, micrombc, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Microman Battle Charge (J 990326 V1.000)", MACHINE_NOT_WORKING )
|
||||
|
||||
|
@ -24,6 +24,7 @@ public:
|
||||
m_cpu3(*this, "cpu3"),
|
||||
m_cpu5(*this, "cpu5"),
|
||||
m_soundcpu(*this, "soundcpu"),
|
||||
m_screen(*this, "screen"),
|
||||
m_watchdog(*this, "watchdog"),
|
||||
m_oki1(*this, "oki1"),
|
||||
m_oki2(*this, "oki2"),
|
||||
@ -54,6 +55,7 @@ public:
|
||||
int m_armold;
|
||||
UINT16 m_scudhamm_motor_command;
|
||||
int m_ip_select;
|
||||
UINT16 m_wildplt_output;
|
||||
UINT8 m_drawmode_table[16];
|
||||
int m_debugsprites;
|
||||
int m_show_unknown;
|
||||
@ -90,6 +92,8 @@ public:
|
||||
DECLARE_READ16_MEMBER(f1gpstar_wheel_r);
|
||||
DECLARE_READ16_MEMBER(f1gpstr2_ioready_r);
|
||||
DECLARE_READ16_MEMBER(wildplt_xy_r);
|
||||
DECLARE_READ16_MEMBER(wildplt_mux_r);
|
||||
DECLARE_WRITE16_MEMBER(wildplt_mux_w);
|
||||
DECLARE_WRITE16_MEMBER(f1gpstar_motor_w);
|
||||
DECLARE_WRITE16_MEMBER(f1gpstar_soundint_w);
|
||||
DECLARE_WRITE16_MEMBER(f1gpstar_comms_w);
|
||||
@ -119,6 +123,7 @@ public:
|
||||
optional_device<cpu_device> m_cpu3;
|
||||
optional_device<cpu_device> m_cpu5;
|
||||
optional_device<cpu_device> m_soundcpu;
|
||||
required_device<screen_device> m_screen;
|
||||
optional_device<watchdog_timer_device> m_watchdog;
|
||||
required_device<okim6295_device> m_oki1;
|
||||
required_device<okim6295_device> m_oki2;
|
||||
|
@ -86,12 +86,14 @@ public:
|
||||
DECLARE_DRIVER_INIT(stoneage);
|
||||
DECLARE_DRIVER_INIT(mutantf);
|
||||
DECLARE_DRIVER_INIT(cninja);
|
||||
DECLARE_DRIVER_INIT(cninjabl2);
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
DECLARE_VIDEO_START(stoneage);
|
||||
DECLARE_VIDEO_START(mutantf);
|
||||
UINT32 screen_update_cninja(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_cninjabl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_cninjabl2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_edrandy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_robocop2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_mutantf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
@ -115,4 +117,5 @@ public:
|
||||
DECLARE_READ16_MEMBER( cninja_protection_region_0_104_r );
|
||||
DECLARE_WRITE16_MEMBER( cninja_protection_region_0_104_w );
|
||||
|
||||
DECLARE_READ16_MEMBER(cninjabl2_sprite_dma_r);
|
||||
};
|
||||
|
@ -13,6 +13,10 @@
|
||||
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
|
||||
<disk state="0"><color red="0.1" green="0.01" blue="0.015" /></disk>
|
||||
</element>
|
||||
<element name="led2" defstate="0">
|
||||
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
|
||||
<disk state="0"><color red="0.14" green="0.014" blue="0.02" /></disk>
|
||||
</element>
|
||||
|
||||
<element name="hl" defstate="0">
|
||||
<text string=" ">
|
||||
@ -350,15 +354,15 @@
|
||||
|
||||
<!-- bottom side -->
|
||||
|
||||
<bezel name="8.8" element="led"><bounds x="42" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.9" element="led"><bounds x="45" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.10" element="led"><bounds x="48" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.11" element="led"><bounds x="51" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.12" element="led"><bounds x="54" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.13" element="led"><bounds x="57" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.8" element="led2"><bounds x="42" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.9" element="led2"><bounds x="45" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.10" element="led2"><bounds x="48" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.11" element="led2"><bounds x="51" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.12" element="led2"><bounds x="54" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.13" element="led2"><bounds x="57" y="90" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="8.14" element="led"><bounds x="76.5" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.15" element="led"><bounds x="76.5" y="94" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.14" element="led2"><bounds x="76.5" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.15" element="led2"><bounds x="76.5" y="94" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel element="but" inputtag="IN.8" inputmask="0x01"><bounds x="33.9" y="94" width="1.5" height="1.5" /></bezel>
|
||||
<bezel element="but" inputtag="IN.8" inputmask="0x02"><bounds x="36.9" y="94" width="1.5" height="1.5" /></bezel>
|
||||
|
375
src/mame/layout/fidel_playmatic.lay
Normal file
375
src/mame/layout/fidel_playmatic.lay
Normal file
@ -0,0 +1,375 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
|
||||
|
||||
<element name="led" defstate="0">
|
||||
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
|
||||
<disk state="0"><color red="0.1" green="0.01" blue="0.015" /></disk>
|
||||
</element>
|
||||
<element name="led2" defstate="0">
|
||||
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
|
||||
<disk state="0"><color red="0.14" green="0.014" blue="0.02" /></disk>
|
||||
</element>
|
||||
|
||||
<element name="hl" defstate="0">
|
||||
<text string=" ">
|
||||
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
</text>
|
||||
<disk state="1">
|
||||
<bounds x="0.12" y="0.12" width="0.76" height="0.76" />
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</disk>
|
||||
</element>
|
||||
<element name="but" defstate="0">
|
||||
<disk state="0"><color red="0.17" green="0.15" blue="0.15" /></disk>
|
||||
<disk state="1"><color red="0.34" green="0.3" blue="0.3" /></disk>
|
||||
</element>
|
||||
|
||||
<element name="black"><rect><color red="0.17" green="0.15" blue="0.15" /></rect></element>
|
||||
<element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
|
||||
<element name="disk_black"><disk><color red="0.17" green="0.15" blue="0.15" /></disk></element>
|
||||
<element name="disk_white"><disk><color red="0.81" green="0.8" blue="0.79" /></disk></element>
|
||||
|
||||
<element name="text_1">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="1"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_2">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="2"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_3">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="3"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_4">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="4"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_5">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="5"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_6">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="6"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_7">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="7"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_8">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="8"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
|
||||
<element name="text_a">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="A"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_b">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="B"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_c">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="C"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_d">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="D"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_e">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="E"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_f">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="F"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_g">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="G"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_h">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="H"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
|
||||
<element name="text_l3"><text string="♔"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_l4"><text string="♕"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_l5"><text string="♖"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_l6"><text string="♗"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_l7"><text string="♘"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_l8"><text string="♙"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
|
||||
<element name="text_r1"><text string="RE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_r2"><text string="CL"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_r3"><text string="PB"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_r4"><text string="PV"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_r5"><text string="LV"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_r6"><text string="TB"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_r7"><text string="DM"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_r8"><text string="RV"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
<bounds left="-2" right="98" top="-2" bottom="88" />
|
||||
<bezel element="static_black">
|
||||
<bounds left="-2" right="98" top="-2" bottom="88" />
|
||||
</bezel>
|
||||
|
||||
<bezel element="white"><bounds x="-2.5" y="-2.5" width="90.5" height="90.5" /></bezel>
|
||||
|
||||
<!-- chessboard coords -->
|
||||
|
||||
<bezel element="text_8"><bounds x="-0.8" y="7" width="2" height="2" /></bezel>
|
||||
<bezel element="text_7"><bounds x="-0.8" y="17" width="2" height="2" /></bezel>
|
||||
<bezel element="text_6"><bounds x="-0.8" y="27" width="2" height="2" /></bezel>
|
||||
<bezel element="text_5"><bounds x="-0.8" y="37" width="2" height="2" /></bezel>
|
||||
<bezel element="text_4"><bounds x="-0.8" y="47" width="2" height="2" /></bezel>
|
||||
<bezel element="text_3"><bounds x="-0.8" y="57" width="2" height="2" /></bezel>
|
||||
<bezel element="text_2"><bounds x="-0.8" y="67" width="2" height="2" /></bezel>
|
||||
<bezel element="text_1"><bounds x="-0.8" y="77" width="2" height="2" /></bezel>
|
||||
|
||||
<bezel element="text_a"><bounds x="7" y="85" width="2" height="2" /></bezel>
|
||||
<bezel element="text_b"><bounds x="17" y="85" width="2" height="2" /></bezel>
|
||||
<bezel element="text_c"><bounds x="27" y="85" width="2" height="2" /></bezel>
|
||||
<bezel element="text_d"><bounds x="37" y="85" width="2" height="2" /></bezel>
|
||||
<bezel element="text_e"><bounds x="47" y="85" width="2" height="2" /></bezel>
|
||||
<bezel element="text_f"><bounds x="57" y="85" width="2" height="2" /></bezel>
|
||||
<bezel element="text_g"><bounds x="67" y="85" width="2" height="2" /></bezel>
|
||||
<bezel element="text_h"><bounds x="77" y="85" width="2" height="2" /></bezel>
|
||||
|
||||
<!-- chessboard bezel -->
|
||||
|
||||
<bezel element="black"><bounds x="2" y="2" width="82" height="82" /></bezel>
|
||||
<bezel element="white"><bounds x="3" y="3" width="80" height="80" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="2.5" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="2.5" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="2.5" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="2.5" width="10.5" height="10.5" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="13" width="10.5" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="13" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="13" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="13" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="23" width="10.5" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="33" width="10.5" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="33" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="33" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="33" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="43" width="10.5" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="53" width="10.5" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="53" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="53" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="53" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="63" width="10.5" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="73" width="10.5" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="73" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="73" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="73" width="10" height="10.5" /></bezel>
|
||||
|
||||
<!-- chessboard leds -->
|
||||
|
||||
<bezel name="0.0" element="led"><bounds x="3.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.0" element="led"><bounds x="13.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.0" element="led"><bounds x="23.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.0" element="led"><bounds x="33.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.0" element="led"><bounds x="43.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.0" element="led"><bounds x="53.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.0" element="led"><bounds x="63.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.0" element="led"><bounds x="73.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.1" element="led"><bounds x="3.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.1" element="led"><bounds x="13.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.1" element="led"><bounds x="23.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.1" element="led"><bounds x="33.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.1" element="led"><bounds x="43.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.1" element="led"><bounds x="53.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.1" element="led"><bounds x="63.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.1" element="led"><bounds x="73.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.2" element="led"><bounds x="3.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.2" element="led"><bounds x="13.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.2" element="led"><bounds x="23.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.2" element="led"><bounds x="33.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.2" element="led"><bounds x="43.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.2" element="led"><bounds x="53.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.2" element="led"><bounds x="63.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.2" element="led"><bounds x="73.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.3" element="led"><bounds x="3.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.3" element="led"><bounds x="13.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.3" element="led"><bounds x="23.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.3" element="led"><bounds x="33.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.3" element="led"><bounds x="43.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.3" element="led"><bounds x="53.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.3" element="led"><bounds x="63.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.3" element="led"><bounds x="73.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.4" element="led"><bounds x="3.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.4" element="led"><bounds x="13.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.4" element="led"><bounds x="23.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.4" element="led"><bounds x="33.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.4" element="led"><bounds x="43.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.4" element="led"><bounds x="53.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.4" element="led"><bounds x="63.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.4" element="led"><bounds x="73.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.5" element="led"><bounds x="3.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.5" element="led"><bounds x="13.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.5" element="led"><bounds x="23.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.5" element="led"><bounds x="33.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.5" element="led"><bounds x="43.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.5" element="led"><bounds x="53.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.5" element="led"><bounds x="63.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.5" element="led"><bounds x="73.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.6" element="led"><bounds x="3.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.6" element="led"><bounds x="13.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.6" element="led"><bounds x="23.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.6" element="led"><bounds x="33.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.6" element="led"><bounds x="43.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.6" element="led"><bounds x="53.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.6" element="led"><bounds x="63.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.6" element="led"><bounds x="73.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.7" element="led"><bounds x="3.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.7" element="led"><bounds x="13.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.7" element="led"><bounds x="23.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.7" element="led"><bounds x="33.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.7" element="led"><bounds x="43.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.7" element="led"><bounds x="53.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.7" element="led"><bounds x="63.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.7" element="led"><bounds x="73.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<!-- chessboard sensors -->
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x80"><bounds x="3" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x80"><bounds x="13" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x80"><bounds x="23" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x80"><bounds x="33" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x80"><bounds x="43" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x80"><bounds x="53" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x80"><bounds x="63" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x80"><bounds x="73" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x40"><bounds x="3" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x40"><bounds x="13" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x40"><bounds x="23" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x40"><bounds x="33" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x40"><bounds x="43" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x40"><bounds x="53" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x40"><bounds x="63" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x40"><bounds x="73" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x20"><bounds x="3" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x20"><bounds x="13" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x20"><bounds x="23" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x20"><bounds x="33" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x20"><bounds x="43" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x20"><bounds x="53" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x20"><bounds x="63" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x20"><bounds x="73" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x10"><bounds x="3" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x10"><bounds x="13" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x10"><bounds x="23" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x10"><bounds x="33" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x10"><bounds x="43" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x10"><bounds x="53" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x10"><bounds x="63" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x10"><bounds x="73" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x08"><bounds x="3" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x08"><bounds x="13" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x08"><bounds x="23" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x08"><bounds x="33" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x08"><bounds x="43" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x08"><bounds x="53" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x08"><bounds x="63" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x08"><bounds x="73" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x04"><bounds x="3" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x04"><bounds x="13" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x04"><bounds x="23" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x04"><bounds x="33" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x04"><bounds x="43" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x04"><bounds x="53" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x04"><bounds x="63" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x04"><bounds x="73" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x02"><bounds x="3" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x02"><bounds x="13" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x02"><bounds x="23" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x02"><bounds x="33" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x02"><bounds x="43" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x02"><bounds x="53" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x02"><bounds x="63" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x02"><bounds x="73" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x01"><bounds x="3" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="13" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x01"><bounds x="23" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x01"><bounds x="33" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x01"><bounds x="43" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x01"><bounds x="53" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x01"><bounds x="63" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x01"><bounds x="73" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<!-- right side -->
|
||||
|
||||
<!-- not included here: 2 on/off switches for power and module enable, each with green led when on -->
|
||||
|
||||
<bezel element="text_l3"><bounds x="88.25" y="39.75" width="4" height="4" /></bezel>
|
||||
<bezel element="text_l4"><bounds x="88.25" y="43.75" width="4" height="4" /></bezel>
|
||||
<bezel element="text_l5"><bounds x="88.25" y="47.75" width="4" height="4" /></bezel>
|
||||
<bezel element="text_l6"><bounds x="88.25" y="51.75" width="4" height="4" /></bezel>
|
||||
<bezel element="text_l7"><bounds x="88.25" y="55.75" width="4" height="4" /></bezel>
|
||||
<bezel element="text_l8"><bounds x="88.25" y="59.75" width="4" height="4" /></bezel>
|
||||
|
||||
<bezel element="text_r1"><bounds x="93.25" y="33" width="4" height="2" /></bezel>
|
||||
<bezel element="text_r2"><bounds x="93.25" y="37" width="4" height="2" /></bezel>
|
||||
<bezel element="text_r3"><bounds x="93.25" y="41" width="4" height="2" /></bezel>
|
||||
<bezel element="text_r4"><bounds x="93.25" y="45" width="4" height="2" /></bezel>
|
||||
<bezel element="text_r5"><bounds x="93.25" y="49" width="4" height="2" /></bezel>
|
||||
<bezel element="text_r6"><bounds x="93.25" y="53" width="4" height="2" /></bezel>
|
||||
<bezel element="text_r7"><bounds x="93.25" y="57" width="4" height="2" /></bezel>
|
||||
<bezel element="text_r8"><bounds x="93.25" y="61" width="4" height="2" /></bezel>
|
||||
|
||||
<bezel element="but" inputtag="IN.8" inputmask="0x80"><bounds x="91.5" y="33" width="2" height="2" /></bezel>
|
||||
<bezel element="but" inputtag="IN.8" inputmask="0x40"><bounds x="91.5" y="37" width="2" height="2" /></bezel>
|
||||
<bezel element="but" inputtag="IN.8" inputmask="0x20"><bounds x="91.5" y="41" width="2" height="2" /></bezel>
|
||||
<bezel element="but" inputtag="IN.8" inputmask="0x10"><bounds x="91.5" y="45" width="2" height="2" /></bezel>
|
||||
<bezel element="but" inputtag="IN.8" inputmask="0x08"><bounds x="91.5" y="49" width="2" height="2" /></bezel>
|
||||
<bezel element="but" inputtag="IN.8" inputmask="0x04"><bounds x="91.5" y="53" width="2" height="2" /></bezel>
|
||||
<bezel element="but" inputtag="IN.8" inputmask="0x02"><bounds x="91.5" y="57" width="2" height="2" /></bezel>
|
||||
<bezel element="but" inputtag="IN.8" inputmask="0x01"><bounds x="91.5" y="61" width="2" height="2" /></bezel>
|
||||
|
||||
<bezel name="8.7" element="led2"><bounds x="91.75" y="65.25" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
@ -252,77 +252,77 @@
|
||||
|
||||
<!-- chessboard leds -->
|
||||
|
||||
<bezel name="4.7" element="led"><bounds x="3.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.7" element="led"><bounds x="13.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.7" element="led"><bounds x="23.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.7" element="led"><bounds x="33.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.7" element="led"><bounds x="43.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="9.7" element="led"><bounds x="53.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="10.7" element="led"><bounds x="63.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="11.7" element="led"><bounds x="73.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="0.15" element="led"><bounds x="3.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.15" element="led"><bounds x="13.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.15" element="led"><bounds x="23.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.15" element="led"><bounds x="33.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.15" element="led"><bounds x="43.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.15" element="led"><bounds x="53.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.15" element="led"><bounds x="63.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.15" element="led"><bounds x="73.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="4.6" element="led"><bounds x="3.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.6" element="led"><bounds x="13.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.6" element="led"><bounds x="23.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.6" element="led"><bounds x="33.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.6" element="led"><bounds x="43.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="9.6" element="led"><bounds x="53.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="10.6" element="led"><bounds x="63.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="11.6" element="led"><bounds x="73.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="0.14" element="led"><bounds x="3.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.14" element="led"><bounds x="13.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.14" element="led"><bounds x="23.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.14" element="led"><bounds x="33.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.14" element="led"><bounds x="43.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.14" element="led"><bounds x="53.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.14" element="led"><bounds x="63.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.14" element="led"><bounds x="73.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="4.5" element="led"><bounds x="3.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.5" element="led"><bounds x="13.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.5" element="led"><bounds x="23.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.5" element="led"><bounds x="33.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.5" element="led"><bounds x="43.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="9.5" element="led"><bounds x="53.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="10.5" element="led"><bounds x="63.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="11.5" element="led"><bounds x="73.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="0.13" element="led"><bounds x="3.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.13" element="led"><bounds x="13.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.13" element="led"><bounds x="23.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.13" element="led"><bounds x="33.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.13" element="led"><bounds x="43.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.13" element="led"><bounds x="53.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.13" element="led"><bounds x="63.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.13" element="led"><bounds x="73.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="4.4" element="led"><bounds x="3.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.4" element="led"><bounds x="13.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.4" element="led"><bounds x="23.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.4" element="led"><bounds x="33.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.4" element="led"><bounds x="43.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="9.4" element="led"><bounds x="53.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="10.4" element="led"><bounds x="63.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="11.4" element="led"><bounds x="73.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="0.12" element="led"><bounds x="3.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.12" element="led"><bounds x="13.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.12" element="led"><bounds x="23.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.12" element="led"><bounds x="33.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.12" element="led"><bounds x="43.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.12" element="led"><bounds x="53.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.12" element="led"><bounds x="63.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.12" element="led"><bounds x="73.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="4.3" element="led"><bounds x="3.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.3" element="led"><bounds x="13.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.3" element="led"><bounds x="23.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.3" element="led"><bounds x="33.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.3" element="led"><bounds x="43.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="9.3" element="led"><bounds x="53.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="10.3" element="led"><bounds x="63.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="11.3" element="led"><bounds x="73.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="0.11" element="led"><bounds x="3.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.11" element="led"><bounds x="13.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.11" element="led"><bounds x="23.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.11" element="led"><bounds x="33.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.11" element="led"><bounds x="43.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.11" element="led"><bounds x="53.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.11" element="led"><bounds x="63.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.11" element="led"><bounds x="73.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="4.2" element="led"><bounds x="3.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.2" element="led"><bounds x="13.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.2" element="led"><bounds x="23.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.2" element="led"><bounds x="33.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.2" element="led"><bounds x="43.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="9.2" element="led"><bounds x="53.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="10.2" element="led"><bounds x="63.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="11.2" element="led"><bounds x="73.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="0.10" element="led"><bounds x="3.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.10" element="led"><bounds x="13.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.10" element="led"><bounds x="23.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.10" element="led"><bounds x="33.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.10" element="led"><bounds x="43.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.10" element="led"><bounds x="53.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.10" element="led"><bounds x="63.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.10" element="led"><bounds x="73.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="4.1" element="led"><bounds x="3.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.1" element="led"><bounds x="13.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.1" element="led"><bounds x="23.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.1" element="led"><bounds x="33.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.1" element="led"><bounds x="43.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="9.1" element="led"><bounds x="53.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="10.1" element="led"><bounds x="63.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="11.1" element="led"><bounds x="73.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="0.9" element="led"><bounds x="3.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.9" element="led"><bounds x="13.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.9" element="led"><bounds x="23.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.9" element="led"><bounds x="33.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.9" element="led"><bounds x="43.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.9" element="led"><bounds x="53.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.9" element="led"><bounds x="63.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.9" element="led"><bounds x="73.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="4.0" element="led"><bounds x="3.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.0" element="led"><bounds x="13.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.0" element="led"><bounds x="23.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.0" element="led"><bounds x="33.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="8.0" element="led"><bounds x="43.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="9.0" element="led"><bounds x="53.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="10.0" element="led"><bounds x="63.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="11.0" element="led"><bounds x="73.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="0.8" element="led"><bounds x="3.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.8" element="led"><bounds x="13.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.8" element="led"><bounds x="23.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.8" element="led"><bounds x="33.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.8" element="led"><bounds x="43.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.8" element="led"><bounds x="53.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.8" element="led"><bounds x="63.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.8" element="led"><bounds x="73.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<!-- chessboard sensors -->
|
||||
|
||||
@ -486,6 +486,5 @@
|
||||
<bezel element="text_lv"><bounds x="85.45" y="-8.95" width="4.9" height="2.9" /></bezel>
|
||||
<bezel element="hlp" inputtag="IN.9" inputmask="0x08"><bounds x="85.4" y="-9" width="5" height="3" /><color alpha="0.25" /></bezel>
|
||||
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
||||
|
@ -12219,6 +12219,7 @@ fexcelp //
|
||||
fexcelv //
|
||||
fscc9 //
|
||||
fscc9b //
|
||||
fscc9ps //
|
||||
fscc12 //
|
||||
reversic //
|
||||
super9cc // SU9: Super 9 Sensory Chess Challenger (English)
|
||||
@ -13205,6 +13206,7 @@ geimulti // (c) 1992 Grayhound Electronics
|
||||
gepoker // (c) 1984 Greyhound Electronics
|
||||
gepoker1 // (c) 1984 Greyhound Electronics
|
||||
gepoker2 // (c) 1984 Greyhound Electronics
|
||||
gepoker3 // (c) 1984 Greyhound Electronics
|
||||
gs4002 // (c) 1982 G.E.I.
|
||||
gs4002a // (c) 1982 G.E.I.
|
||||
gt103a1 // (c) 1984 Greyhound Electronics
|
||||
@ -20320,6 +20322,9 @@ mits680b //
|
||||
@source:mjkjidai.cpp
|
||||
mjkjidai // (c) 1986 Sanritsu
|
||||
|
||||
@source:mjsenpu.cpp
|
||||
mjsenpu
|
||||
|
||||
@source:mjsister.cpp
|
||||
mjsister // (c) 1986 Toaplan
|
||||
|
||||
@ -34059,6 +34064,7 @@ statriv2 // (c) 1984 Status Games
|
||||
statriv2v // (c) 1984 Status Games
|
||||
statriv4 // (c) 1985 Status Games
|
||||
statusbj // (c) 1981 Status Games
|
||||
supertr // (c) 1986 Status Games
|
||||
supertr2 // (c) 1986 Status Games
|
||||
supertr3 // (c) 1986 Status Games
|
||||
tripdraw // (c) 1981 Status Games
|
||||
|
@ -270,12 +270,6 @@ READ16_MEMBER(cischeat_state::f1gpstr2_ioready_r)
|
||||
Wild Pilot
|
||||
**************************************************************************/
|
||||
|
||||
READ16_MEMBER(cischeat_state::wildplt_xy_r)
|
||||
{
|
||||
// X, Y
|
||||
return ioport("IN2")->read() | (ioport("IN3")->read()<<8);
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(cischeat_state::f1gpstar_motor_w)
|
||||
{
|
||||
|
@ -142,6 +142,17 @@ UINT32 cninja_state::screen_update_cninja(screen_device &screen, bitmap_ind16 &b
|
||||
return 0;
|
||||
}
|
||||
|
||||
UINT32 cninja_state::screen_update_cninjabl2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
/* force layers to be enabled */
|
||||
m_deco_tilegen1->set_enable(0, 1 );
|
||||
m_deco_tilegen1->set_enable(1, 1 );
|
||||
|
||||
screen_update_cninja(screen, bitmap, cliprect);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
UINT32 cninja_state::screen_update_cninjabl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
address_space &space = machine().driver_data()->generic_space();
|
||||
|
@ -43,7 +43,7 @@ consolewin_info::consolewin_info(debugger_windows_interface &debugger) :
|
||||
m_devices_menu = CreatePopupMenu();
|
||||
for (device_image_interface &img : iter)
|
||||
{
|
||||
auto tc_buf = tstring_from_utf8(string_format("%s : %s", img.device().name(), img.exists() ? img.filename() : "[no image]").c_str());
|
||||
osd::text::tstring tc_buf = osd::text::to_tstring(string_format("%s : %s", img.device().name(), img.exists() ? img.filename() : "[no image]"));
|
||||
AppendMenu(m_devices_menu, MF_ENABLED, 0, tc_buf.c_str());
|
||||
}
|
||||
AppendMenu(GetMenu(window()), MF_ENABLED | MF_POPUP, (UINT_PTR)m_devices_menu, TEXT("Images"));
|
||||
@ -189,7 +189,7 @@ void consolewin_info::update_menu()
|
||||
AppendMenu(devicesubmenu, flags_for_exists, new_item + DEVOPTION_CASSETTE_FASTFORWARD, TEXT("Fast Forward"));
|
||||
}
|
||||
|
||||
auto tc_buf = tstring_from_utf8(string_format("%s :%s", img.device().name(), img.exists() ? img.filename() : "[empty slot]").c_str());
|
||||
osd::text::tstring tc_buf = osd::text::to_tstring(string_format("%s :%s", img.device().name(), img.exists() ? img.filename() : "[empty slot]"));
|
||||
ModifyMenu(m_devices_menu, cnt, MF_BYPOSITION | MF_POPUP, (UINT_PTR)devicesubmenu, tc_buf.c_str());
|
||||
|
||||
cnt++;
|
||||
@ -214,7 +214,7 @@ bool consolewin_info::handle_command(WPARAM wparam, LPARAM lparam)
|
||||
std::string filter;
|
||||
build_generic_filter(img, false, filter);
|
||||
{
|
||||
auto t_filter = tstring_from_utf8(filter.c_str());
|
||||
osd::text::tstring t_filter = osd::text::to_tstring(filter);
|
||||
|
||||
// convert a pipe-char delimited string into a NUL delimited string
|
||||
for (int i = 0; t_filter[i] != '\0'; i++)
|
||||
@ -241,7 +241,7 @@ bool consolewin_info::handle_command(WPARAM wparam, LPARAM lparam)
|
||||
|
||||
if (GetOpenFileName(&ofn))
|
||||
{
|
||||
auto utf8_buf = utf8_from_tstring(selectedFilename);
|
||||
auto utf8_buf = osd::text::from_tstring(selectedFilename);
|
||||
img->load(utf8_buf.c_str());
|
||||
}
|
||||
}
|
||||
@ -252,7 +252,7 @@ bool consolewin_info::handle_command(WPARAM wparam, LPARAM lparam)
|
||||
std::string filter;
|
||||
build_generic_filter(img, true, filter);
|
||||
{
|
||||
auto t_filter = tstring_from_utf8(filter.c_str());
|
||||
osd::text::tstring t_filter = osd::text::to_tstring(filter);
|
||||
// convert a pipe-char delimited string into a NUL delimited string
|
||||
for (int i = 0; t_filter[i] != '\0'; i++)
|
||||
{
|
||||
@ -278,7 +278,7 @@ bool consolewin_info::handle_command(WPARAM wparam, LPARAM lparam)
|
||||
|
||||
if (GetSaveFileName(&ofn))
|
||||
{
|
||||
auto utf8_buf = utf8_from_tstring(selectedFilename);
|
||||
auto utf8_buf = osd::text::from_tstring(selectedFilename);
|
||||
img->create(utf8_buf.c_str(), img->device_get_indexed_creatable_format(0), nullptr);
|
||||
}
|
||||
}
|
||||
|
@ -268,7 +268,7 @@ HWND debugview_info::create_source_combobox(HWND parent, LONG_PTR userdata)
|
||||
int const length = strlen(source->name());
|
||||
if (length > maxlength)
|
||||
maxlength = length;
|
||||
auto t_name = tstring_from_utf8(source->name());
|
||||
auto t_name = osd::text::to_tstring(source->name());
|
||||
SendMessage(result, CB_ADDSTRING, 0, (LPARAM)t_name.c_str());
|
||||
}
|
||||
if (cursource != nullptr)
|
||||
|
@ -79,7 +79,7 @@ void editwin_info::set_editwnd_bounds(RECT const &bounds)
|
||||
|
||||
void editwin_info::set_editwnd_text(char const *text)
|
||||
{
|
||||
auto tc_buffer = tstring_from_utf8(text);
|
||||
auto tc_buffer = osd::text::to_tstring(text);
|
||||
SendMessage(m_editwnd, WM_SETTEXT, (WPARAM)0, (LPARAM)tc_buffer.c_str());
|
||||
}
|
||||
|
||||
@ -187,7 +187,7 @@ LRESULT editwin_info::edit_proc(UINT message, WPARAM wparam, LPARAM lparam)
|
||||
|
||||
// process
|
||||
{
|
||||
auto utf8_buffer = utf8_from_tstring(buffer);
|
||||
auto utf8_buffer = osd::text::from_tstring(buffer);
|
||||
process_string(utf8_buffer.c_str());
|
||||
}
|
||||
break;
|
||||
|
@ -27,7 +27,7 @@ ui_metrics::ui_metrics(osd_options const &options) :
|
||||
char const *const face = options.debugger_font();
|
||||
|
||||
// create a standard font
|
||||
auto t_face = tstring_from_utf8((!*face || !strcmp(OSDOPTVAL_AUTO, face)) ? "Lucida Console" : face);
|
||||
auto t_face = osd::text::to_tstring((!*face || !strcmp(OSDOPTVAL_AUTO, face)) ? "Lucida Console" : face);
|
||||
m_debug_font = CreateFont(-MulDiv((size <= 0) ? 9 : size, GetDeviceCaps(temp_dc, LOGPIXELSY), 72), 0, 0, 0, FW_MEDIUM, FALSE, FALSE, FALSE,
|
||||
ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FIXED_PITCH, t_face.c_str());
|
||||
|
||||
|
@ -91,7 +91,7 @@ const directory::entry *win_directory::read()
|
||||
m_is_first = false;
|
||||
|
||||
// extract the data
|
||||
utf8_from_tstring(m_name, m_data.cFileName);
|
||||
osd::text::from_tstring(m_name, m_data.cFileName);
|
||||
m_entry.name = m_name.c_str();
|
||||
m_entry.type = win_attributes_to_entry_type(m_data.dwFileAttributes);
|
||||
m_entry.size = m_data.nFileSizeLow | (std::uint64_t(m_data.nFileSizeHigh) << 32);
|
||||
@ -112,7 +112,7 @@ bool win_directory::open_impl(std::string const &dirname)
|
||||
std::string dirfilter = string_format("%s\\*.*", dirname);
|
||||
|
||||
// convert the path to TCHARs
|
||||
auto t_dirfilter = tstring_from_utf8(dirfilter.c_str());
|
||||
osd::text::tstring t_dirfilter = osd::text::to_tstring(dirfilter);
|
||||
|
||||
// attempt to find the first file
|
||||
m_find = FindFirstFileEx(t_dirfilter.c_str(), FindExInfoStandard, &m_data, FindExSearchNameMatch, nullptr, 0);
|
||||
|
@ -173,7 +173,7 @@ osd_file::error osd_file::open(std::string const &orig_path, UINT32 openflags, p
|
||||
return win_open_ptty(path, openflags, file, filesize);
|
||||
|
||||
// convert path to TCHAR
|
||||
auto t_path = tstring_from_utf8(path.c_str());
|
||||
osd::text::tstring t_path = osd::text::to_tstring(path);
|
||||
|
||||
// convert the path into something Windows compatible (the actual interesting part appears
|
||||
// to have been commented out???)
|
||||
@ -274,7 +274,7 @@ osd_file::error osd_file::openpty(ptr &file, std::string &name)
|
||||
|
||||
osd_file::error osd_file::remove(std::string const &filename)
|
||||
{
|
||||
auto tempstr = tstring_from_utf8(filename.c_str());
|
||||
osd::text::tstring tempstr = osd::text::to_tstring(filename);
|
||||
|
||||
error filerr = error::NONE;
|
||||
if (!DeleteFile(tempstr.c_str()))
|
||||
@ -301,7 +301,7 @@ int osd_get_physical_drive_geometry(const char *filename, UINT32 *cylinders, UIN
|
||||
return FALSE;
|
||||
|
||||
// do a create file on the drive
|
||||
auto t_filename = tstring_from_utf8(filename);
|
||||
auto t_filename = osd::text::to_tstring(filename);
|
||||
file = CreateFile(t_filename.c_str(), GENERIC_READ, FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING, nullptr);
|
||||
if (file == INVALID_HANDLE_VALUE)
|
||||
return FALSE;
|
||||
@ -338,7 +338,7 @@ int osd_get_physical_drive_geometry(const char *filename, UINT32 *cylinders, UIN
|
||||
std::unique_ptr<osd::directory::entry> osd_stat(const std::string &path)
|
||||
{
|
||||
// convert the path to TCHARs
|
||||
auto t_path = tstring_from_utf8(path.c_str());
|
||||
osd::text::tstring t_path = osd::text::to_tstring(path);
|
||||
|
||||
// is this path a root directory (e.g. - C:)?
|
||||
WIN32_FIND_DATA find_data;
|
||||
@ -382,7 +382,7 @@ std::unique_ptr<osd::directory::entry> osd_stat(const std::string &path)
|
||||
osd_file::error osd_get_full_path(std::string &dst, std::string const &path)
|
||||
{
|
||||
// convert the path to TCHARs
|
||||
auto t_path = tstring_from_utf8(path.c_str());
|
||||
osd::text::tstring t_path = osd::text::to_tstring(path);
|
||||
|
||||
// cannonicalize the path
|
||||
TCHAR buffer[MAX_PATH];
|
||||
@ -390,7 +390,7 @@ osd_file::error osd_get_full_path(std::string &dst, std::string const &path)
|
||||
return win_error_to_file_error(GetLastError());
|
||||
|
||||
// convert the result back to UTF-8
|
||||
utf8_from_tstring(dst, buffer);
|
||||
osd::text::from_tstring(dst, buffer);
|
||||
return osd_file::error::NONE;
|
||||
}
|
||||
|
||||
@ -402,7 +402,7 @@ osd_file::error osd_get_full_path(std::string &dst, std::string const &path)
|
||||
|
||||
bool osd_is_absolute_path(std::string const &path)
|
||||
{
|
||||
auto t_path = tstring_from_utf8(path.c_str());
|
||||
osd::text::tstring t_path = osd::text::to_tstring(path);
|
||||
return !PathIsRelative(t_path.c_str());
|
||||
}
|
||||
|
||||
|
@ -87,7 +87,7 @@ bool win_check_ptty_path(std::string const &path)
|
||||
|
||||
osd_file::error win_open_ptty(std::string const &path, std::uint32_t openflags, osd_file::ptr &file, std::uint64_t &filesize)
|
||||
{
|
||||
auto t_name = tstring_from_utf8(path.c_str());
|
||||
osd::text::tstring t_name = osd::text::to_tstring(path);
|
||||
|
||||
HANDLE pipe = CreateNamedPipe(t_name.c_str(), PIPE_ACCESS_DUPLEX, PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_NOWAIT, 1, 32, 32, 0, nullptr);
|
||||
|
||||
|
@ -362,7 +362,7 @@ public:
|
||||
bool italic = (strreplace(name, "[I]", "") + strreplace(name, "[i]", "") > 0);
|
||||
|
||||
// convert the face name
|
||||
std::wstring familyName = wstring_from_utf8(name.c_str());
|
||||
std::wstring familyName = osd::text::to_wstring(name.c_str());
|
||||
|
||||
// find the font
|
||||
HR_RET0(find_font(
|
||||
@ -757,7 +757,7 @@ public:
|
||||
std::unique_ptr<WCHAR[]> name = nullptr;
|
||||
HR_RET0(get_localized_familyname(names, name));
|
||||
|
||||
std::string utf8_name = utf8_from_wstring(name.get());
|
||||
std::string utf8_name = osd::text::from_wstring(name.get());
|
||||
name.reset();
|
||||
|
||||
// Review: should the config name, be unlocalized?
|
||||
|
@ -85,7 +85,7 @@ bool osd_font_windows::open(std::string const &font_path, std::string const &_na
|
||||
logfont.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
|
||||
|
||||
// copy in the face name
|
||||
std::basic_string<TCHAR> face = tstring_from_utf8(name.c_str());
|
||||
osd::text::tstring face = osd::text::to_tstring(name);
|
||||
_tcsncpy(logfont.lfFaceName, face.c_str(), ARRAY_LENGTH(logfont.lfFaceName));
|
||||
logfont.lfFaceName[sizeof(logfont.lfFaceName) / sizeof(TCHAR)-1] = 0;
|
||||
|
||||
@ -110,7 +110,7 @@ bool osd_font_windows::open(std::string const &font_path, std::string const &_na
|
||||
}
|
||||
|
||||
// if it doesn't match our request, fail
|
||||
std::string utf = utf8_from_tstring(&realname[0]);
|
||||
std::string utf = osd::text::from_tstring(&realname[0]);
|
||||
int result = core_stricmp(utf.c_str(), name.c_str());
|
||||
|
||||
// if we didn't match, nuke our font and fall back
|
||||
@ -300,7 +300,7 @@ private:
|
||||
static int CALLBACK font_family_callback(LOGFONT const *lpelfe, TEXTMETRIC const *lpntme, DWORD FontType, LPARAM lParam)
|
||||
{
|
||||
auto &result = *reinterpret_cast<std::vector<std::pair<std::string, std::string> > *>(lParam);
|
||||
std::string face = utf8_from_tstring(lpelfe->lfFaceName);
|
||||
std::string face = osd::text::from_tstring(lpelfe->lfFaceName);
|
||||
if ((face[0] != '@') && (result.empty() || (result.back().first != face))) result.emplace_back(face, face);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -262,14 +262,14 @@ public:
|
||||
}
|
||||
|
||||
// convert the name to utf8
|
||||
std::string namestring = utf8_from_tstring(instance.tszName);
|
||||
std::string namestring = osd::text::from_tstring(instance.tszName);
|
||||
|
||||
// if no suffix, return as-is
|
||||
if (suffix == nullptr)
|
||||
return namestring;
|
||||
|
||||
// convert the suffix to utf8
|
||||
std::string suffix_utf8 = utf8_from_tstring(suffix);
|
||||
std::string suffix_utf8 = osd::text::from_tstring(suffix);
|
||||
|
||||
// Concat the name and suffix
|
||||
return namestring + " " + suffix_utf8;
|
||||
|
@ -79,7 +79,7 @@ public:
|
||||
HRESULT result;
|
||||
|
||||
// convert instance name to utf8
|
||||
std::string utf8_instance_name = utf8_from_tstring(instance->tszInstanceName);
|
||||
std::string utf8_instance_name = osd::text::from_tstring(instance->tszInstanceName);
|
||||
|
||||
// set device id to name
|
||||
std::string utf8_instance_id = utf8_instance_name;
|
||||
|
@ -573,10 +573,10 @@ protected:
|
||||
std::wstring name = rawinput_device_improve_name(tname.get());
|
||||
|
||||
// convert name to utf8
|
||||
std::string utf8_name = utf8_from_wstring(name.c_str());
|
||||
std::string utf8_name = osd::text::from_wstring(name.c_str());
|
||||
|
||||
// set device id to raw input name
|
||||
std::string utf8_id = utf8_from_wstring(tname.get());
|
||||
std::string utf8_id = osd::text::from_wstring(tname.get());
|
||||
|
||||
devinfo = devicelist()->create_device<TDevice>(machine, utf8_name.c_str(), utf8_id.c_str(), *this);
|
||||
|
||||
@ -679,7 +679,7 @@ protected:
|
||||
// generate the name
|
||||
if (GetKeyNameText(((keynum & 0x7f) << 16) | ((keynum & 0x80) << 17), keyname, ARRAY_LENGTH(keyname)) == 0)
|
||||
_sntprintf(keyname, ARRAY_LENGTH(keyname), TEXT("Scan%03d"), keynum);
|
||||
std::string name = utf8_from_tstring(keyname);
|
||||
std::string name = osd::text::from_tstring(keyname);
|
||||
|
||||
// add the item to the device
|
||||
devinfo->device()->add_item(name.c_str(), itemid, generic_button_get_state<std::uint8_t>, &devinfo->keyboard.state[keynum]);
|
||||
|
@ -297,7 +297,7 @@ static char *get_clipboard_text_by_format(UINT format, std::string (*convert)(LP
|
||||
|
||||
static std::string convert_wide(LPCVOID data)
|
||||
{
|
||||
return utf8_from_wstring((LPCWSTR) data);
|
||||
return osd::text::from_wstring((LPCWSTR) data);
|
||||
}
|
||||
|
||||
//============================================================
|
||||
@ -306,7 +306,7 @@ static std::string convert_wide(LPCVOID data)
|
||||
|
||||
static std::string convert_ansi(LPCVOID data)
|
||||
{
|
||||
return utf8_from_astring((LPCSTR) data);
|
||||
return osd::text::from_astring((LPCSTR) data);
|
||||
}
|
||||
|
||||
//============================================================
|
||||
@ -367,7 +367,7 @@ protected:
|
||||
|
||||
for (auto const &library : m_libraries)
|
||||
{
|
||||
auto tempstr = tstring_from_utf8(library.c_str());
|
||||
osd::text::tstring tempstr = osd::text::to_tstring(library);
|
||||
HMODULE module = load_library(tempstr.c_str());
|
||||
|
||||
if (module != nullptr)
|
||||
|
@ -46,7 +46,7 @@ public:
|
||||
m_output->GetDesc(&desc);
|
||||
|
||||
// fetch the latest info about the monitor
|
||||
m_name = utf8_from_wstring(desc.DeviceName);
|
||||
m_name = osd::text::from_wstring(desc.DeviceName);
|
||||
|
||||
m_pos_size = RECT_to_osd_rect(desc.DesktopCoordinates);
|
||||
m_usuable_pos_size = RECT_to_osd_rect(desc.DesktopCoordinates);
|
||||
@ -139,7 +139,7 @@ protected:
|
||||
float aspect = float(coords->right - coords->left) / float(coords->bottom - coords->top);
|
||||
|
||||
// allocate a new monitor info
|
||||
std::string devicename = utf8_from_wstring(desc.DeviceName);
|
||||
std::string devicename = osd::text::from_wstring(desc.DeviceName);
|
||||
|
||||
// allocate a new monitor info
|
||||
auto monitor = std::make_shared<dxgi_monitor_info>(*this, desc.Monitor, devicename.c_str(), aspect, output);
|
||||
|
@ -45,7 +45,7 @@ public:
|
||||
result = GetMonitorInfo(reinterpret_cast<HMONITOR>(oshandle()), static_cast<LPMONITORINFO>(&m_info));
|
||||
assert(result);
|
||||
|
||||
m_name = utf8_from_tstring(m_info.szDevice);
|
||||
m_name = osd::text::from_tstring(m_info.szDevice);
|
||||
|
||||
m_pos_size = RECT_to_osd_rect(m_info.rcMonitor);
|
||||
m_usuable_pos_size = RECT_to_osd_rect(m_info.rcWork);
|
||||
@ -122,7 +122,7 @@ private:
|
||||
float aspect = static_cast<float>(info.rcMonitor.right - info.rcMonitor.left) / static_cast<float>(info.rcMonitor.bottom - info.rcMonitor.top);
|
||||
|
||||
// allocate a new monitor info
|
||||
auto temp = utf8_from_tstring(info.szDevice);
|
||||
auto temp = osd::text::from_tstring(info.szDevice);
|
||||
|
||||
// copy in the data
|
||||
auto monitor = std::make_shared<win32_monitor_info>(*self, handle, temp.c_str(), aspect);
|
||||
|
@ -2589,7 +2589,7 @@ effect::effect(shaders *shadersys, IDirect3DDevice9 *dev, const char *name, cons
|
||||
|
||||
char name_cstr[1024];
|
||||
sprintf(name_cstr, "%s\\%s", path, name);
|
||||
auto effect_name = tstring_from_utf8(name_cstr);
|
||||
auto effect_name = osd::text::to_tstring(name_cstr);
|
||||
|
||||
HRESULT hr = (*shadersys->d3dx_create_effect_from_file_ptr)(dev, effect_name.c_str(), nullptr, nullptr, 0, nullptr, &m_effect, &buffer_errors);
|
||||
if (FAILED(hr))
|
||||
|
@ -12,122 +12,272 @@
|
||||
#undef min
|
||||
#undef max
|
||||
#include <algorithm>
|
||||
#include <assert.h>
|
||||
// MAMEOS headers
|
||||
#include "strconv.h"
|
||||
|
||||
#if defined(SDLMAME_WIN32) || defined(OSD_WINDOWS)
|
||||
|
||||
namespace
|
||||
{
|
||||
// class designed to provide inputs to WideCharToMultiByte() and MultiByteToWideChar()
|
||||
template<typename T>
|
||||
class string_source
|
||||
{
|
||||
public:
|
||||
string_source(const T *str) : m_str(str), m_char_count(-1)
|
||||
{
|
||||
assert(str);
|
||||
}
|
||||
|
||||
string_source(const std::basic_string<T> &str) : m_str(str.c_str()), m_char_count((int)str.size() + 1)
|
||||
{
|
||||
}
|
||||
|
||||
const T *string() const { return m_str; }; // returns pointer to actual characters
|
||||
int char_count() const { return m_char_count; } // returns the character count (including NUL terminater), or -1 if NUL terminated
|
||||
|
||||
private:
|
||||
const T *m_str;
|
||||
int m_char_count;
|
||||
};
|
||||
};
|
||||
|
||||
namespace osd {
|
||||
namespace text {
|
||||
|
||||
//============================================================
|
||||
// astring_from_utf8
|
||||
// mbstring_from_wstring
|
||||
//============================================================
|
||||
|
||||
std::string &astring_from_utf8(std::string &dst, const char *s)
|
||||
static std::string &mbstring_from_wstring(std::string &dst, UINT code_page, const string_source<wchar_t> &src)
|
||||
{
|
||||
// convert UTF-16 to the specified code page
|
||||
int dst_char_count = WideCharToMultiByte(code_page, 0, src.string(), src.char_count(), nullptr, 0, nullptr, nullptr);
|
||||
dst.resize(dst_char_count - 1);
|
||||
WideCharToMultiByte(code_page, 0, src.string(), src.char_count(), &dst[0], dst_char_count, nullptr, nullptr);
|
||||
|
||||
return dst;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// wstring_from_mbstring
|
||||
//============================================================
|
||||
|
||||
static std::wstring &wstring_from_mbstring(std::wstring &dst, const string_source<char> &src, UINT code_page)
|
||||
{
|
||||
// convert multibyte string (in specified code page) to UTF-16
|
||||
int dst_char_count = MultiByteToWideChar(code_page, 0, src.string(), src.char_count(), nullptr, 0);
|
||||
dst.resize(dst_char_count - 1);
|
||||
MultiByteToWideChar(CP_UTF8, 0, src.string(), src.char_count(), &dst[0], dst_char_count - 1);
|
||||
|
||||
return dst;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// to_astring
|
||||
//============================================================
|
||||
|
||||
std::string &to_astring(std::string &dst, const std::string &s)
|
||||
{
|
||||
// convert MAME string (UTF-8) to UTF-16
|
||||
std::basic_string<WCHAR> wstring = wstring_from_utf8(s);
|
||||
std::wstring wstring = to_wstring(s);
|
||||
|
||||
// convert UTF-16 to "ANSI code page" string
|
||||
int char_count = WideCharToMultiByte(CP_ACP, 0, wstring.c_str(), wstring.size(), nullptr, 0, nullptr, nullptr);
|
||||
dst.resize(char_count);
|
||||
WideCharToMultiByte(CP_ACP, 0, wstring.c_str(), wstring.size(), &dst[0], char_count, nullptr, nullptr);
|
||||
|
||||
return dst;
|
||||
return mbstring_from_wstring(dst, CP_ACP, string_source<wchar_t>(wstring));
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// astring_from_utf8
|
||||
//============================================================
|
||||
|
||||
std::string astring_from_utf8(const char *s)
|
||||
{
|
||||
std::string result;
|
||||
astring_from_utf8(result, s);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// utf8_from_astring
|
||||
// to_astring
|
||||
//============================================================
|
||||
|
||||
std::string &utf8_from_astring(std::string &dst, const CHAR *s)
|
||||
{
|
||||
// convert "ANSI code page" string to UTF-16
|
||||
int char_count = MultiByteToWideChar(CP_ACP, 0, s, -1, nullptr, 0);
|
||||
std::wstring wstring(char_count - 1, 0);
|
||||
MultiByteToWideChar(CP_ACP, 0, s, -1, &wstring[0], char_count - 1);
|
||||
|
||||
// convert UTF-16 to MAME string (UTF-8)
|
||||
return utf8_from_wstring(dst, wstring.c_str());
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// utf8_from_astring
|
||||
//============================================================
|
||||
|
||||
std::string utf8_from_astring(const CHAR *s)
|
||||
{
|
||||
std::string result;
|
||||
utf8_from_astring(result, s);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// wstring_from_utf8
|
||||
//============================================================
|
||||
|
||||
std::wstring &wstring_from_utf8(std::wstring &dst, const char *s)
|
||||
std::string &to_astring(std::string &dst, const char *s)
|
||||
{
|
||||
// convert MAME string (UTF-8) to UTF-16
|
||||
int char_count = MultiByteToWideChar(CP_UTF8, 0, s, -1, nullptr, 0);
|
||||
dst.resize(char_count - 1);
|
||||
MultiByteToWideChar(CP_UTF8, 0, s, -1, &dst[0], char_count - 1);
|
||||
std::wstring wstring = to_wstring(s);
|
||||
|
||||
return dst;
|
||||
// convert UTF-16 to "ANSI code page" string
|
||||
return mbstring_from_wstring(dst, CP_ACP, string_source<wchar_t>(wstring));
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// wstring_from_utf8
|
||||
// to_astring
|
||||
//============================================================
|
||||
|
||||
std::wstring wstring_from_utf8(const char *s)
|
||||
{
|
||||
std::wstring result;
|
||||
wstring_from_utf8(result, s);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// utf8_from_wstring
|
||||
//============================================================
|
||||
|
||||
std::string &utf8_from_wstring(std::string &dst, const WCHAR *s)
|
||||
{
|
||||
// convert UTF-16 to MAME string (UTF-8)
|
||||
int char_count = WideCharToMultiByte(CP_UTF8, 0, s, -1, nullptr, 0, nullptr, nullptr);
|
||||
dst.resize(char_count - 1);
|
||||
WideCharToMultiByte(CP_UTF8, 0, s, -1, &dst[0], char_count - 1, nullptr, nullptr);
|
||||
|
||||
return dst;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// utf8_from_wstring
|
||||
//============================================================
|
||||
|
||||
std::string utf8_from_wstring(const WCHAR *s)
|
||||
std::string to_astring(const std::string &s)
|
||||
{
|
||||
std::string result;
|
||||
utf8_from_wstring(result, s);
|
||||
to_astring(result, s);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// to_astring
|
||||
//============================================================
|
||||
|
||||
std::string to_astring(const char *s)
|
||||
{
|
||||
std::string result;
|
||||
to_astring(result, s);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// from_astring
|
||||
//============================================================
|
||||
|
||||
std::string &from_astring(std::string &dst, const std::string &s)
|
||||
{
|
||||
// convert "ANSI code page" string to UTF-16
|
||||
std::wstring wstring;
|
||||
wstring_from_mbstring(wstring, string_source<char>(s), CP_ACP);
|
||||
|
||||
// convert UTF-16 to MAME string (UTF-8)
|
||||
return from_wstring(dst, wstring);
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// from_astring
|
||||
//============================================================
|
||||
|
||||
std::string &from_astring(std::string &dst, const CHAR *s)
|
||||
{
|
||||
// convert "ANSI code page" string to UTF-16
|
||||
std::wstring wstring;
|
||||
wstring_from_mbstring(wstring, string_source<char>(s), CP_ACP);
|
||||
|
||||
// convert UTF-16 to MAME string (UTF-8)
|
||||
return from_wstring(dst, wstring);
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// from_astring
|
||||
//============================================================
|
||||
|
||||
std::string from_astring(const std::string &s)
|
||||
{
|
||||
std::string result;
|
||||
from_astring(result, s);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// from_astring
|
||||
//============================================================
|
||||
|
||||
std::string from_astring(const CHAR *s)
|
||||
{
|
||||
std::string result;
|
||||
from_astring(result, s);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// to_wstring
|
||||
//============================================================
|
||||
|
||||
std::wstring &to_wstring(std::wstring &dst, const std::string &s)
|
||||
{
|
||||
// convert MAME string (UTF-8) to UTF-16
|
||||
return wstring_from_mbstring(dst, string_source<char>(s), CP_UTF8);
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// to_wstring
|
||||
//============================================================
|
||||
|
||||
std::wstring &to_wstring(std::wstring &dst, const char *s)
|
||||
{
|
||||
// convert MAME string (UTF-8) to UTF-16
|
||||
return wstring_from_mbstring(dst, string_source<char>(s), CP_UTF8);
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// to_wstring
|
||||
//============================================================
|
||||
|
||||
std::wstring to_wstring(const std::string &s)
|
||||
{
|
||||
std::wstring result;
|
||||
to_wstring(result, s);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// to_wstring
|
||||
//============================================================
|
||||
|
||||
std::wstring to_wstring(const char *s)
|
||||
{
|
||||
std::wstring result;
|
||||
to_wstring(result, s);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// from_wstring
|
||||
//============================================================
|
||||
|
||||
std::string &from_wstring(std::string &dst, const std::wstring &s)
|
||||
{
|
||||
// convert UTF-16 to MAME string (UTF-8)
|
||||
return mbstring_from_wstring(dst, CP_UTF8, string_source<wchar_t>(s));
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// from_wstring
|
||||
//============================================================
|
||||
|
||||
std::string &from_wstring(std::string &dst, const WCHAR *s)
|
||||
{
|
||||
// convert UTF-16 to MAME string (UTF-8)
|
||||
return mbstring_from_wstring(dst, CP_UTF8, string_source<wchar_t>(s));
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// from_wstring
|
||||
//============================================================
|
||||
|
||||
std::string from_wstring(const std::wstring &s)
|
||||
{
|
||||
std::string result;
|
||||
from_wstring(result, s);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
// from_wstring
|
||||
//============================================================
|
||||
|
||||
std::string from_wstring(const WCHAR *s)
|
||||
{
|
||||
std::string result;
|
||||
from_wstring(result, s);
|
||||
return result;
|
||||
}
|
||||
|
||||
}; // namespace text
|
||||
}; // namespace osd
|
||||
|
||||
|
||||
//============================================================
|
||||
// osd_uchar_from_osdchar
|
||||
//============================================================
|
||||
@ -154,6 +304,7 @@ error:
|
||||
return static_cast<int>(count);
|
||||
}
|
||||
|
||||
|
||||
#else
|
||||
#include "unicode.h"
|
||||
//============================================================
|
||||
|
@ -25,26 +25,41 @@
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
// the result of these functions has to be released with osd_free()
|
||||
namespace osd
|
||||
{
|
||||
namespace text
|
||||
{
|
||||
std::string to_astring(const std::string &s);
|
||||
std::string to_astring(const char *s);
|
||||
std::string &to_astring(std::string &dst, const std::string &s);
|
||||
std::string &to_astring(std::string &dst, const char *s);
|
||||
std::string from_astring(const std::string &s);
|
||||
std::string from_astring(const CHAR *s);
|
||||
std::string &from_astring(std::string &dst, const std::string &s);
|
||||
std::string &from_astring(std::string &dst, const CHAR *s);
|
||||
|
||||
std::string astring_from_utf8(const char *s);
|
||||
std::string &astring_from_utf8(std::string &dst, const char *s);
|
||||
std::string utf8_from_astring(const CHAR *s);
|
||||
std::string &utf8_from_astring(std::string &dst, const CHAR *s);
|
||||
|
||||
std::wstring wstring_from_utf8(const char *s);
|
||||
std::wstring &wstring_from_utf8(std::wstring &dst, const char *s);
|
||||
std::string utf8_from_wstring(const WCHAR *s);
|
||||
std::string &utf8_from_wstring(std::string &dst, const WCHAR *s);
|
||||
std::wstring to_wstring(const std::string &s);
|
||||
std::wstring to_wstring(const char *s);
|
||||
std::wstring &to_wstring(std::wstring &dst, const std::string &s);
|
||||
std::wstring &to_wstring(std::wstring &dst, const char *s);
|
||||
std::string from_wstring(const std::wstring &s);
|
||||
std::string from_wstring(const WCHAR *s);
|
||||
std::string &from_wstring(std::string &dst, const std::wstring &s);
|
||||
std::string &from_wstring(std::string &dst, const WCHAR *s);
|
||||
|
||||
#ifdef UNICODE
|
||||
#define tstring_from_utf8 wstring_from_utf8
|
||||
#define utf8_from_tstring utf8_from_wstring
|
||||
typedef std::wstring tstring;
|
||||
#define to_tstring to_wstring
|
||||
#define from_tstring from_wstring
|
||||
#else // !UNICODE
|
||||
#define tstring_from_utf8 astring_from_utf8
|
||||
#define utf8_from_tstring utf8_from_astring
|
||||
typedef std::string tstring;
|
||||
#define to_tstring to_astring
|
||||
#define from_tstring from_astring
|
||||
#endif // UNICODE
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // defined(WIN32)
|
||||
|
||||
|
||||
|
@ -36,7 +36,7 @@ extern "C" int _tmain(int argc, TCHAR **argv)
|
||||
// convert arguments to UTF-8
|
||||
for (i = 0; i < argc; i++)
|
||||
{
|
||||
argv_vectors[i] = utf8_from_tstring(argv[i]);
|
||||
argv_vectors[i] = osd::text::from_tstring(argv[i]);
|
||||
utf8_argv[i] = (char *) argv_vectors[i].c_str();
|
||||
}
|
||||
|
||||
|
@ -99,8 +99,8 @@ public:
|
||||
char buffer[1024];
|
||||
vsnprintf(buffer, ARRAY_LENGTH(buffer), msg, args);
|
||||
|
||||
osd_unique_wstr wcbuffer(wstring_from_utf8(buffer));
|
||||
osd_unique_wstr wcappname(wstring_from_utf8(emulator_info::get_appname()));
|
||||
osd_unique_wstr wcbuffer(osd::text::to_wstring(buffer));
|
||||
osd_unique_wstr wcappname(osd::text::to_wstring(emulator_info::get_appname()));
|
||||
|
||||
auto dlg = ref new MessageDialog(ref new Platform::String(wcbuffer.get()), ref new Platform::String(wcappname.get()));
|
||||
dlg->ShowAsync();
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
void win_output_debug_string_utf8(const char *string)
|
||||
{
|
||||
auto t_string = tstring_from_utf8(string);
|
||||
auto t_string = osd::text::to_tstring(string);
|
||||
OutputDebugString(t_string.c_str());
|
||||
}
|
||||
|
||||
@ -42,13 +42,13 @@ int win_message_box_utf8(HWND window, const char *text, const char *caption, UIN
|
||||
|
||||
if (text)
|
||||
{
|
||||
ts_text = tstring_from_utf8(text);
|
||||
ts_text = osd::text::to_tstring(text);
|
||||
t_text = ts_text.c_str();
|
||||
}
|
||||
|
||||
if (caption)
|
||||
{
|
||||
ts_caption = tstring_from_utf8(caption);
|
||||
ts_caption = osd::text::to_tstring(caption);
|
||||
t_caption = ts_caption.c_str();
|
||||
}
|
||||
|
||||
@ -69,7 +69,7 @@ BOOL win_set_window_text_utf8(HWND window, const char *text)
|
||||
|
||||
if (text)
|
||||
{
|
||||
ts_text = tstring_from_utf8(text);
|
||||
ts_text = osd::text::to_tstring(text);
|
||||
t_text = ts_text.c_str();
|
||||
}
|
||||
|
||||
@ -100,14 +100,14 @@ std::string win_get_window_text_utf8(HWND window)
|
||||
|
||||
TCHAR *buffer = (TCHAR *) alloca((length + 1) * sizeof(TCHAR));
|
||||
GetWindowText(window, buffer, length + 1);
|
||||
return utf8_from_tstring(buffer);
|
||||
return osd::text::from_tstring(buffer);
|
||||
}
|
||||
#else
|
||||
{
|
||||
TCHAR t_buffer[256];
|
||||
auto title = Windows::UI::ViewManagement::ApplicationView::GetForCurrentView()->Title;
|
||||
wcsncpy(t_buffer, title->Data(), ARRAY_LENGTH(t_buffer));
|
||||
return utf8_from_tstring(t_buffer);
|
||||
return osd::text::from_tstring(t_buffer);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -122,13 +122,13 @@ HWND win_create_window_ex_utf8(DWORD exstyle, const char* classname, const char*
|
||||
int x, int y, int width, int height, HWND parent, HMENU menu,
|
||||
HINSTANCE instance, void* param)
|
||||
{
|
||||
std::basic_string<TCHAR> ts_classname = tstring_from_utf8(classname);
|
||||
std::basic_string<TCHAR> ts_classname = osd::text::to_tstring(classname);
|
||||
|
||||
LPCTSTR t_windowname = nullptr;
|
||||
std::basic_string<TCHAR> ts_windowname;
|
||||
if (windowname != nullptr)
|
||||
{
|
||||
ts_windowname = tstring_from_utf8(windowname);
|
||||
ts_windowname = osd::text::to_tstring(windowname);
|
||||
t_windowname = ts_windowname.c_str();
|
||||
}
|
||||
|
||||
|
@ -106,9 +106,9 @@ void osd_subst_env(std::string &dst, const std::string &src)
|
||||
{
|
||||
TCHAR buffer[MAX_PATH];
|
||||
|
||||
auto t_src = tstring_from_utf8(src.c_str());
|
||||
osd::text::tstring t_src = osd::text::to_tstring(src);
|
||||
ExpandEnvironmentStrings(t_src.c_str(), buffer, ARRAY_LENGTH(buffer));
|
||||
utf8_from_tstring(dst, buffer);
|
||||
osd::text::from_tstring(dst, buffer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user