mirror of
https://github.com/holub/mame
synced 2025-06-04 11:56:28 +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
|
||||
with a 'v'.
|
||||
|
||||
01-Feb-2010 (Robbbert):
|
||||
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:
|
||||
01-Feb-2010 (Robbbert):
|
||||
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:
|
||||
|
||||
+C XXX(##/##) XXX(##/##)
|
||||
+C XXX(##/##) XXX(##/##)
|
||||
|
||||
The X value shows where the data word is located, and the Y value is the
|
||||
address of the next instruction.
|
||||
The X value shows where the data word is located, and the Y value is the
|
||||
address of the next instruction.
|
||||
*/
|
||||
enum _format_type {branch, shiftl, shiftr, multiply, store, swap, one_address, two_address};
|
||||
typedef enum _format_type format_type;
|
||||
|
@ -116,8 +116,8 @@ enum
|
||||
***************************************************************************/
|
||||
|
||||
/* Official Intel MCS-48 parts */
|
||||
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( i8021 ); /* 1k internal ROM, 64 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( i8048 ); /* 1k internal ROM, 64 bytes internal RAM */
|
||||
CPU_GET_INFO( i8648 ); /* 1k internal OTP ROM, 64 bytes internal RAM */
|
||||
|
@ -2,7 +2,7 @@
|
||||
Panasonic MN10200 emulator
|
||||
|
||||
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)
|
||||
{
|
||||
return mn102_read_word(mn102, adr)|(mn102_read_byte(mn102, adr+2)<<16);
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
if(!(mn102->psw & 0x800))
|
||||
if(!(mn102->psw & 0x800))
|
||||
{
|
||||
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]);
|
||||
@ -355,7 +355,7 @@ static CPU_EXECUTE(mn10200)
|
||||
|
||||
mn102->cycles = cycles;
|
||||
|
||||
while(mn102->cycles > 0)
|
||||
while(mn102->cycles > 0)
|
||||
{
|
||||
UINT8 opcode;
|
||||
|
||||
@ -366,7 +366,7 @@ static CPU_EXECUTE(mn10200)
|
||||
// mov dm, (an)
|
||||
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:
|
||||
mn102->cycles -= 1;
|
||||
mn102->cycles -= 1;
|
||||
mn102_write_word(mn102, mn102->a[(opcode>>2)&3], (UINT16)mn102->d[opcode & 3]);
|
||||
mn102->pc += 1;
|
||||
break;
|
||||
@ -374,7 +374,7 @@ static CPU_EXECUTE(mn10200)
|
||||
// movb dm, (an)
|
||||
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:
|
||||
mn102->cycles -= 1;
|
||||
mn102->cycles -= 1;
|
||||
mn102_write_byte(mn102, mn102->a[(opcode>>2)&3], (UINT8)mn102->d[opcode & 3]);
|
||||
mn102->pc += 1;
|
||||
break;
|
||||
@ -382,7 +382,7 @@ static CPU_EXECUTE(mn10200)
|
||||
// mov (an), dm
|
||||
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:
|
||||
mn102->cycles -= 1;
|
||||
mn102->cycles -= 1;
|
||||
mn102->d[opcode & 3] = (INT16)mn102_read_word(mn102, mn102->a[(opcode>>2)&3]);
|
||||
mn102->pc += 1;
|
||||
break;
|
||||
@ -390,7 +390,7 @@ static CPU_EXECUTE(mn10200)
|
||||
// movbu (an), dm
|
||||
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:
|
||||
mn102->cycles -= 1;
|
||||
mn102->cycles -= 1;
|
||||
mn102->d[opcode & 3] = mn102_read_byte(mn102, mn102->a[(opcode>>2)&3]);
|
||||
mn102->pc += 1;
|
||||
break;
|
||||
@ -440,7 +440,7 @@ static CPU_EXECUTE(mn10200)
|
||||
mn102->cycles -= 1;
|
||||
mn102->d[opcode & 3] = (INT8)mn102_read_byte(mn102, mn102->pc+1);
|
||||
mn102->pc += 2;
|
||||
break;
|
||||
break;
|
||||
|
||||
// add dn, dm
|
||||
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->a[opcode & 3] = mn102_read_word(mn102, mn102->pc+1);
|
||||
mn102->pc += 3;
|
||||
break;
|
||||
break;
|
||||
|
||||
// blt label8
|
||||
case 0xe0:
|
||||
if(((mn102->psw & 0x0a) == 2) || ((mn102->psw & 0x0a) == 8))
|
||||
if(((mn102->psw & 0x0a) == 2) || ((mn102->psw & 0x0a) == 8))
|
||||
{
|
||||
mn102->cycles -= 2;
|
||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
mn102->cycles -= 1;
|
||||
mn102->pc += 2;
|
||||
@ -558,12 +558,12 @@ static CPU_EXECUTE(mn10200)
|
||||
|
||||
// bgt label8
|
||||
case 0xe1:
|
||||
if(((mn102->psw & 0x0b) == 0) || ((mn102->psw & 0x0b) == 0xa))
|
||||
if(((mn102->psw & 0x0b) == 0) || ((mn102->psw & 0x0b) == 0xa))
|
||||
{
|
||||
mn102->cycles -= 2;
|
||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
mn102->cycles -= 1;
|
||||
mn102->pc += 2;
|
||||
@ -572,12 +572,12 @@ static CPU_EXECUTE(mn10200)
|
||||
|
||||
// bge label8
|
||||
case 0xe2:
|
||||
if(((mn102->psw & 0x0a) == 0) || ((mn102->psw & 0x0a) == 0xa))
|
||||
if(((mn102->psw & 0x0a) == 0) || ((mn102->psw & 0x0a) == 0xa))
|
||||
{
|
||||
mn102->cycles -= 2;
|
||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
mn102->cycles -= 1;
|
||||
mn102->pc += 2;
|
||||
@ -586,12 +586,12 @@ static CPU_EXECUTE(mn10200)
|
||||
|
||||
// ble label8
|
||||
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_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
mn102->cycles -= 1;
|
||||
mn102->pc += 2;
|
||||
@ -600,12 +600,12 @@ static CPU_EXECUTE(mn10200)
|
||||
|
||||
// bcs label8
|
||||
case 0xe4:
|
||||
if(mn102->psw & 0x04)
|
||||
if(mn102->psw & 0x04)
|
||||
{
|
||||
mn102->cycles -= 2;
|
||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
mn102->cycles -= 1;
|
||||
mn102->pc += 2;
|
||||
@ -614,12 +614,12 @@ static CPU_EXECUTE(mn10200)
|
||||
|
||||
// bhi label8
|
||||
case 0xe5:
|
||||
if(!(mn102->psw & 0x05))
|
||||
if(!(mn102->psw & 0x05))
|
||||
{
|
||||
mn102->cycles -= 2;
|
||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
mn102->cycles -= 1;
|
||||
mn102->pc += 2;
|
||||
@ -628,12 +628,12 @@ static CPU_EXECUTE(mn10200)
|
||||
|
||||
// bcc label8
|
||||
case 0xe6:
|
||||
if(!(mn102->psw & 0x04))
|
||||
if(!(mn102->psw & 0x04))
|
||||
{
|
||||
mn102->cycles -= 2;
|
||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
mn102->cycles -= 1;
|
||||
mn102->pc += 2;
|
||||
@ -642,12 +642,12 @@ static CPU_EXECUTE(mn10200)
|
||||
|
||||
// bls label8
|
||||
case 0xe7:
|
||||
if(mn102->psw & 0x05)
|
||||
if(mn102->psw & 0x05)
|
||||
{
|
||||
mn102->cycles -= 2;
|
||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
mn102->cycles -= 1;
|
||||
mn102->pc += 2;
|
||||
@ -656,12 +656,12 @@ static CPU_EXECUTE(mn10200)
|
||||
|
||||
// beq label8
|
||||
case 0xe8:
|
||||
if(mn102->psw & 0x01)
|
||||
if(mn102->psw & 0x01)
|
||||
{
|
||||
mn102->cycles -= 2;
|
||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
mn102->cycles -= 1;
|
||||
mn102->pc += 2;
|
||||
@ -670,12 +670,12 @@ static CPU_EXECUTE(mn10200)
|
||||
|
||||
// bne label8
|
||||
case 0xe9:
|
||||
if(!(mn102->psw & 0x01))
|
||||
if(!(mn102->psw & 0x01))
|
||||
{
|
||||
mn102->cycles -= 2;
|
||||
mn102_change_pc(mn102, mn102->pc+2+(INT8)mn102_read_byte(mn102, mn102->pc+1));
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
mn102->cycles -= 1;
|
||||
mn102->pc += 2;
|
||||
@ -1733,7 +1733,7 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
||||
case 0x056: {
|
||||
// const char *modes[4] = { "l", "h", "fall", "rise" };
|
||||
// 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;
|
||||
}
|
||||
|
||||
@ -1754,9 +1754,9 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
||||
mn102->serial[ser].ctrll = data;
|
||||
|
||||
// log_event("MN102", "Serial %d length=%c, parity=%s, stop=%c, source=%s",
|
||||
// ser,
|
||||
// data & 0x80 ? '8' : '7', parity[(data >> 4) & 7],
|
||||
// data & 8 ? '2' : '1', source[data & 3]);
|
||||
// ser,
|
||||
// data & 0x80 ? '8' : '7', parity[(data >> 4) & 7],
|
||||
// data & 8 ? '2' : '1', source[data & 3]);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1764,10 +1764,10 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
||||
int ser = (adr-0x180) >> 4;
|
||||
mn102->serial[ser].ctrlh = data;
|
||||
// log_event("MN102", "Serial %d transmit=%s, recieve=%s, break=%s, proto=%s, order=%s",
|
||||
// ser,
|
||||
// data & 0x80 ? "on" : "off", data & 0x40 ? "on" : "off",
|
||||
// data & 0x20 ? "on" : "off", data & 8 ? "sync" : "async",
|
||||
// data & 2 ? "msb" : "lsb");
|
||||
// ser,
|
||||
// data & 0x80 ? "on" : "off", data & 0x40 ? "on" : "off",
|
||||
// data & 0x20 ? "on" : "off", data & 8 ? "sync" : "async",
|
||||
// data & 2 ? "msb" : "lsb");
|
||||
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);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case 0x1a0:
|
||||
log_event("MN102", "AN %s timer7=%s /%d %s %s",
|
||||
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 *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",
|
||||
// 10 + ((adr-0x230) >> 4),
|
||||
// modes[data >> 6], data & 0x20 ? "cleared" : "not cleared", data & 0x10 ? "cleared" : "not cleared",
|
||||
// data & 8 ? "tff" : "rsff", sources[data & 7]);
|
||||
// 10 + ((adr-0x230) >> 4),
|
||||
// modes[data >> 6], data & 0x20 ? "cleared" : "not cleared", data & 0x10 ? "cleared" : "not cleared",
|
||||
// data & 8 ? "tff" : "rsff", sources[data & 7]);
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x231: case 0x241: case 0x251: {
|
||||
// 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",
|
||||
// 10 + ((adr-0x230) >> 4),
|
||||
// data & 0x80 ? "enable" : "disable", data & 0x40 ? "operate" : "clear",
|
||||
// modes[(data >> 4) & 3], data & 2 ? "on" : "off", data & 1 ? "one-shot" : "repeat");
|
||||
|
||||
// 10 + ((adr-0x230) >> 4),
|
||||
// data & 0x80 ? "enable" : "disable", data & 0x40 ? "operate" : "clear",
|
||||
// modes[(data >> 4) & 3], data & 2 ? "on" : "off", data & 1 ? "one-shot" : "repeat");
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1869,9 +1869,9 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
||||
case 0x260: case 0x261: {
|
||||
// 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",
|
||||
// adr == 0x261 ? 'B' : 'A',
|
||||
// data & 0x10 ? "12A" : "1", data & 8 ? "sync a" :"P13-10",
|
||||
// data & 4 ? "ccw" : "cw", mode[data & 3]);
|
||||
// adr == 0x261 ? 'B' : 'A',
|
||||
// data & 0x10 ? "12A" : "1", data & 8 ? "sync a" :"P13-10",
|
||||
// data & 4 ? "ccw" : "cw", mode[data & 3]);
|
||||
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 *start[32] = {
|
||||
"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",
|
||||
"timer11u", "timer11a", "timer12b",
|
||||
"timer12a", "timer12b",
|
||||
@ -1966,20 +1966,20 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
||||
start[data & 31]);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
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" };
|
||||
int dma = (adr-0x280) >> 4;
|
||||
mn102->dma[dma].ctrlh = data;
|
||||
/* log_event("MN102", "DMA %d control %s irq=%s %s %s dir=%s %s %s",
|
||||
dma,
|
||||
data & 0x80 ? "enable" : "disable",
|
||||
data & 0x40 ? "off" : "on",
|
||||
data & 0x20 ? "byte" : "word",
|
||||
data & 0x10 ? "burst" : "single",
|
||||
data & 0x08 ? "dst" : "src",
|
||||
data & 0x04 ? "continue" : "normal",
|
||||
tradr[data & 3]);*/
|
||||
dma,
|
||||
data & 0x80 ? "enable" : "disable",
|
||||
data & 0x40 ? "off" : "on",
|
||||
data & 0x20 ? "byte" : "word",
|
||||
data & 0x10 ? "burst" : "single",
|
||||
data & 0x08 ? "dst" : "src",
|
||||
data & 0x04 ? "continue" : "normal",
|
||||
tradr[data & 3]);*/
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2049,28 +2049,28 @@ static void mn10200_w(mn102_info *mn102, UINT32 adr, UINT32 data, int type)
|
||||
mn102->ddr[0] = data;
|
||||
break;
|
||||
|
||||
case 0x3e1: // port1 ddr
|
||||
case 0x3e1: // port1 ddr
|
||||
mn102->ddr[1] = data;
|
||||
break;
|
||||
|
||||
case 0x3e2: // port2 ddr
|
||||
case 0x3e2: // port2 ddr
|
||||
mn102->ddr[2] = data;
|
||||
break;
|
||||
|
||||
case 0x3e3: // port3 ddr
|
||||
case 0x3e3: // port3 ddr
|
||||
mn102->ddr[3] = data;
|
||||
break;
|
||||
|
||||
case 0x3f3:
|
||||
/* 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 & 0x08 ? data & 0x20 ? "serial_0" : "tm8" : "p33",
|
||||
data & 0x04 ? "tm7" : "p32",
|
||||
data & 0x04 ? "tm6" : "p31",
|
||||
data & 0x04 ? "tm5" : "p30");*/
|
||||
data & 0x10 ? data & 0x40 ? "serial_1" : "tm9" : "p34",
|
||||
data & 0x08 ? data & 0x20 ? "serial_0" : "tm8" : "p33",
|
||||
data & 0x04 ? "tm7" : "p32",
|
||||
data & 0x04 ? "tm6" : "p31",
|
||||
data & 0x04 ? "tm5" : "p30");*/
|
||||
break;
|
||||
|
||||
|
||||
|
||||
|
||||
default:
|
||||
log_event("MN102", "internal_w %04x, %02x (%03x)", adr+0xfc00, data, adr);
|
||||
break;
|
||||
@ -2124,16 +2124,16 @@ static UINT32 mn10200_r(mn102_info *mn102, UINT32 adr, int type)
|
||||
break;
|
||||
|
||||
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
|
||||
return memory_read_byte_8le(mn102->io, MN10200_PORT0);
|
||||
return memory_read_byte_8le(mn102->io, MN10200_PORT0);
|
||||
|
||||
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
|
||||
return memory_read_byte_8le(mn102->io, MN10200_PORT3);
|
||||
return memory_read_byte_8le(mn102->io, MN10200_PORT3);
|
||||
|
||||
default:
|
||||
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_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 --- */
|
||||
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 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 & 0x0800 ? "on" : "off",
|
||||
(cpustate->psw >> 8) & 7,
|
||||
|
@ -2,7 +2,7 @@
|
||||
Panasonic MN10200 emulator
|
||||
|
||||
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:
|
||||
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 0x98: case 0x99: case 0x9a: case 0x9b: case 0x9c: case 0x9d: case 0x9e: case 0x9f:
|
||||
|
@ -44,11 +44,11 @@ enum
|
||||
|
||||
enum
|
||||
{
|
||||
VIEW_STATE_BUTTON = 0x01,
|
||||
VIEW_STATE_MOVING = 0x02,
|
||||
VIEW_STATE_SIZING = 0x04,
|
||||
VIEW_STATE_BUTTON = 0x01,
|
||||
VIEW_STATE_MOVING = 0x02,
|
||||
VIEW_STATE_SIZING = 0x04,
|
||||
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 int debug_font_width;
|
||||
static int debug_font_height;
|
||||
static int debug_font_width;
|
||||
static int debug_font_height;
|
||||
static float debug_font_aspect;
|
||||
static DView * list;
|
||||
static DView * focus_view;
|
||||
@ -1376,7 +1376,7 @@ static void handle_menus(running_machine *machine)
|
||||
CreateMainMenu(machine);
|
||||
/* turn on editor if requested */
|
||||
//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);
|
||||
}
|
||||
}
|
||||
|
@ -43,7 +43,7 @@
|
||||
#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_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 */
|
||||
|
||||
|
||||
|
@ -94,7 +94,7 @@ enum
|
||||
XTAL_12MHz = 12000000, /* Extremely common, used on 100's of PCBs */
|
||||
XTAL_12_096MHz = 12096000, /* Some early 80's Atari games */
|
||||
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_9792MHz = 12979200, /* Exidy 440 */
|
||||
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_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" },
|
||||
{ "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 */
|
||||
{ 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" },
|
||||
|
@ -2524,7 +2524,7 @@ profiler_mark_start(PROFILER_INPUT);
|
||||
|
||||
/* hook for MESS's natural keyboard support */
|
||||
input_port_update_hook(machine, port, &port->state->digital);
|
||||
|
||||
|
||||
/* handle playback/record */
|
||||
playback_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)
|
||||
{
|
||||
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->inte1 = 0;
|
||||
i8255a->inte2 = 0;
|
||||
|
||||
|
||||
if (port_mode(i8255a, PORT_A) == MODE_OUTPUT)
|
||||
{
|
||||
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->obf[PORT_B] = 1;
|
||||
i8255a->inte[PORT_B] = 0;
|
||||
|
||||
|
||||
if (port_mode(i8255a, PORT_B) == MODE_OUTPUT)
|
||||
{
|
||||
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
|
||||
becomes 4 16-bits samples. Reading the 4 bytes as a *little-endian*
|
||||
32bits values, the structure is:
|
||||
|
||||
|
||||
1444 4444 1333 3333 1222 2222 ssss1111
|
||||
|
||||
'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 )
|
||||
{
|
||||
// zsg2_state *info = (zsg2_state *)param;
|
||||
// zsg2_state *info = (zsg2_state *)param;
|
||||
stream_sample_t *dest1 = outputs[0];
|
||||
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)
|
||||
{
|
||||
switch(reg)
|
||||
switch(reg)
|
||||
{
|
||||
case 0x00: case 0x02: case 0x04:
|
||||
case 0x00: case 0x02: case 0x04:
|
||||
{
|
||||
int base = (reg & 6) << 3;
|
||||
int i;
|
||||
@ -128,7 +128,7 @@ static void control_w(zsg2_state *info, int reg, UINT16 data)
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x08: case 0x0a: case 0x0c:
|
||||
case 0x08: case 0x0a: case 0x0c:
|
||||
{
|
||||
int base = (reg & 6) << 3;
|
||||
int i;
|
||||
@ -152,26 +152,26 @@ static void control_w(zsg2_state *info, int reg, UINT16 data)
|
||||
default:
|
||||
// log_event("ZOOMCTRL", "%02x = %04x", reg, data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static UINT16 control_r(zsg2_state *info, int reg)
|
||||
{
|
||||
switch(reg)
|
||||
switch(reg)
|
||||
{
|
||||
case 0x28:
|
||||
return 0xff00;
|
||||
|
||||
case 0x3c: case 0x3e:
|
||||
case 0x3c: case 0x3e:
|
||||
{
|
||||
UINT32 adr = (info->ahigh << 16) | info->alow;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
// log_event("ZOOMCTRL", "read %02x", reg);
|
||||
// log_event("ZOOMCTRL", "read %02x", reg);
|
||||
|
||||
return 0xffff;
|
||||
}
|
||||
@ -191,7 +191,7 @@ WRITE16_DEVICE_HANDLER( zsg2_w )
|
||||
int reg = (adr >> 1) & 15;
|
||||
|
||||
chan_w(info, chan, reg, data);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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
|
||||
|
||||
if (adr < 0x600)
|
||||
if (adr < 0x600)
|
||||
{
|
||||
int chan = adr >> 5;
|
||||
int reg = (adr >> 1) & 15;
|
||||
return chan_r(info, chan, reg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return control_r(info, adr - 0x600);
|
||||
@ -237,7 +237,7 @@ static DEVICE_START( zsg2 )
|
||||
/**************************************************************************
|
||||
* Generic get_info
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
DEVICE_GET_INFO( zsg2 )
|
||||
{
|
||||
switch (state)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
ZOOM ZSG-2 custom wavetable synthesizer
|
||||
ZOOM ZSG-2 custom wavetable synthesizer
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
@ -125,7 +125,7 @@ static slider_state *slider_current;
|
||||
static int ui_active;
|
||||
/* natural keyboard info */
|
||||
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 */
|
||||
single_step = FALSE;
|
||||
ui_set_handler(handler_messagebox, 0);
|
||||
ui_set_handler(handler_messagebox, 0);
|
||||
ui_active = 0;
|
||||
/* retrieve options */
|
||||
ui_use_natural_keyboard = options_get_bool(mame_options(), OPTION_NATURAL_KEYBOARD);
|
||||
|
||||
|
||||
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);
|
||||
#endif /* MESS */
|
||||
|
||||
/* add keyboard mode menu */
|
||||
if (input_machine_has_keyboard(machine) && inputx_can_post(machine))
|
||||
/* add keyboard mode menu */
|
||||
if (input_machine_has_keyboard(machine) && inputx_can_post(machine))
|
||||
ui_menu_item_append(menu, "Keyboard Mode", NULL, 0, (void *)ui_menu_keyboard_mode);
|
||||
|
||||
/* 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);
|
||||
error = TRUE;
|
||||
}
|
||||
|
||||
|
||||
/* 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))
|
||||
{
|
||||
@ -443,18 +443,18 @@ static int validate_roms(int drivnum, const machine_config *config, region_array
|
||||
int error = FALSE;
|
||||
|
||||
/* check for duplicate ROM entries */
|
||||
/*
|
||||
if (driver->rom != NULL && (driver->flags & GAME_NO_STANDALONE) == 0)
|
||||
{
|
||||
char romaddr[20];
|
||||
sprintf(romaddr, "%p", driver->rom);
|
||||
if (roms.add(romaddr, driver, FALSE) == TMERR_DUPLICATE)
|
||||
{
|
||||
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);
|
||||
error = TRUE;
|
||||
}
|
||||
}
|
||||
/*
|
||||
if (driver->rom != NULL && (driver->flags & GAME_NO_STANDALONE) == 0)
|
||||
{
|
||||
char romaddr[20];
|
||||
sprintf(romaddr, "%p", driver->rom);
|
||||
if (roms.add(romaddr, driver, FALSE) == TMERR_DUPLICATE)
|
||||
{
|
||||
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);
|
||||
error = TRUE;
|
||||
}
|
||||
}
|
||||
*/
|
||||
/* 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))
|
||||
@ -1192,10 +1192,10 @@ static int validate_inputs(int drivnum, const machine_config *config, int_map &d
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
error = error || validate_natural_keyboard_statics();
|
||||
|
||||
/* free the config */
|
||||
|
||||
/* free the config */
|
||||
return error;
|
||||
}
|
||||
|
||||
@ -1575,7 +1575,7 @@ int mame_validitychecks(const game_driver *curdriver)
|
||||
|
||||
machine_config_free(config);
|
||||
}
|
||||
|
||||
|
||||
#if (REPORT_TIMES)
|
||||
mame_printf_info("Prep: %8dm\n", (int)(prep / 1000000));
|
||||
mame_printf_info("Expansion: %8dm\n", (int)(expansion / 1000000));
|
||||
|
@ -9,9 +9,9 @@
|
||||
- sigmab52.c
|
||||
|
||||
ACRTC memory map:
|
||||
|
||||
|
||||
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
|
||||
c0000-fffff = unused
|
||||
|
||||
|
@ -77,7 +77,7 @@
|
||||
/* 13 Dec 2006 - add PRELIMINARY sound support and documentation to: */
|
||||
/* rollingc, spcenctr, gunfight, m4, gmissile, */
|
||||
/* schasrcv (schasercv), 280zzzap, lagunar, lupin3, phantom2, */
|
||||
/* blueshrk, desertgu, ballbomb, yosakdon/yosakdoa (yosakdona)*/
|
||||
/* blueshrk, desertgu, ballbomb, yosakdon/yosakdoa (yosakdona)*/
|
||||
/* shuttlei, invrvnge/invrvnga (invrvngea). */
|
||||
/* Documented indianbt sound. Removed NO_SOUND flag from */
|
||||
/* 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);
|
||||
|
||||
/*
|
||||
ACRTC memory:
|
||||
|
||||
00000-3ffff = RAM
|
||||
40000-7ffff = ROM
|
||||
80000-bffff = unused
|
||||
c0000-fffff = unused
|
||||
*/
|
||||
ACRTC memory:
|
||||
|
||||
00000-3ffff = RAM
|
||||
40000-7ffff = ROM
|
||||
80000-bffff = unused
|
||||
c0000-fffff = unused
|
||||
*/
|
||||
|
||||
// hack to handle acrt rom
|
||||
{
|
||||
@ -390,15 +390,15 @@ static READ16_HANDLER( test_r )
|
||||
state->mux_data++;
|
||||
state->mux_data &= 0xf;
|
||||
/*
|
||||
switch (mame_rand(space->machine) & 3)
|
||||
{
|
||||
case 0:
|
||||
return 0;
|
||||
case 1:
|
||||
return 0xffff;
|
||||
default:
|
||||
return mame_rand(space->machine) & 0xffff;
|
||||
}
|
||||
switch (mame_rand(space->machine) & 3)
|
||||
{
|
||||
case 0:
|
||||
return 0;
|
||||
case 1:
|
||||
return 0xffff;
|
||||
default:
|
||||
return mame_rand(space->machine) & 0xffff;
|
||||
}
|
||||
*/
|
||||
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( 0x04, DEF_STR( 1C_2C ) )
|
||||
PORT_BIT( 0xf8, 0x00, IPT_UNUSED )
|
||||
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_DIPUNKNOWN( 0x01, 0x00 )
|
||||
PORT_DIPUNKNOWN( 0x02, 0x00 )
|
||||
|
@ -199,7 +199,7 @@ static WRITE16_HANDLER( showhand_outputs_w )
|
||||
static WRITE16_HANDLER( skilldrp_outputs_w )
|
||||
{
|
||||
// key in (0001)
|
||||
// coin in (0002)
|
||||
// coin in (0002)
|
||||
// key out (0004)
|
||||
// coin out (0008)
|
||||
// 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, 1, (data & 0x0004)); // key out |
|
||||
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")
|
||||
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?
|
||||
}
|
||||
|
||||
// popmessage("%04X",data);
|
||||
// popmessage("%04X",data);
|
||||
}
|
||||
|
||||
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
|
||||
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
|
||||
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.
|
||||
- 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.
|
||||
|
||||
|
||||
4) 'ozon1'
|
||||
|
||||
- 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_IO_MAP(goldstar_readport)
|
||||
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 */
|
||||
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 =
|
||||
{
|
||||
1, 2, /* gfx index 1 & 2 */
|
||||
1, 2, /* gfx index 1 & 2 */
|
||||
1, 1, /* layer_size, roz_size */
|
||||
0 /* slrasslt hack */
|
||||
};
|
||||
|
||||
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 */
|
||||
1 /* slrasslt hack */
|
||||
};
|
||||
|
||||
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 /* slrasslt hack */
|
||||
};
|
||||
|
||||
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 /* slrasslt hack */
|
||||
};
|
||||
|
@ -372,7 +372,7 @@ static DRIVER_INIT( gunpey )
|
||||
|
||||
/* patch SLOOOOW cycle checks ... */
|
||||
rom[0x848b5] = 0x7e;
|
||||
// rom[0x848b6] = 0x03;
|
||||
// rom[0x848b6] = 0x03;
|
||||
rom[0x89657] = 0x75;
|
||||
rom[0x8e628] = 0x75;
|
||||
|
||||
|
@ -731,7 +731,7 @@ static WRITE16_HANDLER( c76_speedup_w )
|
||||
|
||||
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)
|
||||
{
|
||||
@ -831,7 +831,7 @@ INTERRUPT_GEN( c76_interrupt )
|
||||
switch (cpu_getiloops(device))
|
||||
{
|
||||
case 0:
|
||||
cpu_set_input_line(device, M37710_LINE_IRQ0, HOLD_LINE);
|
||||
cpu_set_input_line(device, M37710_LINE_IRQ0, HOLD_LINE);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
|
@ -3067,7 +3067,7 @@ ROM_START( gram2000 )
|
||||
ROM_REGION( 0xb000000, "user1", ROMREGION_ERASEFF)
|
||||
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
|
||||
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_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
|
||||
|
@ -63,7 +63,7 @@ static const gfx_layout charlayout =
|
||||
#endif
|
||||
|
||||
static GFXDECODE_START( neptunp2 )
|
||||
// GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 8 )
|
||||
// GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 8 )
|
||||
GFXDECODE_END
|
||||
|
||||
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_PROGRAM_MAP(neptunp2_map)
|
||||
MDRV_CPU_IO_MAP(neptunp2_io)
|
||||
// MDRV_CPU_VBLANK_INT("screen",irq0_line_hold)
|
||||
// MDRV_CPU_VBLANK_INT("screen",irq0_line_hold)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -635,14 +635,14 @@ static const k033906_interface nwktr_k033906_interface =
|
||||
|
||||
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 /* slrasslt hack */
|
||||
};
|
||||
|
||||
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 */
|
||||
0 /* slrasslt hack */
|
||||
};
|
||||
|
@ -3,9 +3,9 @@
|
||||
PACHI FEVER / SANKI DENSHI KOGYO
|
||||
|
||||
|
||||
GEN6480830 (TEXAS INSTRUMENTS)
|
||||
GEN6480830 (TEXAS INSTRUMENTS)
|
||||
XTAL:12.000MHZ
|
||||
RY050012 (TEXAS INSTRUMENTS)
|
||||
RY050012 (TEXAS INSTRUMENTS)
|
||||
XTAL:10.738MHZ
|
||||
|
||||
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
|
||||
just a guess:
|
||||
just a guess:
|
||||
|
||||
- CPU (GEN6480830 ?) is TMS9995 or derivative ( decrementer + lvl3 interrupt, internal ram)
|
||||
- RY050012 could be a VDP ( probably TMS9928A )
|
||||
- SN76469A (or similar) used for music
|
||||
- MSM5205 - sample player (see below)
|
||||
|
||||
- TODO:
|
||||
- TODO:
|
||||
- what's the correct game title - Pachifever ? Fever 777 ?
|
||||
- ic48.50 ROM redump (probably more adpcm samples + lookuptable .. mapped at $c000)
|
||||
- remaing DSW
|
||||
@ -37,7 +37,7 @@ just a guess:
|
||||
- controls : make PLUNGER (or whatever it is in reality) implementation more clear
|
||||
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)
|
||||
028A: D688 movb R8,*R10 ; ff-> ff40 - write to output
|
||||
028C: 3449 stcr R9,1 ; CRU read (one bit)
|
||||
@ -64,7 +64,7 @@ typedef struct _pachifev_state pachifev_state;
|
||||
struct _pachifev_state
|
||||
{
|
||||
/* controls related */
|
||||
|
||||
|
||||
int power;
|
||||
int max_power;
|
||||
int input_power;
|
||||
@ -75,7 +75,7 @@ struct _pachifev_state
|
||||
|
||||
static WRITE8_HANDLER(controls_w)
|
||||
{
|
||||
if(!data)
|
||||
if(!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 )
|
||||
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(0xe000, 0xe7ff) AM_RAM
|
||||
@ -127,21 +127,21 @@ ADDRESS_MAP_END
|
||||
static INPUT_PORTS_START( pachifev )
|
||||
PORT_START("IN0")
|
||||
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( 0x20, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("DSW1")
|
||||
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( 0x00, DEF_STR( Cocktail ) )
|
||||
|
||||
|
||||
PORT_DIPNAME( 0x30, 0x10, "Balls" )
|
||||
PORT_DIPSETTING( 0x00, "200")
|
||||
PORT_DIPSETTING( 0x10, "100")
|
||||
@ -153,39 +153,39 @@ static INPUT_PORTS_START( pachifev )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) )
|
||||
|
||||
|
||||
PORT_START("DSW2")
|
||||
|
||||
|
||||
PORT_DIPNAME( 0x03, 0x01, "Time" )
|
||||
PORT_DIPSETTING( 0x00, "180")
|
||||
PORT_DIPSETTING( 0x01, "120")
|
||||
PORT_DIPSETTING( 0x02, "150")
|
||||
PORT_DIPSETTING( 0x03, "90")
|
||||
|
||||
|
||||
PORT_DIPUNKNOWN( 0x0c, 0x0c )
|
||||
|
||||
|
||||
PORT_DIPNAME( 0x30, 0x20, "Limit (attract)" ) /* attract mode only??? */
|
||||
PORT_DIPSETTING( 0x00, "2000")
|
||||
PORT_DIPSETTING( 0x10, "1500")
|
||||
PORT_DIPSETTING( 0x20, "1000")
|
||||
PORT_DIPSETTING( 0x30, "500")
|
||||
|
||||
|
||||
PORT_DIPNAME( 0xc0, 0xc0, "Limit (game)" ) /* ball limit in game */
|
||||
PORT_DIPSETTING( 0x00, "1500")
|
||||
PORT_DIPSETTING( 0x40, "1000")
|
||||
PORT_DIPSETTING( 0x80, "500")
|
||||
PORT_DIPSETTING( 0xc0, "300")
|
||||
|
||||
|
||||
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( 0x00, DEF_STR( On ) )
|
||||
|
||||
|
||||
PORT_DIPUNKNOWN( 0xfe, 0xfe )
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
@ -231,13 +231,13 @@ static const msm5205_interface msm5205_config =
|
||||
static MACHINE_RESET( pachifev )
|
||||
{
|
||||
pachifev_state *state = (pachifev_state *)machine->driver_data;
|
||||
|
||||
|
||||
state->power=0;
|
||||
state->max_power=0;
|
||||
state->input_power=0;
|
||||
state->previous_power=0;
|
||||
state->cnt=0;
|
||||
|
||||
|
||||
#if USE_MSM
|
||||
adpcm_pos = 0;
|
||||
#endif
|
||||
@ -247,7 +247,7 @@ static MACHINE_RESET( pachifev )
|
||||
static INTERRUPT_GEN( pachifev_vblank_irq )
|
||||
{
|
||||
TMS9928A_interrupt(device->machine);
|
||||
|
||||
|
||||
{
|
||||
pachifev_state *state = (pachifev_state *)device->machine->driver_data;
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
if( (!current_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;
|
||||
}
|
||||
|
||||
@ -281,7 +281,7 @@ static MACHINE_START( pachifev)
|
||||
TMS9928A_configure(&tms9928a_interface);
|
||||
{
|
||||
pachifev_state *state = (pachifev_state *)machine->driver_data;
|
||||
|
||||
|
||||
state_save_register_global(machine, state->power);
|
||||
state_save_register_global(machine, state->max_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_CONFIG(msm5205_config)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
|
||||
#endif
|
||||
MDRV_SOUND_ADD("sn76", SN76489, XTAL_10_738635MHz/3) /* guess */
|
||||
#endif
|
||||
MDRV_SOUND_ADD("sn76", SN76489, XTAL_10_738635MHz/3) /* guess */
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
@ -337,7 +337,7 @@ ROM_START( pachifev )
|
||||
|
||||
ROM_REGION( 0x4000, "adpcm", 0 )
|
||||
ROM_LOAD( "ic66.10", 0x0000, 0x2000, CRC(217c573e) SHA1(6fb90865d1d81f5ea00fa7916d0ccb6756ef5ce5) )
|
||||
|
||||
|
||||
ROM_REGION( 0x2000, "user1", 0 )
|
||||
ROM_LOAD( "ic48.50", 0x00000, 0x2000, BAD_DUMP CRC(1c8c66d7) SHA1(3b9b05f35b20d798651c7d5fdb35e6af956615a1) )
|
||||
ROM_END
|
||||
|
@ -534,7 +534,7 @@ encryption method! The technique is a combination of a XOR table plus
|
||||
bit-swapping */
|
||||
static void common_decrypt(running_machine *machine)
|
||||
{
|
||||
|
||||
|
||||
UINT16 *RAM = (UINT16 *)memory_region(machine, "maincpu");
|
||||
int i;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
|
||||
Sang Ho Soft 'Puzzle Star' PCB
|
||||
|
||||
@ -76,7 +76,7 @@ static void sexyboom_map_bank(running_machine *machine, int bank)
|
||||
{
|
||||
UINT8 banknum, banktype;
|
||||
char read_bank_name[6], write_bank_name[6];
|
||||
|
||||
|
||||
banknum = sexyboom_bank[bank*2];
|
||||
banktype = sexyboom_bank[bank*2 + 1];
|
||||
sprintf(read_bank_name, "bank%d", bank+1);
|
||||
|
@ -205,7 +205,7 @@ static MACHINE_RESET( yboard )
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
||||
//save vram to file
|
||||
//save vram to file
|
||||
#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");
|
||||
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)
|
||||
{
|
||||
|
||||
|
||||
src = hd63484_ram_r(hd63484, b & (HD63484_RAM_SIZE - 1), 0xffff);
|
||||
|
||||
*BITMAP_ADDR16(bitmap, y, x ) = ((src & 0x000f) >> 0) << 0;
|
||||
@ -238,7 +238,7 @@ static WRITE8_HANDLER(acrtc_w)
|
||||
if(!latch)
|
||||
{
|
||||
acrtc_data = data;
|
||||
|
||||
|
||||
}
|
||||
|
||||
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(0xf710, 0xf710) AM_WRITE(unk_f710_w)
|
||||
AM_RANGE(0xf721, 0xf721) AM_READ(unk_f721_r)
|
||||
|
||||
|
||||
//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)
|
||||
|
||||
@ -528,19 +528,19 @@ static MACHINE_START(jwildb52)
|
||||
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, "bank3", &memory_region(machine, "maincpu")[0x10000 + 0x8000]);
|
||||
|
||||
/*
|
||||
|
||||
ACRTC memory:
|
||||
|
||||
|
||||
00000-3ffff = RAM
|
||||
40000-7ffff = ROM
|
||||
80000-bffff = unused
|
||||
c0000-fffff = unused
|
||||
|
||||
*/
|
||||
*/
|
||||
|
||||
{
|
||||
UINT16 *rom = (UINT16*)memory_region(machine, "gfx1");
|
||||
|
@ -9,7 +9,7 @@
|
||||
- Final Fight 2
|
||||
- Sonic Blast Man 2
|
||||
- Iron (bootleg of Iron Commando)
|
||||
- Ghost Chaser Densei
|
||||
- Ghost Chaser Densei
|
||||
|
||||
Not dumped:
|
||||
- Final Fight 3
|
||||
@ -1066,7 +1066,7 @@ static DRIVER_INIT( denseib )
|
||||
|
||||
UINT8 *rom = memory_region(machine, "user3");
|
||||
|
||||
INT32 i;
|
||||
INT32 i;
|
||||
for(i=0;i<0x200000;i++)
|
||||
{
|
||||
rom[i]=rom[i]^0xff;
|
||||
@ -1084,11 +1084,11 @@ static DRIVER_INIT( denseib )
|
||||
/* boot vector */
|
||||
rom[0xfffc]=0x40;
|
||||
rom[0xfffd]=0xf7;
|
||||
|
||||
|
||||
/* 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), 0x770079, 0x770079, 0, 0, denseib_770079_r);
|
||||
|
||||
|
||||
|
||||
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( 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 )
|
||||
|
||||
|
@ -381,7 +381,7 @@ static void tturfbl_msm5205_callback( running_device *device )
|
||||
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,
|
||||
MSM5205_S48_4B
|
||||
@ -392,7 +392,7 @@ static READ8_HANDLER( tturfbl_soundbank_r )
|
||||
{
|
||||
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 0x80;
|
||||
}
|
||||
@ -1076,9 +1076,9 @@ static WRITE8_HANDLER( sys18_soundbank_w )
|
||||
int mask = state->sound_info[rom * 2 + 0];
|
||||
int offs = state->sound_info[rom * 2 + 1];
|
||||
|
||||
if (mask)
|
||||
if (mask)
|
||||
state->sound_bank = &mem[0x10000 + offs + ((bank & mask) << 13)];
|
||||
else
|
||||
else
|
||||
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);
|
||||
}
|
||||
|
||||
static const msm5205_interface shdancbl_msm5205_interface =
|
||||
static const msm5205_interface shdancbl_msm5205_interface =
|
||||
{
|
||||
shdancbl_msm5205_callback,
|
||||
MSM5205_S48_4B
|
||||
@ -1230,7 +1230,7 @@ static READ8_HANDLER( shdancbl_soundbank_r )
|
||||
{
|
||||
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 0xff;
|
||||
}
|
||||
@ -1969,7 +1969,7 @@ INPUT_PORTS_END
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static const gfx_layout charlayout =
|
||||
static const gfx_layout charlayout =
|
||||
{
|
||||
8,8,
|
||||
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
|
||||
};
|
||||
@ -2335,8 +2335,8 @@ MACHINE_DRIVER_END
|
||||
*
|
||||
*************************************/
|
||||
|
||||
/******************************
|
||||
System 16A Bootlegs
|
||||
/******************************
|
||||
System 16A Bootlegs
|
||||
******************************/
|
||||
|
||||
/* Shinobi bootleg by 'Datsu' - Sound hardware is different */
|
||||
@ -2444,8 +2444,8 @@ ROM_START( wb3bbl )
|
||||
ROM_END
|
||||
|
||||
|
||||
/******************************
|
||||
System 16B Bootlegs
|
||||
/******************************
|
||||
System 16B Bootlegs
|
||||
******************************/
|
||||
|
||||
// protected + encrypted bootleg
|
||||
@ -2537,67 +2537,67 @@ ROM_START( bayrouteb2 )
|
||||
ROM_LOAD( "br_02", 0x20000, 0x10000, CRC(ef63991b) SHA1(4221741780f88c80b3213ddca949bee7d4c1469a) )
|
||||
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
|
||||
Produttore
|
||||
N.revisione
|
||||
Anno 1989
|
||||
Produttore
|
||||
N.revisione
|
||||
|
||||
CPU:
|
||||
main PCB:
|
||||
1x 68000 (main)(missing)
|
||||
1x LH0080B-Z80B-CPU (sound)
|
||||
1x D7759C (sound)
|
||||
1x YM2151 (sound)
|
||||
1x YM3012 (sound)
|
||||
1x UPC1241H (sound)
|
||||
1x oscillator 20.000 (close to main)
|
||||
1x oscillator 24.000MHz (close to sound)
|
||||
1x blue resonator 655K (close to sound)
|
||||
CPU:
|
||||
main PCB:
|
||||
1x 68000 (main)(missing)
|
||||
1x LH0080B-Z80B-CPU (sound)
|
||||
1x D7759C (sound)
|
||||
1x YM2151 (sound)
|
||||
1x YM3012 (sound)
|
||||
1x UPC1241H (sound)
|
||||
1x oscillator 20.000 (close to main)
|
||||
1x oscillator 24.000MHz (close to sound)
|
||||
1x blue resonator 655K (close to sound)
|
||||
|
||||
ROMs:
|
||||
main PCB:
|
||||
2x NMC27C512 (1,3)
|
||||
2x NMC27C256 (2,12)
|
||||
8x TMS27PC512 (4,5,6,7,8,9,10,11)
|
||||
ROMs:
|
||||
main PCB:
|
||||
2x NMC27C512 (1,3)
|
||||
2x NMC27C256 (2,12)
|
||||
8x TMS27PC512 (4,5,6,7,8,9,10,11)
|
||||
|
||||
roms PCB:
|
||||
29x Am27C512 (13-32,34-42)
|
||||
1x NMC27C512 (33)
|
||||
1x PROM N82S129N
|
||||
roms PCB:
|
||||
29x Am27C512 (13-32,34-42)
|
||||
1x NMC27C512 (33)
|
||||
1x PROM N82S129N
|
||||
|
||||
|
||||
RAMs:
|
||||
main PCB:
|
||||
1x GM76C28
|
||||
2x GM76C88
|
||||
2x HM6116K
|
||||
RAMs:
|
||||
main PCB:
|
||||
1x GM76C28
|
||||
2x GM76C88
|
||||
2x HM6116K
|
||||
|
||||
roms PCB:
|
||||
8x LC3517BS
|
||||
2x 256K S BGD-A
|
||||
roms PCB:
|
||||
8x LC3517BS
|
||||
2x 256K S BGD-A
|
||||
|
||||
|
||||
PLDs:
|
||||
main PCB:
|
||||
3x PAL16L8ACN (not dumped)
|
||||
PLDs:
|
||||
main PCB:
|
||||
3x PAL16L8ACN (not dumped)
|
||||
|
||||
roms PCB:
|
||||
1x PEEL18CV8P (not dumped)
|
||||
roms PCB:
|
||||
1x PEEL18CV8P (not dumped)
|
||||
|
||||
Note
|
||||
main PCB:
|
||||
1x JAMMA edge connector
|
||||
2x 50 pins flat cable connector to roms PCB
|
||||
1x trimmer (volume)
|
||||
2x 8x2 switches dip
|
||||
Note
|
||||
main PCB:
|
||||
1x JAMMA edge connector
|
||||
2x 50 pins flat cable connector to roms PCB
|
||||
1x trimmer (volume)
|
||||
2x 8x2 switches dip
|
||||
|
||||
roms PCB:
|
||||
2x 50 pins flat cable connector to roms PCB
|
||||
roms PCB:
|
||||
2x 50 pins flat cable connector to roms PCB
|
||||
*/
|
||||
|
||||
ROM_START( goldnaxeb1 )
|
||||
@ -2667,24 +2667,24 @@ ROM_START( goldnaxeb1 )
|
||||
ROM_LOAD( "82s129.bin", 0x000, 0x100, CRC(88962e80) SHA1(ebf3d57d53fcba727cf20e4bb26f12934f7d1bc7) )
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
Golden Axe (bootleg) made in Italy?
|
||||
PCB: GENSYS-1/I
|
||||
/*
|
||||
Golden Axe (bootleg) made in Italy?
|
||||
PCB: GENSYS-1/I
|
||||
|
||||
CPUs
|
||||
1x SCN68000CAN64-KGQ7551-8931KE (main - upper board)(IC40)
|
||||
1x oscillator 20.000MHz (upper board - near main CPU)(XL2)
|
||||
1x STZ8400BB1-Z80BCPU-28911 (sound - upper board)(IC44)
|
||||
2x YAMAHA YM2203C (sound - upper board)IC27, IC28)
|
||||
1x OKI M5205 (sound - upper board)(IC16)
|
||||
2x YAMAHA Y3014B (DAC - sound - upper board)(IC19, IC20)
|
||||
1x crystal resonator CSB398P (upper board - near sound CPUs)(XL1)
|
||||
1x oscillator 24MHz (lower board near connectors to upper board)(XL1)
|
||||
CPUs
|
||||
1x SCN68000CAN64-KGQ7551-8931KE (main - upper board)(IC40)
|
||||
1x oscillator 20.000MHz (upper board - near main CPU)(XL2)
|
||||
1x STZ8400BB1-Z80BCPU-28911 (sound - upper board)(IC44)
|
||||
2x YAMAHA YM2203C (sound - upper board)IC27, IC28)
|
||||
1x OKI M5205 (sound - upper board)(IC16)
|
||||
2x YAMAHA Y3014B (DAC - sound - upper board)(IC19, IC20)
|
||||
1x crystal resonator CSB398P (upper board - near sound CPUs)(XL1)
|
||||
1x oscillator 24MHz (lower board near connectors to upper board)(XL1)
|
||||
|
||||
ROMs
|
||||
8x TMS27C512-20JL (from 1 to 8 - upper board) (CPU)
|
||||
26x ST M27512FI (from 9 to 34 - upper board) (Sound + Tilemap)
|
||||
6x ST M27512FI (from 35 to 40 - lower board) (Sprites)
|
||||
ROMs
|
||||
8x TMS27C512-20JL (from 1 to 8 - upper board) (CPU)
|
||||
26x ST M27512FI (from 9 to 34 - upper board) (Sound + Tilemap)
|
||||
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
|
||||
|
||||
Designed and Programmed by A.M.T. Research & Development Department 03/30/1991.
|
||||
@ -2958,8 +2958,8 @@ ROM_START( iqpipe )
|
||||
ROM_END
|
||||
|
||||
|
||||
/******************************
|
||||
System 18 Bootlegs
|
||||
/******************************
|
||||
System 18 Bootlegs
|
||||
******************************/
|
||||
|
||||
ROM_START( astormbl )
|
||||
@ -3416,7 +3416,7 @@ static DRIVER_INIT( mwalkbl )
|
||||
{
|
||||
segas1x_bootleg_state *state = (segas1x_bootleg_state *)machine->driver_data;
|
||||
UINT8 *RAM = memory_region(machine, "soundcpu");
|
||||
static const int mwalk_sound_info[] =
|
||||
static const int mwalk_sound_info[] =
|
||||
{
|
||||
0x0f, 0x00000, // ROM #1 = 128K
|
||||
0x1f, 0x20000, // ROM #2 = 256K
|
||||
@ -3438,7 +3438,7 @@ static DRIVER_INIT( astormbl )
|
||||
{
|
||||
segas1x_bootleg_state *state = (segas1x_bootleg_state *)machine->driver_data;
|
||||
UINT8 *RAM = memory_region(machine, "soundcpu");
|
||||
static const int astormbl_sound_info[] =
|
||||
static const int astormbl_sound_info[] =
|
||||
{
|
||||
0x0f, 0x00000, // ROM #1 = 128K
|
||||
0x1f, 0x20000, // ROM #2 = 256K
|
||||
|
@ -1763,7 +1763,7 @@ static DRIVER_INIT( mrkicker )
|
||||
{
|
||||
finalgdr_backupram_bank = 1;
|
||||
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;
|
||||
flip_bit = 1; //?
|
||||
|
@ -3707,10 +3707,10 @@ ROM_START( lpadv )
|
||||
TPS_BIOS
|
||||
|
||||
ROM_REGION32_LE( 0xc00000, "user2", 0 )
|
||||
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_LOAD( "rp00.u0216", 0x400000, 0x400000, CRC(d759d0d4) SHA1(47b009a5dfa81611276b1376bdab44dfad597e85) )
|
||||
ROM_LOAD( "rp01.u0217", 0x800000, 0x400000, CRC(5be576e1) SHA1(e24a96d179016d6d65205079874b35500760a642) )
|
||||
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_LOAD( "rp00.u0216", 0x400000, 0x400000, CRC(d759d0d4) SHA1(47b009a5dfa81611276b1376bdab44dfad597e85) )
|
||||
ROM_LOAD( "rp01.u0217", 0x800000, 0x400000, CRC(5be576e1) SHA1(e24a96d179016d6d65205079874b35500760a642) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( mfjump )
|
||||
|
@ -765,7 +765,7 @@ MACHINE_DRIVER_END
|
||||
|
||||
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 /* slrasslt hack */
|
||||
};
|
||||
|
@ -3,11 +3,11 @@ typedef struct _segas1x_state segas1x_state;
|
||||
struct _segas1x_state
|
||||
{
|
||||
/* memory pointers */
|
||||
// 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 * 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 * spriteram_0; // this is used in the segaic16 mapper, hence it cannot be added here (yet)
|
||||
// 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 * 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 * spriteram_0; // this is used in the segaic16 mapper, hence it cannot be added here (yet)
|
||||
|
||||
/* misc video */
|
||||
UINT8 road_priority; // segaxbd
|
||||
|
@ -619,7 +619,7 @@ WRITE64_HANDLER( naomi_maple_w )
|
||||
{
|
||||
if (port > 0)
|
||||
buff[0]=0xffffffff;
|
||||
// printf("MAPLE: command %02x\n", command);
|
||||
// printf("MAPLE: command %02x\n", command);
|
||||
switch (command)
|
||||
{
|
||||
case 1:
|
||||
|
@ -102,6 +102,6 @@ DRIVER_INIT( gram2000 )
|
||||
|
||||
DRIVER_INIT( vf4evoct )
|
||||
{
|
||||
// DRIVER_INIT_CALL(naomi2);
|
||||
// DRIVER_INIT_CALL(naomi2);
|
||||
actel_id = 0; //FIXME: correct value
|
||||
}
|
||||
|
@ -460,7 +460,7 @@ READ64_DEVICE_HANDLER( naomibd_r )
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
@ -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 )
|
||||
{
|
||||
assert(device != NULL);
|
||||
assert(device != NULL);
|
||||
assert((device->type == _315_5250));
|
||||
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 */
|
||||
{
|
||||
if ((address < 0x8000) && (snes_cart.mode == SNES_MODE_20)) //FIXME: check this
|
||||
{
|
||||
{
|
||||
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
|
||||
value = snes_ram[0x400000 + offset];
|
||||
|
@ -1971,7 +1971,7 @@ void recoverPolygonBlock(running_machine* machine, const UINT16* packet, struct
|
||||
}
|
||||
printf("\n");
|
||||
*/
|
||||
|
||||
|
||||
// There are 4 hunks per address.
|
||||
address[0] = threeDPointer[0];
|
||||
address[1] = threeDPointer[1];
|
||||
@ -2065,8 +2065,8 @@ void recoverPolygonBlock(running_machine* machine, const UINT16* packet, struct
|
||||
polys[*numPolys].palPageSize = 0x100;
|
||||
|
||||
/* FIXME: This isn't correct.
|
||||
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. */
|
||||
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. */
|
||||
if (hng64_3dregs[0x00/4] & 0x2000)
|
||||
{
|
||||
polys[*numPolys].palOffset += 0x800;
|
||||
@ -2080,9 +2080,9 @@ void recoverPolygonBlock(running_machine* machine, const UINT16* packet, struct
|
||||
if (explicitPaletteValue2) polys[*numPolys].palPageSize = 0x10;
|
||||
|
||||
// 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
|
||||
}
|
||||
|
||||
@ -2889,7 +2889,7 @@ INLINE void FillSmoothTexPCHorizontalLine(running_machine *machine,
|
||||
if (paletteEntry != 0)
|
||||
{
|
||||
paletteEntry %= palPageSize;
|
||||
|
||||
|
||||
// Greyscale texture test.
|
||||
// *cb = MAKE_ARGB(255, (UINT8)paletteEntry, (UINT8)paletteEntry, (UINT8)paletteEntry);
|
||||
*cb = machine->pens[palOffset + paletteEntry];
|
||||
|
@ -62,19 +62,19 @@ static TILEMAP_MAPPER( sys16_bg_map )
|
||||
{
|
||||
int page = 0;
|
||||
if (row < 32)
|
||||
{
|
||||
{
|
||||
/* top */
|
||||
if (col < 64)
|
||||
page = 0;
|
||||
else
|
||||
if (col < 64)
|
||||
page = 0;
|
||||
else
|
||||
page = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
else
|
||||
{
|
||||
/* bottom */
|
||||
if (col < 64)
|
||||
page = 2;
|
||||
else
|
||||
if (col < 64)
|
||||
page = 2;
|
||||
else
|
||||
page = 3;
|
||||
}
|
||||
|
||||
|
@ -71,10 +71,10 @@ static char *build_full_path(const char *path, const char *file)
|
||||
char *p = ret;
|
||||
|
||||
strcpy(p, path);
|
||||
p += strlen(path);
|
||||
p += strlen(path);
|
||||
*p++ = PATHSEPCH;
|
||||
strcpy(p, file);
|
||||
return ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
@ -246,7 +246,7 @@ osd_directory_entry *osd_stat(const char *path)
|
||||
struct stat64 st;
|
||||
#endif
|
||||
|
||||
#if defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD)
|
||||
#if defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD)
|
||||
err = stat(path, &st);
|
||||
#else
|
||||
err = stat64(path, &st);
|
||||
|
@ -10,4 +10,4 @@
|
||||
***************************************************************************/
|
||||
|
||||
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