mirror of
https://github.com/holub/mame
synced 2025-05-28 16:43:04 +03:00
Cleanups and version bump.
This commit is contained in:
parent
a38c67f27b
commit
4fa610aa02
@ -139,7 +139,7 @@ attotime &attotime::operator/=(UINT32 factor)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// as_string - return a temporary printable
|
||||
// as_string - return a temporary printable
|
||||
// string describing an attotime
|
||||
//-------------------------------------------------
|
||||
|
||||
|
@ -121,11 +121,11 @@ public:
|
||||
attotime()
|
||||
: seconds(0),
|
||||
attoseconds(0) { }
|
||||
|
||||
|
||||
attotime(seconds_t secs, attoseconds_t attos)
|
||||
: seconds(secs),
|
||||
attoseconds(attos) { }
|
||||
|
||||
|
||||
// queries
|
||||
bool is_zero() const { return (seconds == 0 && attoseconds == 0); }
|
||||
bool is_never() const { return (seconds >= ATTOTIME_MAX_SECONDS); }
|
||||
@ -144,7 +144,7 @@ public:
|
||||
static attotime from_usec(INT64 usec) { return attotime(usec / 1000000, (usec % 1000000) * (ATTOSECONDS_PER_SECOND / 1000000)); }
|
||||
static attotime from_nsec(INT64 nsec) { return attotime(nsec / 1000000000, (nsec % 1000000000) * (ATTOSECONDS_PER_SECOND / 1000000000)); }
|
||||
static attotime from_hz(double frequency) { return attotime(0, double(ATTOSECONDS_PER_SECOND) / frequency); }
|
||||
|
||||
|
||||
// math
|
||||
attotime &operator+=(const attotime &right);
|
||||
attotime &operator-=(const attotime &right);
|
||||
@ -167,7 +167,7 @@ public:
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// operator+ - handle addition between two
|
||||
// operator+ - handle addition between two
|
||||
// attotimes
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -221,7 +221,7 @@ inline attotime &attotime::operator+=(const attotime &right)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// operator- - handle subtraction between two
|
||||
// operator- - handle subtraction between two
|
||||
// attotimes
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -295,7 +295,7 @@ inline attotime operator/(const attotime &left, UINT32 factor)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// operator== - handle comparisons between
|
||||
// operator== - handle comparisons between
|
||||
// attotimes
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -397,7 +397,7 @@ inline UINT64 attotime::as_ticks(UINT32 frequency) const
|
||||
UINT32 fracticks = (attotime(0, attoseconds) * frequency).seconds;
|
||||
return mulu_32x32(seconds, frequency) + fracticks;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// from_ticks - create an attotime from a tick
|
||||
@ -415,7 +415,7 @@ inline attotime attotime::from_ticks(UINT64 ticks, UINT32 frequency)
|
||||
INT32 secs = divu_64x32_rem(ticks, frequency, &remainder);
|
||||
return attotime(secs, (UINT64)remainder * attos_per_tick);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// from_double - create an attotime from floating
|
||||
@ -429,6 +429,6 @@ inline attotime attotime::from_double(double _time)
|
||||
attoseconds_t attos = DOUBLE_TO_ATTOSECONDS(_time);
|
||||
return attotime(secs, attos);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif // __ATTOTIME_H__
|
||||
|
@ -118,32 +118,32 @@ const int ADSP2181_IRQL2 = 8; // IRQL2
|
||||
enum
|
||||
{
|
||||
ADSP2100_PC,
|
||||
ADSP2100_AX0,
|
||||
ADSP2100_AX1,
|
||||
ADSP2100_AY0,
|
||||
ADSP2100_AY1,
|
||||
ADSP2100_AR,
|
||||
ADSP2100_AX0,
|
||||
ADSP2100_AX1,
|
||||
ADSP2100_AY0,
|
||||
ADSP2100_AY1,
|
||||
ADSP2100_AR,
|
||||
ADSP2100_AF,
|
||||
ADSP2100_MX0,
|
||||
ADSP2100_MX1,
|
||||
ADSP2100_MY0,
|
||||
ADSP2100_MY1,
|
||||
ADSP2100_MR0,
|
||||
ADSP2100_MR1,
|
||||
ADSP2100_MR2,
|
||||
ADSP2100_MX0,
|
||||
ADSP2100_MX1,
|
||||
ADSP2100_MY0,
|
||||
ADSP2100_MY1,
|
||||
ADSP2100_MR0,
|
||||
ADSP2100_MR1,
|
||||
ADSP2100_MR2,
|
||||
ADSP2100_MF,
|
||||
ADSP2100_SI,
|
||||
ADSP2100_SE,
|
||||
ADSP2100_SB,
|
||||
ADSP2100_SR0,
|
||||
ADSP2100_SI,
|
||||
ADSP2100_SE,
|
||||
ADSP2100_SB,
|
||||
ADSP2100_SR0,
|
||||
ADSP2100_SR1,
|
||||
ADSP2100_I0,
|
||||
ADSP2100_I1,
|
||||
ADSP2100_I2,
|
||||
ADSP2100_I3,
|
||||
ADSP2100_I4,
|
||||
ADSP2100_I5,
|
||||
ADSP2100_I6,
|
||||
ADSP2100_I0,
|
||||
ADSP2100_I1,
|
||||
ADSP2100_I2,
|
||||
ADSP2100_I3,
|
||||
ADSP2100_I4,
|
||||
ADSP2100_I5,
|
||||
ADSP2100_I6,
|
||||
ADSP2100_I7,
|
||||
ADSP2100_L0,
|
||||
ADSP2100_L1,
|
||||
|
@ -1288,7 +1288,7 @@ void drcbe_x64::emit_or_m32_p32(x86code *&dst, x86_memref memref, const be_param
|
||||
if (inst.flags() == 0 && (UINT32)param.immediate() == 0)
|
||||
;// skip
|
||||
else if (inst.flags() == 0 && (UINT32)param.immediate() == 0xffffffff)
|
||||
emit_mov_m32_imm(dst, memref, 0xffffffff); // mov [dest],-1
|
||||
emit_mov_m32_imm(dst, memref, 0xffffffff); // mov [dest],-1
|
||||
else
|
||||
emit_or_m32_imm(dst, memref, param.immediate()); // or [dest],param
|
||||
}
|
||||
|
@ -173,7 +173,7 @@ void dsp16_device::device_reset()
|
||||
|
||||
void dsp16_device::state_import(const device_state_entry &entry)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -243,7 +243,7 @@ void dsp16_device::execute_run()
|
||||
|
||||
// instruction fetch
|
||||
//UINT16 op = opcode_read();
|
||||
|
||||
|
||||
m_icount--;
|
||||
} while (m_icount > 0);
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
//**************************************************************************
|
||||
|
||||
//#define MCFG_DSP16_CONFIG(_config)
|
||||
// dsp16_device_config::static_set_config(device, _config);
|
||||
// dsp16_device_config::static_set_config(device, _config);
|
||||
|
||||
|
||||
|
||||
|
@ -22,7 +22,7 @@ astring disasmF1Field(const UINT8& F1, const UINT8& D, const UINT8& S)
|
||||
case 0x0d: ret.printf("a%d = a%d + y", D, S); break;
|
||||
case 0x0e: ret.printf("a%d = a%d & y", D, S); break;
|
||||
case 0x0f: ret.printf("a%d = a%d - y", D, S); break;
|
||||
|
||||
|
||||
default: return "UNKNOWN";
|
||||
}
|
||||
return ret;
|
||||
@ -41,18 +41,18 @@ astring disasmYField(const UINT8& Y)
|
||||
case 0x05: return "*r1++";
|
||||
case 0x06: return "*r1--";
|
||||
case 0x07: return "*r1++j";
|
||||
|
||||
|
||||
case 0x08: return "*r2";
|
||||
case 0x09: return "*r2++";
|
||||
case 0x0a: return "*r2--";
|
||||
case 0x0b: return "*r2++j";
|
||||
|
||||
|
||||
case 0x0c: return "*r3";
|
||||
case 0x0d: return "*r3++";
|
||||
case 0x0e: return "*r3--";
|
||||
case 0x0f: return "*r3++j";
|
||||
|
||||
default: return "UNKNOWN";
|
||||
default: return "UNKNOWN";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
@ -81,7 +81,7 @@ astring disasmZField(const UINT8& Z)
|
||||
case 0x0e: return "*r3m2";
|
||||
case 0x0f: return "*r3jk";
|
||||
|
||||
default: return "UNKNOWN";
|
||||
default: return "UNKNOWN";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
@ -136,7 +136,7 @@ astring disasmCONField(const UINT8& CON)
|
||||
case 0x0f: return "false";
|
||||
case 0x10: return "gt";
|
||||
case 0x11: return "le";
|
||||
|
||||
|
||||
default: return "RESERVED";
|
||||
}
|
||||
return "";
|
||||
@ -154,7 +154,7 @@ astring disasmBField(const UINT8& B)
|
||||
case 0x05:
|
||||
case 0x06:
|
||||
case 0x07: return "RESERVED";
|
||||
|
||||
|
||||
default: return "UNKNOWN";
|
||||
}
|
||||
return "";
|
||||
@ -172,7 +172,7 @@ astring disasmRImmediateField(const UINT8& R)
|
||||
case 0x05: return "r1";
|
||||
case 0x06: return "r2";
|
||||
case 0x07: return "r3";
|
||||
|
||||
|
||||
default: return "UNKNOWN";
|
||||
}
|
||||
return "";
|
||||
@ -224,7 +224,7 @@ astring disasmIField(const UINT8& I)
|
||||
case 0x01: return "r1/k";
|
||||
case 0x02: return "r2/rb";
|
||||
case 0x03: return "r3/re";
|
||||
|
||||
|
||||
default: return "UNKNOWN";
|
||||
}
|
||||
return "";
|
||||
@ -248,9 +248,9 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
UINT32 dasmflags = 0;
|
||||
UINT16 op = oprom[0] | (oprom[1] << 8);
|
||||
UINT16 op2 = oprom[2] | (oprom[3] << 8);
|
||||
|
||||
|
||||
// TODO: Test for previous "if CON" instruction and tab the next instruction in?
|
||||
|
||||
|
||||
const UINT8 opcode = (op >> 11) & 0x1f;
|
||||
switch(opcode)
|
||||
{
|
||||
@ -267,7 +267,7 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
sprintf(buffer, "%s, %s", fString.cstr(), yString.cstr());
|
||||
break;
|
||||
}
|
||||
case 0x04: case 0x1c:
|
||||
case 0x04: case 0x1c:
|
||||
{
|
||||
// F1 Y=a0[1] | F1 Y=a1[1]
|
||||
const UINT8 Y = (op & 0x000f);
|
||||
@ -334,7 +334,7 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
sprintf(buffer, "%s, y = %s, x = %s", fString.cstr(), aString.cstr(), xString.cstr());
|
||||
if (Y != 0x00) sprintf(buffer, "UNKNOWN");
|
||||
break;
|
||||
}
|
||||
}
|
||||
case 0x14:
|
||||
{
|
||||
// F1, Y = y[1]
|
||||
@ -411,9 +411,9 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
sprintf(buffer, "%s, %s <=> %s", fString.cstr(), zString.cstr(), atString.cstr());
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// Format 3: Special Functions
|
||||
case 0x12:
|
||||
case 0x12:
|
||||
case 0x13:
|
||||
{
|
||||
// if|ifc CON F2
|
||||
@ -427,7 +427,7 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
else sprintf(buffer, "ifc %s : %s", conString.cstr(), fString.cstr());
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// Format 4: Branch Direct Group
|
||||
case 0x00: case 0x01:
|
||||
case 0x10: case 0x11:
|
||||
@ -438,7 +438,7 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
else sprintf(buffer, "goto 0x%04x", JA);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// Format 5: Branch Indirect Group
|
||||
case 0x18:
|
||||
{
|
||||
@ -448,7 +448,7 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
sprintf(buffer, "%s", bString.cstr());
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// Format 6: Contitional Branch Qualifier/Software Interrupt (icall)
|
||||
case 0x1a:
|
||||
{
|
||||
@ -461,7 +461,7 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
if (op == 0xd40e) sprintf(buffer, "icall");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// Format 7: Data Move Group
|
||||
case 0x09: case 0x0b:
|
||||
{
|
||||
@ -472,7 +472,7 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
sprintf(buffer, "%s = %s", rString.cstr(), (S ? "a1" : "a0"));
|
||||
break;
|
||||
}
|
||||
case 0x08:
|
||||
case 0x08:
|
||||
{
|
||||
// aT = R
|
||||
const UINT8 R = (op & 0x03f0) >> 4;
|
||||
@ -492,7 +492,7 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
// TODO: Special case the R == [y, y1, or x] case
|
||||
break;
|
||||
}
|
||||
case 0x0c:
|
||||
case 0x0c:
|
||||
{
|
||||
// Y = R
|
||||
const UINT8 Y = (op & 0x000f);
|
||||
@ -502,7 +502,7 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
sprintf(buffer, "%s = %s", yString.cstr(), rString.cstr());
|
||||
break;
|
||||
}
|
||||
case 0x0d:
|
||||
case 0x0d:
|
||||
{
|
||||
// Z : R
|
||||
const UINT8 Z = (op & 0x000f);
|
||||
@ -512,7 +512,7 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
sprintf(buffer, "%s <=> %s", zString.cstr(), rString.cstr());
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// Format 8: Data Move (immediate operand - 2 words)
|
||||
case 0x0a:
|
||||
{
|
||||
@ -523,7 +523,7 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
opSize = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// Format 9: Short Immediate Group
|
||||
case 0x02: case 0x03:
|
||||
{
|
||||
@ -534,7 +534,7 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
sprintf(buffer, "%s = 0x%02x", rString.cstr(), M);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// Format 10: do - redo
|
||||
case 0x0e:
|
||||
{
|
||||
@ -547,14 +547,14 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
sprintf(buffer, "redo %d\n", K);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// RESERVED
|
||||
case 0x1e:
|
||||
{
|
||||
sprintf(buffer, "RESERVED");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// UNKNOWN
|
||||
default:
|
||||
{
|
||||
@ -562,6 +562,6 @@ CPU_DISASSEMBLE( dsp16a )
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return opSize | dasmflags | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
@ -458,7 +458,7 @@ void dsp32c_device::state_import(const device_state_entry &entry)
|
||||
{
|
||||
case STATE_GENFLAGS:
|
||||
break;
|
||||
|
||||
|
||||
case DSP32_PCR:
|
||||
update_pcr(m_iotemp);
|
||||
break;
|
||||
@ -480,7 +480,7 @@ void dsp32c_device::state_export(const device_state_entry &entry)
|
||||
{
|
||||
case STATE_GENFLAGS:
|
||||
// no actual flags register, so just make something up
|
||||
m_iotemp = ((zFLAG != 0) << 0) |
|
||||
m_iotemp = ((zFLAG != 0) << 0) |
|
||||
((nFLAG != 0) << 1) |
|
||||
((cFLAG != 0) << 2) |
|
||||
((vFLAG != 0) << 3) |
|
||||
@ -489,7 +489,7 @@ void dsp32c_device::state_export(const device_state_entry &entry)
|
||||
((UFLAG != 0) << 6) |
|
||||
((VFLAG != 0) << 7);
|
||||
break;
|
||||
|
||||
|
||||
case DSP32_PCR:
|
||||
m_iotemp = m_pcr;
|
||||
break;
|
||||
|
@ -146,7 +146,7 @@ struct dsp32_config
|
||||
|
||||
// ======================> dsp32c_device_config
|
||||
|
||||
class dsp32c_device_config : public cpu_device_config,
|
||||
class dsp32c_device_config : public cpu_device_config,
|
||||
public dsp32_config
|
||||
{
|
||||
friend class dsp32c_device;
|
||||
@ -449,7 +449,7 @@ protected:
|
||||
void d5_ieee(UINT32 op);
|
||||
void d5_dsp(UINT32 op);
|
||||
void d5_seed(UINT32 op);
|
||||
|
||||
|
||||
// dma helpers
|
||||
void dma_increment();
|
||||
void dma_load();
|
||||
@ -495,7 +495,7 @@ protected:
|
||||
UINT32 m_isr;
|
||||
UINT32 m_obuf;
|
||||
UINT32 m_osr;
|
||||
|
||||
|
||||
UINT32 m_iotemp;
|
||||
|
||||
// internal stuff
|
||||
|
@ -90,7 +90,7 @@
|
||||
#if EMULATE_MEMORY_LATENCY
|
||||
#define WWORD_DEFERRED(a,v) do { int bufidx = m_mbuf_index & 3; m_mbufaddr[bufidx] = -(a); m_mbufdata[bufidx] = (v); } while (0)
|
||||
#define WLONG_DEFERRED(a,v) do { int bufidx = m_mbuf_index & 3; m_mbufaddr[bufidx] = (a); m_mbufdata[bufidx] = (v); } while (0)
|
||||
#define PROCESS_DEFERRED_MEMORY() \
|
||||
#define PROCESS_DEFERRED_MEMORY() \
|
||||
if (m_mbufaddr[++m_mbuf_index & 3] != 1) \
|
||||
{ \
|
||||
int bufidx = m_mbuf_index & 3; \
|
||||
|
@ -1,9 +1,9 @@
|
||||
/***************************************************************************
|
||||
|
||||
32031ops.c
|
||||
|
||||
|
||||
TMS32031/2 emulator
|
||||
|
||||
|
||||
****************************************************************************
|
||||
|
||||
Copyright Aaron Giles
|
||||
@ -84,8 +84,8 @@
|
||||
#define OR_V_ADD(a,b,r) do { UINT32 temp = ((~((a) ^ (b)) & ((a) ^ (r))) >> 30) & VFLAG; IREG(TMR_ST) |= temp | (temp << 4); } while (0)
|
||||
#define OR_C_SUB(a,b,r) do { IREG(TMR_ST) |= ((UINT32)(b) > (UINT32)(a)); } while (0)
|
||||
#define OR_C_ADD(a,b,r) do { IREG(TMR_ST) |= ((UINT32)(~(a)) < (UINT32)(b)); } while (0)
|
||||
#define OR_NZCV_SUB(a,b,r) do { OR_V_SUB(a,b,r); OR_C_SUB(a,b,r); OR_NZ(r); } while (0)
|
||||
#define OR_NZCV_ADD(a,b,r) do { OR_V_ADD(a,b,r); OR_C_ADD(a,b,r); OR_NZ(r); } while (0)
|
||||
#define OR_NZCV_SUB(a,b,r) do { OR_V_SUB(a,b,r); OR_C_SUB(a,b,r); OR_NZ(r); } while (0)
|
||||
#define OR_NZCV_ADD(a,b,r) do { OR_V_ADD(a,b,r); OR_C_ADD(a,b,r); OR_NZ(r); } while (0)
|
||||
|
||||
#define OVM() (IREG(TMR_ST) & OVMFLAG)
|
||||
|
||||
@ -6346,26 +6346,26 @@ void tms3203x_device::xor3sti(UINT32 op)
|
||||
|
||||
UINT32 (tms3203x_device::*const tms3203x_device::s_indirect_d[0x20])(UINT32, UINT8) =
|
||||
{
|
||||
&tms3203x_device::mod00_d, &tms3203x_device::mod01_d, &tms3203x_device::mod02_d, &tms3203x_device::mod03_d,
|
||||
&tms3203x_device::mod00_d, &tms3203x_device::mod01_d, &tms3203x_device::mod02_d, &tms3203x_device::mod03_d,
|
||||
&tms3203x_device::mod04_d, &tms3203x_device::mod05_d, &tms3203x_device::mod06_d, &tms3203x_device::mod07_d,
|
||||
&tms3203x_device::mod08, &tms3203x_device::mod09, &tms3203x_device::mod0a, &tms3203x_device::mod0b,
|
||||
&tms3203x_device::mod08, &tms3203x_device::mod09, &tms3203x_device::mod0a, &tms3203x_device::mod0b,
|
||||
&tms3203x_device::mod0c, &tms3203x_device::mod0d, &tms3203x_device::mod0e, &tms3203x_device::mod0f,
|
||||
&tms3203x_device::mod10, &tms3203x_device::mod11, &tms3203x_device::mod12, &tms3203x_device::mod13,
|
||||
&tms3203x_device::mod10, &tms3203x_device::mod11, &tms3203x_device::mod12, &tms3203x_device::mod13,
|
||||
&tms3203x_device::mod14, &tms3203x_device::mod15, &tms3203x_device::mod16, &tms3203x_device::mod17,
|
||||
&tms3203x_device::mod18, &tms3203x_device::mod19, &tms3203x_device::modillegal, &tms3203x_device::modillegal,
|
||||
&tms3203x_device::mod18, &tms3203x_device::mod19, &tms3203x_device::modillegal, &tms3203x_device::modillegal,
|
||||
&tms3203x_device::modillegal, &tms3203x_device::modillegal, &tms3203x_device::modillegal, &tms3203x_device::modillegal
|
||||
};
|
||||
|
||||
|
||||
UINT32 (tms3203x_device::*const tms3203x_device::s_indirect_1[0x20])(UINT32, UINT8) =
|
||||
{
|
||||
&tms3203x_device::mod00_1, &tms3203x_device::mod01_1, &tms3203x_device::mod02_1, &tms3203x_device::mod03_1,
|
||||
&tms3203x_device::mod00_1, &tms3203x_device::mod01_1, &tms3203x_device::mod02_1, &tms3203x_device::mod03_1,
|
||||
&tms3203x_device::mod04_1, &tms3203x_device::mod05_1, &tms3203x_device::mod06_1, &tms3203x_device::mod07_1,
|
||||
&tms3203x_device::mod08, &tms3203x_device::mod09, &tms3203x_device::mod0a, &tms3203x_device::mod0b,
|
||||
&tms3203x_device::mod08, &tms3203x_device::mod09, &tms3203x_device::mod0a, &tms3203x_device::mod0b,
|
||||
&tms3203x_device::mod0c, &tms3203x_device::mod0d, &tms3203x_device::mod0e, &tms3203x_device::mod0f,
|
||||
&tms3203x_device::mod10, &tms3203x_device::mod11, &tms3203x_device::mod12, &tms3203x_device::mod13,
|
||||
&tms3203x_device::mod10, &tms3203x_device::mod11, &tms3203x_device::mod12, &tms3203x_device::mod13,
|
||||
&tms3203x_device::mod14, &tms3203x_device::mod15, &tms3203x_device::mod16, &tms3203x_device::mod17,
|
||||
&tms3203x_device::mod18, &tms3203x_device::mod19, &tms3203x_device::modillegal, &tms3203x_device::modillegal,
|
||||
&tms3203x_device::mod18, &tms3203x_device::mod19, &tms3203x_device::modillegal, &tms3203x_device::modillegal,
|
||||
&tms3203x_device::modillegal, &tms3203x_device::modillegal, &tms3203x_device::modillegal, &tms3203x_device::modillegal
|
||||
};
|
||||
|
||||
@ -6374,11 +6374,11 @@ UINT32 (tms3203x_device::*const tms3203x_device::s_indirect_1_def[0x20])(UINT32,
|
||||
{
|
||||
&tms3203x_device::mod00_1_def, &tms3203x_device::mod01_1_def, &tms3203x_device::mod02_1_def, &tms3203x_device::mod03_1_def,
|
||||
&tms3203x_device::mod04_1_def, &tms3203x_device::mod05_1_def, &tms3203x_device::mod06_1_def, &tms3203x_device::mod07_1_def,
|
||||
&tms3203x_device::mod08_def, &tms3203x_device::mod09_def, &tms3203x_device::mod0a_def, &tms3203x_device::mod0b_def,
|
||||
&tms3203x_device::mod08_def, &tms3203x_device::mod09_def, &tms3203x_device::mod0a_def, &tms3203x_device::mod0b_def,
|
||||
&tms3203x_device::mod0c_def, &tms3203x_device::mod0d_def, &tms3203x_device::mod0e_def, &tms3203x_device::mod0f_def,
|
||||
&tms3203x_device::mod10_def, &tms3203x_device::mod11_def, &tms3203x_device::mod12_def, &tms3203x_device::mod13_def,
|
||||
&tms3203x_device::mod10_def, &tms3203x_device::mod11_def, &tms3203x_device::mod12_def, &tms3203x_device::mod13_def,
|
||||
&tms3203x_device::mod14_def, &tms3203x_device::mod15_def, &tms3203x_device::mod16_def, &tms3203x_device::mod17_def,
|
||||
&tms3203x_device::mod18_def, &tms3203x_device::mod19_def, &tms3203x_device::modillegal_def,&tms3203x_device::modillegal_def,
|
||||
&tms3203x_device::mod18_def, &tms3203x_device::mod19_def, &tms3203x_device::modillegal_def,&tms3203x_device::modillegal_def,
|
||||
&tms3203x_device::modillegal_def,&tms3203x_device::modillegal_def,&tms3203x_device::modillegal_def,&tms3203x_device::modillegal_def
|
||||
};
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
/***************************************************************************
|
||||
|
||||
tms32031.c
|
||||
|
||||
|
||||
TMS32031/2 emulator
|
||||
|
||||
|
||||
****************************************************************************
|
||||
|
||||
Copyright Aaron Giles
|
||||
@ -291,7 +291,7 @@ float tms3203x_device::tmsreg::as_float() const
|
||||
int exp = (exponent() + 127) << 23;
|
||||
id.i[0] = exp + (mantissa() >> 8);
|
||||
}
|
||||
|
||||
|
||||
// handle negative numbers
|
||||
else
|
||||
{
|
||||
@ -299,7 +299,7 @@ float tms3203x_device::tmsreg::as_float() const
|
||||
INT32 man = -mantissa();
|
||||
id.i[0] = 0x80000000 + exp + ((man >> 8) & 0x00ffffff);
|
||||
}
|
||||
|
||||
|
||||
// return the converted float
|
||||
return id.f[0];
|
||||
}
|
||||
@ -326,7 +326,7 @@ double tms3203x_device::tmsreg::as_double() const
|
||||
id.i[BYTE_XOR_BE(0)] = exp + (mantissa() >> 11);
|
||||
id.i[BYTE_XOR_BE(1)] = (mantissa() << 21) & 0xffe00000;
|
||||
}
|
||||
|
||||
|
||||
// handle negative numbers
|
||||
else
|
||||
{
|
||||
@ -335,7 +335,7 @@ double tms3203x_device::tmsreg::as_double() const
|
||||
id.i[BYTE_XOR_BE(0)] = 0x80000000 + exp + ((man >> 11) & 0x001fffff);
|
||||
id.i[BYTE_XOR_BE(1)] = (man << 21) & 0xffe00000;
|
||||
}
|
||||
|
||||
|
||||
// return the converted double
|
||||
return id.d;
|
||||
}
|
||||
@ -360,7 +360,7 @@ void tms3203x_device::tmsreg::from_double(double val)
|
||||
set_mantissa(0);
|
||||
set_exponent(-128);
|
||||
}
|
||||
|
||||
|
||||
// if we're too large, map to the maximum value
|
||||
else if (exponent > 127)
|
||||
{
|
||||
@ -370,21 +370,21 @@ void tms3203x_device::tmsreg::from_double(double val)
|
||||
set_mantissa(0x80000001);
|
||||
set_exponent(127);
|
||||
}
|
||||
|
||||
|
||||
// if we're positive, map directly
|
||||
else if ((INT32)id.i[BYTE_XOR_BE(0)] >= 0)
|
||||
{
|
||||
set_mantissa(mantissa);
|
||||
set_exponent(exponent);
|
||||
}
|
||||
|
||||
|
||||
// if we're negative with a non-zero mantissa, remove the leading sign bit
|
||||
else if (mantissa != 0)
|
||||
{
|
||||
set_mantissa(0x80000000 | -mantissa);
|
||||
set_exponent(exponent);
|
||||
}
|
||||
|
||||
|
||||
// if we're negative with a zero mantissa, normalize
|
||||
else
|
||||
{
|
||||
@ -846,7 +846,7 @@ void tms3203x_device::execute_run()
|
||||
execute_one();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// debugging case
|
||||
else
|
||||
{
|
||||
|
@ -1,9 +1,9 @@
|
||||
/***************************************************************************
|
||||
|
||||
tms32031.h
|
||||
|
||||
|
||||
TMS32031/2 emulator
|
||||
|
||||
|
||||
****************************************************************************
|
||||
|
||||
Copyright Aaron Giles
|
||||
@ -211,21 +211,21 @@ class tms3203x_device : public cpu_device
|
||||
tmsreg() { i32[0] = i32[1] = 0; }
|
||||
tmsreg(double value) { from_double(value); }
|
||||
tmsreg(INT32 mantissa, INT8 exponent) { set_mantissa(mantissa); set_exponent(exponent); }
|
||||
|
||||
|
||||
// getters
|
||||
UINT32 integer() const { return i32[0]; }
|
||||
INT32 mantissa() const { return i32[0]; }
|
||||
INT8 exponent() const { return i32[1]; }
|
||||
void set_mantissa(INT32 man) { i32[0] = man; }
|
||||
void set_exponent(INT8 exp) { i32[1] = exp; }
|
||||
|
||||
|
||||
// exporters
|
||||
float as_float() const;
|
||||
double as_double() const;
|
||||
|
||||
|
||||
// importers
|
||||
void from_double(double);
|
||||
|
||||
|
||||
UINT32 i32[2];
|
||||
};
|
||||
|
||||
@ -850,7 +850,7 @@ protected:
|
||||
static UINT32 (tms3203x_device::*const s_indirect_1_def[0x20])(UINT32, UINT8, UINT32 *&);
|
||||
|
||||
#if (TMS_3203X_LOG_OPCODE_USAGE)
|
||||
UINT32 m_hits[0x200*4];
|
||||
UINT32 m_hits[0x200*4];
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -318,7 +318,7 @@ void debug_command_init(running_machine *machine)
|
||||
debug_console_register_command(machine, "load", CMDFLAG_NONE, ADDRESS_SPACE_PROGRAM, 3, 4, execute_load);
|
||||
debug_console_register_command(machine, "loadd", CMDFLAG_NONE, ADDRESS_SPACE_DATA, 3, 4, execute_load);
|
||||
debug_console_register_command(machine, "loadi", CMDFLAG_NONE, ADDRESS_SPACE_IO, 3, 4, execute_load);
|
||||
|
||||
|
||||
debug_console_register_command(machine, "dump", CMDFLAG_NONE, ADDRESS_SPACE_PROGRAM, 3, 6, execute_dump);
|
||||
debug_console_register_command(machine, "dumpd", CMDFLAG_NONE, ADDRESS_SPACE_DATA, 3, 6, execute_dump);
|
||||
debug_console_register_command(machine, "dumpi", CMDFLAG_NONE, ADDRESS_SPACE_IO, 3, 6, execute_dump);
|
||||
@ -1588,7 +1588,7 @@ static void execute_load(running_machine *machine, int ref, int params, const ch
|
||||
for (i = offset; i <= endoffset || endoffset == offset - 1 ; i++)
|
||||
{
|
||||
fread(&byte, 1, 1, f);
|
||||
/* check if end of file has been reached and stop loading if it has */
|
||||
/* check if end of file has been reached and stop loading if it has */
|
||||
if (feof(f))
|
||||
break;
|
||||
debug_write_byte(space, i, byte, TRUE);
|
||||
|
@ -357,7 +357,7 @@ private:
|
||||
|
||||
static const UINT32 DEBUG_FLAG_STEPPING_ANY = DEBUG_FLAG_STEPPING | DEBUG_FLAG_STEPPING_OVER | DEBUG_FLAG_STEPPING_OUT;
|
||||
static const UINT32 DEBUG_FLAG_TRACING_ANY = DEBUG_FLAG_TRACING | DEBUG_FLAG_TRACING_OVER;
|
||||
static const UINT32 DEBUG_FLAG_TRANSIENT = DEBUG_FLAG_STEPPING_ANY | DEBUG_FLAG_STOP_PC |
|
||||
static const UINT32 DEBUG_FLAG_TRANSIENT = DEBUG_FLAG_STEPPING_ANY | DEBUG_FLAG_STOP_PC |
|
||||
DEBUG_FLAG_STOP_INTERRUPT | DEBUG_FLAG_STOP_EXCEPTION | DEBUG_FLAG_STOP_VBLANK | DEBUG_FLAG_STOP_TIME;
|
||||
};
|
||||
|
||||
|
@ -512,7 +512,7 @@ static const help_item static_help_list[] =
|
||||
"\n"
|
||||
"loadd harddriv.bin,3000,1000,3\n"
|
||||
" Loads data memory addresses 3000-3fff from CPU #3 from the binary file 'harddriv.bin'.\n"
|
||||
},
|
||||
},
|
||||
{
|
||||
"step",
|
||||
"\n"
|
||||
|
@ -430,7 +430,7 @@ public:
|
||||
void set_clock_scale(double clockscale);
|
||||
attotime clocks_to_attotime(UINT64 clocks) const;
|
||||
UINT64 attotime_to_clocks(attotime duration) const;
|
||||
|
||||
|
||||
// timer interfaces
|
||||
emu_timer *timer_alloc(device_timer_id id = 0, void *ptr = NULL);
|
||||
void timer_set(attotime duration, device_timer_id id = 0, int param = 0, void *ptr = NULL);
|
||||
|
@ -173,7 +173,7 @@ device_sound_interface::~device_sound_interface()
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// inputs - return the total number of inputs
|
||||
// inputs - return the total number of inputs
|
||||
// for the given device
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -189,7 +189,7 @@ int device_sound_interface::inputs() const
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// outputs - return the total number of outputs
|
||||
// outputs - return the total number of outputs
|
||||
// for the given device
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -206,14 +206,14 @@ int device_sound_interface::outputs() const
|
||||
|
||||
//-------------------------------------------------
|
||||
// input_to_stream_input - convert a device's
|
||||
// input index to a stream and the input index
|
||||
// input index to a stream and the input index
|
||||
// on that stream
|
||||
//-------------------------------------------------
|
||||
|
||||
sound_stream *device_sound_interface::input_to_stream_input(int inputnum, int &stream_inputnum)
|
||||
{
|
||||
assert(inputnum >= 0);
|
||||
|
||||
|
||||
// scan the list looking for streams owned by this device
|
||||
for (sound_stream *stream = m_device.machine->sound().first_stream(); stream != NULL; stream = stream->next())
|
||||
if (&stream->device() == &m_device)
|
||||
@ -225,7 +225,7 @@ sound_stream *device_sound_interface::input_to_stream_input(int inputnum, int &s
|
||||
}
|
||||
inputnum -= stream->input_count();
|
||||
}
|
||||
|
||||
|
||||
// not found
|
||||
return NULL;
|
||||
}
|
||||
@ -233,14 +233,14 @@ sound_stream *device_sound_interface::input_to_stream_input(int inputnum, int &s
|
||||
|
||||
//-------------------------------------------------
|
||||
// output_to_stream_output - convert a device's
|
||||
// output index to a stream and the output index
|
||||
// output index to a stream and the output index
|
||||
// on that stream
|
||||
//-------------------------------------------------
|
||||
|
||||
sound_stream *device_sound_interface::output_to_stream_output(int outputnum, int &stream_outputnum)
|
||||
{
|
||||
assert(outputnum >= 0);
|
||||
|
||||
|
||||
// scan the list looking for streams owned by this device
|
||||
for (sound_stream *stream = m_device.machine->sound().first_stream(); stream != NULL; stream = stream->next())
|
||||
if (&stream->device() == &device())
|
||||
@ -252,7 +252,7 @@ sound_stream *device_sound_interface::output_to_stream_output(int outputnum, int
|
||||
}
|
||||
outputnum -= stream->output_count();
|
||||
}
|
||||
|
||||
|
||||
// not found
|
||||
return NULL;
|
||||
}
|
||||
@ -260,7 +260,7 @@ sound_stream *device_sound_interface::output_to_stream_output(int outputnum, int
|
||||
|
||||
//-------------------------------------------------
|
||||
// set_output_gain - set the gain on the given
|
||||
// output index of the device
|
||||
// output index of the device
|
||||
//-------------------------------------------------
|
||||
|
||||
void device_sound_interface::set_output_gain(int outputnum, float gain)
|
||||
@ -273,7 +273,7 @@ void device_sound_interface::set_output_gain(int outputnum, float gain)
|
||||
for (int outputnum = 0; outputnum < stream->output_count(); outputnum++)
|
||||
stream->set_output_gain(outputnum, gain);
|
||||
}
|
||||
|
||||
|
||||
// look up the stream and stream output index
|
||||
else
|
||||
{
|
||||
@ -305,7 +305,7 @@ void device_sound_interface::interface_pre_start()
|
||||
throw device_missing_dependencies();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// now iterate through devices again and assign any auto-allocated inputs
|
||||
m_auto_allocated_inputs = 0;
|
||||
for (bool gotone = m_device.machine->m_devicelist.first(sound); gotone; gotone = sound->next(sound))
|
||||
@ -371,7 +371,7 @@ void device_sound_interface::interface_post_start()
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// interface_pre_reset - called prior to
|
||||
// interface_pre_reset - called prior to
|
||||
// resetting the device
|
||||
//-------------------------------------------------
|
||||
|
||||
|
@ -104,7 +104,7 @@ public:
|
||||
{
|
||||
public:
|
||||
sound_route(int output, int input, float gain, const char *target);
|
||||
|
||||
|
||||
const sound_route *next() const { return m_next; }
|
||||
|
||||
sound_route * m_next; // pointer to next route
|
||||
@ -161,7 +161,7 @@ protected:
|
||||
virtual void interface_pre_start();
|
||||
virtual void interface_post_start();
|
||||
virtual void interface_pre_reset();
|
||||
|
||||
|
||||
// internal state
|
||||
const device_config_sound_interface &m_sound_config;
|
||||
|
||||
|
@ -133,7 +133,7 @@ public:
|
||||
m_tail = tail;
|
||||
m_count += count;
|
||||
}
|
||||
|
||||
|
||||
// insert the given object after a particular object (NULL means prepend)
|
||||
T &insert_after(T &object, T *insert_after)
|
||||
{
|
||||
@ -271,13 +271,13 @@ public:
|
||||
// reclaim an item by adding it to the free list
|
||||
void reclaim(T *item) { if (item != NULL) m_freelist.append(*item); }
|
||||
void reclaim(T &item) { m_freelist.append(item); }
|
||||
|
||||
|
||||
// reclaim all items from a list
|
||||
void reclaim_all(simple_list<T> &list) { m_freelist.append_list(list); }
|
||||
|
||||
private:
|
||||
// internal state
|
||||
simple_list<T> m_freelist; // list of free objects
|
||||
simple_list<T> m_freelist; // list of free objects
|
||||
};
|
||||
|
||||
|
||||
@ -373,7 +373,7 @@ public:
|
||||
private:
|
||||
// internal state
|
||||
simple_list<T> m_list;
|
||||
tagmap_t<T *> m_map;
|
||||
tagmap_t<T *> m_map;
|
||||
};
|
||||
|
||||
|
||||
|
@ -151,7 +151,7 @@ static DEVICE_IMAGE_LOAD( snapquick )
|
||||
token->load = (snapquick_load_func) reinterpret_cast<snapquick_load_func>(image.get_device_specific_call());
|
||||
|
||||
/* adjust the timer */
|
||||
|
||||
|
||||
token->timer->adjust(
|
||||
attotime(config->delay_seconds, config->delay_attoseconds),
|
||||
0);
|
||||
|
@ -268,7 +268,7 @@ void running_machine::start()
|
||||
m_render = auto_alloc(this, render_manager(*this));
|
||||
generic_machine_init(this);
|
||||
generic_sound_init(this);
|
||||
|
||||
|
||||
// allocate a soft_reset timer
|
||||
m_soft_reset_timer = m_scheduler.timer_alloc(MSTUB(timer_expired, running_machine, soft_reset), this);
|
||||
|
||||
|
@ -419,26 +419,26 @@ static TIMER_CALLBACK( tx_timer_callback )
|
||||
if ((duart68681->duart_config->tx_callback) && ((duart68681->channel[ch].MR2&0xC0) != 0x80))
|
||||
duart68681->duart_config->tx_callback(device, ch, duart68681->channel[ch].tx_data);
|
||||
|
||||
// if local loopback is on, write the transmitted data as if a byte had been received
|
||||
if ((duart68681->channel[ch].MR2 & 0xC0) == 0x80)
|
||||
{
|
||||
if (duart68681->channel[ch].rx_fifo_num >= RX_FIFO_SIZE)
|
||||
{
|
||||
LOG(( "68681: FIFO overflow\n" ));
|
||||
duart68681->channel[ch].SR |= STATUS_OVERRUN_ERROR;
|
||||
}
|
||||
else
|
||||
{
|
||||
duart68681->channel[ch].rx_fifo[duart68681->channel[ch].rx_fifo_write_ptr++]
|
||||
= duart68681->channel[ch].tx_data;
|
||||
if (duart68681->channel[ch].rx_fifo_write_ptr == RX_FIFO_SIZE)
|
||||
{
|
||||
duart68681->channel[ch].rx_fifo_write_ptr = 0;
|
||||
}
|
||||
duart68681->channel[ch].rx_fifo_num++;
|
||||
}
|
||||
}
|
||||
|
||||
// if local loopback is on, write the transmitted data as if a byte had been received
|
||||
if ((duart68681->channel[ch].MR2 & 0xC0) == 0x80)
|
||||
{
|
||||
if (duart68681->channel[ch].rx_fifo_num >= RX_FIFO_SIZE)
|
||||
{
|
||||
LOG(( "68681: FIFO overflow\n" ));
|
||||
duart68681->channel[ch].SR |= STATUS_OVERRUN_ERROR;
|
||||
}
|
||||
else
|
||||
{
|
||||
duart68681->channel[ch].rx_fifo[duart68681->channel[ch].rx_fifo_write_ptr++]
|
||||
= duart68681->channel[ch].tx_data;
|
||||
if (duart68681->channel[ch].rx_fifo_write_ptr == RX_FIFO_SIZE)
|
||||
{
|
||||
duart68681->channel[ch].rx_fifo_write_ptr = 0;
|
||||
}
|
||||
duart68681->channel[ch].rx_fifo_num++;
|
||||
}
|
||||
}
|
||||
|
||||
duart68681->channel[ch].tx_ready = 1;
|
||||
duart68681->channel[ch].SR |= STATUS_TRANSMITTER_READY;
|
||||
|
||||
|
@ -48,7 +48,7 @@
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// MACROS / CONSTANTS
|
||||
// MACROS / CONSTANTS
|
||||
//**************************************************************************
|
||||
|
||||
#define LOG 0
|
||||
@ -292,7 +292,7 @@ void mc68901_device_config::device_config_complete()
|
||||
// or initialize to defaults if none provided
|
||||
else
|
||||
{
|
||||
// memset(&in_pa_func, 0, sizeof(in_pa_func));
|
||||
// memset(&in_pa_func, 0, sizeof(in_pa_func));
|
||||
}
|
||||
}
|
||||
|
||||
@ -911,7 +911,7 @@ READ8_MEMBER( mc68901_device::read )
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
case REGISTER_GPIP:
|
||||
case REGISTER_GPIP:
|
||||
m_gpip = devcb_call_read8(&m_in_gpio_func, 0);
|
||||
return m_gpip;
|
||||
|
||||
|
@ -44,7 +44,7 @@
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// MACROS / CONSTANTS
|
||||
// MACROS / CONSTANTS
|
||||
//**************************************************************************
|
||||
|
||||
|
||||
@ -64,7 +64,7 @@
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// ======================> mc68901_interface
|
||||
@ -244,7 +244,7 @@ private:
|
||||
emu_timer *m_timer[4]; /* counter timers */
|
||||
emu_timer *m_rx_timer; /* receive timer */
|
||||
emu_timer *m_tx_timer; /* transmit timer */
|
||||
|
||||
|
||||
const mc68901_device_config &m_config;
|
||||
};
|
||||
|
||||
|
@ -119,7 +119,7 @@ emu_timer &emu_timer::init(running_machine &machine, timer_expired_func callback
|
||||
// if we're not temporary, register ourselves with the save state system
|
||||
if (!m_temporary)
|
||||
register_save();
|
||||
|
||||
|
||||
// insert into the list
|
||||
machine.scheduler().timer_list_insert(*this);
|
||||
return *this;
|
||||
@ -152,7 +152,7 @@ emu_timer &emu_timer::init(device_t &device, device_timer_id id, void *ptr, bool
|
||||
// if we're not temporary, register ourselves with the save state system
|
||||
if (!m_temporary)
|
||||
register_save();
|
||||
|
||||
|
||||
// insert into the list
|
||||
machine().scheduler().timer_list_insert(*this);
|
||||
return *this;
|
||||
@ -194,8 +194,8 @@ bool emu_timer::enable(bool enable)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// adjust - adjust the time when this timer will
|
||||
// fire and specify a period for subsequent
|
||||
// adjust - adjust the time when this timer will
|
||||
// fire and specify a period for subsequent
|
||||
// firings
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -241,13 +241,13 @@ attotime emu_timer::elapsed() const
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// remaining - return the amount of time
|
||||
// remaining - return the amount of time
|
||||
// remaining until the timer expires
|
||||
//-------------------------------------------------
|
||||
|
||||
attotime emu_timer::remaining() const
|
||||
attotime emu_timer::remaining() const
|
||||
{
|
||||
return m_expire - machine().time();
|
||||
return m_expire - machine().time();
|
||||
}
|
||||
|
||||
|
||||
@ -261,7 +261,7 @@ void emu_timer::register_save()
|
||||
// determine our instance number and name
|
||||
int index = 0;
|
||||
astring name;
|
||||
|
||||
|
||||
// for non-device timers, it is an index based on the callback function name
|
||||
if (m_device == NULL)
|
||||
{
|
||||
@ -270,7 +270,7 @@ void emu_timer::register_save()
|
||||
if (!curtimer->m_temporary && curtimer->m_device == NULL && strcmp(curtimer->m_func, m_func) == 0)
|
||||
index++;
|
||||
}
|
||||
|
||||
|
||||
// for device timers, it is an index based on the device and timer ID
|
||||
else
|
||||
{
|
||||
@ -500,7 +500,7 @@ void device_scheduler::timeslice()
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// abort_timeslice - abort execution for the
|
||||
// abort_timeslice - abort execution for the
|
||||
// current timeslice
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -617,7 +617,7 @@ void device_scheduler::eat_all_cycles()
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// timed_trigger - generate a trigger after a
|
||||
// timed_trigger - generate a trigger after a
|
||||
// given amount of time
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -832,7 +832,7 @@ emu_timer &device_scheduler::timer_list_remove(emu_timer &timer)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// execute_timers - execute timers and update
|
||||
// execute_timers - execute timers and update
|
||||
// scheduling quanta
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -890,15 +890,15 @@ void device_scheduler::execute_timers()
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// add_scheduling_quantum - add a scheduling
|
||||
// quantum; the smallest active one is the one
|
||||
// add_scheduling_quantum - add a scheduling
|
||||
// quantum; the smallest active one is the one
|
||||
// that is in use
|
||||
//-------------------------------------------------
|
||||
|
||||
void device_scheduler::add_scheduling_quantum(attotime quantum, attotime duration)
|
||||
{
|
||||
assert(quantum.seconds == 0);
|
||||
|
||||
|
||||
attotime curtime = time();
|
||||
attotime expire = curtime + duration;
|
||||
|
||||
@ -911,16 +911,16 @@ void device_scheduler::add_scheduling_quantum(attotime quantum, attotime duratio
|
||||
next = quant->next();
|
||||
if (curtime >= quant->m_expire)
|
||||
m_quantum_allocator.reclaim(m_quantum_list.detach(*quant));
|
||||
|
||||
|
||||
// if this quantum is shorter than us, we need to be inserted afterwards
|
||||
else if (quant->m_requested <= quantum.attoseconds)
|
||||
insert_after = quant;
|
||||
}
|
||||
|
||||
|
||||
// if we found an exact match, just take the maximum expiry time
|
||||
if (insert_after != NULL && insert_after->m_requested == quantum.attoseconds)
|
||||
insert_after->m_expire = max(insert_after->m_expire, expire);
|
||||
|
||||
|
||||
// otherwise, allocate a new quantum and insert it after the one we picked
|
||||
else
|
||||
{
|
||||
@ -974,4 +974,4 @@ void timer_print_first_timer(running_machine *machine)
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
@ -167,7 +167,7 @@ public:
|
||||
void abort_timeslice();
|
||||
void trigger(int trigid, attotime after = attotime::zero);
|
||||
void boost_interleave(attotime timeslice_time, attotime boost_duration);
|
||||
|
||||
|
||||
// timers, specified by callback/name
|
||||
emu_timer *timer_alloc(timer_expired_func callback, const char *name, void *ptr = NULL);
|
||||
void timer_set(attotime duration, timer_expired_func callback, const char *name, int param = 0, void *ptr = NULL);
|
||||
@ -185,12 +185,12 @@ private:
|
||||
// callbacks
|
||||
void timed_trigger(running_machine &machine, INT32 param);
|
||||
void postload();
|
||||
|
||||
|
||||
// scheduling helpers
|
||||
void compute_perfect_interleave();
|
||||
void rebuild_execute_list();
|
||||
void add_scheduling_quantum(attotime quantum, attotime duration);
|
||||
|
||||
|
||||
// timer helpers
|
||||
emu_timer &timer_list_insert(emu_timer &timer);
|
||||
emu_timer &timer_list_remove(emu_timer &timer);
|
||||
@ -208,7 +208,7 @@ private:
|
||||
|
||||
// other internal states
|
||||
emu_timer * m_callback_timer; // pointer to the current callback timer
|
||||
bool m_callback_timer_modified; // true if the current callback timer was modified
|
||||
bool m_callback_timer_modified; // true if the current callback timer was modified
|
||||
attotime m_callback_timer_expire_time; // the original expiration time
|
||||
|
||||
// scheduling quanta
|
||||
@ -218,13 +218,13 @@ private:
|
||||
|
||||
public:
|
||||
quantum_slot *next() const { return m_next; }
|
||||
|
||||
|
||||
quantum_slot * m_next;
|
||||
attoseconds_t m_actual; // actual duration of the quantum
|
||||
attoseconds_t m_requested; // duration of the requested quantum
|
||||
attotime m_expire; // absolute expiration time of this quantum
|
||||
};
|
||||
simple_list<quantum_slot> m_quantum_list; // list of active quanta
|
||||
simple_list<quantum_slot> m_quantum_list; // list of active quanta
|
||||
fixed_allocator<quantum_slot> m_quantum_allocator; // allocator for quanta
|
||||
attoseconds_t m_quantum_minimum; // duration of minimum quantum
|
||||
};
|
||||
|
@ -103,7 +103,7 @@ sound_stream::sound_stream(device_t &device, int inputs, int outputs, int sample
|
||||
device_sound_interface *sound;
|
||||
if (!device.interface(sound))
|
||||
throw emu_fatalerror("Attempted to create a sound_stream with a non-sound device");
|
||||
|
||||
|
||||
// this is also the implicit parameter if we are using our internal stub
|
||||
if (m_callback == &sound_stream::device_stream_update_stub)
|
||||
m_param = sound;
|
||||
@ -133,7 +133,7 @@ sound_stream::sound_stream(device_t &device, int inputs, int outputs, int sample
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// sample_time - return the emulation time of the
|
||||
// sample_time - return the emulation time of the
|
||||
// next sample to be generated on the stream
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -156,7 +156,7 @@ float sound_stream::input_gain(int inputnum) const
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// initial_input_gain - return the original input
|
||||
// initial_input_gain - return the original input
|
||||
// gain on a given stream's input
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -177,14 +177,14 @@ const char *sound_stream::input_name(int inputnum, astring &string) const
|
||||
// start with our device name and tag
|
||||
assert(inputnum >= 0 && inputnum < m_inputs);
|
||||
string.printf("%s '%s': ", m_device.name(), m_device.tag());
|
||||
|
||||
|
||||
// if we have a source, indicate where the sound comes from by device name and tag
|
||||
if (m_input[inputnum].m_source != NULL && m_input[inputnum].m_source->m_stream != NULL)
|
||||
{
|
||||
device_t &source = m_input[inputnum].m_source->m_stream->device();
|
||||
string.catprintf("%s '%s'", source.name(), source.tag());
|
||||
|
||||
// get the sound interface; if there is more than 1 output we need to figure out which one
|
||||
// get the sound interface; if there is more than 1 output we need to figure out which one
|
||||
device_sound_interface *sound;
|
||||
if (source.interface(sound) && sound->outputs() > 1)
|
||||
{
|
||||
@ -205,7 +205,7 @@ const char *sound_stream::input_name(int inputnum, astring &string) const
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// output_gain - return the output gain on a
|
||||
// output_gain - return the output gain on a
|
||||
// given stream's output
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -289,8 +289,8 @@ void sound_stream::update()
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// output_since_last_update - return a pointer to
|
||||
// the output buffer and the number of samples
|
||||
// output_since_last_update - return a pointer to
|
||||
// the output buffer and the number of samples
|
||||
// since the last global update
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -306,7 +306,7 @@ const stream_sample_t *sound_stream::output_since_last_update(int outputnum, int
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// set_sample_rate - set the sample rate on a
|
||||
// set_sample_rate - set the sample rate on a
|
||||
// given stream
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -332,7 +332,7 @@ void sound_stream::set_input_gain(int inputnum, float gain)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// set_output_gain - set the output gain on a
|
||||
// set_output_gain - set the output gain on a
|
||||
// given stream's output
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -398,7 +398,7 @@ void sound_stream::apply_sample_rate_changes()
|
||||
// skip if nothing to do
|
||||
if (m_new_sample_rate == 0)
|
||||
return;
|
||||
|
||||
|
||||
// update to the new rate and remember the old rate
|
||||
UINT32 old_rate = m_sample_rate;
|
||||
m_sample_rate = m_new_sample_rate;
|
||||
@ -854,8 +854,8 @@ void sound_manager::set_attenuation(int attenuation)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// indexed_speaker_input - return the speaker
|
||||
// device and input index of the global speaker
|
||||
// indexed_speaker_input - return the speaker
|
||||
// device and input index of the global speaker
|
||||
// input
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -872,7 +872,7 @@ bool sound_manager::indexed_speaker_input(int index, speaker_input &info) const
|
||||
}
|
||||
index -= info.speaker->inputs();
|
||||
}
|
||||
|
||||
|
||||
// didn't locate
|
||||
return false;
|
||||
}
|
||||
@ -991,7 +991,7 @@ void sound_manager::config_save(running_machine *machine, int config_type, xml_d
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// update - mix everything down to its final form
|
||||
// update - mix everything down to its final form
|
||||
// and send it to the OSD layer
|
||||
//-------------------------------------------------
|
||||
|
||||
|
@ -79,7 +79,7 @@ class sound_stream
|
||||
{
|
||||
friend class simple_list<sound_stream>;
|
||||
friend class sound_manager;
|
||||
|
||||
|
||||
typedef void (*stream_update_func)(device_t *device, sound_stream *stream, void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
|
||||
|
||||
// stream output class
|
||||
@ -88,7 +88,7 @@ class sound_stream
|
||||
public:
|
||||
// construction/destruction
|
||||
stream_output();
|
||||
|
||||
|
||||
// internal state
|
||||
sound_stream * m_stream; // owning stream
|
||||
stream_sample_t * m_buffer; // output buffer
|
||||
@ -102,7 +102,7 @@ class sound_stream
|
||||
public:
|
||||
// construction/destruction
|
||||
stream_input();
|
||||
|
||||
|
||||
// internal state
|
||||
stream_output * m_source; // pointer to the sound_output for this source
|
||||
stream_sample_t * m_resample; // buffer for resampling to the stream's sample rate
|
||||
@ -117,7 +117,7 @@ class sound_stream
|
||||
static const int OUTPUT_BUFFER_UPDATES = 5;
|
||||
static const UINT32 FRAC_BITS = 22;
|
||||
static const UINT32 FRAC_ONE = 1 << FRAC_BITS;
|
||||
static const UINT32 FRAC_MASK = FRAC_ONE - 1;
|
||||
static const UINT32 FRAC_MASK = FRAC_ONE - 1;
|
||||
|
||||
// construction/destruction
|
||||
sound_stream(device_t &device, int inputs, int outputs, int sample_rate, void *param = NULL, stream_update_func callback = &sound_stream::device_stream_update_stub);
|
||||
@ -145,7 +145,7 @@ public:
|
||||
void set_sample_rate(int sample_rate);
|
||||
void set_input_gain(int inputnum, float gain);
|
||||
void set_output_gain(int outputnum, float gain);
|
||||
|
||||
|
||||
private:
|
||||
// helpers called by our friends only
|
||||
void update_with_accounting(bool second_tick);
|
||||
@ -218,26 +218,26 @@ public:
|
||||
// construction/destruction
|
||||
sound_manager(running_machine &machine);
|
||||
~sound_manager();
|
||||
|
||||
|
||||
// getters
|
||||
int attenuation() const { return m_attenuation; }
|
||||
sound_stream *first_stream() const { return m_stream_list.first(); }
|
||||
attotime last_update() const { return m_last_update; }
|
||||
attoseconds_t update_attoseconds() const { return m_update_attoseconds; }
|
||||
|
||||
|
||||
// stream creation
|
||||
sound_stream *stream_alloc(device_t &device, int inputs, int outputs, int sample_rate, void *param = NULL, sound_stream::stream_update_func callback = NULL);
|
||||
|
||||
|
||||
// global controls
|
||||
void set_attenuation(int attenuation);
|
||||
void ui_mute(bool turn_off = true) { mute(turn_off, MUTE_REASON_UI); }
|
||||
void debugger_mute(bool turn_off = true) { mute(turn_off, MUTE_REASON_DEBUGGER); }
|
||||
void system_mute(bool turn_off = true) { mute(turn_off, MUTE_REASON_SYSTEM); }
|
||||
void system_enable(bool turn_on = true) { mute(!turn_on, MUTE_REASON_SYSTEM); }
|
||||
|
||||
|
||||
// user gain controls
|
||||
bool indexed_speaker_input(int index, speaker_input &info) const;
|
||||
|
||||
|
||||
private:
|
||||
// internal helpers
|
||||
void mute(bool mute, UINT8 reason);
|
||||
@ -254,17 +254,17 @@ private:
|
||||
running_machine & m_machine; // reference to our machine
|
||||
emu_timer * m_update_timer; // timer to drive periodic updates
|
||||
|
||||
UINT32 m_finalmix_leftover;
|
||||
UINT32 m_finalmix_leftover;
|
||||
INT16 * m_finalmix;
|
||||
INT32 * m_leftmix;
|
||||
INT32 * m_rightmix;
|
||||
|
||||
UINT8 m_muted;
|
||||
UINT8 m_muted;
|
||||
int m_attenuation;
|
||||
int m_nosound_mode;
|
||||
|
||||
wav_file * m_wavfile;
|
||||
|
||||
|
||||
// streams data
|
||||
simple_list<sound_stream> m_stream_list; // list of streams
|
||||
attoseconds_t m_update_attoseconds; // attoseconds between global updates
|
||||
|
@ -280,7 +280,7 @@ void bsmt2000_device::device_timer(emu_timer &timer, device_timer_id id, int par
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// sound_stream_update - handle update requests
|
||||
// sound_stream_update - handle update requests
|
||||
// for our sound stream
|
||||
//-------------------------------------------------
|
||||
|
||||
|
@ -113,7 +113,7 @@ state_manager::state_manager(running_machine &machine)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// allow_registration - allow/disallow
|
||||
// allow_registration - allow/disallow
|
||||
// registrations to happen
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -127,7 +127,7 @@ void state_manager::allow_registration(bool allowed)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// indexed_item - return an item with the given
|
||||
// indexed_item - return an item with the given
|
||||
// index
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -136,17 +136,17 @@ const char *state_manager::indexed_item(int index, void *&base, UINT32 &valsize,
|
||||
state_entry *entry = m_entry_list.find(index);
|
||||
if (entry == NULL)
|
||||
return NULL;
|
||||
|
||||
|
||||
base = entry->m_data;
|
||||
valsize = entry->m_typesize;
|
||||
valcount = entry->m_typecount;
|
||||
|
||||
|
||||
return entry->m_name;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// register_presave - register a pre-save
|
||||
// register_presave - register a pre-save
|
||||
// function callback
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -227,13 +227,13 @@ void state_manager::save_memory(const char *module, const char *tag, UINT32 inde
|
||||
fatalerror("Duplicate save state registration entry (%s)", totalname.cstr());
|
||||
}
|
||||
|
||||
// insert us into the list
|
||||
// insert us into the list
|
||||
m_entry_list.insert_after(*auto_alloc(&m_machine, state_entry(val, totalname, valsize, valcount)), insert_after);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// check_file - check if a file is a valid save
|
||||
// check_file - check if a file is a valid save
|
||||
// state
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -372,7 +372,7 @@ UINT32 state_manager::signature() const
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// dump_registry - dump the registry to the
|
||||
// dump_registry - dump the registry to the
|
||||
// logfile
|
||||
//-------------------------------------------------
|
||||
|
||||
|
@ -141,7 +141,7 @@ public:
|
||||
// getters
|
||||
int registration_count() const { return m_entry_list.count(); }
|
||||
bool registration_allowed() const { return m_reg_allowed; }
|
||||
|
||||
|
||||
// registration control
|
||||
void allow_registration(bool allowed = true);
|
||||
const char *indexed_item(int index, void *&base, UINT32 &valsize, UINT32 &valcount) const;
|
||||
@ -152,7 +152,7 @@ public:
|
||||
|
||||
// generic memory registration
|
||||
void save_memory(const char *module, const char *tag, UINT32 index, const char *name, void *val, UINT32 valsize, UINT32 valcount = 1);
|
||||
|
||||
|
||||
// templatized wrapper for general objects
|
||||
template<typename T>
|
||||
void save_item(const char *module, const char *tag, int index, T &value, const char *valname)
|
||||
@ -161,7 +161,7 @@ public:
|
||||
if (!type_checker<T>::is_atom) throw emu_fatalerror("Called save_item on a non-fundamental type!");
|
||||
save_memory(module, tag, index, valname, &value, sizeof(value));
|
||||
}
|
||||
|
||||
|
||||
// templatized wrapper for 1-dimensional arrays
|
||||
template<typename T, std::size_t N>
|
||||
void save_item(const char *module, const char *tag, int index, T (&value)[N], const char *valname)
|
||||
@ -169,7 +169,7 @@ public:
|
||||
if (!type_checker<T>::is_atom) throw emu_fatalerror("Called save_item on a non-fundamental type!");
|
||||
save_memory(module, tag, index, valname, &value[0], sizeof(value[0]), N);
|
||||
}
|
||||
|
||||
|
||||
// templatized wrapper for 2-dimensional arrays
|
||||
template<typename T, std::size_t M, std::size_t N>
|
||||
void save_item(const char *module, const char *tag, int index, T (&value)[M][N], const char *valname)
|
||||
@ -177,7 +177,7 @@ public:
|
||||
if (!type_checker<T>::is_atom) throw emu_fatalerror("Called save_item on a non-fundamental type!");
|
||||
save_memory(module, tag, index, valname, &value[0][0], sizeof(value[0][0]), M * N);
|
||||
}
|
||||
|
||||
|
||||
// templatized wrapper for pointers
|
||||
template<typename T>
|
||||
void save_pointer(const char *module, const char *tag, int index, T *value, const char *valname, UINT32 count)
|
||||
@ -185,18 +185,18 @@ public:
|
||||
if (!type_checker<T>::is_atom) throw emu_fatalerror("Called save_item on a non-fundamental type!");
|
||||
save_memory(module, tag, index, valname, value, sizeof(*value), count);
|
||||
}
|
||||
|
||||
|
||||
// global memory registration
|
||||
template<typename T>
|
||||
void save_item(T &value, const char *valname, int index = 0) { save_item("global", NULL, index, value, valname); }
|
||||
template<typename T>
|
||||
void save_pointer(T *value, const char *valname, UINT32 count, int index = 0) { save_pointer("global", NULL, index, value, valname, count); }
|
||||
|
||||
|
||||
// file processing
|
||||
static state_save_error check_file(running_machine *machine, mame_file *file, const char *gamename, void (CLIB_DECL *errormsg)(const char *fmt, ...));
|
||||
state_save_error write_file(mame_file *file);
|
||||
state_save_error read_file(mame_file *file);
|
||||
|
||||
|
||||
private:
|
||||
// internal helpers
|
||||
UINT32 signature() const;
|
||||
@ -211,7 +211,7 @@ private:
|
||||
state_callback(prepost_func callback, void *param);
|
||||
|
||||
// getters
|
||||
state_callback *next() const { return m_next; }
|
||||
state_callback *next() const { return m_next; }
|
||||
|
||||
// state
|
||||
state_callback * m_next; // pointer to next entry
|
||||
@ -226,8 +226,8 @@ private:
|
||||
state_entry(void *data, const char *name, UINT8 size, UINT32 count);
|
||||
|
||||
// getters
|
||||
state_entry *next() const { return m_next; }
|
||||
|
||||
state_entry *next() const { return m_next; }
|
||||
|
||||
// helpers
|
||||
void flip_data();
|
||||
|
||||
|
@ -108,7 +108,7 @@ typedef void (*timer_device_fired_func)(timer_device &timer, void *ptr, INT32 pa
|
||||
class timer_device_config : public device_config
|
||||
{
|
||||
friend class timer_device;
|
||||
|
||||
|
||||
// construction/destruction
|
||||
timer_device_config(const machine_config &mconfig, const char *tag, const device_config *owner, UINT32 clock);
|
||||
|
||||
|
@ -6,20 +6,20 @@
|
||||
|
||||
/*
|
||||
|
||||
Model Video Hz
|
||||
Model Video Hz
|
||||
|
||||
TMS9918 NTSC 60
|
||||
TMS9918A NTSC 60
|
||||
TMS9118 NTSC 60
|
||||
V9938
|
||||
V9958
|
||||
V9990
|
||||
TMS9918 NTSC 60
|
||||
TMS9918A NTSC 60
|
||||
TMS9118 NTSC 60
|
||||
V9938
|
||||
V9958
|
||||
V9990
|
||||
|
||||
TMS9928A YPbPr 60
|
||||
TMS9128 YPbPr 60
|
||||
TMS9928A YPbPr 60
|
||||
TMS9128 YPbPr 60
|
||||
|
||||
TMS9929A YPbPr 50
|
||||
TMS9129 YPbPr 50
|
||||
TMS9929A YPbPr 50
|
||||
TMS9129 YPbPr 50
|
||||
|
||||
*/
|
||||
|
||||
|
@ -215,8 +215,8 @@ INLINE int sh6840_update_noise(beezer_sound_state *state, int clocks)
|
||||
{
|
||||
state->sh6840_LFSR_clocks = 0;
|
||||
/* shift the LFSR. finally or in the result and see if we've
|
||||
* had a 0->1 transition */
|
||||
newxor = (((state->sh6840_LFSR&0x10000)?1:0) ^ ((state->sh6840_LFSR&0x2000)?1:0))?1:0;
|
||||
* had a 0->1 transition */
|
||||
newxor = (((state->sh6840_LFSR&0x10000)?1:0) ^ ((state->sh6840_LFSR&0x2000)?1:0))?1:0;
|
||||
state->sh6840_LFSR <<= 1;
|
||||
state->sh6840_LFSR |= newxor;
|
||||
/*printf("LFSR: %4x, %4x, %4x, %4x\n", sh6840_LFSR_3, sh6840_LFSR_2, sh6840_LFSR_1, sh6840_LFSR_0);*/
|
||||
@ -351,11 +351,11 @@ static STREAM_UPDATE( beezer_stream_update )
|
||||
|
||||
/* stash */
|
||||
/* each sample feeds an xor bit on the sign bit of a sign-magnitude (NOT 2'S COMPLEMENT)
|
||||
* DAC. This requires some rather convoluted processing:
|
||||
* samplex*0x80 brings the sample to the sign bit
|
||||
* state->sh6840_volume[x]&0x80 pulls the sign bit from the dac sample
|
||||
* state->sh6840_volume[x]&0x7F pulls the magnitude from the dac sample
|
||||
*/
|
||||
* DAC. This requires some rather convoluted processing:
|
||||
* samplex*0x80 brings the sample to the sign bit
|
||||
* state->sh6840_volume[x]&0x80 pulls the sign bit from the dac sample
|
||||
* state->sh6840_volume[x]&0x7F pulls the magnitude from the dac sample
|
||||
*/
|
||||
sample += (((sample0*0x80)^(state->sh6840_volume[0]&0x80))?-1:1)*(state->sh6840_volume[0]&0x7F);
|
||||
sample += (((sample1*0x80)^(state->sh6840_volume[1]&0x80))?-1:1)*(state->sh6840_volume[1]&0x7F);
|
||||
sample += (((sample2*0x80)^(state->sh6840_volume[2]&0x80))?-1:1)*(state->sh6840_volume[2]&0x7F);
|
||||
|
@ -382,7 +382,7 @@ ROM_START( cdimono1 )
|
||||
ROM_LOAD( "cdic.bin", 0x0000, 0x2000, NO_DUMP ) // Undumped 68HC05 microcontroller, might need decapping
|
||||
|
||||
ROM_REGION(0x2000, "slave", 0)
|
||||
ROM_LOAD( "slave.bin", 0x0000, 0x2000, NO_DUMP ) // Undumped 68HC05 microcontroller, might need decapping
|
||||
ROM_LOAD( "slave.bin", 0x0000, 0x2000, NO_DUMP ) // Undumped 68HC05 microcontroller, might need decapping
|
||||
ROM_END
|
||||
|
||||
|
||||
|
@ -2778,7 +2778,7 @@ MACHINE_CONFIG_END
|
||||
ROM_REGION( 0x200000, "simm4.7", 0 ) ROM_LOAD( "jojo-simm4.7", 0x00000, 0x200000, CRC(2511572a) SHA1(725adcf71bcee5c8bb839d2d1c5e3456b8c6886b) ) \
|
||||
ROM_REGION( 0x200000, "simm5.0", 0 ) ROM_LOAD( "jojo-simm5.0", 0x00000, 0x200000, CRC(797615fc) SHA1(29874be9f1da5515c90f5d601aa5924c263f8feb) ) \
|
||||
ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "jojo-simm5.1", 0x00000, 0x200000, CRC(734fd162) SHA1(16cdfac74d18a6c2216afb1ce6afbd7f15297c32) ) \
|
||||
|
||||
|
||||
#define JOJO_990108_CDROM \
|
||||
DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-jjk-160", 0, SHA1(0f5c09171409213e191a607ee89ca3a91fe9c96a) ) \
|
||||
|
||||
@ -2873,7 +2873,7 @@ MACHINE_CONFIG_END
|
||||
ROM_REGION( 0x200000, "simm4.7", 0 ) ROM_LOAD( "redearth-simm4.7", 0x00000, 0x200000, CRC(2449cf3b) SHA1(c60d8042136d74e547f668ad787cae529c42eed9) ) \
|
||||
ROM_REGION( 0x200000, "simm5.0", 0 ) ROM_LOAD( "redearth-simm5.0", 0x00000, 0x200000, CRC(424451b9) SHA1(250fb92254c9e7ff5bc8dbeea5872f8a771dc9bd) ) \
|
||||
ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "redearth-simm5.1", 0x00000, 0x200000, CRC(9b8cb56b) SHA1(2ff1081dc99bb7c2f1e036f4c112137c96b83d23) ) \
|
||||
|
||||
|
||||
#define REDEARTH_961121_CDROM \
|
||||
DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "wzd000", 0, SHA1(e5676752b08283dc4a98c3d7b759e8aa6dcd0679) ) \
|
||||
|
||||
@ -2902,7 +2902,7 @@ MACHINE_CONFIG_END
|
||||
ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "redearth-simm5.1", 0x00000, 0x200000, CRC(9b8cb56b) SHA1(2ff1081dc99bb7c2f1e036f4c112137c96b83d23) ) \
|
||||
|
||||
#define REDEARTH_961023_CDROM \
|
||||
DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-wzd-3", 0, SHA1(a6ff67093db6bc80ee5fc46e4300e0177b213a52) ) \
|
||||
DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-wzd-3", 0, SHA1(a6ff67093db6bc80ee5fc46e4300e0177b213a52) ) \
|
||||
|
||||
|
||||
/* CD sets - use CD BIOS roms */
|
||||
@ -2944,7 +2944,7 @@ ROM_END
|
||||
ROM_START( sfiii3 )
|
||||
ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
|
||||
ROM_LOAD( "sfiii3_usa.29f400.u2", 0x000000, 0x080000, CRC(ecc545c1) SHA1(e39083820aae914fd8b80c9765129bedb745ceba) )
|
||||
|
||||
|
||||
SFIII3_990608_FLASH
|
||||
SFIII3_990608_CDROM
|
||||
ROM_END
|
||||
|
@ -1,11 +1,11 @@
|
||||
/***************************************************************************
|
||||
|
||||
Dream Fruit skeleton driver
|
||||
Dream Fruit skeleton driver
|
||||
|
||||
Uses a TC0091LVC, a variant of the one used on Taito L HW
|
||||
Uses a TC0091LVC, a variant of the one used on Taito L HW
|
||||
|
||||
TODO:
|
||||
- somebody should port CPU core contents in a shared file;
|
||||
TODO:
|
||||
- somebody should port CPU core contents in a shared file;
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
@ -48,11 +48,11 @@ static WRITE8_HANDLER( dotrikun_color_w )
|
||||
{
|
||||
dotrikun_state *state = space->machine->driver_data<dotrikun_state>();
|
||||
/*
|
||||
x--- ---- screen color swap?
|
||||
---- -x-- B
|
||||
---- --x- G
|
||||
---- ---x R
|
||||
*/
|
||||
x--- ---- screen color swap?
|
||||
---- -x-- B
|
||||
---- --x- G
|
||||
---- ---x R
|
||||
*/
|
||||
|
||||
state->color = data;
|
||||
space->machine->primary_screen->update_partial(space->machine->primary_screen->vpos());
|
||||
|
@ -899,8 +899,8 @@ static INPUT_PORTS_START( kouyakyu )
|
||||
EQUITES_PLAYER_INPUT_MSB( IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3, IPT_START2 )
|
||||
|
||||
PORT_START("IN1")
|
||||
// PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||
// PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
// PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||
// PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0300, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||
#if EASY_TEST_MODE
|
||||
PORT_SERVICE( 0x0300, IP_ACTIVE_HIGH )
|
||||
|
@ -43,11 +43,11 @@ VRender 2Beta Rev4
|
||||
| |-------------------------------------------------| |
|
||||
|--------------------------------------------------------------------|
|
||||
Notes:
|
||||
Cyrix GXm233 - Main CPU; Cyrix GX Media running at 233MHz. Clock is generated by the Cyrix CX5520
|
||||
Cyrix GXm233 - Main CPU; Cyrix GX Media running at 233MHz. Clock is generated by the Cyrix CX5520
|
||||
and a 14.31818MHz xtal. That gives a 66.6MHz bus clock with a 3.5X multiplier for 233MHz
|
||||
Cyrix CX5220 - CPU-support chipset (BGA IC)
|
||||
FLASH.U29/30 - Intel Strata-Flash DA28F320J5 SSOP56 contained on a plug-in daughterboard; graphics ROMs
|
||||
FLASH.U3 - Intel Strata-Flash DA28F320J5 SSOP56 contained on a plug-in daughterboard; main program
|
||||
FLASH.U3 - Intel Strata-Flash DA28F320J5 SSOP56 contained on a plug-in daughterboard; main program
|
||||
KS0164 - Samsung Electronics KS0164 General Midi compliant 32-voice Wavetable Synthesizer chip
|
||||
with built-in 16bit CPU and MPU-401 compatibility (QFP100)
|
||||
512K-EPR - 512k EPROM, boot-loader program. EPROM is tied to the KS0164 and the XCS05
|
||||
|
@ -187,7 +187,7 @@ static void initialize_colors( running_machine *machine )
|
||||
static VIDEO_START( imolagp )
|
||||
{
|
||||
imolagp_state *state = machine->driver_data<imolagp_state>();
|
||||
|
||||
|
||||
memset(state->videoram, 0, sizeof(state->videoram));
|
||||
state->save_item(NAME(state->videoram));
|
||||
|
||||
|
@ -1194,13 +1194,13 @@ ROM_START( evilngt )
|
||||
ROM_LOAD16_WORD( "636a01.8q", 0x000000, 0x200000, CRC(7b1dc738) SHA1(32ae8e7ddd38fcc70b4410275a2cc5e9a0d7d33b) )
|
||||
|
||||
ROM_REGION( 0x2000, "timekeep", 0 ) /* timekeeper SRAM */
|
||||
ROM_LOAD( "m48t58y.9n", 0x000000, 0x002000, CRC(e887ca1f) SHA1(54205f01b1ceba1d5f4d979fc30be1add8116e90) )
|
||||
ROM_LOAD( "m48t58y.9n", 0x000000, 0x002000, CRC(e887ca1f) SHA1(54205f01b1ceba1d5f4d979fc30be1add8116e90) )
|
||||
|
||||
ROM_REGION( 0x400000, "ymz", 0 ) /* YMZ280B sound rom on sub board */
|
||||
ROM_LOAD( "810a03.16h", 0x000000, 0x400000, CRC(4cd79d98) SHA1(12fea41cfc5c1b883ffbeda7e428dd1d1bf54d7f) )
|
||||
|
||||
ROM_REGION( 0x80, "eeprom", 0 ) /* EEPROM default contents */
|
||||
ROM_LOAD( "93c46.7k", 0x000000, 0x000080, CRC(d7ba2e5e) SHA1(d729557555c6fc1cd433b14017952cc63ec73573) )
|
||||
ROM_LOAD( "93c46.7k", 0x000000, 0x000080, CRC(d7ba2e5e) SHA1(d729557555c6fc1cd433b14017952cc63ec73573) )
|
||||
|
||||
DISK_REGION( "cdrom" )
|
||||
DISK_IMAGE( "810uba02", 0, SHA1(ca3b957e3e33435391fbf630f9ed89aa08a70c8f) )
|
||||
|
@ -446,7 +446,7 @@ public:
|
||||
|
||||
int hyperbbc_lamp_strobe1;
|
||||
int hyperbbc_lamp_strobe2;
|
||||
|
||||
|
||||
/* memory */
|
||||
UINT8 atapi_regs[ATAPI_REG_MAX];
|
||||
UINT8 atapi_data[ATAPI_DATA_SIZE];
|
||||
@ -2228,7 +2228,7 @@ static READ32_HANDLER( gx894pwbba_r )
|
||||
// wants & c000 = 8000 (just after program upload?)
|
||||
// write 0000 to +f4.w
|
||||
// write 8000 to +f6.w
|
||||
|
||||
|
||||
/* fails if !8000 */
|
||||
/* fails if 4000 */
|
||||
/* fails if !2000 */
|
||||
|
@ -1,11 +1,11 @@
|
||||
/***************************************************************************
|
||||
|
||||
Last Bank skeleton driver
|
||||
Last Bank skeleton driver
|
||||
|
||||
Uses a TC0091LVC, a variant of the one used on Taito L HW
|
||||
Uses a TC0091LVC, a variant of the one used on Taito L HW
|
||||
|
||||
TODO:
|
||||
- somebody should port CPU core contents in a shared file;
|
||||
TODO:
|
||||
- somebody should port CPU core contents in a shared file;
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
@ -112,7 +112,7 @@ static MACHINE_CONFIG_START( lastbank, lastbank_state )
|
||||
MCFG_CPU_PROGRAM_MAP(lastbank_map)
|
||||
MCFG_CPU_IO_MAP(lastbank_io)
|
||||
|
||||
// MCFG_CPU_ADD("audiocpu",Z80,MASTER_CLOCK/4)
|
||||
// MCFG_CPU_ADD("audiocpu",Z80,MASTER_CLOCK/4)
|
||||
|
||||
//MCFG_MACHINE_START(lastbank)
|
||||
//MCFG_MACHINE_RESET(lastbank)
|
||||
|
@ -429,7 +429,7 @@ static DRIVER_INIT(mt_crt)
|
||||
{
|
||||
UINT8* pin = machine->region("sms_pin")->base();
|
||||
DRIVER_INIT_CALL(mt_slot);
|
||||
|
||||
|
||||
cart_is_genesis[0] = !pin[0] ? 1 : 0;;
|
||||
}
|
||||
|
||||
@ -526,13 +526,13 @@ static DEVICE_IMAGE_LOAD( megatech_cart )
|
||||
{
|
||||
const struct megatech_cart_region *mt_cart = &megatech_cart_table[0], *this_cart;
|
||||
const char *pcb_name;
|
||||
|
||||
|
||||
/* First, determine where this cart has to be loaded */
|
||||
while (mt_cart->tag)
|
||||
{
|
||||
if (strcmp(mt_cart->tag, image.device().tag()) == 0)
|
||||
break;
|
||||
|
||||
|
||||
mt_cart++;
|
||||
}
|
||||
|
||||
@ -558,7 +558,7 @@ static DEVICE_IMAGE_LOAD( megatech_cart )
|
||||
cart_is_genesis[this_cart->slot] = 1;
|
||||
}
|
||||
else if (!mame_stricmp("sms", pcb_name))
|
||||
{
|
||||
{
|
||||
printf("%s is sms\n", mt_cart->tag);
|
||||
cart_is_genesis[this_cart->slot] = 0;
|
||||
}
|
||||
@ -615,7 +615,7 @@ ROM_START( megatech )
|
||||
ROM_REGION16_BE( 0x400000, "game4", ROMREGION_ERASE00 )
|
||||
ROM_REGION16_BE( 0x400000, "game5", ROMREGION_ERASE00 )
|
||||
ROM_REGION16_BE( 0x400000, "game6", ROMREGION_ERASE00 )
|
||||
ROM_REGION16_BE( 0x400000, "game7", ROMREGION_ERASE00 )
|
||||
ROM_REGION16_BE( 0x400000, "game7", ROMREGION_ERASE00 )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
@ -199,10 +199,10 @@ IRQ line connected to CPU
|
||||
|
||||
TODO: - Fix lamp timing, MAME doesn't update fast enough to see everything
|
||||
- Distinguish door switches using manual
|
||||
- Complete stubs for hoppers (needs slightly better 68681 emulation, and new 'hoppers' device)
|
||||
- Any reel using the remote meter drive (CB2) slips backwards due to timing mismatches, a better method
|
||||
is needed to combine the data. This eventually leads to spin alarms i.e Flo's move in Great Escape
|
||||
- Add a BwB game with characteriser.
|
||||
- Complete stubs for hoppers (needs slightly better 68681 emulation, and new 'hoppers' device)
|
||||
- Any reel using the remote meter drive (CB2) slips backwards due to timing mismatches, a better method
|
||||
is needed to combine the data. This eventually leads to spin alarms i.e Flo's move in Great Escape
|
||||
- Add a BwB game with characteriser.
|
||||
***********************************************************************************************************/
|
||||
#include "emu.h"
|
||||
#include "machine/6821pia.h"
|
||||
@ -417,7 +417,7 @@ static void lamp_extend_small(int data)
|
||||
column = data & 0x07;
|
||||
|
||||
lamp_strobe_ext = 0x1f - ((data & 0xf8) >> 3);
|
||||
if ( lamp_strobe_ext )
|
||||
if ( lamp_strobe_ext )
|
||||
{
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
@ -446,7 +446,7 @@ static void lamp_extend_largea(int data,int column,int active)
|
||||
{
|
||||
lamp_sense = 1;
|
||||
}
|
||||
if ( active )
|
||||
if ( active )
|
||||
{
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
@ -486,7 +486,7 @@ static void lamp_extend_largebc(int data,int column,int active)
|
||||
}
|
||||
}
|
||||
last_b7 = byte7;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
card_live = 0;
|
||||
@ -857,8 +857,8 @@ static WRITE8_DEVICE_HANDLER( pia_ic4_portb_w )
|
||||
if (reel_mux)
|
||||
{
|
||||
/* A write here connects one reel (and only one)
|
||||
to the optic test circuit. This allows 8 reels
|
||||
to be supported instead of 4. */
|
||||
to the optic test circuit. This allows 8 reels
|
||||
to be supported instead of 4. */
|
||||
if (reel_mux == SEVEN_REEL)
|
||||
{
|
||||
active_reel= reel_mux_table7[(data >> 4) & 0x07];
|
||||
@ -901,7 +901,7 @@ static READ8_DEVICE_HANDLER( pia_ic4_portb_r )
|
||||
{
|
||||
if (stepper_optic_state(active_reel))
|
||||
{
|
||||
ic4_input_b |= 0x08;
|
||||
ic4_input_b |= 0x08;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -913,7 +913,7 @@ static READ8_DEVICE_HANDLER( pia_ic4_portb_r )
|
||||
|
||||
if (ic4_input_b & 0x02)
|
||||
{
|
||||
ic4_input_b &= ~0x02;
|
||||
ic4_input_b &= ~0x02;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -964,7 +964,7 @@ static READ8_DEVICE_HANDLER( pia_ic5_porta_r )
|
||||
{
|
||||
if (lamp_sense && ic23_active)
|
||||
{
|
||||
aux1_input |= 0x40;
|
||||
aux1_input |= 0x40;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -973,14 +973,14 @@ static READ8_DEVICE_HANDLER( pia_ic5_porta_r )
|
||||
}
|
||||
if (hopper == HOPPER_NONDUART_A)
|
||||
{
|
||||
/* if (hopper1_active)
|
||||
{
|
||||
aux1_input |= 0x04;
|
||||
}
|
||||
else
|
||||
{
|
||||
aux1_input &= ~0x04;
|
||||
}*/
|
||||
/* if (hopper1_active)
|
||||
{
|
||||
aux1_input |= 0x04;
|
||||
}
|
||||
else
|
||||
{
|
||||
aux1_input &= ~0x04;
|
||||
}*/
|
||||
}
|
||||
LOG(("%s: IC5 PIA Read of Port A (AUX1)\n",device->machine->describe_context()));
|
||||
|
||||
@ -1061,14 +1061,14 @@ static READ8_DEVICE_HANDLER( pia_ic5_portb_r )
|
||||
device_t *pia_ic5 = device->machine->device("pia_ic5");
|
||||
if (hopper == HOPPER_NONDUART_B)
|
||||
{/*
|
||||
if (hopper1_active)
|
||||
{
|
||||
aux2_input |= 0x08;
|
||||
}
|
||||
else
|
||||
{
|
||||
aux2_input &= ~0x08;
|
||||
}*/
|
||||
if (hopper1_active)
|
||||
{
|
||||
aux2_input |= 0x08;
|
||||
}
|
||||
else
|
||||
{
|
||||
aux2_input &= ~0x08;
|
||||
}*/
|
||||
}
|
||||
|
||||
LOG(("%s: IC5 PIA Read of Port B (coin input AUX2)\n",device->machine->describe_context()));
|
||||
@ -1386,11 +1386,11 @@ static WRITE8_DEVICE_HANDLER( pia_ic8_portb_w )
|
||||
{
|
||||
if (hopper == HOPPER_DUART_B)
|
||||
{
|
||||
// duart.drive_sensor(data & 0x04, data & 0x01, 0, 0);
|
||||
// duart.drive_sensor(data & 0x04, data & 0x01, 0, 0);
|
||||
}
|
||||
else if (hopper == HOPPER_DUART_C)
|
||||
{
|
||||
// duart.drive_sensor(data & 0x04, data & 0x01, data & 0x04, data & 0x02);
|
||||
// duart.drive_sensor(data & 0x04, data & 0x01, data & 0x04, data & 0x02);
|
||||
}
|
||||
int i;
|
||||
LOG_IC8(("%s: IC8 PIA Port B Set to %2x (OUTPUT PORT, TRIACS)\n", device->machine->describe_context(),data));
|
||||
@ -1519,8 +1519,8 @@ sample rate changes (8Khz, 10.6 Khz, 16 KHz) by varying the clock.
|
||||
According to the BwB programmer's guide, the formula is:
|
||||
MSM6376 clock frequency:-
|
||||
freq = (1720000/((t3L+1)(t3H+1)))*[(t3H(T3L+1)+1)/(2(t1+1))]
|
||||
where [] means rounded up integer,
|
||||
t3L is the LSB of Clock 3,
|
||||
where [] means rounded up integer,
|
||||
t3L is the LSB of Clock 3,
|
||||
t3H is the MSB of Clock 3,
|
||||
and t1 is the figure added to clock 1.
|
||||
|
||||
@ -1980,7 +1980,7 @@ static MACHINE_START( mpu4mod4 )
|
||||
/*
|
||||
Characteriser (CHR)
|
||||
|
||||
As built, the CHR is a PAL which can perform basic bit manipulation according to
|
||||
As built, the CHR is a PAL which can perform basic bit manipulation according to
|
||||
an as yet unknown unique key. However, the programmers decided to best use this protection device in read/write/compare
|
||||
cycles, storing almost the entire 'hidden' data table in the ROMs in plain sight. Only later rebuilds by BwB
|
||||
avoided this 'feature' of the development kit, and will need a different setup.
|
||||
@ -2205,7 +2205,7 @@ static TIMER_DEVICE_CALLBACK( gen_50hz )
|
||||
update_lamps();
|
||||
pia6821_ca1_w(timer.machine->device("pia_ic4"), signal_50hz); /* signal is connected to IC4 CA1 */
|
||||
|
||||
if (signal_50hz)
|
||||
if (signal_50hz)
|
||||
{
|
||||
update_meters();
|
||||
}
|
||||
|
@ -172,7 +172,7 @@ TODO:
|
||||
- Hook up OKIM6376 sound in The Mating Game
|
||||
- Get the BwB games running
|
||||
* They have a slightly different 68k memory map. The 6850 is at e00000 and the 6840 is at e01000
|
||||
They appear to hang on the handshake with the MPU4 board
|
||||
They appear to hang on the handshake with the MPU4 board
|
||||
- Find out what causes the games to reset in service mode (see jump taken at CPU1:c8e8)
|
||||
- Deal 'Em lockouts vary on certain cabinets (normally connected to AUX2, but not there?)
|
||||
- Deal 'Em has bad tiles (apostrophe, logo, bottom corner), black should actually be transparent
|
||||
@ -1098,7 +1098,7 @@ static READ16_HANDLER( ef9369_r )
|
||||
/******************************************
|
||||
*
|
||||
* Brooktree Bt471 RAMDAC
|
||||
* Implementation stolen from JPM
|
||||
* Implementation stolen from JPM
|
||||
* Impact, may not be 100% (that has a 477)
|
||||
******************************************/
|
||||
|
||||
@ -1160,7 +1160,7 @@ WRITE16_HANDLER( bt471_w )
|
||||
break;
|
||||
}
|
||||
|
||||
// default:
|
||||
// default:
|
||||
{
|
||||
popmessage("Bt477: Unhandled write access (offset:%x, data:%x)", offset, val);
|
||||
}
|
||||
@ -2075,7 +2075,7 @@ static ADDRESS_MAP_START( bwbvid_68k_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x900000, 0x900001) AM_DEVWRITE8("saa", saa1099_data_w, 0x00ff)
|
||||
AM_RANGE(0x900002, 0x900003) AM_DEVWRITE8("saa", saa1099_control_w, 0x00ff)
|
||||
AM_RANGE(0xa00000, 0xa00003) AM_READWRITE(ef9369_r, ef9369_w)
|
||||
// AM_RANGE(0xa00000, 0xa0000f) AM_READWRITE(bt471_r,bt471_w) //Some games use this
|
||||
// AM_RANGE(0xa00000, 0xa0000f) AM_READWRITE(bt471_r,bt471_w) //Some games use this
|
||||
/* AM_RANGE(0xa00004, 0xa0000f) AM_READWRITE(mpu4_vid_unmap_r, mpu4_vid_unmap_w) */
|
||||
AM_RANGE(0xb00000, 0xb0000f) AM_READWRITE(mpu4_vid_scn2674_r, mpu4_vid_scn2674_w)
|
||||
AM_RANGE(0xc00000, 0xc1ffff) AM_READWRITE(mpu4_vid_vidram_r, mpu4_vid_vidram_w)
|
||||
@ -2102,7 +2102,7 @@ static ADDRESS_MAP_START( bwbvid5_68k_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0xe02000, 0xe02007) AM_DEVREADWRITE8("pia_ic4ss", pia6821_r, pia6821_w, 0xff)
|
||||
AM_RANGE(0xe03000, 0xe0300f) AM_DEVREADWRITE8("6840ptm_ic3ss", ptm6840_read, ptm6840_write, 0xff)
|
||||
ADDRESS_MAP_END
|
||||
//
|
||||
//
|
||||
/* Deal 'Em */
|
||||
/* Deal 'Em was designed as an enhanced gamecard, to fit into an existing MPU4 cabinet
|
||||
It's an unoffical addon, and does all its work through the existing 6809 CPU.
|
||||
@ -2913,7 +2913,7 @@ ROM_START( renoreel )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("rr_27s__.a60", 0x00000, 0x10000, CRC(44c9ff47) SHA1(93a3155144b233c113aa3b49bd4eb5969e400a68))
|
||||
|
||||
ROM_REGION( 0x800000, "video", 0 )
|
||||
ROM_REGION( 0x800000, "video", 0 )
|
||||
ROM_LOAD16_BYTE( "rr______.a_1", 0x000000, 0x80000, CRC(ff27d0ba) SHA1(85cce36495f00a05c1806ecde37274212680e466) )
|
||||
ROM_LOAD16_BYTE( "rr______.a_2", 0x000001, 0x80000, CRC(519b9ae1) SHA1(8ccfe8de0f2c85923df81af8cba6f20af43d2fe2) )
|
||||
|
||||
|
@ -6,10 +6,10 @@ driver todo:
|
||||
- lots of external artwork
|
||||
|
||||
To diagnose game, turn on service mode and:
|
||||
- test RAM/ROM, leds, lamps: reset with shifter in neutral
|
||||
- test sound and misc input: turn on DSW 7 and reset with shifter in neutral
|
||||
- test accelerator: reset with shifter in 1st gear
|
||||
- test steering wheel: reset with shifter in 2nd gear
|
||||
- test RAM/ROM, leds, lamps: reset with shifter in neutral
|
||||
- test sound and misc input: turn on DSW 7 and reset with shifter in neutral
|
||||
- test accelerator: reset with shifter in 1st gear
|
||||
- test steering wheel: reset with shifter in 2nd gear
|
||||
|
||||
*/
|
||||
|
||||
|
@ -320,8 +320,8 @@ ROM_START( rrvac )
|
||||
SYSTEM246_BIOS
|
||||
|
||||
ROM_REGION(0x840000, "key", ROMREGION_ERASE00)
|
||||
ROM_LOAD( "rrv3vera.ic002", 0x000000, 0x800000, CRC(dd20c4a2) SHA1(07bddaac958ac62d9fc29671fc83bd1e3b27f4b8) )
|
||||
ROM_LOAD( "rrv3vera_spr.ic002", 0x800000, 0x040000, CRC(712e0e9a) SHA1(d396aaf918036ff7f909a84daefe8f651fdf9b05) )
|
||||
ROM_LOAD( "rrv3vera.ic002", 0x000000, 0x800000, CRC(dd20c4a2) SHA1(07bddaac958ac62d9fc29671fc83bd1e3b27f4b8) )
|
||||
ROM_LOAD( "rrv3vera_spr.ic002", 0x800000, 0x040000, CRC(712e0e9a) SHA1(d396aaf918036ff7f909a84daefe8f651fdf9b05) )
|
||||
|
||||
DISK_REGION("dvd")
|
||||
DISK_IMAGE_READONLY( "rrv1-a", 0, SHA1(77bb70407511cbb12ab999410e797dcaf0779229) )
|
||||
|
@ -357,7 +357,7 @@ READ32_HANDLER( nand_data_r )
|
||||
{
|
||||
UINT32 data = nand_read2( nand_address * 2 );
|
||||
|
||||
/* printf( "data<-%08x (%08x)\n", data, nand_address ); */
|
||||
/* printf( "data<-%08x (%08x)\n", data, nand_address ); */
|
||||
nand_address++;
|
||||
|
||||
return data;
|
||||
@ -566,10 +566,10 @@ ROM_START( gjspace )
|
||||
ROM_FILL( 0x0000000, 0x400000, 0x55 )
|
||||
|
||||
ROM_REGION( 0x4200000, "user2", 0 ) /* main prg */
|
||||
ROM_LOAD( "10011a_0.bin", 0x0000000, 0x1080000, CRC(df862033) SHA1(4141357ed315adb4de636d7bf752354e953e8cbf) )
|
||||
ROM_LOAD( "10011a_1.bin", 0x1080000, 0x1080000, CRC(734c7ac0) SHA1(2f325236a4e4f2dba886682e9a7e8e243b5fbb3d) )
|
||||
ROM_LOAD( "10011a_2.bin", 0x2100000, 0x1080000, CRC(3bbbc0b7) SHA1(ad02ec2e5f401f0f5d40a413038649ebd25d5343) )
|
||||
ROM_LOAD( "10011a_3.bin", 0x3180000, 0x1080000, CRC(fb0de5ca) SHA1(50a462a52ff4a0bc112b9d89f2b2d032c60cf59c) )
|
||||
ROM_LOAD( "10011a_0.bin", 0x0000000, 0x1080000, CRC(df862033) SHA1(4141357ed315adb4de636d7bf752354e953e8cbf) )
|
||||
ROM_LOAD( "10011a_1.bin", 0x1080000, 0x1080000, CRC(734c7ac0) SHA1(2f325236a4e4f2dba886682e9a7e8e243b5fbb3d) )
|
||||
ROM_LOAD( "10011a_2.bin", 0x2100000, 0x1080000, CRC(3bbbc0b7) SHA1(ad02ec2e5f401f0f5d40a413038649ebd25d5343) )
|
||||
ROM_LOAD( "10011a_3.bin", 0x3180000, 0x1080000, CRC(fb0de5ca) SHA1(50a462a52ff4a0bc112b9d89f2b2d032c60cf59c) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( mrdrilrg )
|
||||
@ -577,9 +577,9 @@ ROM_START( mrdrilrg )
|
||||
ROM_FILL( 0x0000000, 0x400000, 0x55 )
|
||||
|
||||
ROM_REGION( 0x3180000, "user2", 0 ) /* main prg */
|
||||
ROM_LOAD( "drg1a_0.bin", 0x0000000, 0x1080000, CRC(e0801878) SHA1(fbb771c1e76e0690f6dffed2287eb470b561ec20) )
|
||||
ROM_LOAD( "drg1a_1.bin", 0x1080000, 0x1080000, CRC(4d8cde73) SHA1(62a5fab8be8fd0a6bfeb101020d4cf58866a757c) )
|
||||
ROM_LOAD( "drg1a_2.bin", 0x2100000, 0x1080000, CRC(ccfabf7b) SHA1(0cbd91ce8abd6efca5d427b52279ce265f685aa9) )
|
||||
ROM_LOAD( "drg1a_0.bin", 0x0000000, 0x1080000, CRC(e0801878) SHA1(fbb771c1e76e0690f6dffed2287eb470b561ec20) )
|
||||
ROM_LOAD( "drg1a_1.bin", 0x1080000, 0x1080000, CRC(4d8cde73) SHA1(62a5fab8be8fd0a6bfeb101020d4cf58866a757c) )
|
||||
ROM_LOAD( "drg1a_2.bin", 0x2100000, 0x1080000, CRC(ccfabf7b) SHA1(0cbd91ce8abd6efca5d427b52279ce265f685aa9) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( knpuzzle )
|
||||
@ -587,9 +587,9 @@ ROM_START( knpuzzle )
|
||||
ROM_FILL( 0x0000000, 0x400000, 0x55 )
|
||||
|
||||
ROM_REGION( 0x3180000, "user2", 0 ) /* main prg */
|
||||
ROM_LOAD( "kpm1a_0.bin", 0x0000000, 0x1080000, CRC(b2947eb8) SHA1(fa941bf3598bb25d2c8f0a93154e32bf78a6507c) )
|
||||
ROM_LOAD( "kpm1a_1.bin", 0x1080000, 0x1080000, CRC(f3aa855a) SHA1(87b94e22db4bc4169324bbff93c4ea19c1d99b40) )
|
||||
ROM_LOAD( "kpm1a_2.bin", 0x2100000, 0x1080000, CRC(b297cc8d) SHA1(c3494e7a8a0b4e0c8c40b99121373effbfe848eb) )
|
||||
ROM_LOAD( "kpm1a_0.bin", 0x0000000, 0x1080000, CRC(b2947eb8) SHA1(fa941bf3598bb25d2c8f0a93154e32bf78a6507c) )
|
||||
ROM_LOAD( "kpm1a_1.bin", 0x1080000, 0x1080000, CRC(f3aa855a) SHA1(87b94e22db4bc4169324bbff93c4ea19c1d99b40) )
|
||||
ROM_LOAD( "kpm1a_2.bin", 0x2100000, 0x1080000, CRC(b297cc8d) SHA1(c3494e7a8a0b4e0c8c40b99121373effbfe848eb) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( startrgn )
|
||||
@ -597,8 +597,8 @@ ROM_START( startrgn )
|
||||
ROM_FILL( 0x0000000, 0x400000, 0x55 )
|
||||
|
||||
ROM_REGION( 0x2100000, "user2", 0 ) /* main prg */
|
||||
ROM_LOAD( "stt1a_0.bin", 0x0000000, 0x1080000, CRC(1e090644) SHA1(a7a293e2bd9eea2eb64a492a47272d9d9ee2c724) )
|
||||
ROM_LOAD( "stt1a_1.bin", 0x1080000, 0x1080000, CRC(aa527694) SHA1(a25dcbeca58a1443070848b3487a24d51d41a34b) )
|
||||
ROM_LOAD( "stt1a_0.bin", 0x0000000, 0x1080000, CRC(1e090644) SHA1(a7a293e2bd9eea2eb64a492a47272d9d9ee2c724) )
|
||||
ROM_LOAD( "stt1a_1.bin", 0x1080000, 0x1080000, CRC(aa527694) SHA1(a25dcbeca58a1443070848b3487a24d51d41a34b) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( gamshara )
|
||||
|
@ -1,5 +1,5 @@
|
||||
/***************************************************************************
|
||||
|
||||
|
||||
Namco System 12 - Arcade Playstation-based Hardware
|
||||
===================================================
|
||||
Driver by smf
|
||||
@ -11,11 +11,11 @@
|
||||
graphics are glitchy in some games.
|
||||
|
||||
- golgo13 assumes the test switch is a switch, not a button - must hold down F2 to stay in test mode
|
||||
|
||||
|
||||
- truckk doesn't boot: the H8/3002 never enters InitJVSBoards @ 1DE2. 1DE2 is referenced in a table of commands at 4032,
|
||||
which is called by the routine at 3FEA. It is not clear how execution is intended to get to 3FEA - there are no direct
|
||||
branches to that location, and the bytes 3F EA don't appear at all in the program.
|
||||
|
||||
|
||||
|
||||
Namco System 12 - Arcade Playstation-based Hardware
|
||||
===================================================
|
||||
@ -110,16 +110,16 @@ GUN I/F PCB - Used to connect and control the light guns. The board plugs in whe
|
||||
PCB directly, no extra gun hardware is needed. Used only on Ghoul Panic and Point Blank 2 so far.
|
||||
CDXA PCB - Used on Truck Kyosokyoku to control the CDROM drive. The board plugs in where the CPU board would
|
||||
normally be, and the CPU board plugs into another connector on the CDXA PCB.
|
||||
V233 DECO PCB-This is the I/O board used by Truck Kyosokyoku. It contains a custom Namco C78 (Hitachi H8/3334) and one
|
||||
EPROM. A similar board might also be required for Attack Pla-Rail as it will not boot without some kind
|
||||
V233 DECO PCB-This is the I/O board used by Truck Kyosokyoku. It contains a custom Namco C78 (Hitachi H8/3334) and one
|
||||
EPROM. A similar board might also be required for Attack Pla-Rail as it will not boot without some kind
|
||||
of I/O board.
|
||||
|
||||
|
||||
Each game has a 3 or 4 digit letter code assigned to it which is printed on a small sticker and placed on the underside
|
||||
of the main PCB.
|
||||
The 4 digit code is then proceeded by a number (generally 1, 2 or 3), then 'Rev.' then A/B/C/D/E which denotes the software
|
||||
revision, and in some cases a sub-revision such as 1 or 2 (usually only listed in the test mode).
|
||||
The first 1 denotes a Japanese version. 2 (and maybe 3) denotes a World version. For general use there are no other numbers
|
||||
used other than 1, 2, or 3. There is one exception so far. Point Blank 2 was first produced on System 11 hardware. To
|
||||
The first 1 denotes a Japanese version. 2 (and maybe 3) denotes a World version. For general use there are no other numbers
|
||||
used other than 1, 2, or 3. There is one exception so far. Point Blank 2 was first produced on System 11 hardware. To
|
||||
solve a naming conflict, the System 12 version uses a '4' to denote a Japanese version and a '5' to denote a World version.
|
||||
For World versions usually only the main program is changed, the rest of the ROMs are the Japanese region code '1' ROMs.
|
||||
See the Main PCB and ROM Daughterboard PCB texts below for more details on ROM naming specifics.
|
||||
@ -250,7 +250,7 @@ Notes:
|
||||
Truck Kyosokyoku TKK2 Ver.A none MOTHER(C) (ROMs serialised)
|
||||
|
||||
Note: Games with 'none' for S/W Revision have a date in the test menu in the 'OTHER' item
|
||||
|
||||
|
||||
PRG.2N/PRG.2R: Main program ROMs \ Intel 28F016S5 2M x8 FLASHROM (for 2N, TSOP40)
|
||||
/ Intel 28F008SA 1M x8 FLASHROM (for 2R, TSOP40)
|
||||
These ROMs are not populated on any System12 PCB dumped so far. Probably they are completely
|
||||
@ -940,7 +940,7 @@ Notes:
|
||||
Ghoul Panic (OB2/VER.A)
|
||||
Point Blank 2 (GNB5/VER.A)
|
||||
|
||||
|
||||
|
||||
CDXA PCB
|
||||
--------
|
||||
SYSTEM12 CDXA PCB 8661962101 (8661972101)
|
||||
@ -960,7 +960,7 @@ SYSTEM12 CDXA PCB 8661962101 (8661972101)
|
||||
| | | | | |------| TC558128 |
|
||||
| | | |--------| |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| |-| |
|
||||
| 2061ASC-1 |------| |
|
||||
| |ALTERA| |
|
||||
@ -989,13 +989,13 @@ Notes:
|
||||
|
||||
This PCB was found on the following games (so far)....
|
||||
|
||||
Truck Kyosokyoku (TKK2/VER.A)
|
||||
Truck Kyosokyoku (TKK2/VER.A)
|
||||
A CDROM drive and CDROM disc is also required
|
||||
The disc is labelled 'TKK2-A'
|
||||
|
||||
|
||||
|
||||
|
||||
I/O Board (for use with Truck Kyosokyoku)
|
||||
---------
|
||||
---------
|
||||
|
||||
V233 DECO PCB
|
||||
2532960102 (2532970102)
|
||||
@ -2579,27 +2579,27 @@ ROM_END
|
||||
|
||||
ROM_START( truckk )
|
||||
ROM_REGION32_LE( 0x00400000, "user1", 0 ) /* main prg */
|
||||
ROM_LOAD16_BYTE( "tkk2vera.2l", 0x000000, 0x200000, CRC(321344e0) SHA1(0273284d05707b76ca38fd160ef6f17572314a8b) )
|
||||
ROM_LOAD16_BYTE( "tkk2vera.2p", 0x000001, 0x200000, CRC(a7b5e4ea) SHA1(f11eefd80559b4d42318a920088b77bd67b70cc3) )
|
||||
ROM_LOAD16_BYTE( "tkk2vera.2l", 0x000000, 0x200000, CRC(321344e0) SHA1(0273284d05707b76ca38fd160ef6f17572314a8b) )
|
||||
ROM_LOAD16_BYTE( "tkk2vera.2p", 0x000001, 0x200000, CRC(a7b5e4ea) SHA1(f11eefd80559b4d42318a920088b77bd67b70cc3) )
|
||||
|
||||
ROM_REGION32_LE( 0x3400000, "user2", 0 ) /* main data */
|
||||
ROM_LOAD16_BYTE( "tkk1rom0l.ic10", 0x0000000, 0x800000, CRC(5e1c8660) SHA1(05fcfa9cc834f85c38e41610a32624464d67ee21) )
|
||||
ROM_LOAD16_BYTE( "tkk1rom0u.ic14", 0x0000001, 0x800000, CRC(ee4e6566) SHA1(f3c7e227681003a3491a3996a90887e1091c0eed) )
|
||||
ROM_LOAD16_BYTE( "tkk1rom1l.ic11", 0x1000000, 0x800000, CRC(fde2863c) SHA1(a01141df8c84730974c9f37fa2ee911e2f4e45f9) )
|
||||
ROM_LOAD16_BYTE( "tkk1rom1u.ic15", 0x1000001, 0x800000, CRC(e51a56d7) SHA1(c5bad8df8edd5a5f352e5bf3bb93133503ca4ba0) )
|
||||
ROM_LOAD16_BYTE( "tkk1rom2l.ic12", 0x2000000, 0x800000, CRC(029cf107) SHA1(30cbcf00ffb9c379c64718914874936ff32ed186) )
|
||||
ROM_LOAD16_BYTE( "tkk1rom2u.ic16", 0x2000001, 0x800000, CRC(30c426dd) SHA1(2dae3d415715c779251c79006ea18e3bd14a1f51) )
|
||||
ROM_LOAD16_BYTE( "tkk1fl3l.ic4", 0x3000000, 0x200000, CRC(b0e98cb2) SHA1(8c53037b8e20410a395db8d9bb9229b550ebf228) )
|
||||
ROM_LOAD16_BYTE( "tkk1fl3u.ic5", 0x3000001, 0x200000, CRC(16d9ede7) SHA1(e989e0a6afbfca5e7ef81bf7c24e8e6b38a11eca) )
|
||||
ROM_LOAD16_BYTE( "tkk1rom0l.ic10", 0x0000000, 0x800000, CRC(5e1c8660) SHA1(05fcfa9cc834f85c38e41610a32624464d67ee21) )
|
||||
ROM_LOAD16_BYTE( "tkk1rom0u.ic14", 0x0000001, 0x800000, CRC(ee4e6566) SHA1(f3c7e227681003a3491a3996a90887e1091c0eed) )
|
||||
ROM_LOAD16_BYTE( "tkk1rom1l.ic11", 0x1000000, 0x800000, CRC(fde2863c) SHA1(a01141df8c84730974c9f37fa2ee911e2f4e45f9) )
|
||||
ROM_LOAD16_BYTE( "tkk1rom1u.ic15", 0x1000001, 0x800000, CRC(e51a56d7) SHA1(c5bad8df8edd5a5f352e5bf3bb93133503ca4ba0) )
|
||||
ROM_LOAD16_BYTE( "tkk1rom2l.ic12", 0x2000000, 0x800000, CRC(029cf107) SHA1(30cbcf00ffb9c379c64718914874936ff32ed186) )
|
||||
ROM_LOAD16_BYTE( "tkk1rom2u.ic16", 0x2000001, 0x800000, CRC(30c426dd) SHA1(2dae3d415715c779251c79006ea18e3bd14a1f51) )
|
||||
ROM_LOAD16_BYTE( "tkk1fl3l.ic4", 0x3000000, 0x200000, CRC(b0e98cb2) SHA1(8c53037b8e20410a395db8d9bb9229b550ebf228) )
|
||||
ROM_LOAD16_BYTE( "tkk1fl3u.ic5", 0x3000001, 0x200000, CRC(16d9ede7) SHA1(e989e0a6afbfca5e7ef81bf7c24e8e6b38a11eca) )
|
||||
|
||||
ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */
|
||||
ROM_LOAD16_WORD_SWAP( "tkk2vera.11s", 0x000000, 0x080000, CRC(d3d0a46a) SHA1(20569462df49ad93ff1118b587d6d32edf9d851e) )
|
||||
ROM_LOAD16_WORD_SWAP( "tkk2vera.11s", 0x000000, 0x080000, CRC(d3d0a46a) SHA1(20569462df49ad93ff1118b587d6d32edf9d851e) )
|
||||
|
||||
ROM_REGION( 0x1000000, "c352", 0 ) /* samples */
|
||||
ROM_LOAD( "tkk1wave0.ic1", 0x000000, 0x800000, CRC(037d3095) SHA1(cc343bdd45d023c133964321e2df5cb1c91525ef) )
|
||||
ROM_LOAD( "tkk1wave0.ic1", 0x000000, 0x800000, CRC(037d3095) SHA1(cc343bdd45d023c133964321e2df5cb1c91525ef) )
|
||||
|
||||
ROM_REGION( 0x20000, "ioboard", 0) /* Truck K. I/O board */
|
||||
ROM_LOAD( "tkk1prg0.ic7", 0x000000, 0x020000, CRC(11fd9c31) SHA1(068b8364ec0eb1e88f9f85f40b8b322876f6f3e2) )
|
||||
ROM_LOAD( "tkk1prg0.ic7", 0x000000, 0x020000, CRC(11fd9c31) SHA1(068b8364ec0eb1e88f9f85f40b8b322876f6f3e2) )
|
||||
|
||||
DISK_REGION( "cdrom" )
|
||||
DISK_IMAGE( "tkk2-a", 0, SHA1(6b7c3686b22a508c44f67295b188504b757dd482) )
|
||||
|
@ -4241,13 +4241,13 @@ ROM_START( oinori )
|
||||
NAOMI_DEFAULT_EEPROM
|
||||
|
||||
ROM_REGION( 0x5800000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_LOAD( "epr-24053.ic22",0x0000000, 0x0400000, CRC(f127bdab) SHA1(9095e618069fa977f6225ad323f38852131f59cd) )
|
||||
ROM_LOAD( "epr-24053.ic22",0x0000000, 0x0400000, CRC(f127bdab) SHA1(9095e618069fa977f6225ad323f38852131f59cd) )
|
||||
ROM_RELOAD( 0x400000, 0x400000)
|
||||
ROM_LOAD( "mpr-24054.ic1", 0x0800000, 0x1000000, CRC(db595e72) SHA1(030f33ba2c6cc0a3e1b36b5f3be17b3b83f83a42) )
|
||||
ROM_LOAD( "mpr-24055.ic2", 0x1800000, 0x1000000, CRC(12a7f86f) SHA1(bfc890df4fb5f96848ed225a676e6f934bdea33a) )
|
||||
ROM_LOAD( "mpr-24056.ic3", 0x2800000, 0x1000000, CRC(0da67885) SHA1(c7205060a9518c2d4015718edea191eb0e30a093) )
|
||||
ROM_LOAD( "mpr-24057.ic4", 0x3800000, 0x1000000, CRC(6dec3518) SHA1(3e65065df22680e2bbf2d3db22da413f347a1abe) )
|
||||
ROM_LOAD( "mpr-24058.ic5", 0x4800000, 0x1000000, CRC(0eba9049) SHA1(a71ca72aeaf17180cde59d7c7b42c97a1b4259ab) )
|
||||
ROM_LOAD( "mpr-24054.ic1", 0x0800000, 0x1000000, CRC(db595e72) SHA1(030f33ba2c6cc0a3e1b36b5f3be17b3b83f83a42) )
|
||||
ROM_LOAD( "mpr-24055.ic2", 0x1800000, 0x1000000, CRC(12a7f86f) SHA1(bfc890df4fb5f96848ed225a676e6f934bdea33a) )
|
||||
ROM_LOAD( "mpr-24056.ic3", 0x2800000, 0x1000000, CRC(0da67885) SHA1(c7205060a9518c2d4015718edea191eb0e30a093) )
|
||||
ROM_LOAD( "mpr-24057.ic4", 0x3800000, 0x1000000, CRC(6dec3518) SHA1(3e65065df22680e2bbf2d3db22da413f347a1abe) )
|
||||
ROM_LOAD( "mpr-24058.ic5", 0x4800000, 0x1000000, CRC(0eba9049) SHA1(a71ca72aeaf17180cde59d7c7b42c97a1b4259ab) )
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
@ -7235,11 +7235,11 @@ ROM_START( mslug6 )
|
||||
AW_BIOS
|
||||
|
||||
ROM_REGION( 0xf000000, "user1", ROMREGION_ERASE)
|
||||
ROM_LOAD( "ax3001p01.fmem1", 0x0000000, 0x0800000, CRC(af67dbce) SHA1(5aba108caf3e4ced6994bc26e752d4e225c231e8) )
|
||||
ROM_LOAD( "ax3001m01.mrom1", 0x1000000, 0x2000000, CRC(e56417ee) SHA1(27692ad5c1093aff0973d2aafd01a5e30c7bfbbe) )
|
||||
ROM_LOAD( "ax3002m01.mrom2", 0x3000000, 0x2000000, CRC(1be3bbc1) SHA1(d75ce5c855c9c4eeacdbf84d440c73a94de060fe) )
|
||||
ROM_LOAD( "ax3003m01.mrom3", 0x5000000, 0x2000000, CRC(4fe37370) SHA1(85d51db94c3e34265e37b636d6545ed2801ba5a6) )
|
||||
ROM_LOAD( "ax3004m01.mrom4", 0x7000000, 0x2000000, CRC(2f4c4c6f) SHA1(5815c28fdaf0429003986e725c0015fe4c08721f) )
|
||||
ROM_LOAD( "ax3001p01.fmem1", 0x0000000, 0x0800000, CRC(af67dbce) SHA1(5aba108caf3e4ced6994bc26e752d4e225c231e8) )
|
||||
ROM_LOAD( "ax3001m01.mrom1", 0x1000000, 0x2000000, CRC(e56417ee) SHA1(27692ad5c1093aff0973d2aafd01a5e30c7bfbbe) )
|
||||
ROM_LOAD( "ax3002m01.mrom2", 0x3000000, 0x2000000, CRC(1be3bbc1) SHA1(d75ce5c855c9c4eeacdbf84d440c73a94de060fe) )
|
||||
ROM_LOAD( "ax3003m01.mrom3", 0x5000000, 0x2000000, CRC(4fe37370) SHA1(85d51db94c3e34265e37b636d6545ed2801ba5a6) )
|
||||
ROM_LOAD( "ax3004m01.mrom4", 0x7000000, 0x2000000, CRC(2f4c4c6f) SHA1(5815c28fdaf0429003986e725c0015fe4c08721f) )
|
||||
ROM_COPY( "user1", 0x7000000, 0x9000000, 0x2000000)
|
||||
ROM_END
|
||||
|
||||
@ -7248,14 +7248,14 @@ ROM_START( samsptk )
|
||||
AW_BIOS
|
||||
|
||||
ROM_REGION( 0x10000000, "user1", ROMREGION_ERASE)
|
||||
ROM_LOAD( "ax2901p01.fmem1", 0x0000000, 0x0800000, CRC(58e0030b) SHA1(ed8a66833beeb56d83770123eff28df0f25221d1) )
|
||||
ROM_LOAD( "ax2901m01.mrom1", 0x1000000, 0x2000000, CRC(dbbbd90d) SHA1(102ee0b249a3e0ca2f659b6c515816c522ad78d0) )
|
||||
ROM_LOAD( "ax2902m01.mrom2", 0x3000000, 0x2000000, CRC(a3bd7890) SHA1(9b8d934d6ebc3ef688cd8a6de47657a0663fea10) )
|
||||
ROM_LOAD( "ax2903m01.mrom3", 0x5000000, 0x2000000, CRC(56f50fdd) SHA1(8a5a4a99108c0279056998046c7b332e80121dee) )
|
||||
ROM_LOAD( "ax2904m01.mrom4", 0x7000000, 0x2000000, CRC(8a3ae175) SHA1(966f527a92e24c8eb770344697f2edf6140cf971) )
|
||||
ROM_LOAD( "ax2905m01.mrom5", 0x9000000, 0x2000000, CRC(429877ba) SHA1(88e1f3bc682b18d331e328ef8754065109cf9bda) )
|
||||
ROM_LOAD( "ax2906m01.mrom6", 0xb000000, 0x2000000, CRC(cb95298d) SHA1(5fb5d5a0d6801df61101a1b23de0c14ff29ef654) )
|
||||
ROM_LOAD( "ax2907m01.mrom7", 0xd000000, 0x2000000, CRC(48015081) SHA1(3c0a0a6dc9ab7bf889579477699e612c3092f9bf) )
|
||||
ROM_LOAD( "ax2901p01.fmem1", 0x0000000, 0x0800000, CRC(58e0030b) SHA1(ed8a66833beeb56d83770123eff28df0f25221d1) )
|
||||
ROM_LOAD( "ax2901m01.mrom1", 0x1000000, 0x2000000, CRC(dbbbd90d) SHA1(102ee0b249a3e0ca2f659b6c515816c522ad78d0) )
|
||||
ROM_LOAD( "ax2902m01.mrom2", 0x3000000, 0x2000000, CRC(a3bd7890) SHA1(9b8d934d6ebc3ef688cd8a6de47657a0663fea10) )
|
||||
ROM_LOAD( "ax2903m01.mrom3", 0x5000000, 0x2000000, CRC(56f50fdd) SHA1(8a5a4a99108c0279056998046c7b332e80121dee) )
|
||||
ROM_LOAD( "ax2904m01.mrom4", 0x7000000, 0x2000000, CRC(8a3ae175) SHA1(966f527a92e24c8eb770344697f2edf6140cf971) )
|
||||
ROM_LOAD( "ax2905m01.mrom5", 0x9000000, 0x2000000, CRC(429877ba) SHA1(88e1f3bc682b18d331e328ef8754065109cf9bda) )
|
||||
ROM_LOAD( "ax2906m01.mrom6", 0xb000000, 0x2000000, CRC(cb95298d) SHA1(5fb5d5a0d6801df61101a1b23de0c14ff29ef654) )
|
||||
ROM_LOAD( "ax2907m01.mrom7", 0xd000000, 0x2000000, CRC(48015081) SHA1(3c0a0a6dc9ab7bf889579477699e612c3092f9bf) )
|
||||
ROM_END
|
||||
|
||||
/* Atomiswave */
|
||||
|
@ -442,7 +442,7 @@ static const ym2610_interface ym2610_config =
|
||||
static MACHINE_CONFIG_START( neoprint, neoprint_state )
|
||||
MCFG_CPU_ADD("maincpu", M68000, 12000000)
|
||||
MCFG_CPU_PROGRAM_MAP(neoprint_map)
|
||||
// MCFG_CPU_PERIODIC_INT(irq3_line_hold,45) /* camera / printer irq, unknown timing */
|
||||
// MCFG_CPU_PERIODIC_INT(irq3_line_hold,45) /* camera / printer irq, unknown timing */
|
||||
MCFG_CPU_VBLANK_INT("screen", irq2_line_hold) // lv1,2,3 valid?
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 4000000)
|
||||
@ -484,7 +484,7 @@ static MACHINE_RESET( nprsp )
|
||||
static MACHINE_CONFIG_START( nprsp, neoprint_state )
|
||||
MCFG_CPU_ADD("maincpu", M68000, 12000000)
|
||||
MCFG_CPU_PROGRAM_MAP(nprsp_map)
|
||||
// MCFG_CPU_PERIODIC_INT(irq3_line_hold,45) /* camera / printer irq, unknown timing */
|
||||
// MCFG_CPU_PERIODIC_INT(irq3_line_hold,45) /* camera / printer irq, unknown timing */
|
||||
MCFG_CPU_VBLANK_INT("screen", irq2_line_hold) // lv1,2,3 valid?
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 4000000)
|
||||
|
@ -2071,7 +2071,7 @@ static INPUT_PORTS_START( funcube4 )
|
||||
// Inverted this dip by default to allow game to be played
|
||||
|
||||
PORT_MODIFY("DEBUG")
|
||||
PORT_DIPNAME( 0x00400000, 0x00000000, "Debug 6" )
|
||||
PORT_DIPNAME( 0x00400000, 0x00000000, "Debug 6" )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00400000, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
@ -639,8 +639,8 @@ static READ8_HANDLER( sammymdl_coin_hopper_r )
|
||||
{
|
||||
UINT8 ret = input_port_read(space->machine, "COIN");
|
||||
|
||||
// if ( !ticket_dispenser_r(space->machine->device("hopper"), 0) )
|
||||
// ret &= ~0x01;
|
||||
// if ( !ticket_dispenser_r(space->machine->device("hopper"), 0) )
|
||||
// ret &= ~0x01;
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -747,7 +747,7 @@ static WRITE8_HANDLER( itazuram_rombank_w )
|
||||
break;
|
||||
|
||||
// used in test mode:
|
||||
// case 0x5c: memory_set_bankptr(space->machine, "rombank", rom + 0x400 + 0x0000); break; // 3800 IS RAM! (8000 bytes)
|
||||
// case 0x5c: memory_set_bankptr(space->machine, "rombank", rom + 0x400 + 0x0000); break; // 3800 IS RAM! (8000 bytes)
|
||||
|
||||
case 0x5e: // 3800 IS RAM! (1404 bytes)
|
||||
memory_set_bankptr(space->machine, "rombank0", space->machine->generic.spriteram.u8 + 0x1000*1);
|
||||
@ -759,7 +759,7 @@ static WRITE8_HANDLER( itazuram_rombank_w )
|
||||
case 0x6c: // 3800 IS RAM! (1000 bytes) - SPRITERAM
|
||||
memory_set_bankptr(space->machine, "rombank0", space->machine->generic.spriteram.u8);
|
||||
memory_set_bankptr(space->machine, "sprbank0", space->machine->generic.spriteram.u8);
|
||||
// memory_set_bankptr(space->machine, "sprbank1", space->machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
// memory_set_bankptr(space->machine, "sprbank1", space->machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -856,7 +856,7 @@ static WRITE8_HANDLER( itazuram_nvram_palette_w )
|
||||
if (rambank == 0x64)
|
||||
{
|
||||
paletteram_xRRRRRGGGGGBBBBB_be_w(space, offset, data);
|
||||
// space->machine->generic.paletteram.u8[offset] = data;
|
||||
// space->machine->generic.paletteram.u8[offset] = data;
|
||||
}
|
||||
else if (rambank == 0x52)
|
||||
{
|
||||
@ -874,7 +874,7 @@ static WRITE8_HANDLER( itazuram_palette_w )
|
||||
{
|
||||
if (offset < 0x200)
|
||||
paletteram_xRRRRRGGGGGBBBBB_be_w(space, offset, data);
|
||||
// space->machine->generic.paletteram.u8[offset] = data;
|
||||
// space->machine->generic.paletteram.u8[offset] = data;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1200,7 +1200,7 @@ static MACHINE_CONFIG_START( itazuram, driver_device )
|
||||
MCFG_PALETTE_LENGTH(0x100)
|
||||
|
||||
MCFG_VIDEO_UPDATE(sigmab98)
|
||||
// MCFG_VIDEO_EOF(sammymdl)
|
||||
// MCFG_VIDEO_EOF(sammymdl)
|
||||
|
||||
// sound hardware
|
||||
// OKI MSM981x ?
|
||||
|
@ -180,51 +180,51 @@ static READ8_HANDLER( ss9601_reelram_lo_r )
|
||||
|
||||
mtrain:
|
||||
|
||||
80 = 00 40 = - L0 = 8x8 L1 = 8x8 ; title screen
|
||||
80 = 01 40 = - L0 = REEL L1 = 8x8 ; gameplay (center reel)
|
||||
80 = 01 40 = - L0 = REEL L1 = 8x8 ; girl slot (top, bottom reels)
|
||||
80 = 00 40 = - L0 = 8x8 L1 = 8x8 ; title screen
|
||||
80 = 01 40 = - L0 = REEL L1 = 8x8 ; gameplay (center reel)
|
||||
80 = 01 40 = - L0 = REEL L1 = 8x8 ; girl slot (top, bottom reels)
|
||||
|
||||
xtrain:
|
||||
|
||||
80 = 00 40 = FD L0 = - L1 = 8x8 ; ram test (disable = 01 -> L0 disabled)
|
||||
80 = 40 40 = FD L0 = REEL L1 = 8x8 ; game play (center reel) as well as "BONUS" screen (top reel)
|
||||
80 = 40 40 = FD L0 = REEL L1 = 8x8 ; lose/treasure slot (center reel)
|
||||
80 = 00 40 = BF L0 = 8x8 L1 = 8x8 ; car screen [L0 line scroll every 32]
|
||||
80 = 00 40 = EF L0 = 8x8 L1 = 8x8 ; title screen, L0 normal scroll (scrollram is 0) [L1 line scroll every 8]
|
||||
80 = 40 40 = 00 L0 = 8x16? L1 = 8x8 ; girl dancing
|
||||
80 = 00 40 = FF L0 = 8x8 L1 = 8x8 ; soft dsw screen
|
||||
80 = 00 40 = FD L0 = - L1 = 8x8 ; ram test (disable = 01 -> L0 disabled)
|
||||
80 = 40 40 = FD L0 = REEL L1 = 8x8 ; game play (center reel) as well as "BONUS" screen (top reel)
|
||||
80 = 40 40 = FD L0 = REEL L1 = 8x8 ; lose/treasure slot (center reel)
|
||||
80 = 00 40 = BF L0 = 8x8 L1 = 8x8 ; car screen [L0 line scroll every 32]
|
||||
80 = 00 40 = EF L0 = 8x8 L1 = 8x8 ; title screen, L0 normal scroll (scrollram is 0) [L1 line scroll every 8]
|
||||
80 = 40 40 = 00 L0 = 8x16? L1 = 8x8 ; girl dancing
|
||||
80 = 00 40 = FF L0 = 8x8 L1 = 8x8 ; soft dsw screen
|
||||
|
||||
xplan:
|
||||
|
||||
80 = 00 40 = FD L0 = - L1 = 8x8 ; ram test (disable = 01 -> L0 disabled)
|
||||
80 = 40 40 = BF L0 = 8x32 L1 = 8x8 ; title screen [L0 line scroll every 32, L1 line scroll disabled?] / 3 planes with scrolling clouds (before title screen)
|
||||
80 = 00 40 = EF L0 = 8x8 L1 = 8x8 ; parachutist and cars demo [L1 line scroll every 8]
|
||||
80 = 70 40 = FF L0 = 64x32 L1 = 8x8 ; shoot'em up demo / gambling demo
|
||||
80 = 00 40 = FF L0 = 8x8 L1 = 8x8 ; test mode and stat screens
|
||||
80 = 00 40 = FD L0 = - L1 = 8x8 ; ram test (disable = 01 -> L0 disabled)
|
||||
80 = 40 40 = BF L0 = 8x32 L1 = 8x8 ; title screen [L0 line scroll every 32, L1 line scroll disabled?] / 3 planes with scrolling clouds (before title screen)
|
||||
80 = 00 40 = EF L0 = 8x8 L1 = 8x8 ; parachutist and cars demo [L1 line scroll every 8]
|
||||
80 = 70 40 = FF L0 = 64x32 L1 = 8x8 ; shoot'em up demo / gambling demo
|
||||
80 = 00 40 = FF L0 = 8x8 L1 = 8x8 ; test mode and stat screens
|
||||
|
||||
bishjan:
|
||||
|
||||
80 = 00 40 = FD L0 = - L1 = 8x8 ; ram test (disable = 01 -> L0 disabled)
|
||||
80 = 00 40 = 0F L0 = 8x8 L1 = 8x8 ; soft dsw screen
|
||||
80 = 00 40 = 0x L0 = 8x8 L1 = 8x8 ; stat screens and gameplay (40 = 07/0d, seems a don't care)
|
||||
80 = 00 40 = FD L0 = - L1 = 8x8 ; ram test (disable = 01 -> L0 disabled)
|
||||
80 = 00 40 = 0F L0 = 8x8 L1 = 8x8 ; soft dsw screen
|
||||
80 = 00 40 = 0x L0 = 8x8 L1 = 8x8 ; stat screens and gameplay (40 = 07/0d, seems a don't care)
|
||||
|
||||
saklove:
|
||||
|
||||
80 = 00 40 = 0D L0 = - L1 = 8x8 ; ram test (disable = 01 -> L0 disabled)
|
||||
80 = 00 40 = 0D L0 = 8x8 L1 = 8x8 ; gameplay / square of tiles screen
|
||||
80 = 00 40 = 0F L0 = 8x8 L1 = 8x8 ; title screen / instructions / double up screen
|
||||
80 = 00 40 = 07 L0 = 8x8 L1 = 8x8 ; pool [L0 line scroll]
|
||||
80 = 00 40 = 0D L0 = - L1 = 8x8 ; ram test (disable = 01 -> L0 disabled)
|
||||
80 = 00 40 = 0D L0 = 8x8 L1 = 8x8 ; gameplay / square of tiles screen
|
||||
80 = 00 40 = 0F L0 = 8x8 L1 = 8x8 ; title screen / instructions / double up screen
|
||||
80 = 00 40 = 07 L0 = 8x8 L1 = 8x8 ; pool [L0 line scroll]
|
||||
|
||||
-----
|
||||
|
||||
More registers, at boot (never changed AFAICT):
|
||||
|
||||
mtrain saklove xtrain, expcard
|
||||
mtrain saklove xtrain, expcard
|
||||
xplan
|
||||
|
||||
|
||||
C0 = 0A C0 = 0A
|
||||
E0 = 18 E0 = 18
|
||||
|
||||
|
||||
9100 = 13 200 = 13 200 = 13 200 = 13
|
||||
9101 = 20 201 = 20 201 = 20 201 = 20
|
||||
9102 = 20 202 = 20 202 = 20 202 = 20
|
||||
@ -260,10 +260,10 @@ mtrain saklove xtrain, expcard
|
||||
9132 = 00 232 = FB 232 = FB 232 = FB
|
||||
9133 = 00 233 = FF 233 = FF 233 = FF
|
||||
9134 = 00 234 = 22 234 = 20 234 = 20
|
||||
9135 = 00 235 = 02
|
||||
9136 = 00
|
||||
9135 = 00 235 = 02
|
||||
9136 = 00
|
||||
9137 = 00 237 = 00 237 = 00 237 = 00
|
||||
|
||||
|
||||
9149 = FF 312 = FF 309 = FF 312 = FF
|
||||
914A = FF 311 = FF 30A = FF 311 = FF
|
||||
914B = FF 310 = FF 30B = FF 310 = FF
|
||||
@ -432,14 +432,14 @@ static VIDEO_START( subsino2 )
|
||||
ss9601_reelrects = mtrain_reelrects;
|
||||
|
||||
/*
|
||||
state_save_register_global_pointer(machine, ss9601_reelrams[VRAM_HI], 0x2000);
|
||||
state_save_register_global_pointer(machine, ss9601_reelrams[VRAM_LO], 0x2000);
|
||||
state_save_register_global_pointer(machine, ss9601_reelrams[VRAM_HI], 0x2000);
|
||||
state_save_register_global_pointer(machine, ss9601_reelrams[VRAM_LO], 0x2000);
|
||||
|
||||
state_save_register_global_pointer(machine, layers[0].scrollrams[VRAM_HI], 0x200);
|
||||
state_save_register_global_pointer(machine, layers[0].scrollrams[VRAM_LO], 0x200);
|
||||
state_save_register_global_pointer(machine, layers[0].scrollrams[VRAM_HI], 0x200);
|
||||
state_save_register_global_pointer(machine, layers[0].scrollrams[VRAM_LO], 0x200);
|
||||
|
||||
state_save_register_global_pointer(machine, layers[1].scrollrams[VRAM_HI], 0x200);
|
||||
state_save_register_global_pointer(machine, layers[1].scrollrams[VRAM_LO], 0x200);
|
||||
state_save_register_global_pointer(machine, layers[1].scrollrams[VRAM_HI], 0x200);
|
||||
state_save_register_global_pointer(machine, layers[1].scrollrams[VRAM_LO], 0x200);
|
||||
*/
|
||||
}
|
||||
|
||||
@ -571,7 +571,7 @@ static VIDEO_UPDATE( subsino2 )
|
||||
|
||||
if (layers_ctrl & 2) tilemap_draw(bitmap,cliprect, layers[1].tmap, 0, 0);
|
||||
|
||||
// popmessage("scrl: %03x,%03x - %03x,%03x dis: %02x siz: %02x ctrl: %02x", layers[0].scroll_x,layers[0].scroll_y, layers[1].scroll_x,layers[1].scroll_y, ss9601_disable, ss9601_tilesize, ss9601_scrollctrl);
|
||||
// popmessage("scrl: %03x,%03x - %03x,%03x dis: %02x siz: %02x ctrl: %02x", layers[0].scroll_x,layers[0].scroll_y, layers[1].scroll_x,layers[1].scroll_y, ss9601_disable, ss9601_tilesize, ss9601_scrollctrl);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -776,7 +776,7 @@ static WRITE16_HANDLER( bishjan_outputs_w )
|
||||
break;
|
||||
}
|
||||
|
||||
// popmessage("0: %04x", outputs16[0]);
|
||||
// popmessage("0: %04x", outputs16[0]);
|
||||
}
|
||||
|
||||
|
||||
@ -834,7 +834,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static WRITE8_HANDLER( expcard_outputs_w )
|
||||
{
|
||||
outputs[offset] = data;
|
||||
outputs[offset] = data;
|
||||
|
||||
switch (offset)
|
||||
{
|
||||
@ -861,7 +861,7 @@ static WRITE8_HANDLER( expcard_outputs_w )
|
||||
break;
|
||||
}
|
||||
|
||||
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", outputs[0], outputs[1], outputs[2], outputs[3]);
|
||||
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", outputs[0], outputs[1], outputs[2], outputs[3]);
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
@ -878,7 +878,7 @@ static WRITE8_HANDLER( mtrain_outputs_w )
|
||||
coin_counter_w(space->machine, 0, data & 0x01 ); // key in
|
||||
coin_counter_w(space->machine, 1, data & 0x02 ); // coin in
|
||||
coin_counter_w(space->machine, 2, data & 0x10 ); // pay out
|
||||
// coin_counter_w(space->machine, 3, data & 0x20 ); // hopper motor
|
||||
// coin_counter_w(space->machine, 3, data & 0x20 ); // hopper motor
|
||||
break;
|
||||
|
||||
case 1:
|
||||
@ -896,7 +896,7 @@ static WRITE8_HANDLER( mtrain_outputs_w )
|
||||
break;
|
||||
}
|
||||
|
||||
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", outputs[0], outputs[1], outputs[2], outputs[3]);
|
||||
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", outputs[0], outputs[1], outputs[2], outputs[3]);
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( mtrain_videoram_w )
|
||||
@ -1020,7 +1020,7 @@ static WRITE8_HANDLER( saklove_outputs_w )
|
||||
break;
|
||||
}
|
||||
|
||||
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", outputs[0], outputs[1], outputs[2], outputs[3]);
|
||||
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", outputs[0], outputs[1], outputs[2], outputs[3]);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( saklove_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
@ -1110,7 +1110,7 @@ static WRITE8_HANDLER( xplan_outputs_w )
|
||||
break;
|
||||
}
|
||||
|
||||
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", outputs[0], outputs[1], outputs[2], outputs[3]);
|
||||
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", outputs[0], outputs[1], outputs[2], outputs[3]);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( xplan_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
@ -1184,7 +1184,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static WRITE8_HANDLER( xtrain_outputs_w )
|
||||
{
|
||||
outputs[offset] = data;
|
||||
outputs[offset] = data;
|
||||
|
||||
switch (offset)
|
||||
{
|
||||
@ -1213,7 +1213,7 @@ static WRITE8_HANDLER( xtrain_outputs_w )
|
||||
break;
|
||||
}
|
||||
|
||||
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", outputs[0], outputs[1], outputs[2], outputs[3]);
|
||||
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", outputs[0], outputs[1], outputs[2], outputs[3]);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( expcard_io, ADDRESS_SPACE_IO, 8 )
|
||||
@ -2198,11 +2198,11 @@ ROM_END
|
||||
0000-8100? is not encrypted
|
||||
|
||||
rom addr
|
||||
8100 -> 0000 ; after decryption (code start)
|
||||
8200 -> 0100 ; after decryption
|
||||
8d97 -> 0c97 ; after decryption
|
||||
8100 -> 0000 ; after decryption (code start)
|
||||
8200 -> 0100 ; after decryption
|
||||
8d97 -> 0c97 ; after decryption
|
||||
1346 -> b346
|
||||
ec40 -> 6b40 ; after decryption
|
||||
ec40 -> 6b40 ; after decryption
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
@ -34,15 +34,15 @@ public:
|
||||
emu_timer * yscroll_reset_timer;
|
||||
UINT32 playfield_tile_bank[2];
|
||||
UINT32 videobank;
|
||||
|
||||
|
||||
// 720 fake joystick
|
||||
double joy_last_angle;
|
||||
int joy_rotations;
|
||||
|
||||
|
||||
// 720 fake spinner
|
||||
UINT32 spin_last_rotate_count;
|
||||
INT32 spin_pos; /* track fake position of spinner */
|
||||
UINT32 spin_center_count;
|
||||
UINT32 spin_last_rotate_count;
|
||||
INT32 spin_pos; /* track fake position of spinner */
|
||||
UINT32 spin_center_count;
|
||||
|
||||
UINT16 vram[0x8000/2];
|
||||
};
|
||||
|
@ -66,7 +66,7 @@ public:
|
||||
/* memory */
|
||||
UINT8 color_ram[0x400];
|
||||
UINT8 palette_ram[0x10];
|
||||
UINT8 character_ram[3 * 0x800]; /* only half is used, but
|
||||
UINT8 character_ram[3 * 0x800]; /* only half is used, but
|
||||
by allocating twice the amount,
|
||||
we can use the same gfx_layout */
|
||||
};
|
||||
|
@ -152,7 +152,7 @@ static WRITE8_DEVICE_HANDLER( b_via_1_pb_w )
|
||||
{
|
||||
beezer_timer1_w(device->machine->device("custom"), 0, data&0x80);
|
||||
//if ((data&0x1f) != 0x01)
|
||||
// popmessage("via1 pb low write of 0x%02x is not supported! contact mamedev!", data&0x1f);
|
||||
// popmessage("via1 pb low write of 0x%02x is not supported! contact mamedev!", data&0x1f);
|
||||
}
|
||||
|
||||
DRIVER_INIT( beezer )
|
||||
|
@ -275,7 +275,7 @@ static TIMER_CALLBACK( set_status_cb )
|
||||
|
||||
static void set_status(gaelco_serial_state *state, UINT8 mask, UINT8 set, int wait)
|
||||
{
|
||||
state->device->machine->scheduler().timer_set(attotime::from_hz(wait), FUNC(set_status_cb), (mask << 8)|set,
|
||||
state->device->machine->scheduler().timer_set(attotime::from_hz(wait), FUNC(set_status_cb), (mask << 8)|set,
|
||||
state);
|
||||
}
|
||||
|
||||
|
@ -322,7 +322,7 @@ const UINT8 rtypeleo_decryption_table[256] = {
|
||||
xxxx,xxxx,xxxx,xxxx,0x81,xxxx,0x79,xxxx,xxxx,0x24,0x23,xxxx,xxxx,0xb0,0x07,0xff, /* D0 */
|
||||
xxxx,0xba,0xf6,0x51,xxxx,xxxx,xxxx,0xfe,xxxx,0x92,xxxx,xxxx,xxxx,xxxx,0xe9,xxxx, /* E0 */
|
||||
xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0xe8,0xd2,xxxx,0x18,xxxx,xxxx,xxxx,0xd1,xxxx,xxxx, /* F0 */
|
||||
// ^^^^
|
||||
// ^^^^
|
||||
};
|
||||
// 0xf9 (0x18) opcode is right but arguments could be swapped
|
||||
// 0x80 (0x2b) not sure, could be 0x1b
|
||||
|
@ -1304,7 +1304,7 @@ static void setup_megadriv_sram(device_image_interface &image)
|
||||
switch (md_cart.type)
|
||||
{
|
||||
// These types only come from xml
|
||||
// TODO: Eventually megadriv_backupram should point to the allocated cart:sram region!
|
||||
// TODO: Eventually megadriv_backupram should point to the allocated cart:sram region!
|
||||
// For now, we only use the region as a placeholder to carry size info...
|
||||
case SEGA_SRAM:
|
||||
md_cart.sram_start = 0x200000;
|
||||
|
@ -345,7 +345,7 @@ static const int BarcrestStepTab[] =
|
||||
0, //0001->0110 1->6
|
||||
0, //0001->0111 1->7
|
||||
0, //0001->1000 1->8
|
||||
-1,//0001->1001 1->9 -1,//1001->1000 9->8
|
||||
-1,//0001->1001 1->9 -1,//1001->1000 9->8
|
||||
0, //0001->1010 1->A
|
||||
0, //0001->1011 1->B
|
||||
0, //0001->1100 1->C
|
||||
|
@ -1763,6 +1763,6 @@ void cave_get_sprite_info( running_machine *machine )
|
||||
static STATE_POSTLOAD( cave_sprite_postload )
|
||||
{
|
||||
/* FIXME: this is probably not the best way to restore the sprites,
|
||||
but it seems to work more or less (sprites may be wrong for one frame) */
|
||||
but it seems to work more or less (sprites may be wrong for one frame) */
|
||||
cave_get_sprite_info(machine);
|
||||
}
|
||||
|
@ -189,7 +189,7 @@ VIDEO_EOF( sprint8 )
|
||||
for (x = visarea.min_x; x <= visarea.max_x; x++)
|
||||
if (p1[x] != 0x20 && p2[x] == 0x23)
|
||||
machine->scheduler().timer_set(machine->primary_screen->time_until_pos(y + 24, x),
|
||||
FUNC(sprint8_collision_callback),
|
||||
FUNC(sprint8_collision_callback),
|
||||
colortable_entry_get_value(machine->colortable, p1[x]));
|
||||
}
|
||||
}
|
||||
|
@ -312,7 +312,7 @@ const options_entry mame_win_options[] =
|
||||
{ "prescale", "1", 0, "scale screen rendering by this amount in software" },
|
||||
{ "waitvsync", "0", OPTION_BOOLEAN, "enable waiting for the start of VBLANK before flipping screens; reduces tearing effects" },
|
||||
{ "syncrefresh", "0", OPTION_BOOLEAN, "enable using the start of VBLANK for throttling instead of the game time" },
|
||||
{ "menu", "0", OPTION_BOOLEAN, "enable menu bar if available by UI implementation" },
|
||||
{ "menu", "0", OPTION_BOOLEAN, "enable menu bar if available by UI implementation" },
|
||||
|
||||
// DirectDraw-specific options
|
||||
{ NULL, NULL, OPTION_HEADER, "DIRECTDRAW-SPECIFIC OPTIONS" },
|
||||
|
@ -64,4 +64,4 @@ LRESULT CALLBACK winwindow_video_window_proc_ui(HWND wnd, UINT message, WPARAM w
|
||||
int win_create_menu(running_machine *machine, HMENU *menus)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -10,4 +10,4 @@
|
||||
***************************************************************************/
|
||||
|
||||
extern const char build_version[];
|
||||
const char build_version[] = "0.141u1 ("__DATE__")";
|
||||
const char build_version[] = "0.141u2 ("__DATE__")";
|
||||
|
Loading…
Reference in New Issue
Block a user