mirror of
https://github.com/holub/mame
synced 2025-07-07 02:50:50 +03:00
Cleanups and version bump.
This commit is contained in:
parent
535a84c908
commit
6b663f66a7
@ -52,14 +52,14 @@
|
|||||||
For vector instructions, replace the first space on the right of the mnemonic
|
For vector instructions, replace the first space on the right of the mnemonic
|
||||||
with a 'v'.
|
with a 'v'.
|
||||||
|
|
||||||
01-Feb-2010 (Robbbert):
|
01-Feb-2010 (Robbbert):
|
||||||
I've added the actual address, (as shown in the extreme left of the debugger
|
I've added the actual address, (as shown in the extreme left of the debugger
|
||||||
output), so that you can see much easier how the program will flow. Example:
|
output), so that you can see much easier how the program will flow. Example:
|
||||||
|
|
||||||
+C XXX(##/##) XXX(##/##)
|
+C XXX(##/##) XXX(##/##)
|
||||||
|
|
||||||
The X value shows where the data word is located, and the Y value is the
|
The X value shows where the data word is located, and the Y value is the
|
||||||
address of the next instruction.
|
address of the next instruction.
|
||||||
*/
|
*/
|
||||||
enum _format_type {branch, shiftl, shiftr, multiply, store, swap, one_address, two_address};
|
enum _format_type {branch, shiftl, shiftr, multiply, store, swap, one_address, two_address};
|
||||||
typedef enum _format_type format_type;
|
typedef enum _format_type format_type;
|
||||||
|
@ -116,8 +116,8 @@ enum
|
|||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
/* Official Intel MCS-48 parts */
|
/* Official Intel MCS-48 parts */
|
||||||
CPU_GET_INFO( i8021 ); /* 1k internal ROM, 64 bytes internal RAM */
|
CPU_GET_INFO( i8021 ); /* 1k internal ROM, 64 bytes internal RAM */
|
||||||
CPU_GET_INFO( i8022 ); /* 2k internal ROM, 128 bytes internal RAM */
|
CPU_GET_INFO( i8022 ); /* 2k internal ROM, 128 bytes internal RAM */
|
||||||
CPU_GET_INFO( i8035 ); /* external ROM, 64 bytes internal RAM */
|
CPU_GET_INFO( i8035 ); /* external ROM, 64 bytes internal RAM */
|
||||||
CPU_GET_INFO( i8048 ); /* 1k internal ROM, 64 bytes internal RAM */
|
CPU_GET_INFO( i8048 ); /* 1k internal ROM, 64 bytes internal RAM */
|
||||||
CPU_GET_INFO( i8648 ); /* 1k internal OTP ROM, 64 bytes internal RAM */
|
CPU_GET_INFO( i8648 ); /* 1k internal OTP ROM, 64 bytes internal RAM */
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
Panasonic MN10200 emulator
|
Panasonic MN10200 emulator
|
||||||
|
|
||||||
Written by Olivier Galibert
|
Written by Olivier Galibert
|
||||||
MAME conversion by R. Belmont
|
MAME conversion by R. Belmont
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ static void unemul(mn102_info *mn102)
|
|||||||
INLINE INT32 r24u(mn102_info *mn102, offs_t adr)
|
INLINE INT32 r24u(mn102_info *mn102, offs_t adr)
|
||||||
{
|
{
|
||||||
return mn102_read_word(mn102, adr)|(mn102_read_byte(mn102, adr+2)<<16);
|
return mn102_read_word(mn102, adr)|(mn102_read_byte(mn102, adr+2)<<16);
|
||||||
}
|
}
|
||||||
|
|
||||||
INLINE void w24(mn102_info *mn102, offs_t adr, UINT32 val)
|
INLINE void w24(mn102_info *mn102, offs_t adr, UINT32 val)
|
||||||
{
|
{
|
||||||
@ -330,7 +330,7 @@ INLINE void do_jsr(mn102_info *mn102, UINT32 to, UINT32 ret)
|
|||||||
|
|
||||||
void mn102_force_irq(mn102_info *mn102, int level, int group, int entry)
|
void mn102_force_irq(mn102_info *mn102, int level, int group, int entry)
|
||||||
{
|
{
|
||||||
if(!(mn102->psw & 0x800))
|
if(!(mn102->psw & 0x800))
|
||||||
{
|
{
|
||||||
if(group != 1 || entry != 3)
|
if(group != 1 || entry != 3)
|
||||||
log_event("MN102", "Dropping irq %d %d %d, pc=%x, a3=%x", level, group, entry, mn102->pc, mn102->a[3]);
|
log_event("MN102", "Dropping irq %d %d %d, pc=%x, a3=%x", level, group, entry, mn102->pc, mn102->a[3]);
|
||||||
@ -355,7 +355,7 @@ static CPU_EXECUTE(mn10200)
|
|||||||
|
|
||||||
mn102->cycles = cycles;
|
mn102->cycles = cycles;
|
||||||
|
|
||||||
while(mn102->cycles > 0)
|
while(mn102->cycles > 0)
|
||||||
{
|
{
|
||||||
UINT8 opcode;
|
UINT8 opcode;
|
||||||
|
|
||||||
@ -366,7 +366,7 @@ static CPU_EXECUTE(mn10200)
|
|||||||
// mov dm, (an)
|
// mov dm, (an)
|
||||||
case 0x00: case 0x01: case 0x02: case 0x03: case 0x04: case 0x05: case 0x06: case 0x07:
|
case 0x00: case 0x01: case 0x02: case 0x03: case 0x04: case 0x05: case 0x06: case 0x07:
|
||||||
case 0x08: case 0x09: case 0x0a: case 0x0b: case 0x0c: case 0x0d: case 0x0e: case 0x0f:
|
case 0x08: case 0x09: case 0x0a: case 0x0b: case 0x0c: case 0x0d: case 0x0e: case 0x0f:
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102_write_word(mn102, mn102->a[(opcode>>2)&3], (UINT16)mn102->d[opcode & 3]);
|
mn102_write_word(mn102, mn102->a[(opcode>>2)&3], (UINT16)mn102->d[opcode & 3]);
|
||||||
mn102->pc += 1;
|
mn102->pc += 1;
|
||||||
break;
|
break;
|
||||||
@ -374,7 +374,7 @@ static CPU_EXECUTE(mn10200)
|
|||||||
// movb dm, (an)
|
// movb dm, (an)
|
||||||
case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17:
|
case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17:
|
||||||
case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x1e: case 0x1f:
|
case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x1e: case 0x1f:
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102_write_byte(mn102, mn102->a[(opcode>>2)&3], (UINT8)mn102->d[opcode & 3]);
|
mn102_write_byte(mn102, mn102->a[(opcode>>2)&3], (UINT8)mn102->d[opcode & 3]);
|
||||||
mn102->pc += 1;
|
mn102->pc += 1;
|
||||||
break;
|
break;
|
||||||
@ -382,7 +382,7 @@ static CPU_EXECUTE(mn10200)
|
|||||||
// mov (an), dm
|
// mov (an), dm
|
||||||
case 0x20: case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27:
|
case 0x20: case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27:
|
||||||
case 0x28: case 0x29: case 0x2a: case 0x2b: case 0x2c: case 0x2d: case 0x2e: case 0x2f:
|
case 0x28: case 0x29: case 0x2a: case 0x2b: case 0x2c: case 0x2d: case 0x2e: case 0x2f:
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->d[opcode & 3] = (INT16)mn102_read_word(mn102, mn102->a[(opcode>>2)&3]);
|
mn102->d[opcode & 3] = (INT16)mn102_read_word(mn102, mn102->a[(opcode>>2)&3]);
|
||||||
mn102->pc += 1;
|
mn102->pc += 1;
|
||||||
break;
|
break;
|
||||||
@ -390,7 +390,7 @@ static CPU_EXECUTE(mn10200)
|
|||||||
// movbu (an), dm
|
// movbu (an), dm
|
||||||
case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37:
|
case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37:
|
||||||
case 0x38: case 0x39: case 0x3a: case 0x3b: case 0x3c: case 0x3d: case 0x3e: case 0x3f:
|
case 0x38: case 0x39: case 0x3a: case 0x3b: case 0x3c: case 0x3d: case 0x3e: case 0x3f:
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->d[opcode & 3] = mn102_read_byte(mn102, mn102->a[(opcode>>2)&3]);
|
mn102->d[opcode & 3] = mn102_read_byte(mn102, mn102->a[(opcode>>2)&3]);
|
||||||
mn102->pc += 1;
|
mn102->pc += 1;
|
||||||
break;
|
break;
|
||||||
@ -440,7 +440,7 @@ static CPU_EXECUTE(mn10200)
|
|||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->d[opcode & 3] = (INT8)mn102_read_byte(mn102, mn102->pc+1);
|
mn102->d[opcode & 3] = (INT8)mn102_read_byte(mn102, mn102->pc+1);
|
||||||
mn102->pc += 2;
|
mn102->pc += 2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// add dn, dm
|
// add dn, dm
|
||||||
case 0x90: case 0x91: case 0x92: case 0x93: case 0x94: case 0x95: case 0x96: case 0x97:
|
case 0x90: case 0x91: case 0x92: case 0x93: case 0x94: case 0x95: case 0x96: case 0x97:
|
||||||
@ -540,16 +540,16 @@ static CPU_EXECUTE(mn10200)
|
|||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->a[opcode & 3] = mn102_read_word(mn102, mn102->pc+1);
|
mn102->a[opcode & 3] = mn102_read_word(mn102, mn102->pc+1);
|
||||||
mn102->pc += 3;
|
mn102->pc += 3;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// blt label8
|
// blt label8
|
||||||
case 0xe0:
|
case 0xe0:
|
||||||
if(((mn102->psw & 0x0a) == 2) || ((mn102->psw & 0x0a) == 8))
|
if(((mn102->psw & 0x0a) == 2) || ((mn102->psw & 0x0a) == 8))
|
||||||
{
|
{
|
||||||
mn102->cycles -= 2;
|
mn102->cycles -= 2;
|
||||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->pc += 2;
|
mn102->pc += 2;
|
||||||
@ -558,12 +558,12 @@ static CPU_EXECUTE(mn10200)
|
|||||||
|
|
||||||
// bgt label8
|
// bgt label8
|
||||||
case 0xe1:
|
case 0xe1:
|
||||||
if(((mn102->psw & 0x0b) == 0) || ((mn102->psw & 0x0b) == 0xa))
|
if(((mn102->psw & 0x0b) == 0) || ((mn102->psw & 0x0b) == 0xa))
|
||||||
{
|
{
|
||||||
mn102->cycles -= 2;
|
mn102->cycles -= 2;
|
||||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->pc += 2;
|
mn102->pc += 2;
|
||||||
@ -572,12 +572,12 @@ static CPU_EXECUTE(mn10200)
|
|||||||
|
|
||||||
// bge label8
|
// bge label8
|
||||||
case 0xe2:
|
case 0xe2:
|
||||||
if(((mn102->psw & 0x0a) == 0) || ((mn102->psw & 0x0a) == 0xa))
|
if(((mn102->psw & 0x0a) == 0) || ((mn102->psw & 0x0a) == 0xa))
|
||||||
{
|
{
|
||||||
mn102->cycles -= 2;
|
mn102->cycles -= 2;
|
||||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->pc += 2;
|
mn102->pc += 2;
|
||||||
@ -586,12 +586,12 @@ static CPU_EXECUTE(mn10200)
|
|||||||
|
|
||||||
// ble label8
|
// ble label8
|
||||||
case 0xe3:
|
case 0xe3:
|
||||||
if((mn102->psw & 0x01) || ((mn102->psw & 0x0a) == 2) || ((mn102->psw & 0x0a) == 8))
|
if((mn102->psw & 0x01) || ((mn102->psw & 0x0a) == 2) || ((mn102->psw & 0x0a) == 8))
|
||||||
{
|
{
|
||||||
mn102->cycles -= 2;
|
mn102->cycles -= 2;
|
||||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->pc += 2;
|
mn102->pc += 2;
|
||||||
@ -600,12 +600,12 @@ static CPU_EXECUTE(mn10200)
|
|||||||
|
|
||||||
// bcs label8
|
// bcs label8
|
||||||
case 0xe4:
|
case 0xe4:
|
||||||
if(mn102->psw & 0x04)
|
if(mn102->psw & 0x04)
|
||||||
{
|
{
|
||||||
mn102->cycles -= 2;
|
mn102->cycles -= 2;
|
||||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->pc += 2;
|
mn102->pc += 2;
|
||||||
@ -614,12 +614,12 @@ static CPU_EXECUTE(mn10200)
|
|||||||
|
|
||||||
// bhi label8
|
// bhi label8
|
||||||
case 0xe5:
|
case 0xe5:
|
||||||
if(!(mn102->psw & 0x05))
|
if(!(mn102->psw & 0x05))
|
||||||
{
|
{
|
||||||
mn102->cycles -= 2;
|
mn102->cycles -= 2;
|
||||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->pc += 2;
|
mn102->pc += 2;
|
||||||
@ -628,12 +628,12 @@ static CPU_EXECUTE(mn10200)
|
|||||||
|
|
||||||
// bcc label8
|
// bcc label8
|
||||||
case 0xe6:
|
case 0xe6:
|
||||||
if(!(mn102->psw & 0x04))
|
if(!(mn102->psw & 0x04))
|
||||||
{
|
{
|
||||||
mn102->cycles -= 2;
|
mn102->cycles -= 2;
|
||||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->pc += 2;
|
mn102->pc += 2;
|
||||||
@ -642,12 +642,12 @@ static CPU_EXECUTE(mn10200)
|
|||||||
|
|
||||||
// bls label8
|
// bls label8
|
||||||
case 0xe7:
|
case 0xe7:
|
||||||
if(mn102->psw & 0x05)
|
if(mn102->psw & 0x05)
|
||||||
{
|
{
|
||||||
mn102->cycles -= 2;
|
mn102->cycles -= 2;
|
||||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->pc += 2;
|
mn102->pc += 2;
|
||||||
@ -656,12 +656,12 @@ static CPU_EXECUTE(mn10200)
|
|||||||
|
|
||||||
// beq label8
|
// beq label8
|
||||||
case 0xe8:
|
case 0xe8:
|
||||||
if(mn102->psw & 0x01)
|
if(mn102->psw & 0x01)
|
||||||
{
|
{
|
||||||
mn102->cycles -= 2;
|
mn102->cycles -= 2;
|
||||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->pc += 2;
|
mn102->pc += 2;
|
||||||
@ -670,12 +670,12 @@ static CPU_EXECUTE(mn10200)
|
|||||||
|
|
||||||
// bne label8
|
// bne label8
|
||||||
case 0xe9:
|
case 0xe9:
|
||||||
if(!(mn102->psw & 0x01))
|
if(!(mn102->psw & 0x01))
|
||||||
{
|
{
|
||||||
mn102->cycles -= 2;
|
mn102->cycles -= 2;
|
||||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mn102->cycles -= 1;
|
mn102->cycles -= 1;
|
||||||
mn102->pc += 2;
|
mn102->pc += 2;
|
||||||
@ -1733,7 +1733,7 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
|||||||
case 0x056: {
|
case 0x056: {
|
||||||
// const char *modes[4] = { "l", "h", "fall", "rise" };
|
// const char *modes[4] = { "l", "h", "fall", "rise" };
|
||||||
// log_event("MN102", "irq3=%s irq2=%s irq1=%s irq0=%s",
|
// log_event("MN102", "irq3=%s irq2=%s irq1=%s irq0=%s",
|
||||||
// modes[(data >> 6) & 3], modes[(data >> 4) & 3], modes[(data >> 2) & 3], modes[data & 3]);
|
// modes[(data >> 6) & 3], modes[(data >> 4) & 3], modes[(data >> 2) & 3], modes[data & 3]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1754,9 +1754,9 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
|||||||
mn102->serial[ser].ctrll = data;
|
mn102->serial[ser].ctrll = data;
|
||||||
|
|
||||||
// log_event("MN102", "Serial %d length=%c, parity=%s, stop=%c, source=%s",
|
// log_event("MN102", "Serial %d length=%c, parity=%s, stop=%c, source=%s",
|
||||||
// ser,
|
// ser,
|
||||||
// data & 0x80 ? '8' : '7', parity[(data >> 4) & 7],
|
// data & 0x80 ? '8' : '7', parity[(data >> 4) & 7],
|
||||||
// data & 8 ? '2' : '1', source[data & 3]);
|
// data & 8 ? '2' : '1', source[data & 3]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1764,10 +1764,10 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
|||||||
int ser = (adr-0x180) >> 4;
|
int ser = (adr-0x180) >> 4;
|
||||||
mn102->serial[ser].ctrlh = data;
|
mn102->serial[ser].ctrlh = data;
|
||||||
// log_event("MN102", "Serial %d transmit=%s, recieve=%s, break=%s, proto=%s, order=%s",
|
// log_event("MN102", "Serial %d transmit=%s, recieve=%s, break=%s, proto=%s, order=%s",
|
||||||
// ser,
|
// ser,
|
||||||
// data & 0x80 ? "on" : "off", data & 0x40 ? "on" : "off",
|
// data & 0x80 ? "on" : "off", data & 0x40 ? "on" : "off",
|
||||||
// data & 0x20 ? "on" : "off", data & 8 ? "sync" : "async",
|
// data & 0x20 ? "on" : "off", data & 8 ? "sync" : "async",
|
||||||
// data & 2 ? "msb" : "lsb");
|
// data & 2 ? "msb" : "lsb");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1777,7 +1777,7 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
|||||||
log_event("MN102", "Serial %d buffer=%02x", ser, data);
|
log_event("MN102", "Serial %d buffer=%02x", ser, data);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 0x1a0:
|
case 0x1a0:
|
||||||
log_event("MN102", "AN %s timer7=%s /%d %s %s",
|
log_event("MN102", "AN %s timer7=%s /%d %s %s",
|
||||||
data & 0x80 ? "on" : "off", data & 0x40 ? "on" : "off",
|
data & 0x80 ? "on" : "off", data & 0x40 ? "on" : "off",
|
||||||
@ -1822,19 +1822,19 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
|||||||
// const char *modes[4] = { "single", "double", "ioa", "iob" };
|
// const char *modes[4] = { "single", "double", "ioa", "iob" };
|
||||||
// const char *sources[8] = { "pres.0", "pres.1", "iob", "sysclk", "*4", "*1", "6", "7" };
|
// const char *sources[8] = { "pres.0", "pres.1", "iob", "sysclk", "*4", "*1", "6", "7" };
|
||||||
// log_event("MN102", "Timer %d comp=%s on_1=%s on_match=%s phase=%s source=%s",
|
// log_event("MN102", "Timer %d comp=%s on_1=%s on_match=%s phase=%s source=%s",
|
||||||
// 10 + ((adr-0x230) >> 4),
|
// 10 + ((adr-0x230) >> 4),
|
||||||
// modes[data >> 6], data & 0x20 ? "cleared" : "not cleared", data & 0x10 ? "cleared" : "not cleared",
|
// modes[data >> 6], data & 0x20 ? "cleared" : "not cleared", data & 0x10 ? "cleared" : "not cleared",
|
||||||
// data & 8 ? "tff" : "rsff", sources[data & 7]);
|
// data & 8 ? "tff" : "rsff", sources[data & 7]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 0x231: case 0x241: case 0x251: {
|
case 0x231: case 0x241: case 0x251: {
|
||||||
// const char *modes[4] = { "up", "down", "up on ioa", "up on iob" };
|
// const char *modes[4] = { "up", "down", "up on ioa", "up on iob" };
|
||||||
// log_event("MN102", "Timer %d %s ff=%s op=%s ext_trig=%s %s",
|
// log_event("MN102", "Timer %d %s ff=%s op=%s ext_trig=%s %s",
|
||||||
// 10 + ((adr-0x230) >> 4),
|
// 10 + ((adr-0x230) >> 4),
|
||||||
// data & 0x80 ? "enable" : "disable", data & 0x40 ? "operate" : "clear",
|
// data & 0x80 ? "enable" : "disable", data & 0x40 ? "operate" : "clear",
|
||||||
// modes[(data >> 4) & 3], data & 2 ? "on" : "off", data & 1 ? "one-shot" : "repeat");
|
// modes[(data >> 4) & 3], data & 2 ? "on" : "off", data & 1 ? "one-shot" : "repeat");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1869,9 +1869,9 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
|||||||
case 0x260: case 0x261: {
|
case 0x260: case 0x261: {
|
||||||
// const char *mode[4] = { "sysbuf", "4-phase", "4-phase 1/2", "3" };
|
// const char *mode[4] = { "sysbuf", "4-phase", "4-phase 1/2", "3" };
|
||||||
// log_event("MN102", "Sync Output %c timing=%s out=%s dir=%s mode=%s",
|
// log_event("MN102", "Sync Output %c timing=%s out=%s dir=%s mode=%s",
|
||||||
// adr == 0x261 ? 'B' : 'A',
|
// adr == 0x261 ? 'B' : 'A',
|
||||||
// data & 0x10 ? "12A" : "1", data & 8 ? "sync a" :"P13-10",
|
// data & 0x10 ? "12A" : "1", data & 8 ? "sync a" :"P13-10",
|
||||||
// data & 4 ? "ccw" : "cw", mode[data & 3]);
|
// data & 4 ? "ccw" : "cw", mode[data & 3]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1949,7 +1949,7 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
|||||||
/* static const char *trans[4] = { "M-IO", "M-M", "M-X1", "m-X2" };
|
/* static const char *trans[4] = { "M-IO", "M-M", "M-X1", "m-X2" };
|
||||||
static const char *start[32] = {
|
static const char *start[32] = {
|
||||||
"soft", "a/d", "ser0tx", "set0rx", "ser1tx", "ser1rx",
|
"soft", "a/d", "ser0tx", "set0rx", "ser1tx", "ser1rx",
|
||||||
"timer0", "timer1", "timer2", "timer3", "timer4", "timer5", "timer6", "timer7", "timer8", "timer9",
|
"timer0", "timer1", "timer2", "timer3", "timer4", "timer5", "timer6", "timer7", "timer8", "timer9",
|
||||||
"timer10u", "timer10a", "timer10b",
|
"timer10u", "timer10a", "timer10b",
|
||||||
"timer11u", "timer11a", "timer12b",
|
"timer11u", "timer11a", "timer12b",
|
||||||
"timer12a", "timer12b",
|
"timer12a", "timer12b",
|
||||||
@ -1966,20 +1966,20 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
|||||||
start[data & 31]);
|
start[data & 31]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 0x28b: case 0x29b: case 0x2ab: case 0x2bb: case 0x2cb: case 0x2db: case 0x2eb: case 0x2fb: {
|
case 0x28b: case 0x29b: case 0x2ab: case 0x2bb: case 0x2cb: case 0x2db: case 0x2eb: case 0x2fb: {
|
||||||
// static const char *tradr[4] = { "inc", "dec", "fixed", "reserved" };
|
// static const char *tradr[4] = { "inc", "dec", "fixed", "reserved" };
|
||||||
int dma = (adr-0x280) >> 4;
|
int dma = (adr-0x280) >> 4;
|
||||||
mn102->dma[dma].ctrlh = data;
|
mn102->dma[dma].ctrlh = data;
|
||||||
/* log_event("MN102", "DMA %d control %s irq=%s %s %s dir=%s %s %s",
|
/* log_event("MN102", "DMA %d control %s irq=%s %s %s dir=%s %s %s",
|
||||||
dma,
|
dma,
|
||||||
data & 0x80 ? "enable" : "disable",
|
data & 0x80 ? "enable" : "disable",
|
||||||
data & 0x40 ? "off" : "on",
|
data & 0x40 ? "off" : "on",
|
||||||
data & 0x20 ? "byte" : "word",
|
data & 0x20 ? "byte" : "word",
|
||||||
data & 0x10 ? "burst" : "single",
|
data & 0x10 ? "burst" : "single",
|
||||||
data & 0x08 ? "dst" : "src",
|
data & 0x08 ? "dst" : "src",
|
||||||
data & 0x04 ? "continue" : "normal",
|
data & 0x04 ? "continue" : "normal",
|
||||||
tradr[data & 3]);*/
|
tradr[data & 3]);*/
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2049,28 +2049,28 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
|||||||
mn102->ddr[0] = data;
|
mn102->ddr[0] = data;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x3e1: // port1 ddr
|
case 0x3e1: // port1 ddr
|
||||||
mn102->ddr[1] = data;
|
mn102->ddr[1] = data;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x3e2: // port2 ddr
|
case 0x3e2: // port2 ddr
|
||||||
mn102->ddr[2] = data;
|
mn102->ddr[2] = data;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x3e3: // port3 ddr
|
case 0x3e3: // port3 ddr
|
||||||
mn102->ddr[3] = data;
|
mn102->ddr[3] = data;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x3f3:
|
case 0x3f3:
|
||||||
/* log_event("MN102", "Port 3 bits 4=%s 3=%s 2=%s 1=%s 0=%s",
|
/* log_event("MN102", "Port 3 bits 4=%s 3=%s 2=%s 1=%s 0=%s",
|
||||||
data & 0x10 ? data & 0x40 ? "serial_1" : "tm9" : "p34",
|
data & 0x10 ? data & 0x40 ? "serial_1" : "tm9" : "p34",
|
||||||
data & 0x08 ? data & 0x20 ? "serial_0" : "tm8" : "p33",
|
data & 0x08 ? data & 0x20 ? "serial_0" : "tm8" : "p33",
|
||||||
data & 0x04 ? "tm7" : "p32",
|
data & 0x04 ? "tm7" : "p32",
|
||||||
data & 0x04 ? "tm6" : "p31",
|
data & 0x04 ? "tm6" : "p31",
|
||||||
data & 0x04 ? "tm5" : "p30");*/
|
data & 0x04 ? "tm5" : "p30");*/
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
log_event("MN102", "internal_w %04x, %02x (%03x)", adr+0xfc00, data, adr);
|
log_event("MN102", "internal_w %04x, %02x (%03x)", adr+0xfc00, data, adr);
|
||||||
break;
|
break;
|
||||||
@ -2124,16 +2124,16 @@ static UINT32 mn10200_r(mn102_info *mn102, UINT32 adr, int type)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x264: // port 1 data
|
case 0x264: // port 1 data
|
||||||
return memory_read_byte_8le(mn102->io, MN10200_PORT1);
|
return memory_read_byte_8le(mn102->io, MN10200_PORT1);
|
||||||
|
|
||||||
case 0x3c0: // port 0 data
|
case 0x3c0: // port 0 data
|
||||||
return memory_read_byte_8le(mn102->io, MN10200_PORT0);
|
return memory_read_byte_8le(mn102->io, MN10200_PORT0);
|
||||||
|
|
||||||
case 0x3c2: // port 2 data
|
case 0x3c2: // port 2 data
|
||||||
return memory_read_byte_8le(mn102->io, MN10200_PORT2);
|
return memory_read_byte_8le(mn102->io, MN10200_PORT2);
|
||||||
|
|
||||||
case 0x3c3: // port 3 data
|
case 0x3c3: // port 3 data
|
||||||
return memory_read_byte_8le(mn102->io, MN10200_PORT3);
|
return memory_read_byte_8le(mn102->io, MN10200_PORT3);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
log_event("MN102", "internal_r %04x (%03x)", adr+0xfc00, adr);
|
log_event("MN102", "internal_r %04x (%03x)", adr+0xfc00, adr);
|
||||||
@ -2196,7 +2196,7 @@ CPU_GET_INFO( mn10200 )
|
|||||||
|
|
||||||
case CPUINFO_INT_PC: /* intentional fallthrough */
|
case CPUINFO_INT_PC: /* intentional fallthrough */
|
||||||
case CPUINFO_INT_REGISTER + MN10200_PC: info->i = cpustate->pc; break;
|
case CPUINFO_INT_REGISTER + MN10200_PC: info->i = cpustate->pc; break;
|
||||||
case CPUINFO_INT_REGISTER + MN10200_PSW: info->i = cpustate->psw; break;
|
case CPUINFO_INT_REGISTER + MN10200_PSW: info->i = cpustate->psw; break;
|
||||||
|
|
||||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||||
case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(mn10200); break;
|
case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(mn10200); break;
|
||||||
@ -2216,7 +2216,7 @@ CPU_GET_INFO( mn10200 )
|
|||||||
case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
|
case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
|
||||||
|
|
||||||
case CPUINFO_STR_FLAGS: // intentional fallthrough
|
case CPUINFO_STR_FLAGS: // intentional fallthrough
|
||||||
case CPUINFO_STR_REGISTER + MN10200_PSW: sprintf(info->s, "S=%d irq=%s im=%d %c%c%c%c %c%c%c%c",
|
case CPUINFO_STR_REGISTER + MN10200_PSW: sprintf(info->s, "S=%d irq=%s im=%d %c%c%c%c %c%c%c%c",
|
||||||
(cpustate->psw >> 12) & 3,
|
(cpustate->psw >> 12) & 3,
|
||||||
cpustate->psw & 0x0800 ? "on" : "off",
|
cpustate->psw & 0x0800 ? "on" : "off",
|
||||||
(cpustate->psw >> 8) & 7,
|
(cpustate->psw >> 8) & 7,
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
Panasonic MN10200 emulator
|
Panasonic MN10200 emulator
|
||||||
|
|
||||||
Written by Olivier Galibert
|
Written by Olivier Galibert
|
||||||
MAME conversion by R. Belmont
|
MAME conversion by R. Belmont
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ int mn102_disassemble(char *buffer, UINT32 pc, const UINT8 *oprom)
|
|||||||
|
|
||||||
case 0x80: case 0x85: case 0x8a: case 0x8f:
|
case 0x80: case 0x85: case 0x8a: case 0x8f:
|
||||||
sprintf(buffer, "mov %s, d%d", i8str(program_read_byte(pc+1)), opcode & 3);
|
sprintf(buffer, "mov %s, d%d", i8str(program_read_byte(pc+1)), opcode & 3);
|
||||||
return 2;
|
return 2;
|
||||||
|
|
||||||
case 0x90: case 0x91: case 0x92: case 0x93: case 0x94: case 0x95: case 0x96: case 0x97:
|
case 0x90: case 0x91: case 0x92: case 0x93: case 0x94: case 0x95: case 0x96: case 0x97:
|
||||||
case 0x98: case 0x99: case 0x9a: case 0x9b: case 0x9c: case 0x9d: case 0x9e: case 0x9f:
|
case 0x98: case 0x99: case 0x9a: case 0x9b: case 0x9c: case 0x9d: case 0x9e: case 0x9f:
|
||||||
|
@ -44,11 +44,11 @@ enum
|
|||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
VIEW_STATE_BUTTON = 0x01,
|
VIEW_STATE_BUTTON = 0x01,
|
||||||
VIEW_STATE_MOVING = 0x02,
|
VIEW_STATE_MOVING = 0x02,
|
||||||
VIEW_STATE_SIZING = 0x04,
|
VIEW_STATE_SIZING = 0x04,
|
||||||
VIEW_STATE_NEEDS_UPDATE = 0x08,
|
VIEW_STATE_NEEDS_UPDATE = 0x08,
|
||||||
VIEW_STATE_FOLLOW_CPU = 0x10,
|
VIEW_STATE_FOLLOW_CPU = 0x10,
|
||||||
};
|
};
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
@ -270,8 +270,8 @@ INLINE void dview_set_state(DView *dv, int state, int onoff)
|
|||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
static render_font * debug_font;
|
static render_font * debug_font;
|
||||||
static int debug_font_width;
|
static int debug_font_width;
|
||||||
static int debug_font_height;
|
static int debug_font_height;
|
||||||
static float debug_font_aspect;
|
static float debug_font_aspect;
|
||||||
static DView * list;
|
static DView * list;
|
||||||
static DView * focus_view;
|
static DView * focus_view;
|
||||||
@ -1376,7 +1376,7 @@ static void handle_menus(running_machine *machine)
|
|||||||
CreateMainMenu(machine);
|
CreateMainMenu(machine);
|
||||||
/* turn on editor if requested */
|
/* turn on editor if requested */
|
||||||
//if (ui_input_pressed(machine, IPT_UI_UP) && focus_view->editor.active)
|
//if (ui_input_pressed(machine, IPT_UI_UP) && focus_view->editor.active)
|
||||||
// cur_editor = &focus_view->editor;
|
// cur_editor = &focus_view->editor;
|
||||||
handle_editor(machine);
|
handle_editor(machine);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
#define GAME_IS_BIOS_ROOT 0x00001000 /* this driver entry is a BIOS root */
|
#define GAME_IS_BIOS_ROOT 0x00001000 /* this driver entry is a BIOS root */
|
||||||
#define GAME_NO_STANDALONE 0x00002000 /* this driver cannot stand alone */
|
#define GAME_NO_STANDALONE 0x00002000 /* this driver cannot stand alone */
|
||||||
#define GAME_REQUIRES_ARTWORK 0x00004000 /* the driver requires external artwork for key elements of the game */
|
#define GAME_REQUIRES_ARTWORK 0x00004000 /* the driver requires external artwork for key elements of the game */
|
||||||
#define GAME_UNOFFICIAL 0x00008000 /* unofficial hardware change */
|
#define GAME_UNOFFICIAL 0x00008000 /* unofficial hardware change */
|
||||||
#define GAME_NO_SOUND_HW 0x00010000 /* sound hardware not available */
|
#define GAME_NO_SOUND_HW 0x00010000 /* sound hardware not available */
|
||||||
|
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ enum
|
|||||||
XTAL_12MHz = 12000000, /* Extremely common, used on 100's of PCBs */
|
XTAL_12MHz = 12000000, /* Extremely common, used on 100's of PCBs */
|
||||||
XTAL_12_096MHz = 12096000, /* Some early 80's Atari games */
|
XTAL_12_096MHz = 12096000, /* Some early 80's Atari games */
|
||||||
XTAL_12_288MHz = 12288000, /* Sega Model 3 digital audio board */
|
XTAL_12_288MHz = 12288000, /* Sega Model 3 digital audio board */
|
||||||
XTAL_12_48MHz = 12480000, /* TRS-80 Model II */
|
XTAL_12_48MHz = 12480000, /* TRS-80 Model II */
|
||||||
XTAL_12_5MHz = 12500000, /* Red Alert audio board */
|
XTAL_12_5MHz = 12500000, /* Red Alert audio board */
|
||||||
XTAL_12_9792MHz = 12979200, /* Exidy 440 */
|
XTAL_12_9792MHz = 12979200, /* Exidy 440 */
|
||||||
XTAL_13_3MHz = 13300000, /* BMC bowling */
|
XTAL_13_3MHz = 13300000, /* BMC bowling */
|
||||||
|
@ -130,9 +130,9 @@ const options_entry mame_core_options[] =
|
|||||||
{ "joystick_deadzone;joy_deadzone;jdz", "0.3", 0, "center deadzone range for joystick where change is ignored (0.0 center, 1.0 end)" },
|
{ "joystick_deadzone;joy_deadzone;jdz", "0.3", 0, "center deadzone range for joystick where change is ignored (0.0 center, 1.0 end)" },
|
||||||
{ "joystick_saturation;joy_saturation;jsat", "0.85", 0, "end of axis saturation range for joystick where change is ignored (0.0 center, 1.0 end)" },
|
{ "joystick_saturation;joy_saturation;jsat", "0.85", 0, "end of axis saturation range for joystick where change is ignored (0.0 center, 1.0 end)" },
|
||||||
{ "natural;nat", "0", OPTION_BOOLEAN, "specifies whether to use a natural keyboard or not" },
|
{ "natural;nat", "0", OPTION_BOOLEAN, "specifies whether to use a natural keyboard or not" },
|
||||||
{ "uimodekey;umk", "auto", 0, "specifies the key used to toggle between full and partial UI mode" },
|
{ "uimodekey;umk", "auto", 0, "specifies the key used to toggle between full and partial UI mode" },
|
||||||
|
|
||||||
|
|
||||||
/* input autoenable options */
|
/* input autoenable options */
|
||||||
{ NULL, NULL, OPTION_HEADER, "CORE INPUT AUTOMATIC ENABLE OPTIONS" },
|
{ NULL, NULL, OPTION_HEADER, "CORE INPUT AUTOMATIC ENABLE OPTIONS" },
|
||||||
{ "paddle_device;paddle", "keyboard", 0, "enable (none|keyboard|mouse|lightgun|joystick) if a paddle control is present" },
|
{ "paddle_device;paddle", "keyboard", 0, "enable (none|keyboard|mouse|lightgun|joystick) if a paddle control is present" },
|
||||||
|
@ -2524,7 +2524,7 @@ profiler_mark_start(PROFILER_INPUT);
|
|||||||
|
|
||||||
/* hook for MESS's natural keyboard support */
|
/* hook for MESS's natural keyboard support */
|
||||||
input_port_update_hook(machine, port, &port->state->digital);
|
input_port_update_hook(machine, port, &port->state->digital);
|
||||||
|
|
||||||
/* handle playback/record */
|
/* handle playback/record */
|
||||||
playback_port(port);
|
playback_port(port);
|
||||||
record_port(port);
|
record_port(port);
|
||||||
@ -5303,7 +5303,7 @@ void inputx_post_utf8(running_machine *machine, const char *text)
|
|||||||
void inputx_post_utf8_rate(running_machine *machine, const char *text, attotime rate)
|
void inputx_post_utf8_rate(running_machine *machine, const char *text, attotime rate)
|
||||||
{
|
{
|
||||||
inputx_postn_utf8_rate(machine, text, strlen(text), rate);
|
inputx_postn_utf8_rate(machine, text, strlen(text), rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
|
@ -588,7 +588,7 @@ static void set_mode(running_device *device, UINT8 data)
|
|||||||
i8255a->inte[PORT_A] = 0;
|
i8255a->inte[PORT_A] = 0;
|
||||||
i8255a->inte1 = 0;
|
i8255a->inte1 = 0;
|
||||||
i8255a->inte2 = 0;
|
i8255a->inte2 = 0;
|
||||||
|
|
||||||
if (port_mode(i8255a, PORT_A) == MODE_OUTPUT)
|
if (port_mode(i8255a, PORT_A) == MODE_OUTPUT)
|
||||||
{
|
{
|
||||||
devcb_call_write8(&i8255a->out_port_func[PORT_A], 0, i8255a->output[PORT_A]);
|
devcb_call_write8(&i8255a->out_port_func[PORT_A], 0, i8255a->output[PORT_A]);
|
||||||
@ -612,7 +612,7 @@ static void set_mode(running_device *device, UINT8 data)
|
|||||||
i8255a->ibf[PORT_B] = 0;
|
i8255a->ibf[PORT_B] = 0;
|
||||||
i8255a->obf[PORT_B] = 1;
|
i8255a->obf[PORT_B] = 1;
|
||||||
i8255a->inte[PORT_B] = 0;
|
i8255a->inte[PORT_B] = 0;
|
||||||
|
|
||||||
if (port_mode(i8255a, PORT_B) == MODE_OUTPUT)
|
if (port_mode(i8255a, PORT_B) == MODE_OUTPUT)
|
||||||
{
|
{
|
||||||
devcb_call_write8(&i8255a->out_port_func[PORT_B], 0, i8255a->output[PORT_B]);
|
devcb_call_write8(&i8255a->out_port_func[PORT_B], 0, i8255a->output[PORT_B]);
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
The samples are compressed with a 2:1 ratio. Each bloc of 4-bytes
|
The samples are compressed with a 2:1 ratio. Each bloc of 4-bytes
|
||||||
becomes 4 16-bits samples. Reading the 4 bytes as a *little-endian*
|
becomes 4 16-bits samples. Reading the 4 bytes as a *little-endian*
|
||||||
32bits values, the structure is:
|
32bits values, the structure is:
|
||||||
|
|
||||||
1444 4444 1333 3333 1222 2222 ssss1111
|
1444 4444 1333 3333 1222 2222 ssss1111
|
||||||
|
|
||||||
's' is a 4-bit scale value. '1', '2', '3', '4' are signed 7-bits
|
's' is a 4-bit scale value. '1', '2', '3', '4' are signed 7-bits
|
||||||
@ -77,7 +77,7 @@ INLINE zsg2_state *get_safe_token(running_device *device)
|
|||||||
|
|
||||||
static STREAM_UPDATE( update_stereo )
|
static STREAM_UPDATE( update_stereo )
|
||||||
{
|
{
|
||||||
// zsg2_state *info = (zsg2_state *)param;
|
// zsg2_state *info = (zsg2_state *)param;
|
||||||
stream_sample_t *dest1 = outputs[0];
|
stream_sample_t *dest1 = outputs[0];
|
||||||
stream_sample_t *dest2 = outputs[1];
|
stream_sample_t *dest2 = outputs[1];
|
||||||
|
|
||||||
@ -116,9 +116,9 @@ static void keyon(zsg2_state *info, int chan)
|
|||||||
|
|
||||||
static void control_w(zsg2_state *info, int reg, UINT16 data)
|
static void control_w(zsg2_state *info, int reg, UINT16 data)
|
||||||
{
|
{
|
||||||
switch(reg)
|
switch(reg)
|
||||||
{
|
{
|
||||||
case 0x00: case 0x02: case 0x04:
|
case 0x00: case 0x02: case 0x04:
|
||||||
{
|
{
|
||||||
int base = (reg & 6) << 3;
|
int base = (reg & 6) << 3;
|
||||||
int i;
|
int i;
|
||||||
@ -128,7 +128,7 @@ static void control_w(zsg2_state *info, int reg, UINT16 data)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 0x08: case 0x0a: case 0x0c:
|
case 0x08: case 0x0a: case 0x0c:
|
||||||
{
|
{
|
||||||
int base = (reg & 6) << 3;
|
int base = (reg & 6) << 3;
|
||||||
int i;
|
int i;
|
||||||
@ -152,26 +152,26 @@ static void control_w(zsg2_state *info, int reg, UINT16 data)
|
|||||||
default:
|
default:
|
||||||
// log_event("ZOOMCTRL", "%02x = %04x", reg, data);
|
// log_event("ZOOMCTRL", "%02x = %04x", reg, data);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static UINT16 control_r(zsg2_state *info, int reg)
|
static UINT16 control_r(zsg2_state *info, int reg)
|
||||||
{
|
{
|
||||||
switch(reg)
|
switch(reg)
|
||||||
{
|
{
|
||||||
case 0x28:
|
case 0x28:
|
||||||
return 0xff00;
|
return 0xff00;
|
||||||
|
|
||||||
case 0x3c: case 0x3e:
|
case 0x3c: case 0x3e:
|
||||||
{
|
{
|
||||||
UINT32 adr = (info->ahigh << 16) | info->alow;
|
UINT32 adr = (info->ahigh << 16) | info->alow;
|
||||||
UINT32 val = *(unsigned int *)(info->bank_samples+adr);
|
UINT32 val = *(unsigned int *)(info->bank_samples+adr);
|
||||||
// log_event("ZOOMCTRL", "rom read.%c %06x = %08x", reg == 0x3e ? 'h' : 'l', adr, val);
|
// log_event("ZOOMCTRL", "rom read.%c %06x = %08x", reg == 0x3e ? 'h' : 'l', adr, val);
|
||||||
return (reg == 0x3e) ? (val >> 16) : val;
|
return (reg == 0x3e) ? (val >> 16) : val;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// log_event("ZOOMCTRL", "read %02x", reg);
|
// log_event("ZOOMCTRL", "read %02x", reg);
|
||||||
|
|
||||||
return 0xffff;
|
return 0xffff;
|
||||||
}
|
}
|
||||||
@ -191,7 +191,7 @@ WRITE16_DEVICE_HANDLER( zsg2_w )
|
|||||||
int reg = (adr >> 1) & 15;
|
int reg = (adr >> 1) & 15;
|
||||||
|
|
||||||
chan_w(info, chan, reg, data);
|
chan_w(info, chan, reg, data);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
control_w(info, adr - 0x600, data);
|
control_w(info, adr - 0x600, data);
|
||||||
@ -205,12 +205,12 @@ READ16_DEVICE_HANDLER( zsg2_r )
|
|||||||
|
|
||||||
assert(mem_mask == 0xffff); // we only support full 16-bit accesses
|
assert(mem_mask == 0xffff); // we only support full 16-bit accesses
|
||||||
|
|
||||||
if (adr < 0x600)
|
if (adr < 0x600)
|
||||||
{
|
{
|
||||||
int chan = adr >> 5;
|
int chan = adr >> 5;
|
||||||
int reg = (adr >> 1) & 15;
|
int reg = (adr >> 1) & 15;
|
||||||
return chan_r(info, chan, reg);
|
return chan_r(info, chan, reg);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return control_r(info, adr - 0x600);
|
return control_r(info, adr - 0x600);
|
||||||
@ -237,7 +237,7 @@ static DEVICE_START( zsg2 )
|
|||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* Generic get_info
|
* Generic get_info
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
DEVICE_GET_INFO( zsg2 )
|
DEVICE_GET_INFO( zsg2 )
|
||||||
{
|
{
|
||||||
switch (state)
|
switch (state)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
ZOOM ZSG-2 custom wavetable synthesizer
|
ZOOM ZSG-2 custom wavetable synthesizer
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -125,7 +125,7 @@ static slider_state *slider_current;
|
|||||||
static int ui_active;
|
static int ui_active;
|
||||||
/* natural keyboard info */
|
/* natural keyboard info */
|
||||||
static int ui_use_natural_keyboard;
|
static int ui_use_natural_keyboard;
|
||||||
static UINT8 non_char_keys_down[(ARRAY_LENGTH(non_char_keys) + 7) / 8];
|
static UINT8 non_char_keys_down[(ARRAY_LENGTH(non_char_keys) + 7) / 8];
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
@ -254,11 +254,11 @@ int ui_init(running_machine *machine)
|
|||||||
|
|
||||||
/* reset globals */
|
/* reset globals */
|
||||||
single_step = FALSE;
|
single_step = FALSE;
|
||||||
ui_set_handler(handler_messagebox, 0);
|
ui_set_handler(handler_messagebox, 0);
|
||||||
ui_active = 0;
|
ui_active = 0;
|
||||||
/* retrieve options */
|
/* retrieve options */
|
||||||
ui_use_natural_keyboard = options_get_bool(mame_options(), OPTION_NATURAL_KEYBOARD);
|
ui_use_natural_keyboard = options_get_bool(mame_options(), OPTION_NATURAL_KEYBOARD);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1535,8 +1535,8 @@ static void menu_main_populate(running_machine *machine, ui_menu *menu, void *st
|
|||||||
ui_mess_main_menu_populate(machine, menu);
|
ui_mess_main_menu_populate(machine, menu);
|
||||||
#endif /* MESS */
|
#endif /* MESS */
|
||||||
|
|
||||||
/* add keyboard mode menu */
|
/* add keyboard mode menu */
|
||||||
if (input_machine_has_keyboard(machine) && inputx_can_post(machine))
|
if (input_machine_has_keyboard(machine) && inputx_can_post(machine))
|
||||||
ui_menu_item_append(menu, "Keyboard Mode", NULL, 0, (void *)ui_menu_keyboard_mode);
|
ui_menu_item_append(menu, "Keyboard Mode", NULL, 0, (void *)ui_menu_keyboard_mode);
|
||||||
|
|
||||||
/* add sliders menu */
|
/* add sliders menu */
|
||||||
|
@ -405,7 +405,7 @@ static int validate_driver(int drivnum, const machine_config *config, game_drive
|
|||||||
mame_printf_error("%s: both compatible_with and clone_of are specified\n", driver->name);
|
mame_printf_error("%s: both compatible_with and clone_of are specified\n", driver->name);
|
||||||
error = TRUE;
|
error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* find any recursive dependencies on the current driver */
|
/* find any recursive dependencies on the current driver */
|
||||||
for (other_drv = driver_get_compatible(driver); other_drv != NULL; other_drv = driver_get_compatible(other_drv))
|
for (other_drv = driver_get_compatible(driver); other_drv != NULL; other_drv = driver_get_compatible(other_drv))
|
||||||
{
|
{
|
||||||
@ -443,18 +443,18 @@ static int validate_roms(int drivnum, const machine_config *config, region_array
|
|||||||
int error = FALSE;
|
int error = FALSE;
|
||||||
|
|
||||||
/* check for duplicate ROM entries */
|
/* check for duplicate ROM entries */
|
||||||
/*
|
/*
|
||||||
if (driver->rom != NULL && (driver->flags & GAME_NO_STANDALONE) == 0)
|
if (driver->rom != NULL && (driver->flags & GAME_NO_STANDALONE) == 0)
|
||||||
{
|
{
|
||||||
char romaddr[20];
|
char romaddr[20];
|
||||||
sprintf(romaddr, "%p", driver->rom);
|
sprintf(romaddr, "%p", driver->rom);
|
||||||
if (roms.add(romaddr, driver, FALSE) == TMERR_DUPLICATE)
|
if (roms.add(romaddr, driver, FALSE) == TMERR_DUPLICATE)
|
||||||
{
|
{
|
||||||
const game_driver *match = roms.find(romaddr);
|
const game_driver *match = roms.find(romaddr);
|
||||||
mame_printf_error("%s: %s uses the same ROM set as (%s, %s)\n", driver->source_file, driver->description, match->source_file, match->name);
|
mame_printf_error("%s: %s uses the same ROM set as (%s, %s)\n", driver->source_file, driver->description, match->source_file, match->name);
|
||||||
error = TRUE;
|
error = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/* iterate, starting with the driver's ROMs and continuing with device ROMs */
|
/* iterate, starting with the driver's ROMs and continuing with device ROMs */
|
||||||
for (const rom_source *source = rom_first_source(driver, config); source != NULL; source = rom_next_source(driver, config, source))
|
for (const rom_source *source = rom_first_source(driver, config); source != NULL; source = rom_next_source(driver, config, source))
|
||||||
@ -1192,10 +1192,10 @@ static int validate_inputs(int drivnum, const machine_config *config, int_map &d
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
error = error || validate_natural_keyboard_statics();
|
error = error || validate_natural_keyboard_statics();
|
||||||
|
|
||||||
/* free the config */
|
/* free the config */
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1575,7 +1575,7 @@ int mame_validitychecks(const game_driver *curdriver)
|
|||||||
|
|
||||||
machine_config_free(config);
|
machine_config_free(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (REPORT_TIMES)
|
#if (REPORT_TIMES)
|
||||||
mame_printf_info("Prep: %8dm\n", (int)(prep / 1000000));
|
mame_printf_info("Prep: %8dm\n", (int)(prep / 1000000));
|
||||||
mame_printf_info("Expansion: %8dm\n", (int)(expansion / 1000000));
|
mame_printf_info("Expansion: %8dm\n", (int)(expansion / 1000000));
|
||||||
|
@ -9,9 +9,9 @@
|
|||||||
- sigmab52.c
|
- sigmab52.c
|
||||||
|
|
||||||
ACRTC memory map:
|
ACRTC memory map:
|
||||||
|
|
||||||
00000-3ffff = RAM
|
00000-3ffff = RAM
|
||||||
40000-7ffff = ROM handled with a hack in the drivers
|
40000-7ffff = ROM handled with a hack in the drivers
|
||||||
80000-bffff = unused
|
80000-bffff = unused
|
||||||
c0000-fffff = unused
|
c0000-fffff = unused
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@
|
|||||||
/* 13 Dec 2006 - add PRELIMINARY sound support and documentation to: */
|
/* 13 Dec 2006 - add PRELIMINARY sound support and documentation to: */
|
||||||
/* rollingc, spcenctr, gunfight, m4, gmissile, */
|
/* rollingc, spcenctr, gunfight, m4, gmissile, */
|
||||||
/* schasrcv (schasercv), 280zzzap, lagunar, lupin3, phantom2, */
|
/* schasrcv (schasercv), 280zzzap, lagunar, lupin3, phantom2, */
|
||||||
/* blueshrk, desertgu, ballbomb, yosakdon/yosakdoa (yosakdona)*/
|
/* blueshrk, desertgu, ballbomb, yosakdon/yosakdoa (yosakdona)*/
|
||||||
/* shuttlei, invrvnge/invrvnga (invrvngea). */
|
/* shuttlei, invrvnge/invrvnga (invrvngea). */
|
||||||
/* Documented indianbt sound. Removed NO_SOUND flag from */
|
/* Documented indianbt sound. Removed NO_SOUND flag from */
|
||||||
/* cosmo and dogpatch as the sound was already working. */
|
/* cosmo and dogpatch as the sound was already working. */
|
||||||
|
@ -210,13 +210,13 @@ static MACHINE_START( skattv )
|
|||||||
state_save_register_global(machine, state->register_active);
|
state_save_register_global(machine, state->register_active);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
ACRTC memory:
|
ACRTC memory:
|
||||||
|
|
||||||
00000-3ffff = RAM
|
00000-3ffff = RAM
|
||||||
40000-7ffff = ROM
|
40000-7ffff = ROM
|
||||||
80000-bffff = unused
|
80000-bffff = unused
|
||||||
c0000-fffff = unused
|
c0000-fffff = unused
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// hack to handle acrt rom
|
// hack to handle acrt rom
|
||||||
{
|
{
|
||||||
@ -390,15 +390,15 @@ static READ16_HANDLER( test_r )
|
|||||||
state->mux_data++;
|
state->mux_data++;
|
||||||
state->mux_data &= 0xf;
|
state->mux_data &= 0xf;
|
||||||
/*
|
/*
|
||||||
switch (mame_rand(space->machine) & 3)
|
switch (mame_rand(space->machine) & 3)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
return 0;
|
return 0;
|
||||||
case 1:
|
case 1:
|
||||||
return 0xffff;
|
return 0xffff;
|
||||||
default:
|
default:
|
||||||
return mame_rand(space->machine) & 0xffff;
|
return mame_rand(space->machine) & 0xffff;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
return value | (mame_rand(space->machine) & 0x0000);
|
return value | (mame_rand(space->machine) & 0x0000);
|
||||||
}
|
}
|
||||||
|
@ -173,7 +173,7 @@ static INPUT_PORTS_START(mk3ghw)
|
|||||||
PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) )
|
||||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
|
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
|
||||||
PORT_BIT( 0xf8, 0x00, IPT_UNUSED )
|
PORT_BIT( 0xf8, 0x00, IPT_UNUSED )
|
||||||
|
|
||||||
PORT_START("IN1")
|
PORT_START("IN1")
|
||||||
PORT_DIPUNKNOWN( 0x01, 0x00 )
|
PORT_DIPUNKNOWN( 0x01, 0x00 )
|
||||||
PORT_DIPUNKNOWN( 0x02, 0x00 )
|
PORT_DIPUNKNOWN( 0x02, 0x00 )
|
||||||
|
@ -199,7 +199,7 @@ static WRITE16_HANDLER( showhand_outputs_w )
|
|||||||
static WRITE16_HANDLER( skilldrp_outputs_w )
|
static WRITE16_HANDLER( skilldrp_outputs_w )
|
||||||
{
|
{
|
||||||
// key in (0001)
|
// key in (0001)
|
||||||
// coin in (0002)
|
// coin in (0002)
|
||||||
// key out (0004)
|
// key out (0004)
|
||||||
// coin out (0008)
|
// coin out (0008)
|
||||||
// hopper? (0010)
|
// hopper? (0010)
|
||||||
@ -220,7 +220,7 @@ static WRITE16_HANDLER( skilldrp_outputs_w )
|
|||||||
coin_counter_w(space->machine, 0, (data & 0x0002)); // coin in |- manual shows 1 in- and 1 out- counter
|
coin_counter_w(space->machine, 0, (data & 0x0002)); // coin in |- manual shows 1 in- and 1 out- counter
|
||||||
coin_counter_w(space->machine, 1, (data & 0x0004)); // key out |
|
coin_counter_w(space->machine, 1, (data & 0x0004)); // key out |
|
||||||
ticket_dispenser_w(devtag_get_device(space->machine, "hopper"), 0, (data & 0x0008)<<4); // hopper motor?
|
ticket_dispenser_w(devtag_get_device(space->machine, "hopper"), 0, (data & 0x0008)<<4); // hopper motor?
|
||||||
// (data & 0x0010) // hopper?
|
// (data & 0x0010) // hopper?
|
||||||
set_led_status(space->machine, 0, (data & 0x0020)); // error lamp (coin/hopper jam: "call attendant")
|
set_led_status(space->machine, 0, (data & 0x0020)); // error lamp (coin/hopper jam: "call attendant")
|
||||||
ticket_dispenser_w(devtag_get_device(space->machine, "ticket"), 0, data & 0x0080); // ticket motor?
|
ticket_dispenser_w(devtag_get_device(space->machine, "ticket"), 0, data & 0x0080); // ticket motor?
|
||||||
}
|
}
|
||||||
@ -235,7 +235,7 @@ static WRITE16_HANDLER( skilldrp_outputs_w )
|
|||||||
set_led_status(space->machine, 6, (data & 0x8000)); // ticket?
|
set_led_status(space->machine, 6, (data & 0x8000)); // ticket?
|
||||||
}
|
}
|
||||||
|
|
||||||
// popmessage("%04X",data);
|
// popmessage("%04X",data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static WRITE16_HANDLER( astrocorp_enable_w )
|
static WRITE16_HANDLER( astrocorp_enable_w )
|
||||||
|
@ -1752,7 +1752,7 @@ ROM_END
|
|||||||
|
|
||||||
there are a lot of wire-mods on this board, it's possible that it's been hacked to work more like
|
there are a lot of wire-mods on this board, it's possible that it's been hacked to work more like
|
||||||
an original bagman board, a lot of the roms are the same
|
an original bagman board, a lot of the roms are the same
|
||||||
|
|
||||||
this set also explains why the cannonball set above contained a number of bagman roms, it was clearly
|
this set also explains why the cannonball set above contained a number of bagman roms, it was clearly
|
||||||
a half-converted board.
|
a half-converted board.
|
||||||
|
|
||||||
|
@ -339,7 +339,7 @@ Stephh's notes (based on the games Z80 code and some tests) for other games :
|
|||||||
but their status is discarded with 3 'NOP' instructions at 0x06d1.
|
but their status is discarded with 3 'NOP' instructions at 0x06d1.
|
||||||
- DSW0 is read via code at 0x2426, but its contents is directly overwritten
|
- DSW0 is read via code at 0x2426, but its contents is directly overwritten
|
||||||
with value read from DSW1 (AY port A) via code at 0x3647.
|
with value read from DSW1 (AY port A) via code at 0x3647.
|
||||||
|
|
||||||
4) 'ozon1'
|
4) 'ozon1'
|
||||||
|
|
||||||
- Player 2 controls are used for player 2 regardless of the "Cabinet" Dip Switch
|
- Player 2 controls are used for player 2 regardless of the "Cabinet" Dip Switch
|
||||||
|
@ -5025,7 +5025,7 @@ static MACHINE_DRIVER_START( lucky8 )
|
|||||||
MDRV_CPU_PROGRAM_MAP(lucky8_map)
|
MDRV_CPU_PROGRAM_MAP(lucky8_map)
|
||||||
//MDRV_CPU_IO_MAP(goldstar_readport)
|
//MDRV_CPU_IO_MAP(goldstar_readport)
|
||||||
MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse)
|
MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse)
|
||||||
// MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) // causes 'magical' to display 'wait' instead
|
// MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) // causes 'magical' to display 'wait' instead
|
||||||
|
|
||||||
/* 3x 8255 */
|
/* 3x 8255 */
|
||||||
MDRV_PPI8255_ADD( "ppi8255_0", lucky8_ppi8255_intf[0] )
|
MDRV_PPI8255_ADD( "ppi8255_0", lucky8_ppi8255_intf[0] )
|
||||||
|
@ -783,28 +783,28 @@ static const k056230_interface thunderh_k056230_intf =
|
|||||||
|
|
||||||
static const k001604_interface gticlub_k001604_intf =
|
static const k001604_interface gticlub_k001604_intf =
|
||||||
{
|
{
|
||||||
1, 2, /* gfx index 1 & 2 */
|
1, 2, /* gfx index 1 & 2 */
|
||||||
1, 1, /* layer_size, roz_size */
|
1, 1, /* layer_size, roz_size */
|
||||||
0 /* slrasslt hack */
|
0 /* slrasslt hack */
|
||||||
};
|
};
|
||||||
|
|
||||||
static const k001604_interface slrasslt_k001604_intf =
|
static const k001604_interface slrasslt_k001604_intf =
|
||||||
{
|
{
|
||||||
1, 2, /* gfx index 1 & 2 */
|
1, 2, /* gfx index 1 & 2 */
|
||||||
0, 0, /* layer_size, roz_size */
|
0, 0, /* layer_size, roz_size */
|
||||||
1 /* slrasslt hack */
|
1 /* slrasslt hack */
|
||||||
};
|
};
|
||||||
|
|
||||||
static const k001604_interface hangplt_k001604_intf_l =
|
static const k001604_interface hangplt_k001604_intf_l =
|
||||||
{
|
{
|
||||||
1, 2, /* gfx index 1 & 2 */
|
1, 2, /* gfx index 1 & 2 */
|
||||||
0, 1, /* layer_size, roz_size */
|
0, 1, /* layer_size, roz_size */
|
||||||
0 /* slrasslt hack */
|
0 /* slrasslt hack */
|
||||||
};
|
};
|
||||||
|
|
||||||
static const k001604_interface hangplt_k001604_intf_r =
|
static const k001604_interface hangplt_k001604_intf_r =
|
||||||
{
|
{
|
||||||
3, 4, /* gfx index 1 & 2 */
|
3, 4, /* gfx index 1 & 2 */
|
||||||
0, 1, /* layer_size, roz_size */
|
0, 1, /* layer_size, roz_size */
|
||||||
0 /* slrasslt hack */
|
0 /* slrasslt hack */
|
||||||
};
|
};
|
||||||
|
@ -372,7 +372,7 @@ static DRIVER_INIT( gunpey )
|
|||||||
|
|
||||||
/* patch SLOOOOW cycle checks ... */
|
/* patch SLOOOOW cycle checks ... */
|
||||||
rom[0x848b5] = 0x7e;
|
rom[0x848b5] = 0x7e;
|
||||||
// rom[0x848b6] = 0x03;
|
// rom[0x848b6] = 0x03;
|
||||||
rom[0x89657] = 0x75;
|
rom[0x89657] = 0x75;
|
||||||
rom[0x8e628] = 0x75;
|
rom[0x8e628] = 0x75;
|
||||||
|
|
||||||
|
@ -731,7 +731,7 @@ static WRITE16_HANDLER( c76_speedup_w )
|
|||||||
|
|
||||||
static READ16_HANDLER( c76_inputs_r )
|
static READ16_HANDLER( c76_inputs_r )
|
||||||
{
|
{
|
||||||
// logerror("'c76' Read port %d @ %06X\n", offset, cpu_get_pc(space->cpu));
|
// logerror("'c76' Read port %d @ %06X\n", offset, cpu_get_pc(space->cpu));
|
||||||
|
|
||||||
switch (offset)
|
switch (offset)
|
||||||
{
|
{
|
||||||
@ -831,7 +831,7 @@ INTERRUPT_GEN( c76_interrupt )
|
|||||||
switch (cpu_getiloops(device))
|
switch (cpu_getiloops(device))
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
cpu_set_input_line(device, M37710_LINE_IRQ0, HOLD_LINE);
|
cpu_set_input_line(device, M37710_LINE_IRQ0, HOLD_LINE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -3067,7 +3067,7 @@ ROM_START( gram2000 )
|
|||||||
ROM_REGION( 0xb000000, "user1", ROMREGION_ERASEFF)
|
ROM_REGION( 0xb000000, "user1", ROMREGION_ERASEFF)
|
||||||
ROM_LOAD("epr-23377.ic11", 0x0000000, 0x0400000, CRC(4ca3149c) SHA1(9d25fc659658b416202b033754669be2f3abcdbe) )
|
ROM_LOAD("epr-23377.ic11", 0x0000000, 0x0400000, CRC(4ca3149c) SHA1(9d25fc659658b416202b033754669be2f3abcdbe) )
|
||||||
/* Test mode returns IC1 as bad dump, it looks like that is data provided by the Actel A54SX32 FPGA present on board
|
/* Test mode returns IC1 as bad dump, it looks like that is data provided by the Actel A54SX32 FPGA present on board
|
||||||
and mirrored there. Provided as documentation until we know more about it. */
|
and mirrored there. Provided as documentation until we know more about it. */
|
||||||
ROM_LOAD("gram2000.ic1", 0x0800000, 0x0800000, CRC(4a86556a) SHA1(61100dc84c95dd47d9f61c7cc52ea25579b90632) )
|
ROM_LOAD("gram2000.ic1", 0x0800000, 0x0800000, CRC(4a86556a) SHA1(61100dc84c95dd47d9f61c7cc52ea25579b90632) )
|
||||||
ROM_LOAD32_WORD("mpr-23357.ic17", 0x1000000, 0x0800000, CRC(eaf77487) SHA1(bdfc4666a6724441c11b31d89fa30c4bd11cbdd1) ) //ic 2
|
ROM_LOAD32_WORD("mpr-23357.ic17", 0x1000000, 0x0800000, CRC(eaf77487) SHA1(bdfc4666a6724441c11b31d89fa30c4bd11cbdd1) ) //ic 2
|
||||||
ROM_LOAD32_WORD("mpr-23358.ic18", 0x1000002, 0x0800000, CRC(96819a5b) SHA1(e28c9d7b0579ab5d6116401b49f30dc8e4961618) ) //ic 3
|
ROM_LOAD32_WORD("mpr-23358.ic18", 0x1000002, 0x0800000, CRC(96819a5b) SHA1(e28c9d7b0579ab5d6116401b49f30dc8e4961618) ) //ic 3
|
||||||
|
@ -63,7 +63,7 @@ static const gfx_layout charlayout =
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static GFXDECODE_START( neptunp2 )
|
static GFXDECODE_START( neptunp2 )
|
||||||
// GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 8 )
|
// GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 8 )
|
||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
static MACHINE_DRIVER_START( neptunp2 )
|
static MACHINE_DRIVER_START( neptunp2 )
|
||||||
@ -72,7 +72,7 @@ static MACHINE_DRIVER_START( neptunp2 )
|
|||||||
MDRV_CPU_ADD("maincpu",I80188,20000000) // N80C188-20 AMD
|
MDRV_CPU_ADD("maincpu",I80188,20000000) // N80C188-20 AMD
|
||||||
MDRV_CPU_PROGRAM_MAP(neptunp2_map)
|
MDRV_CPU_PROGRAM_MAP(neptunp2_map)
|
||||||
MDRV_CPU_IO_MAP(neptunp2_io)
|
MDRV_CPU_IO_MAP(neptunp2_io)
|
||||||
// MDRV_CPU_VBLANK_INT("screen",irq0_line_hold)
|
// MDRV_CPU_VBLANK_INT("screen",irq0_line_hold)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -635,14 +635,14 @@ static const k033906_interface nwktr_k033906_interface =
|
|||||||
|
|
||||||
static const k001604_interface racingj_k001604_intf =
|
static const k001604_interface racingj_k001604_intf =
|
||||||
{
|
{
|
||||||
0, 1, /* gfx index 1 & 2 */
|
0, 1, /* gfx index 1 & 2 */
|
||||||
0, 1, /* layer_size, roz_size */
|
0, 1, /* layer_size, roz_size */
|
||||||
0 /* slrasslt hack */
|
0 /* slrasslt hack */
|
||||||
};
|
};
|
||||||
|
|
||||||
static const k001604_interface thrilld_k001604_intf =
|
static const k001604_interface thrilld_k001604_intf =
|
||||||
{
|
{
|
||||||
0, 1, /* gfx index 1 & 2 */
|
0, 1, /* gfx index 1 & 2 */
|
||||||
1, 1, /* layer_size, roz_size */
|
1, 1, /* layer_size, roz_size */
|
||||||
0 /* slrasslt hack */
|
0 /* slrasslt hack */
|
||||||
};
|
};
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
PACHI FEVER / SANKI DENSHI KOGYO
|
PACHI FEVER / SANKI DENSHI KOGYO
|
||||||
|
|
||||||
|
|
||||||
GEN6480830 (TEXAS INSTRUMENTS)
|
GEN6480830 (TEXAS INSTRUMENTS)
|
||||||
XTAL:12.000MHZ
|
XTAL:12.000MHZ
|
||||||
RY050012 (TEXAS INSTRUMENTS)
|
RY050012 (TEXAS INSTRUMENTS)
|
||||||
XTAL:10.738MHZ
|
XTAL:10.738MHZ
|
||||||
|
|
||||||
SOUND :MSM5205 & ?
|
SOUND :MSM5205 & ?
|
||||||
@ -21,14 +21,14 @@ Tomasz Slanina 10.02.2010:
|
|||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
There's very little info about the game or hardware, so all the above (except for clocks and MSM ) is
|
There's very little info about the game or hardware, so all the above (except for clocks and MSM ) is
|
||||||
just a guess:
|
just a guess:
|
||||||
|
|
||||||
- CPU (GEN6480830 ?) is TMS9995 or derivative ( decrementer + lvl3 interrupt, internal ram)
|
- CPU (GEN6480830 ?) is TMS9995 or derivative ( decrementer + lvl3 interrupt, internal ram)
|
||||||
- RY050012 could be a VDP ( probably TMS9928A )
|
- RY050012 could be a VDP ( probably TMS9928A )
|
||||||
- SN76469A (or similar) used for music
|
- SN76469A (or similar) used for music
|
||||||
- MSM5205 - sample player (see below)
|
- MSM5205 - sample player (see below)
|
||||||
|
|
||||||
- TODO:
|
- TODO:
|
||||||
- what's the correct game title - Pachifever ? Fever 777 ?
|
- what's the correct game title - Pachifever ? Fever 777 ?
|
||||||
- ic48.50 ROM redump (probably more adpcm samples + lookuptable .. mapped at $c000)
|
- ic48.50 ROM redump (probably more adpcm samples + lookuptable .. mapped at $c000)
|
||||||
- remaing DSW
|
- remaing DSW
|
||||||
@ -37,7 +37,7 @@ just a guess:
|
|||||||
- controls : make PLUNGER (or whatever it is in reality) implementation more clear
|
- controls : make PLUNGER (or whatever it is in reality) implementation more clear
|
||||||
here's some code used to read plunger pos(angle?):
|
here's some code used to read plunger pos(angle?):
|
||||||
|
|
||||||
0284: 04CC clr R12 ; CRU address
|
0284: 04CC clr R12 ; CRU address
|
||||||
0286: 0208 FF00 li R8,>ff00 ; R8=ff00 - initial data ($ff)
|
0286: 0208 FF00 li R8,>ff00 ; R8=ff00 - initial data ($ff)
|
||||||
028A: D688 movb R8,*R10 ; ff-> ff40 - write to output
|
028A: D688 movb R8,*R10 ; ff-> ff40 - write to output
|
||||||
028C: 3449 stcr R9,1 ; CRU read (one bit)
|
028C: 3449 stcr R9,1 ; CRU read (one bit)
|
||||||
@ -64,7 +64,7 @@ typedef struct _pachifev_state pachifev_state;
|
|||||||
struct _pachifev_state
|
struct _pachifev_state
|
||||||
{
|
{
|
||||||
/* controls related */
|
/* controls related */
|
||||||
|
|
||||||
int power;
|
int power;
|
||||||
int max_power;
|
int max_power;
|
||||||
int input_power;
|
int input_power;
|
||||||
@ -75,7 +75,7 @@ struct _pachifev_state
|
|||||||
|
|
||||||
static WRITE8_HANDLER(controls_w)
|
static WRITE8_HANDLER(controls_w)
|
||||||
{
|
{
|
||||||
if(!data)
|
if(!data)
|
||||||
{
|
{
|
||||||
pachifev_state *state = (pachifev_state *)space->machine->driver_data;
|
pachifev_state *state = (pachifev_state *)space->machine->driver_data;
|
||||||
|
|
||||||
@ -100,7 +100,7 @@ static READ8_HANDLER(controls_r)
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( pachifev_map, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( pachifev_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
AM_RANGE(0x0000, 0x9fff) AM_ROM
|
AM_RANGE(0x0000, 0x9fff) AM_ROM
|
||||||
|
|
||||||
AM_RANGE(0xc000, 0xc0ff) AM_NOP /* game is expecting here some kind of lookup table (adpcm samples start?) */
|
AM_RANGE(0xc000, 0xc0ff) AM_NOP /* game is expecting here some kind of lookup table (adpcm samples start?) */
|
||||||
|
|
||||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM
|
AM_RANGE(0xe000, 0xe7ff) AM_RAM
|
||||||
@ -127,21 +127,21 @@ ADDRESS_MAP_END
|
|||||||
static INPUT_PORTS_START( pachifev )
|
static INPUT_PORTS_START( pachifev )
|
||||||
PORT_START("IN0")
|
PORT_START("IN0")
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* used on enter player initials in top 5 */
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* used on enter player initials in top 5 */
|
||||||
PORT_BIT( 0x4d, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x4d, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||||
|
|
||||||
PORT_START("IN1")
|
PORT_START("IN1")
|
||||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
|
||||||
PORT_START("DSW1")
|
PORT_START("DSW1")
|
||||||
PORT_DIPUNKNOWN( 0x07, 0x07 )
|
PORT_DIPUNKNOWN( 0x07, 0x07 )
|
||||||
|
|
||||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) )
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) )
|
||||||
PORT_DIPSETTING( 0x08, DEF_STR( Upright ) )
|
PORT_DIPSETTING( 0x08, DEF_STR( Upright ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
|
||||||
|
|
||||||
PORT_DIPNAME( 0x30, 0x10, "Balls" )
|
PORT_DIPNAME( 0x30, 0x10, "Balls" )
|
||||||
PORT_DIPSETTING( 0x00, "200")
|
PORT_DIPSETTING( 0x00, "200")
|
||||||
PORT_DIPSETTING( 0x10, "100")
|
PORT_DIPSETTING( 0x10, "100")
|
||||||
@ -153,39 +153,39 @@ static INPUT_PORTS_START( pachifev )
|
|||||||
PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) )
|
PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) )
|
||||||
PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
|
PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) )
|
||||||
|
|
||||||
PORT_START("DSW2")
|
PORT_START("DSW2")
|
||||||
|
|
||||||
PORT_DIPNAME( 0x03, 0x01, "Time" )
|
PORT_DIPNAME( 0x03, 0x01, "Time" )
|
||||||
PORT_DIPSETTING( 0x00, "180")
|
PORT_DIPSETTING( 0x00, "180")
|
||||||
PORT_DIPSETTING( 0x01, "120")
|
PORT_DIPSETTING( 0x01, "120")
|
||||||
PORT_DIPSETTING( 0x02, "150")
|
PORT_DIPSETTING( 0x02, "150")
|
||||||
PORT_DIPSETTING( 0x03, "90")
|
PORT_DIPSETTING( 0x03, "90")
|
||||||
|
|
||||||
PORT_DIPUNKNOWN( 0x0c, 0x0c )
|
PORT_DIPUNKNOWN( 0x0c, 0x0c )
|
||||||
|
|
||||||
PORT_DIPNAME( 0x30, 0x20, "Limit (attract)" ) /* attract mode only??? */
|
PORT_DIPNAME( 0x30, 0x20, "Limit (attract)" ) /* attract mode only??? */
|
||||||
PORT_DIPSETTING( 0x00, "2000")
|
PORT_DIPSETTING( 0x00, "2000")
|
||||||
PORT_DIPSETTING( 0x10, "1500")
|
PORT_DIPSETTING( 0x10, "1500")
|
||||||
PORT_DIPSETTING( 0x20, "1000")
|
PORT_DIPSETTING( 0x20, "1000")
|
||||||
PORT_DIPSETTING( 0x30, "500")
|
PORT_DIPSETTING( 0x30, "500")
|
||||||
|
|
||||||
PORT_DIPNAME( 0xc0, 0xc0, "Limit (game)" ) /* ball limit in game */
|
PORT_DIPNAME( 0xc0, 0xc0, "Limit (game)" ) /* ball limit in game */
|
||||||
PORT_DIPSETTING( 0x00, "1500")
|
PORT_DIPSETTING( 0x00, "1500")
|
||||||
PORT_DIPSETTING( 0x40, "1000")
|
PORT_DIPSETTING( 0x40, "1000")
|
||||||
PORT_DIPSETTING( 0x80, "500")
|
PORT_DIPSETTING( 0x80, "500")
|
||||||
PORT_DIPSETTING( 0xc0, "300")
|
PORT_DIPSETTING( 0xc0, "300")
|
||||||
|
|
||||||
PORT_START("DSW3")
|
PORT_START("DSW3")
|
||||||
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
|
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
|
||||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
|
||||||
PORT_DIPUNKNOWN( 0xfe, 0xfe )
|
PORT_DIPUNKNOWN( 0xfe, 0xfe )
|
||||||
|
|
||||||
PORT_START("PLUNGER")
|
PORT_START("PLUNGER")
|
||||||
PORT_BIT( 0x3f, 0x00, IPT_POSITIONAL ) PORT_MINMAX(0x00,0x3f) PORT_SENSITIVITY(30) PORT_KEYDELTA(4) PORT_CENTERDELTA(0xff)
|
PORT_BIT( 0x3f, 0x00, IPT_POSITIONAL ) PORT_MINMAX(0x00,0x3f) PORT_SENSITIVITY(30) PORT_KEYDELTA(4) PORT_CENTERDELTA(0xff)
|
||||||
|
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
@ -231,13 +231,13 @@ static const msm5205_interface msm5205_config =
|
|||||||
static MACHINE_RESET( pachifev )
|
static MACHINE_RESET( pachifev )
|
||||||
{
|
{
|
||||||
pachifev_state *state = (pachifev_state *)machine->driver_data;
|
pachifev_state *state = (pachifev_state *)machine->driver_data;
|
||||||
|
|
||||||
state->power=0;
|
state->power=0;
|
||||||
state->max_power=0;
|
state->max_power=0;
|
||||||
state->input_power=0;
|
state->input_power=0;
|
||||||
state->previous_power=0;
|
state->previous_power=0;
|
||||||
state->cnt=0;
|
state->cnt=0;
|
||||||
|
|
||||||
#if USE_MSM
|
#if USE_MSM
|
||||||
adpcm_pos = 0;
|
adpcm_pos = 0;
|
||||||
#endif
|
#endif
|
||||||
@ -247,7 +247,7 @@ static MACHINE_RESET( pachifev )
|
|||||||
static INTERRUPT_GEN( pachifev_vblank_irq )
|
static INTERRUPT_GEN( pachifev_vblank_irq )
|
||||||
{
|
{
|
||||||
TMS9928A_interrupt(device->machine);
|
TMS9928A_interrupt(device->machine);
|
||||||
|
|
||||||
{
|
{
|
||||||
pachifev_state *state = (pachifev_state *)device->machine->driver_data;
|
pachifev_state *state = (pachifev_state *)device->machine->driver_data;
|
||||||
int current_power=input_port_read(device->machine, "PLUNGER") & 0x3f;
|
int current_power=input_port_read(device->machine, "PLUNGER") & 0x3f;
|
||||||
@ -255,13 +255,13 @@ static INTERRUPT_GEN( pachifev_vblank_irq )
|
|||||||
{
|
{
|
||||||
popmessage ("%d%%", (current_power * 100) / 0x3f);
|
popmessage ("%d%%", (current_power * 100) / 0x3f);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (!current_power) && (state->previous_power) )
|
if( (!current_power) && (state->previous_power) )
|
||||||
{
|
{
|
||||||
state->input_power=state->previous_power;
|
state->input_power=state->previous_power;
|
||||||
state->cnt=NUM_PLUNGER_REPEATS;
|
state->cnt=NUM_PLUNGER_REPEATS;
|
||||||
}
|
}
|
||||||
|
|
||||||
state->previous_power=current_power;
|
state->previous_power=current_power;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -281,7 +281,7 @@ static MACHINE_START( pachifev)
|
|||||||
TMS9928A_configure(&tms9928a_interface);
|
TMS9928A_configure(&tms9928a_interface);
|
||||||
{
|
{
|
||||||
pachifev_state *state = (pachifev_state *)machine->driver_data;
|
pachifev_state *state = (pachifev_state *)machine->driver_data;
|
||||||
|
|
||||||
state_save_register_global(machine, state->power);
|
state_save_register_global(machine, state->power);
|
||||||
state_save_register_global(machine, state->max_power);
|
state_save_register_global(machine, state->max_power);
|
||||||
state_save_register_global(machine, state->input_power);
|
state_save_register_global(machine, state->input_power);
|
||||||
@ -322,8 +322,8 @@ static MACHINE_DRIVER_START( pachifev )
|
|||||||
MDRV_SOUND_ADD("adpcm", MSM5205, 288000) /* guess */
|
MDRV_SOUND_ADD("adpcm", MSM5205, 288000) /* guess */
|
||||||
MDRV_SOUND_CONFIG(msm5205_config)
|
MDRV_SOUND_CONFIG(msm5205_config)
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
|
||||||
#endif
|
#endif
|
||||||
MDRV_SOUND_ADD("sn76", SN76489, XTAL_10_738635MHz/3) /* guess */
|
MDRV_SOUND_ADD("sn76", SN76489, XTAL_10_738635MHz/3) /* guess */
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
@ -337,7 +337,7 @@ ROM_START( pachifev )
|
|||||||
|
|
||||||
ROM_REGION( 0x4000, "adpcm", 0 )
|
ROM_REGION( 0x4000, "adpcm", 0 )
|
||||||
ROM_LOAD( "ic66.10", 0x0000, 0x2000, CRC(217c573e) SHA1(6fb90865d1d81f5ea00fa7916d0ccb6756ef5ce5) )
|
ROM_LOAD( "ic66.10", 0x0000, 0x2000, CRC(217c573e) SHA1(6fb90865d1d81f5ea00fa7916d0ccb6756ef5ce5) )
|
||||||
|
|
||||||
ROM_REGION( 0x2000, "user1", 0 )
|
ROM_REGION( 0x2000, "user1", 0 )
|
||||||
ROM_LOAD( "ic48.50", 0x00000, 0x2000, BAD_DUMP CRC(1c8c66d7) SHA1(3b9b05f35b20d798651c7d5fdb35e6af956615a1) )
|
ROM_LOAD( "ic48.50", 0x00000, 0x2000, BAD_DUMP CRC(1c8c66d7) SHA1(3b9b05f35b20d798651c7d5fdb35e6af956615a1) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
@ -534,7 +534,7 @@ encryption method! The technique is a combination of a XOR table plus
|
|||||||
bit-swapping */
|
bit-swapping */
|
||||||
static void common_decrypt(running_machine *machine)
|
static void common_decrypt(running_machine *machine)
|
||||||
{
|
{
|
||||||
|
|
||||||
UINT16 *RAM = (UINT16 *)memory_region(machine, "maincpu");
|
UINT16 *RAM = (UINT16 *)memory_region(machine, "maincpu");
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Sang Ho Soft 'Puzzle Star' PCB
|
Sang Ho Soft 'Puzzle Star' PCB
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ static void sexyboom_map_bank(running_machine *machine, int bank)
|
|||||||
{
|
{
|
||||||
UINT8 banknum, banktype;
|
UINT8 banknum, banktype;
|
||||||
char read_bank_name[6], write_bank_name[6];
|
char read_bank_name[6], write_bank_name[6];
|
||||||
|
|
||||||
banknum = sexyboom_bank[bank*2];
|
banknum = sexyboom_bank[bank*2];
|
||||||
banktype = sexyboom_bank[bank*2 + 1];
|
banktype = sexyboom_bank[bank*2 + 1];
|
||||||
sprintf(read_bank_name, "bank%d", bank+1);
|
sprintf(read_bank_name, "bank%d", bank+1);
|
||||||
|
@ -205,7 +205,7 @@ static MACHINE_RESET( yboard )
|
|||||||
|
|
||||||
state->irq2_scanline = 170;
|
state->irq2_scanline = 170;
|
||||||
|
|
||||||
state->interrupt_timer = devtag_get_device(machine, "int_timer");
|
state->interrupt_timer = devtag_get_device(machine, "int_timer");
|
||||||
timer_device_adjust_oneshot(state->interrupt_timer, video_screen_get_time_until_pos(machine->primary_screen, 223, 0), 223);
|
timer_device_adjust_oneshot(state->interrupt_timer, video_screen_get_time_until_pos(machine->primary_screen, 223, 0), 223);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,9 +152,9 @@ static VIDEO_UPDATE( jwildb52 )
|
|||||||
|
|
||||||
b = ((hd63484_regs_r(hd63484, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, 0xce/2, 0xffff);
|
b = ((hd63484_regs_r(hd63484, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, 0xce/2, 0xffff);
|
||||||
|
|
||||||
//save vram to file
|
//save vram to file
|
||||||
#if 0
|
#if 0
|
||||||
if (input_code_pressed_once(screen->machine, KEYCODE_Q))
|
if (input_code_pressed_once(screen->machine, KEYCODE_Q))
|
||||||
{
|
{
|
||||||
FILE *p = fopen("vram.bin", "wb");
|
FILE *p = fopen("vram.bin", "wb");
|
||||||
fwrite(&HD63484_ram[0], 1, 0x40000 * 4, p);
|
fwrite(&HD63484_ram[0], 1, 0x40000 * 4, p);
|
||||||
@ -167,7 +167,7 @@ static VIDEO_UPDATE( jwildb52 )
|
|||||||
{
|
{
|
||||||
for (x = 0; x < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff) * 4; x += 4)
|
for (x = 0; x < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff) * 4; x += 4)
|
||||||
{
|
{
|
||||||
|
|
||||||
src = hd63484_ram_r(hd63484, b & (HD63484_RAM_SIZE - 1), 0xffff);
|
src = hd63484_ram_r(hd63484, b & (HD63484_RAM_SIZE - 1), 0xffff);
|
||||||
|
|
||||||
*BITMAP_ADDR16(bitmap, y, x ) = ((src & 0x000f) >> 0) << 0;
|
*BITMAP_ADDR16(bitmap, y, x ) = ((src & 0x000f) >> 0) << 0;
|
||||||
@ -238,7 +238,7 @@ static WRITE8_HANDLER(acrtc_w)
|
|||||||
if(!latch)
|
if(!latch)
|
||||||
{
|
{
|
||||||
acrtc_data = data;
|
acrtc_data = data;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
@ -301,7 +301,7 @@ static ADDRESS_MAP_START( jwildb52_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0xf700, 0xf700) AM_READ(unk_f700_r)
|
AM_RANGE(0xf700, 0xf700) AM_READ(unk_f700_r)
|
||||||
AM_RANGE(0xf710, 0xf710) AM_WRITE(unk_f710_w)
|
AM_RANGE(0xf710, 0xf710) AM_WRITE(unk_f710_w)
|
||||||
AM_RANGE(0xf721, 0xf721) AM_READ(unk_f721_r)
|
AM_RANGE(0xf721, 0xf721) AM_READ(unk_f721_r)
|
||||||
|
|
||||||
//AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("hd63484", hd63484_status_r, hd63484_address_w)
|
//AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("hd63484", hd63484_status_r, hd63484_address_w)
|
||||||
//AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("hd63484", hd63484_data_r, hd63484_data_w)
|
//AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("hd63484", hd63484_data_r, hd63484_data_w)
|
||||||
|
|
||||||
@ -528,19 +528,19 @@ static MACHINE_START(jwildb52)
|
|||||||
memory_set_bankptr(machine, "bank1", &memory_region(machine, "maincpu")[0x10000 + 0x0000]);
|
memory_set_bankptr(machine, "bank1", &memory_region(machine, "maincpu")[0x10000 + 0x0000]);
|
||||||
|
|
||||||
memory_set_bankptr(machine, "bank2", &memory_region(machine, "maincpu")[0x10000 + 0xf800]);
|
memory_set_bankptr(machine, "bank2", &memory_region(machine, "maincpu")[0x10000 + 0xf800]);
|
||||||
|
|
||||||
memory_set_bankptr(machine, "bank3", &memory_region(machine, "maincpu")[0x10000 + 0x8000]);
|
memory_set_bankptr(machine, "bank3", &memory_region(machine, "maincpu")[0x10000 + 0x8000]);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
ACRTC memory:
|
ACRTC memory:
|
||||||
|
|
||||||
00000-3ffff = RAM
|
00000-3ffff = RAM
|
||||||
40000-7ffff = ROM
|
40000-7ffff = ROM
|
||||||
80000-bffff = unused
|
80000-bffff = unused
|
||||||
c0000-fffff = unused
|
c0000-fffff = unused
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
{
|
{
|
||||||
UINT16 *rom = (UINT16*)memory_region(machine, "gfx1");
|
UINT16 *rom = (UINT16*)memory_region(machine, "gfx1");
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
- Final Fight 2
|
- Final Fight 2
|
||||||
- Sonic Blast Man 2
|
- Sonic Blast Man 2
|
||||||
- Iron (bootleg of Iron Commando)
|
- Iron (bootleg of Iron Commando)
|
||||||
- Ghost Chaser Densei
|
- Ghost Chaser Densei
|
||||||
|
|
||||||
Not dumped:
|
Not dumped:
|
||||||
- Final Fight 3
|
- Final Fight 3
|
||||||
@ -1066,7 +1066,7 @@ static DRIVER_INIT( denseib )
|
|||||||
|
|
||||||
UINT8 *rom = memory_region(machine, "user3");
|
UINT8 *rom = memory_region(machine, "user3");
|
||||||
|
|
||||||
INT32 i;
|
INT32 i;
|
||||||
for(i=0;i<0x200000;i++)
|
for(i=0;i<0x200000;i++)
|
||||||
{
|
{
|
||||||
rom[i]=rom[i]^0xff;
|
rom[i]=rom[i]^0xff;
|
||||||
@ -1084,11 +1084,11 @@ static DRIVER_INIT( denseib )
|
|||||||
/* boot vector */
|
/* boot vector */
|
||||||
rom[0xfffc]=0x40;
|
rom[0xfffc]=0x40;
|
||||||
rom[0xfffd]=0xf7;
|
rom[0xfffd]=0xf7;
|
||||||
|
|
||||||
/* extra inputs */
|
/* extra inputs */
|
||||||
memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x770071, 0x770071, 0, 0, denseib_770071_r);
|
memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x770071, 0x770071, 0, 0, denseib_770071_r);
|
||||||
memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x770079, 0x770079, 0, 0, denseib_770079_r);
|
memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x770079, 0x770079, 0, 0, denseib_770079_r);
|
||||||
|
|
||||||
|
|
||||||
DRIVER_INIT_CALL(snes_hirom);
|
DRIVER_INIT_CALL(snes_hirom);
|
||||||
}
|
}
|
||||||
|
@ -734,7 +734,7 @@ static ADDRESS_MAP_START( tisub_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
|
|
||||||
AM_RANGE( 0x09016, 0x09017 ) AM_DEVWRITE( "ymsnd", ym3812_w )
|
AM_RANGE( 0x09016, 0x09017 ) AM_DEVWRITE( "ymsnd", ym3812_w )
|
||||||
|
|
||||||
// AM_RANGE( 0x0900c, 0x0900c ) AM_DEVWRITE( "oki", okim6295_w )
|
// AM_RANGE( 0x0900c, 0x0900c ) AM_DEVWRITE( "oki", okim6295_w )
|
||||||
|
|
||||||
AM_RANGE( 0x0901b, 0x0901b ) AM_WRITE( subsino_tiles_offset_w )
|
AM_RANGE( 0x0901b, 0x0901b ) AM_WRITE( subsino_tiles_offset_w )
|
||||||
|
|
||||||
|
@ -381,7 +381,7 @@ static void tturfbl_msm5205_callback( running_device *device )
|
|||||||
cpu_set_input_line(state->soundcpu, INPUT_LINE_NMI, PULSE_LINE);
|
cpu_set_input_line(state->soundcpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const msm5205_interface tturfbl_msm5205_interface =
|
static const msm5205_interface tturfbl_msm5205_interface =
|
||||||
{
|
{
|
||||||
tturfbl_msm5205_callback,
|
tturfbl_msm5205_callback,
|
||||||
MSM5205_S48_4B
|
MSM5205_S48_4B
|
||||||
@ -392,7 +392,7 @@ static READ8_HANDLER( tturfbl_soundbank_r )
|
|||||||
{
|
{
|
||||||
segas1x_bootleg_state *state = (segas1x_bootleg_state *)space->machine->driver_data;
|
segas1x_bootleg_state *state = (segas1x_bootleg_state *)space->machine->driver_data;
|
||||||
|
|
||||||
if (state->soundbank_ptr)
|
if (state->soundbank_ptr)
|
||||||
return state->soundbank_ptr[offset & 0x3fff];
|
return state->soundbank_ptr[offset & 0x3fff];
|
||||||
return 0x80;
|
return 0x80;
|
||||||
}
|
}
|
||||||
@ -1076,9 +1076,9 @@ static WRITE8_HANDLER( sys18_soundbank_w )
|
|||||||
int mask = state->sound_info[rom * 2 + 0];
|
int mask = state->sound_info[rom * 2 + 0];
|
||||||
int offs = state->sound_info[rom * 2 + 1];
|
int offs = state->sound_info[rom * 2 + 1];
|
||||||
|
|
||||||
if (mask)
|
if (mask)
|
||||||
state->sound_bank = &mem[0x10000 + offs + ((bank & mask) << 13)];
|
state->sound_bank = &mem[0x10000 + offs + ((bank & mask) << 13)];
|
||||||
else
|
else
|
||||||
state->sound_bank = NULL;
|
state->sound_bank = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1220,7 +1220,7 @@ static void shdancbl_msm5205_callback(running_device *device)
|
|||||||
cpu_set_input_line(state->soundcpu, INPUT_LINE_NMI, PULSE_LINE);
|
cpu_set_input_line(state->soundcpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const msm5205_interface shdancbl_msm5205_interface =
|
static const msm5205_interface shdancbl_msm5205_interface =
|
||||||
{
|
{
|
||||||
shdancbl_msm5205_callback,
|
shdancbl_msm5205_callback,
|
||||||
MSM5205_S48_4B
|
MSM5205_S48_4B
|
||||||
@ -1230,7 +1230,7 @@ static READ8_HANDLER( shdancbl_soundbank_r )
|
|||||||
{
|
{
|
||||||
segas1x_bootleg_state *state = (segas1x_bootleg_state *)space->machine->driver_data;
|
segas1x_bootleg_state *state = (segas1x_bootleg_state *)space->machine->driver_data;
|
||||||
|
|
||||||
if (state->soundbank_ptr)
|
if (state->soundbank_ptr)
|
||||||
return state->soundbank_ptr[offset & 0x3fff];
|
return state->soundbank_ptr[offset & 0x3fff];
|
||||||
return 0xff;
|
return 0xff;
|
||||||
}
|
}
|
||||||
@ -1969,7 +1969,7 @@ INPUT_PORTS_END
|
|||||||
*
|
*
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
static const gfx_layout charlayout =
|
static const gfx_layout charlayout =
|
||||||
{
|
{
|
||||||
8,8,
|
8,8,
|
||||||
RGN_FRAC(1,3),
|
RGN_FRAC(1,3),
|
||||||
@ -2037,7 +2037,7 @@ static void sound_cause_nmi( running_device *device, int chip )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const upd7759_interface sys16_upd7759_interface =
|
const upd7759_interface sys16_upd7759_interface =
|
||||||
{
|
{
|
||||||
sound_cause_nmi
|
sound_cause_nmi
|
||||||
};
|
};
|
||||||
@ -2335,8 +2335,8 @@ MACHINE_DRIVER_END
|
|||||||
*
|
*
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
/******************************
|
/******************************
|
||||||
System 16A Bootlegs
|
System 16A Bootlegs
|
||||||
******************************/
|
******************************/
|
||||||
|
|
||||||
/* Shinobi bootleg by 'Datsu' - Sound hardware is different */
|
/* Shinobi bootleg by 'Datsu' - Sound hardware is different */
|
||||||
@ -2444,8 +2444,8 @@ ROM_START( wb3bbl )
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
/******************************
|
/******************************
|
||||||
System 16B Bootlegs
|
System 16B Bootlegs
|
||||||
******************************/
|
******************************/
|
||||||
|
|
||||||
// protected + encrypted bootleg
|
// protected + encrypted bootleg
|
||||||
@ -2537,67 +2537,67 @@ ROM_START( bayrouteb2 )
|
|||||||
ROM_LOAD( "br_02", 0x20000, 0x10000, CRC(ef63991b) SHA1(4221741780f88c80b3213ddca949bee7d4c1469a) )
|
ROM_LOAD( "br_02", 0x20000, 0x10000, CRC(ef63991b) SHA1(4221741780f88c80b3213ddca949bee7d4c1469a) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
this is a more complete dump of the old encrypted bootleg set
|
this is a more complete dump of the old encrypted bootleg set
|
||||||
|
|
||||||
Golden Axe (different HW bottleg)
|
Golden Axe (different HW bottleg)
|
||||||
|
|
||||||
Anno 1989
|
Anno 1989
|
||||||
Produttore
|
Produttore
|
||||||
N.revisione
|
N.revisione
|
||||||
|
|
||||||
CPU:
|
CPU:
|
||||||
main PCB:
|
main PCB:
|
||||||
1x 68000 (main)(missing)
|
1x 68000 (main)(missing)
|
||||||
1x LH0080B-Z80B-CPU (sound)
|
1x LH0080B-Z80B-CPU (sound)
|
||||||
1x D7759C (sound)
|
1x D7759C (sound)
|
||||||
1x YM2151 (sound)
|
1x YM2151 (sound)
|
||||||
1x YM3012 (sound)
|
1x YM3012 (sound)
|
||||||
1x UPC1241H (sound)
|
1x UPC1241H (sound)
|
||||||
1x oscillator 20.000 (close to main)
|
1x oscillator 20.000 (close to main)
|
||||||
1x oscillator 24.000MHz (close to sound)
|
1x oscillator 24.000MHz (close to sound)
|
||||||
1x blue resonator 655K (close to sound)
|
1x blue resonator 655K (close to sound)
|
||||||
|
|
||||||
ROMs:
|
ROMs:
|
||||||
main PCB:
|
main PCB:
|
||||||
2x NMC27C512 (1,3)
|
2x NMC27C512 (1,3)
|
||||||
2x NMC27C256 (2,12)
|
2x NMC27C256 (2,12)
|
||||||
8x TMS27PC512 (4,5,6,7,8,9,10,11)
|
8x TMS27PC512 (4,5,6,7,8,9,10,11)
|
||||||
|
|
||||||
roms PCB:
|
roms PCB:
|
||||||
29x Am27C512 (13-32,34-42)
|
29x Am27C512 (13-32,34-42)
|
||||||
1x NMC27C512 (33)
|
1x NMC27C512 (33)
|
||||||
1x PROM N82S129N
|
1x PROM N82S129N
|
||||||
|
|
||||||
|
|
||||||
RAMs:
|
RAMs:
|
||||||
main PCB:
|
main PCB:
|
||||||
1x GM76C28
|
1x GM76C28
|
||||||
2x GM76C88
|
2x GM76C88
|
||||||
2x HM6116K
|
2x HM6116K
|
||||||
|
|
||||||
roms PCB:
|
roms PCB:
|
||||||
8x LC3517BS
|
8x LC3517BS
|
||||||
2x 256K S BGD-A
|
2x 256K S BGD-A
|
||||||
|
|
||||||
|
|
||||||
PLDs:
|
PLDs:
|
||||||
main PCB:
|
main PCB:
|
||||||
3x PAL16L8ACN (not dumped)
|
3x PAL16L8ACN (not dumped)
|
||||||
|
|
||||||
roms PCB:
|
roms PCB:
|
||||||
1x PEEL18CV8P (not dumped)
|
1x PEEL18CV8P (not dumped)
|
||||||
|
|
||||||
Note
|
Note
|
||||||
main PCB:
|
main PCB:
|
||||||
1x JAMMA edge connector
|
1x JAMMA edge connector
|
||||||
2x 50 pins flat cable connector to roms PCB
|
2x 50 pins flat cable connector to roms PCB
|
||||||
1x trimmer (volume)
|
1x trimmer (volume)
|
||||||
2x 8x2 switches dip
|
2x 8x2 switches dip
|
||||||
|
|
||||||
roms PCB:
|
roms PCB:
|
||||||
2x 50 pins flat cable connector to roms PCB
|
2x 50 pins flat cable connector to roms PCB
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ROM_START( goldnaxeb1 )
|
ROM_START( goldnaxeb1 )
|
||||||
@ -2667,24 +2667,24 @@ ROM_START( goldnaxeb1 )
|
|||||||
ROM_LOAD( "82s129.bin", 0x000, 0x100, CRC(88962e80) SHA1(ebf3d57d53fcba727cf20e4bb26f12934f7d1bc7) )
|
ROM_LOAD( "82s129.bin", 0x000, 0x100, CRC(88962e80) SHA1(ebf3d57d53fcba727cf20e4bb26f12934f7d1bc7) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Golden Axe (bootleg) made in Italy?
|
Golden Axe (bootleg) made in Italy?
|
||||||
PCB: GENSYS-1/I
|
PCB: GENSYS-1/I
|
||||||
|
|
||||||
CPUs
|
CPUs
|
||||||
1x SCN68000CAN64-KGQ7551-8931KE (main - upper board)(IC40)
|
1x SCN68000CAN64-KGQ7551-8931KE (main - upper board)(IC40)
|
||||||
1x oscillator 20.000MHz (upper board - near main CPU)(XL2)
|
1x oscillator 20.000MHz (upper board - near main CPU)(XL2)
|
||||||
1x STZ8400BB1-Z80BCPU-28911 (sound - upper board)(IC44)
|
1x STZ8400BB1-Z80BCPU-28911 (sound - upper board)(IC44)
|
||||||
2x YAMAHA YM2203C (sound - upper board)IC27, IC28)
|
2x YAMAHA YM2203C (sound - upper board)IC27, IC28)
|
||||||
1x OKI M5205 (sound - upper board)(IC16)
|
1x OKI M5205 (sound - upper board)(IC16)
|
||||||
2x YAMAHA Y3014B (DAC - sound - upper board)(IC19, IC20)
|
2x YAMAHA Y3014B (DAC - sound - upper board)(IC19, IC20)
|
||||||
1x crystal resonator CSB398P (upper board - near sound CPUs)(XL1)
|
1x crystal resonator CSB398P (upper board - near sound CPUs)(XL1)
|
||||||
1x oscillator 24MHz (lower board near connectors to upper board)(XL1)
|
1x oscillator 24MHz (lower board near connectors to upper board)(XL1)
|
||||||
|
|
||||||
ROMs
|
ROMs
|
||||||
8x TMS27C512-20JL (from 1 to 8 - upper board) (CPU)
|
8x TMS27C512-20JL (from 1 to 8 - upper board) (CPU)
|
||||||
26x ST M27512FI (from 9 to 34 - upper board) (Sound + Tilemap)
|
26x ST M27512FI (from 9 to 34 - upper board) (Sound + Tilemap)
|
||||||
6x ST M27512FI (from 35 to 40 - lower board) (Sprites)
|
6x ST M27512FI (from 35 to 40 - lower board) (Sprites)
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -2892,11 +2892,11 @@ ROM_END
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************
|
/******************************
|
||||||
Tetris-based HW
|
Tetris-based HW
|
||||||
******************************/
|
******************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Program Roms contain
|
Program Roms contain
|
||||||
|
|
||||||
Designed and Programmed by A.M.T. Research & Development Department 03/30/1991.
|
Designed and Programmed by A.M.T. Research & Development Department 03/30/1991.
|
||||||
@ -2958,8 +2958,8 @@ ROM_START( iqpipe )
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
/******************************
|
/******************************
|
||||||
System 18 Bootlegs
|
System 18 Bootlegs
|
||||||
******************************/
|
******************************/
|
||||||
|
|
||||||
ROM_START( astormbl )
|
ROM_START( astormbl )
|
||||||
@ -3416,7 +3416,7 @@ static DRIVER_INIT( mwalkbl )
|
|||||||
{
|
{
|
||||||
segas1x_bootleg_state *state = (segas1x_bootleg_state *)machine->driver_data;
|
segas1x_bootleg_state *state = (segas1x_bootleg_state *)machine->driver_data;
|
||||||
UINT8 *RAM = memory_region(machine, "soundcpu");
|
UINT8 *RAM = memory_region(machine, "soundcpu");
|
||||||
static const int mwalk_sound_info[] =
|
static const int mwalk_sound_info[] =
|
||||||
{
|
{
|
||||||
0x0f, 0x00000, // ROM #1 = 128K
|
0x0f, 0x00000, // ROM #1 = 128K
|
||||||
0x1f, 0x20000, // ROM #2 = 256K
|
0x1f, 0x20000, // ROM #2 = 256K
|
||||||
@ -3438,7 +3438,7 @@ static DRIVER_INIT( astormbl )
|
|||||||
{
|
{
|
||||||
segas1x_bootleg_state *state = (segas1x_bootleg_state *)machine->driver_data;
|
segas1x_bootleg_state *state = (segas1x_bootleg_state *)machine->driver_data;
|
||||||
UINT8 *RAM = memory_region(machine, "soundcpu");
|
UINT8 *RAM = memory_region(machine, "soundcpu");
|
||||||
static const int astormbl_sound_info[] =
|
static const int astormbl_sound_info[] =
|
||||||
{
|
{
|
||||||
0x0f, 0x00000, // ROM #1 = 128K
|
0x0f, 0x00000, // ROM #1 = 128K
|
||||||
0x1f, 0x20000, // ROM #2 = 256K
|
0x1f, 0x20000, // ROM #2 = 256K
|
||||||
|
@ -1763,7 +1763,7 @@ static DRIVER_INIT( mrkicker )
|
|||||||
{
|
{
|
||||||
finalgdr_backupram_bank = 1;
|
finalgdr_backupram_bank = 1;
|
||||||
finalgdr_backupram = auto_alloc_array(machine, UINT8, 0x80*0x100);
|
finalgdr_backupram = auto_alloc_array(machine, UINT8, 0x80*0x100);
|
||||||
// memory_install_read32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x005e874, 0x005e877, 0, 0, mrkicker_speedup_r );
|
// memory_install_read32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x005e874, 0x005e877, 0, 0, mrkicker_speedup_r );
|
||||||
|
|
||||||
palshift = 0;
|
palshift = 0;
|
||||||
flip_bit = 1; //?
|
flip_bit = 1; //?
|
||||||
|
@ -3707,10 +3707,10 @@ ROM_START( lpadv )
|
|||||||
TPS_BIOS
|
TPS_BIOS
|
||||||
|
|
||||||
ROM_REGION32_LE( 0xc00000, "user2", 0 )
|
ROM_REGION32_LE( 0xc00000, "user2", 0 )
|
||||||
ROM_LOAD16_BYTE( "lp_3.u0119", 0x000001, 0x100000, CRC(18cade44) SHA1(8a44156224c77c51f4f6ca61a0168e48dfcc6eda) )
|
ROM_LOAD16_BYTE( "lp_3.u0119", 0x000001, 0x100000, CRC(18cade44) SHA1(8a44156224c77c51f4f6ca61a0168e48dfcc6eda) )
|
||||||
ROM_LOAD16_BYTE( "lp_4.u0120", 0x000000, 0x100000, CRC(12fffc02) SHA1(3294b65e4a0bbf501785565dd0c1f36f9bcea969) )
|
ROM_LOAD16_BYTE( "lp_4.u0120", 0x000000, 0x100000, CRC(12fffc02) SHA1(3294b65e4a0bbf501785565dd0c1f36f9bcea969) )
|
||||||
ROM_LOAD( "rp00.u0216", 0x400000, 0x400000, CRC(d759d0d4) SHA1(47b009a5dfa81611276b1376bdab44dfad597e85) )
|
ROM_LOAD( "rp00.u0216", 0x400000, 0x400000, CRC(d759d0d4) SHA1(47b009a5dfa81611276b1376bdab44dfad597e85) )
|
||||||
ROM_LOAD( "rp01.u0217", 0x800000, 0x400000, CRC(5be576e1) SHA1(e24a96d179016d6d65205079874b35500760a642) )
|
ROM_LOAD( "rp01.u0217", 0x800000, 0x400000, CRC(5be576e1) SHA1(e24a96d179016d6d65205079874b35500760a642) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START( mfjump )
|
ROM_START( mfjump )
|
||||||
|
@ -765,7 +765,7 @@ MACHINE_DRIVER_END
|
|||||||
|
|
||||||
static const k001604_interface jetwave_k001604_intf =
|
static const k001604_interface jetwave_k001604_intf =
|
||||||
{
|
{
|
||||||
0, 1, /* gfx index 1 & 2 */
|
0, 1, /* gfx index 1 & 2 */
|
||||||
0, 1, /* layer_size, roz_size */
|
0, 1, /* layer_size, roz_size */
|
||||||
0 /* slrasslt hack */
|
0 /* slrasslt hack */
|
||||||
};
|
};
|
||||||
|
@ -3,11 +3,11 @@ typedef struct _segas1x_state segas1x_state;
|
|||||||
struct _segas1x_state
|
struct _segas1x_state
|
||||||
{
|
{
|
||||||
/* memory pointers */
|
/* memory pointers */
|
||||||
// UINT16 * workram; // this is used in the nvram handler, hence it cannot be added here
|
// UINT16 * workram; // this is used in the nvram handler, hence it cannot be added here
|
||||||
// UINT16 * paletteram; // this is used in the segaic16 mapper, hence it cannot be added here (yet)
|
// UINT16 * paletteram; // this is used in the segaic16 mapper, hence it cannot be added here (yet)
|
||||||
// UINT16 * tileram_0; // this is used in the segaic16 mapper, hence it cannot be added here (yet)
|
// UINT16 * tileram_0; // this is used in the segaic16 mapper, hence it cannot be added here (yet)
|
||||||
// UINT16 * textram_0; // this is used in the segaic16 mapper, hence it cannot be added here (yet)
|
// UINT16 * textram_0; // this is used in the segaic16 mapper, hence it cannot be added here (yet)
|
||||||
// UINT16 * spriteram_0; // this is used in the segaic16 mapper, hence it cannot be added here (yet)
|
// UINT16 * spriteram_0; // this is used in the segaic16 mapper, hence it cannot be added here (yet)
|
||||||
|
|
||||||
/* misc video */
|
/* misc video */
|
||||||
UINT8 road_priority; // segaxbd
|
UINT8 road_priority; // segaxbd
|
||||||
|
@ -619,7 +619,7 @@ WRITE64_HANDLER( naomi_maple_w )
|
|||||||
{
|
{
|
||||||
if (port > 0)
|
if (port > 0)
|
||||||
buff[0]=0xffffffff;
|
buff[0]=0xffffffff;
|
||||||
// printf("MAPLE: command %02x\n", command);
|
// printf("MAPLE: command %02x\n", command);
|
||||||
switch (command)
|
switch (command)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -102,6 +102,6 @@ DRIVER_INIT( gram2000 )
|
|||||||
|
|
||||||
DRIVER_INIT( vf4evoct )
|
DRIVER_INIT( vf4evoct )
|
||||||
{
|
{
|
||||||
// DRIVER_INIT_CALL(naomi2);
|
// DRIVER_INIT_CALL(naomi2);
|
||||||
actel_id = 0; //FIXME: correct value
|
actel_id = 0; //FIXME: correct value
|
||||||
}
|
}
|
||||||
|
@ -460,7 +460,7 @@ READ64_DEVICE_HANDLER( naomibd_r )
|
|||||||
}
|
}
|
||||||
else if ((offset == 2) && ACCESSING_BITS_32_63)
|
else if ((offset == 2) && ACCESSING_BITS_32_63)
|
||||||
{
|
{
|
||||||
// Actel FPGA ID, used on some games for a "special" ROM test.
|
// Actel FPGA ID, used on some games for a "special" ROM test.
|
||||||
|
|
||||||
return (UINT64)actel_id << 32;
|
return (UINT64)actel_id << 32;
|
||||||
}
|
}
|
||||||
|
@ -658,7 +658,7 @@ INLINE ic_315_5250_state *_315_5250_get_safe_token( running_device *device )
|
|||||||
|
|
||||||
INLINE const ic_315_5250_interface *_315_5250_get_interface( running_device *device )
|
INLINE const ic_315_5250_interface *_315_5250_get_interface( running_device *device )
|
||||||
{
|
{
|
||||||
assert(device != NULL);
|
assert(device != NULL);
|
||||||
assert((device->type == _315_5250));
|
assert((device->type == _315_5250));
|
||||||
return (const ic_315_5250_interface *) device->baseconfig().static_config;
|
return (const ic_315_5250_interface *) device->baseconfig().static_config;
|
||||||
}
|
}
|
||||||
|
@ -1589,9 +1589,9 @@ READ8_HANDLER( snes_r_bank3 )
|
|||||||
else if (snes_cart.mode & 5) /* Mode 20 & 22 */
|
else if (snes_cart.mode & 5) /* Mode 20 & 22 */
|
||||||
{
|
{
|
||||||
if ((address < 0x8000) && (snes_cart.mode == SNES_MODE_20)) //FIXME: check this
|
if ((address < 0x8000) && (snes_cart.mode == SNES_MODE_20)) //FIXME: check this
|
||||||
{
|
{
|
||||||
value = 0xff; /* Reserved */
|
value = 0xff; /* Reserved */
|
||||||
//value = snes_ram[0x200000 + ((offset & ~0x8000) | 0x8000)]; // is this hack still needed? /* Reserved */
|
//value = snes_ram[0x200000 + ((offset & ~0x8000) | 0x8000)]; // is this hack still needed? /* Reserved */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
value = snes_ram[0x400000 + offset];
|
value = snes_ram[0x400000 + offset];
|
||||||
|
@ -1971,7 +1971,7 @@ void recoverPolygonBlock(running_machine* machine, const UINT16* packet, struct
|
|||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// There are 4 hunks per address.
|
// There are 4 hunks per address.
|
||||||
address[0] = threeDPointer[0];
|
address[0] = threeDPointer[0];
|
||||||
address[1] = threeDPointer[1];
|
address[1] = threeDPointer[1];
|
||||||
@ -2065,8 +2065,8 @@ void recoverPolygonBlock(running_machine* machine, const UINT16* packet, struct
|
|||||||
polys[*numPolys].palPageSize = 0x100;
|
polys[*numPolys].palPageSize = 0x100;
|
||||||
|
|
||||||
/* FIXME: This isn't correct.
|
/* FIXME: This isn't correct.
|
||||||
Buriki & Xrally need this line. Roads Edge needs it removed.
|
Buriki & Xrally need this line. Roads Edge needs it removed.
|
||||||
So instead we're looking for a bit that is on for XRally & Buriki, but noone else. */
|
So instead we're looking for a bit that is on for XRally & Buriki, but noone else. */
|
||||||
if (hng64_3dregs[0x00/4] & 0x2000)
|
if (hng64_3dregs[0x00/4] & 0x2000)
|
||||||
{
|
{
|
||||||
polys[*numPolys].palOffset += 0x800;
|
polys[*numPolys].palOffset += 0x800;
|
||||||
@ -2080,9 +2080,9 @@ void recoverPolygonBlock(running_machine* machine, const UINT16* packet, struct
|
|||||||
if (explicitPaletteValue2) polys[*numPolys].palPageSize = 0x10;
|
if (explicitPaletteValue2) polys[*numPolys].palPageSize = 0x10;
|
||||||
|
|
||||||
// Apply the dynamic palette offset if its flag is set, otherwise stick with the fixed one
|
// Apply the dynamic palette offset if its flag is set, otherwise stick with the fixed one
|
||||||
if ((packet[1] & 0x0100))
|
if ((packet[1] & 0x0100))
|
||||||
{
|
{
|
||||||
explicitPaletteValue1 = paletteState3d * 0x80;
|
explicitPaletteValue1 = paletteState3d * 0x80;
|
||||||
explicitPaletteValue2 = 0; // This is probably hiding somewhere in operation 0011
|
explicitPaletteValue2 = 0; // This is probably hiding somewhere in operation 0011
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2889,7 +2889,7 @@ INLINE void FillSmoothTexPCHorizontalLine(running_machine *machine,
|
|||||||
if (paletteEntry != 0)
|
if (paletteEntry != 0)
|
||||||
{
|
{
|
||||||
paletteEntry %= palPageSize;
|
paletteEntry %= palPageSize;
|
||||||
|
|
||||||
// Greyscale texture test.
|
// Greyscale texture test.
|
||||||
// *cb = MAKE_ARGB(255, (UINT8)paletteEntry, (UINT8)paletteEntry, (UINT8)paletteEntry);
|
// *cb = MAKE_ARGB(255, (UINT8)paletteEntry, (UINT8)paletteEntry, (UINT8)paletteEntry);
|
||||||
*cb = machine->pens[palOffset + paletteEntry];
|
*cb = machine->pens[palOffset + paletteEntry];
|
||||||
|
@ -62,19 +62,19 @@ static TILEMAP_MAPPER( sys16_bg_map )
|
|||||||
{
|
{
|
||||||
int page = 0;
|
int page = 0;
|
||||||
if (row < 32)
|
if (row < 32)
|
||||||
{
|
{
|
||||||
/* top */
|
/* top */
|
||||||
if (col < 64)
|
if (col < 64)
|
||||||
page = 0;
|
page = 0;
|
||||||
else
|
else
|
||||||
page = 1;
|
page = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* bottom */
|
/* bottom */
|
||||||
if (col < 64)
|
if (col < 64)
|
||||||
page = 2;
|
page = 2;
|
||||||
else
|
else
|
||||||
page = 3;
|
page = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,10 +71,10 @@ static char *build_full_path(const char *path, const char *file)
|
|||||||
char *p = ret;
|
char *p = ret;
|
||||||
|
|
||||||
strcpy(p, path);
|
strcpy(p, path);
|
||||||
p += strlen(path);
|
p += strlen(path);
|
||||||
*p++ = PATHSEPCH;
|
*p++ = PATHSEPCH;
|
||||||
strcpy(p, file);
|
strcpy(p, file);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -246,7 +246,7 @@ osd_directory_entry *osd_stat(const char *path)
|
|||||||
struct stat64 st;
|
struct stat64 st;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD)
|
#if defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD)
|
||||||
err = stat(path, &st);
|
err = stat(path, &st);
|
||||||
#else
|
#else
|
||||||
err = stat64(path, &st);
|
err = stat64(path, &st);
|
||||||
|
@ -10,4 +10,4 @@
|
|||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
extern const char build_version[];
|
extern const char build_version[];
|
||||||
const char build_version[] = "0.136u2 ("__DATE__")";
|
const char build_version[] = "0.136u3 ("__DATE__")";
|
||||||
|
Loading…
Reference in New Issue
Block a user