mirror of
https://github.com/holub/mame
synced 2025-07-06 02:18:09 +03:00
Cleanups and version bump.
This commit is contained in:
parent
a38c67f27b
commit
4fa610aa02
@ -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)
|
if (inst.flags() == 0 && (UINT32)param.immediate() == 0)
|
||||||
;// skip
|
;// skip
|
||||||
else if (inst.flags() == 0 && (UINT32)param.immediate() == 0xffffffff)
|
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
|
else
|
||||||
emit_or_m32_imm(dst, memref, param.immediate()); // or [dest],param
|
emit_or_m32_imm(dst, memref, param.immediate()); // or [dest],param
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
//#define MCFG_DSP16_CONFIG(_config)
|
//#define MCFG_DSP16_CONFIG(_config)
|
||||||
// dsp16_device_config::static_set_config(device, _config);
|
// dsp16_device_config::static_set_config(device, _config);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -480,7 +480,7 @@ void dsp32c_device::state_export(const device_state_entry &entry)
|
|||||||
{
|
{
|
||||||
case STATE_GENFLAGS:
|
case STATE_GENFLAGS:
|
||||||
// no actual flags register, so just make something up
|
// no actual flags register, so just make something up
|
||||||
m_iotemp = ((zFLAG != 0) << 0) |
|
m_iotemp = ((zFLAG != 0) << 0) |
|
||||||
((nFLAG != 0) << 1) |
|
((nFLAG != 0) << 1) |
|
||||||
((cFLAG != 0) << 2) |
|
((cFLAG != 0) << 2) |
|
||||||
((vFLAG != 0) << 3) |
|
((vFLAG != 0) << 3) |
|
||||||
|
@ -146,7 +146,7 @@ struct dsp32_config
|
|||||||
|
|
||||||
// ======================> dsp32c_device_config
|
// ======================> dsp32c_device_config
|
||||||
|
|
||||||
class dsp32c_device_config : public cpu_device_config,
|
class dsp32c_device_config : public cpu_device_config,
|
||||||
public dsp32_config
|
public dsp32_config
|
||||||
{
|
{
|
||||||
friend class dsp32c_device;
|
friend class dsp32c_device;
|
||||||
|
@ -90,7 +90,7 @@
|
|||||||
#if EMULATE_MEMORY_LATENCY
|
#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 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 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) \
|
if (m_mbufaddr[++m_mbuf_index & 3] != 1) \
|
||||||
{ \
|
{ \
|
||||||
int bufidx = m_mbuf_index & 3; \
|
int bufidx = m_mbuf_index & 3; \
|
||||||
|
@ -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_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_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_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_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_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)
|
#define OVM() (IREG(TMR_ST) & OVMFLAG)
|
||||||
|
|
||||||
|
@ -850,7 +850,7 @@ protected:
|
|||||||
static UINT32 (tms3203x_device::*const s_indirect_1_def[0x20])(UINT32, UINT8, UINT32 *&);
|
static UINT32 (tms3203x_device::*const s_indirect_1_def[0x20])(UINT32, UINT8, UINT32 *&);
|
||||||
|
|
||||||
#if (TMS_3203X_LOG_OPCODE_USAGE)
|
#if (TMS_3203X_LOG_OPCODE_USAGE)
|
||||||
UINT32 m_hits[0x200*4];
|
UINT32 m_hits[0x200*4];
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -206,7 +206,7 @@ int device_sound_interface::outputs() const
|
|||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// input_to_stream_input - convert a device's
|
// 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
|
// on that stream
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
@ -233,7 +233,7 @@ sound_stream *device_sound_interface::input_to_stream_input(int inputnum, int &s
|
|||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// output_to_stream_output - convert a device'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
|
// on that stream
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
@ -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
|
// 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)
|
void device_sound_interface::set_output_gain(int outputnum, float gain)
|
||||||
|
@ -277,7 +277,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
// internal state
|
// 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:
|
private:
|
||||||
// internal state
|
// internal state
|
||||||
simple_list<T> m_list;
|
simple_list<T> m_list;
|
||||||
tagmap_t<T *> m_map;
|
tagmap_t<T *> m_map;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -419,25 +419,25 @@ static TIMER_CALLBACK( tx_timer_callback )
|
|||||||
if ((duart68681->duart_config->tx_callback) && ((duart68681->channel[ch].MR2&0xC0) != 0x80))
|
if ((duart68681->duart_config->tx_callback) && ((duart68681->channel[ch].MR2&0xC0) != 0x80))
|
||||||
duart68681->duart_config->tx_callback(device, ch, duart68681->channel[ch].tx_data);
|
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 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].MR2 & 0xC0) == 0x80)
|
||||||
{
|
{
|
||||||
if (duart68681->channel[ch].rx_fifo_num >= RX_FIFO_SIZE)
|
if (duart68681->channel[ch].rx_fifo_num >= RX_FIFO_SIZE)
|
||||||
{
|
{
|
||||||
LOG(( "68681: FIFO overflow\n" ));
|
LOG(( "68681: FIFO overflow\n" ));
|
||||||
duart68681->channel[ch].SR |= STATUS_OVERRUN_ERROR;
|
duart68681->channel[ch].SR |= STATUS_OVERRUN_ERROR;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
duart68681->channel[ch].rx_fifo[duart68681->channel[ch].rx_fifo_write_ptr++]
|
duart68681->channel[ch].rx_fifo[duart68681->channel[ch].rx_fifo_write_ptr++]
|
||||||
= duart68681->channel[ch].tx_data;
|
= duart68681->channel[ch].tx_data;
|
||||||
if (duart68681->channel[ch].rx_fifo_write_ptr == RX_FIFO_SIZE)
|
if (duart68681->channel[ch].rx_fifo_write_ptr == RX_FIFO_SIZE)
|
||||||
{
|
{
|
||||||
duart68681->channel[ch].rx_fifo_write_ptr = 0;
|
duart68681->channel[ch].rx_fifo_write_ptr = 0;
|
||||||
}
|
}
|
||||||
duart68681->channel[ch].rx_fifo_num++;
|
duart68681->channel[ch].rx_fifo_num++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
duart68681->channel[ch].tx_ready = 1;
|
duart68681->channel[ch].tx_ready = 1;
|
||||||
duart68681->channel[ch].SR |= STATUS_TRANSMITTER_READY;
|
duart68681->channel[ch].SR |= STATUS_TRANSMITTER_READY;
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
// MACROS / CONSTANTS
|
// MACROS / CONSTANTS
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
#define LOG 0
|
#define LOG 0
|
||||||
@ -292,7 +292,7 @@ void mc68901_device_config::device_config_complete()
|
|||||||
// or initialize to defaults if none provided
|
// or initialize to defaults if none provided
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// memset(&in_pa_func, 0, sizeof(in_pa_func));
|
// memset(&in_pa_func, 0, sizeof(in_pa_func));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
// MACROS / CONSTANTS
|
// MACROS / CONSTANTS
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
|
|
||||||
@ -64,7 +64,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
// TYPE DEFINITIONS
|
// TYPE DEFINITIONS
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
// ======================> mc68901_interface
|
// ======================> mc68901_interface
|
||||||
|
@ -208,7 +208,7 @@ private:
|
|||||||
|
|
||||||
// other internal states
|
// other internal states
|
||||||
emu_timer * m_callback_timer; // pointer to the current callback timer
|
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
|
attotime m_callback_timer_expire_time; // the original expiration time
|
||||||
|
|
||||||
// scheduling quanta
|
// scheduling quanta
|
||||||
@ -224,7 +224,7 @@ private:
|
|||||||
attoseconds_t m_requested; // duration of the requested quantum
|
attoseconds_t m_requested; // duration of the requested quantum
|
||||||
attotime m_expire; // absolute expiration time of this 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
|
fixed_allocator<quantum_slot> m_quantum_allocator; // allocator for quanta
|
||||||
attoseconds_t m_quantum_minimum; // duration of minimum quantum
|
attoseconds_t m_quantum_minimum; // duration of minimum quantum
|
||||||
};
|
};
|
||||||
|
@ -117,7 +117,7 @@ class sound_stream
|
|||||||
static const int OUTPUT_BUFFER_UPDATES = 5;
|
static const int OUTPUT_BUFFER_UPDATES = 5;
|
||||||
static const UINT32 FRAC_BITS = 22;
|
static const UINT32 FRAC_BITS = 22;
|
||||||
static const UINT32 FRAC_ONE = 1 << FRAC_BITS;
|
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
|
// 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);
|
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);
|
||||||
@ -254,12 +254,12 @@ private:
|
|||||||
running_machine & m_machine; // reference to our machine
|
running_machine & m_machine; // reference to our machine
|
||||||
emu_timer * m_update_timer; // timer to drive periodic updates
|
emu_timer * m_update_timer; // timer to drive periodic updates
|
||||||
|
|
||||||
UINT32 m_finalmix_leftover;
|
UINT32 m_finalmix_leftover;
|
||||||
INT16 * m_finalmix;
|
INT16 * m_finalmix;
|
||||||
INT32 * m_leftmix;
|
INT32 * m_leftmix;
|
||||||
INT32 * m_rightmix;
|
INT32 * m_rightmix;
|
||||||
|
|
||||||
UINT8 m_muted;
|
UINT8 m_muted;
|
||||||
int m_attenuation;
|
int m_attenuation;
|
||||||
int m_nosound_mode;
|
int m_nosound_mode;
|
||||||
|
|
||||||
|
@ -6,20 +6,20 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
Model Video Hz
|
Model Video Hz
|
||||||
|
|
||||||
TMS9918 NTSC 60
|
TMS9918 NTSC 60
|
||||||
TMS9918A NTSC 60
|
TMS9918A NTSC 60
|
||||||
TMS9118 NTSC 60
|
TMS9118 NTSC 60
|
||||||
V9938
|
V9938
|
||||||
V9958
|
V9958
|
||||||
V9990
|
V9990
|
||||||
|
|
||||||
TMS9928A YPbPr 60
|
TMS9928A YPbPr 60
|
||||||
TMS9128 YPbPr 60
|
TMS9128 YPbPr 60
|
||||||
|
|
||||||
TMS9929A YPbPr 50
|
TMS9929A YPbPr 50
|
||||||
TMS9129 YPbPr 50
|
TMS9129 YPbPr 50
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@ INLINE int sh6840_update_noise(beezer_sound_state *state, int clocks)
|
|||||||
{
|
{
|
||||||
state->sh6840_LFSR_clocks = 0;
|
state->sh6840_LFSR_clocks = 0;
|
||||||
/* shift the LFSR. finally or in the result and see if we've
|
/* shift the LFSR. finally or in the result and see if we've
|
||||||
* had a 0->1 transition */
|
* had a 0->1 transition */
|
||||||
newxor = (((state->sh6840_LFSR&0x10000)?1:0) ^ ((state->sh6840_LFSR&0x2000)?1:0))?1:0;
|
newxor = (((state->sh6840_LFSR&0x10000)?1:0) ^ ((state->sh6840_LFSR&0x2000)?1:0))?1:0;
|
||||||
state->sh6840_LFSR <<= 1;
|
state->sh6840_LFSR <<= 1;
|
||||||
state->sh6840_LFSR |= newxor;
|
state->sh6840_LFSR |= newxor;
|
||||||
@ -351,11 +351,11 @@ static STREAM_UPDATE( beezer_stream_update )
|
|||||||
|
|
||||||
/* stash */
|
/* stash */
|
||||||
/* each sample feeds an xor bit on the sign bit of a sign-magnitude (NOT 2'S COMPLEMENT)
|
/* 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:
|
* DAC. This requires some rather convoluted processing:
|
||||||
* samplex*0x80 brings the sample to the sign bit
|
* 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]&0x80 pulls the sign bit from the dac sample
|
||||||
* state->sh6840_volume[x]&0x7F pulls the magnitude 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 += (((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 += (((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);
|
sample += (((sample2*0x80)^(state->sh6840_volume[2]&0x80))?-1:1)*(state->sh6840_volume[2]&0x7F);
|
||||||
|
@ -2902,7 +2902,7 @@ MACHINE_CONFIG_END
|
|||||||
ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "redearth-simm5.1", 0x00000, 0x200000, CRC(9b8cb56b) SHA1(2ff1081dc99bb7c2f1e036f4c112137c96b83d23) ) \
|
ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "redearth-simm5.1", 0x00000, 0x200000, CRC(9b8cb56b) SHA1(2ff1081dc99bb7c2f1e036f4c112137c96b83d23) ) \
|
||||||
|
|
||||||
#define REDEARTH_961023_CDROM \
|
#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 */
|
/* CD sets - use CD BIOS roms */
|
||||||
|
@ -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:
|
TODO:
|
||||||
- somebody should port CPU core contents in a shared file;
|
- 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>();
|
dotrikun_state *state = space->machine->driver_data<dotrikun_state>();
|
||||||
/*
|
/*
|
||||||
x--- ---- screen color swap?
|
x--- ---- screen color swap?
|
||||||
---- -x-- B
|
---- -x-- B
|
||||||
---- --x- G
|
---- --x- G
|
||||||
---- ---x R
|
---- ---x R
|
||||||
*/
|
*/
|
||||||
|
|
||||||
state->color = data;
|
state->color = data;
|
||||||
space->machine->primary_screen->update_partial(space->machine->primary_screen->vpos());
|
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 )
|
EQUITES_PLAYER_INPUT_MSB( IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3, IPT_START2 )
|
||||||
|
|
||||||
PORT_START("IN1")
|
PORT_START("IN1")
|
||||||
// PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_COIN1 )
|
// PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||||
// PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
|
// PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
PORT_BIT( 0x0300, IP_ACTIVE_HIGH, IPT_COIN1 )
|
PORT_BIT( 0x0300, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||||
#if EASY_TEST_MODE
|
#if EASY_TEST_MODE
|
||||||
PORT_SERVICE( 0x0300, IP_ACTIVE_HIGH )
|
PORT_SERVICE( 0x0300, IP_ACTIVE_HIGH )
|
||||||
|
@ -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:
|
TODO:
|
||||||
- somebody should port CPU core contents in a shared file;
|
- 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_PROGRAM_MAP(lastbank_map)
|
||||||
MCFG_CPU_IO_MAP(lastbank_io)
|
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_START(lastbank)
|
||||||
//MCFG_MACHINE_RESET(lastbank)
|
//MCFG_MACHINE_RESET(lastbank)
|
||||||
|
@ -199,10 +199,10 @@ IRQ line connected to CPU
|
|||||||
|
|
||||||
TODO: - Fix lamp timing, MAME doesn't update fast enough to see everything
|
TODO: - Fix lamp timing, MAME doesn't update fast enough to see everything
|
||||||
- Distinguish door switches using manual
|
- Distinguish door switches using manual
|
||||||
- Complete stubs for hoppers (needs slightly better 68681 emulation, and new 'hoppers' device)
|
- 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
|
- 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
|
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.
|
- Add a BwB game with characteriser.
|
||||||
***********************************************************************************************************/
|
***********************************************************************************************************/
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "machine/6821pia.h"
|
#include "machine/6821pia.h"
|
||||||
@ -857,8 +857,8 @@ static WRITE8_DEVICE_HANDLER( pia_ic4_portb_w )
|
|||||||
if (reel_mux)
|
if (reel_mux)
|
||||||
{
|
{
|
||||||
/* A write here connects one reel (and only one)
|
/* A write here connects one reel (and only one)
|
||||||
to the optic test circuit. This allows 8 reels
|
to the optic test circuit. This allows 8 reels
|
||||||
to be supported instead of 4. */
|
to be supported instead of 4. */
|
||||||
if (reel_mux == SEVEN_REEL)
|
if (reel_mux == SEVEN_REEL)
|
||||||
{
|
{
|
||||||
active_reel= reel_mux_table7[(data >> 4) & 0x07];
|
active_reel= reel_mux_table7[(data >> 4) & 0x07];
|
||||||
@ -973,14 +973,14 @@ static READ8_DEVICE_HANDLER( pia_ic5_porta_r )
|
|||||||
}
|
}
|
||||||
if (hopper == HOPPER_NONDUART_A)
|
if (hopper == HOPPER_NONDUART_A)
|
||||||
{
|
{
|
||||||
/* if (hopper1_active)
|
/* if (hopper1_active)
|
||||||
{
|
{
|
||||||
aux1_input |= 0x04;
|
aux1_input |= 0x04;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aux1_input &= ~0x04;
|
aux1_input &= ~0x04;
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
LOG(("%s: IC5 PIA Read of Port A (AUX1)\n",device->machine->describe_context()));
|
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");
|
device_t *pia_ic5 = device->machine->device("pia_ic5");
|
||||||
if (hopper == HOPPER_NONDUART_B)
|
if (hopper == HOPPER_NONDUART_B)
|
||||||
{/*
|
{/*
|
||||||
if (hopper1_active)
|
if (hopper1_active)
|
||||||
{
|
{
|
||||||
aux2_input |= 0x08;
|
aux2_input |= 0x08;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aux2_input &= ~0x08;
|
aux2_input &= ~0x08;
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG(("%s: IC5 PIA Read of Port B (coin input AUX2)\n",device->machine->describe_context()));
|
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)
|
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)
|
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;
|
int i;
|
||||||
LOG_IC8(("%s: IC8 PIA Port B Set to %2x (OUTPUT PORT, TRIACS)\n", device->machine->describe_context(),data));
|
LOG_IC8(("%s: IC8 PIA Port B Set to %2x (OUTPUT PORT, TRIACS)\n", device->machine->describe_context(),data));
|
||||||
|
@ -172,7 +172,7 @@ TODO:
|
|||||||
- Hook up OKIM6376 sound in The Mating Game
|
- Hook up OKIM6376 sound in The Mating Game
|
||||||
- Get the BwB games running
|
- 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 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)
|
- 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 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
|
- Deal 'Em has bad tiles (apostrophe, logo, bottom corner), black should actually be transparent
|
||||||
@ -1160,7 +1160,7 @@ WRITE16_HANDLER( bt471_w )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// default:
|
// default:
|
||||||
{
|
{
|
||||||
popmessage("Bt477: Unhandled write access (offset:%x, data:%x)", offset, val);
|
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(0x900000, 0x900001) AM_DEVWRITE8("saa", saa1099_data_w, 0x00ff)
|
||||||
AM_RANGE(0x900002, 0x900003) AM_DEVWRITE8("saa", saa1099_control_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, 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(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(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)
|
AM_RANGE(0xc00000, 0xc1ffff) AM_READWRITE(mpu4_vid_vidram_r, mpu4_vid_vidram_w)
|
||||||
|
@ -6,10 +6,10 @@ driver todo:
|
|||||||
- lots of external artwork
|
- lots of external artwork
|
||||||
|
|
||||||
To diagnose game, turn on service mode and:
|
To diagnose game, turn on service mode and:
|
||||||
- test RAM/ROM, leds, lamps: reset with shifter in neutral
|
- 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 sound and misc input: turn on DSW 7 and reset with shifter in neutral
|
||||||
- test accelerator: reset with shifter in 1st gear
|
- test accelerator: reset with shifter in 1st gear
|
||||||
- test steering wheel: reset with shifter in 2nd gear
|
- test steering wheel: reset with shifter in 2nd gear
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -357,7 +357,7 @@ READ32_HANDLER( nand_data_r )
|
|||||||
{
|
{
|
||||||
UINT32 data = nand_read2( nand_address * 2 );
|
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++;
|
nand_address++;
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
|
@ -442,7 +442,7 @@ static const ym2610_interface ym2610_config =
|
|||||||
static MACHINE_CONFIG_START( neoprint, neoprint_state )
|
static MACHINE_CONFIG_START( neoprint, neoprint_state )
|
||||||
MCFG_CPU_ADD("maincpu", M68000, 12000000)
|
MCFG_CPU_ADD("maincpu", M68000, 12000000)
|
||||||
MCFG_CPU_PROGRAM_MAP(neoprint_map)
|
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_VBLANK_INT("screen", irq2_line_hold) // lv1,2,3 valid?
|
||||||
|
|
||||||
MCFG_CPU_ADD("audiocpu", Z80, 4000000)
|
MCFG_CPU_ADD("audiocpu", Z80, 4000000)
|
||||||
@ -484,7 +484,7 @@ static MACHINE_RESET( nprsp )
|
|||||||
static MACHINE_CONFIG_START( nprsp, neoprint_state )
|
static MACHINE_CONFIG_START( nprsp, neoprint_state )
|
||||||
MCFG_CPU_ADD("maincpu", M68000, 12000000)
|
MCFG_CPU_ADD("maincpu", M68000, 12000000)
|
||||||
MCFG_CPU_PROGRAM_MAP(nprsp_map)
|
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_VBLANK_INT("screen", irq2_line_hold) // lv1,2,3 valid?
|
||||||
|
|
||||||
MCFG_CPU_ADD("audiocpu", Z80, 4000000)
|
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
|
// Inverted this dip by default to allow game to be played
|
||||||
|
|
||||||
PORT_MODIFY("DEBUG")
|
PORT_MODIFY("DEBUG")
|
||||||
PORT_DIPNAME( 0x00400000, 0x00000000, "Debug 6" )
|
PORT_DIPNAME( 0x00400000, 0x00000000, "Debug 6" )
|
||||||
PORT_DIPSETTING( 0x00000000, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x00000000, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00400000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00400000, DEF_STR( On ) )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
@ -639,8 +639,8 @@ static READ8_HANDLER( sammymdl_coin_hopper_r )
|
|||||||
{
|
{
|
||||||
UINT8 ret = input_port_read(space->machine, "COIN");
|
UINT8 ret = input_port_read(space->machine, "COIN");
|
||||||
|
|
||||||
// if ( !ticket_dispenser_r(space->machine->device("hopper"), 0) )
|
// if ( !ticket_dispenser_r(space->machine->device("hopper"), 0) )
|
||||||
// ret &= ~0x01;
|
// ret &= ~0x01;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -747,7 +747,7 @@ static WRITE8_HANDLER( itazuram_rombank_w )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
// used in test mode:
|
// 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)
|
case 0x5e: // 3800 IS RAM! (1404 bytes)
|
||||||
memory_set_bankptr(space->machine, "rombank0", space->machine->generic.spriteram.u8 + 0x1000*1);
|
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
|
case 0x6c: // 3800 IS RAM! (1000 bytes) - SPRITERAM
|
||||||
memory_set_bankptr(space->machine, "rombank0", space->machine->generic.spriteram.u8);
|
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, "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;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -856,7 +856,7 @@ static WRITE8_HANDLER( itazuram_nvram_palette_w )
|
|||||||
if (rambank == 0x64)
|
if (rambank == 0x64)
|
||||||
{
|
{
|
||||||
paletteram_xRRRRRGGGGGBBBBB_be_w(space, offset, data);
|
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)
|
else if (rambank == 0x52)
|
||||||
{
|
{
|
||||||
@ -874,7 +874,7 @@ static WRITE8_HANDLER( itazuram_palette_w )
|
|||||||
{
|
{
|
||||||
if (offset < 0x200)
|
if (offset < 0x200)
|
||||||
paletteram_xRRRRRGGGGGBBBBB_be_w(space, offset, data);
|
paletteram_xRRRRRGGGGGBBBBB_be_w(space, offset, data);
|
||||||
// space->machine->generic.paletteram.u8[offset] = data;
|
// space->machine->generic.paletteram.u8[offset] = data;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1200,7 +1200,7 @@ static MACHINE_CONFIG_START( itazuram, driver_device )
|
|||||||
MCFG_PALETTE_LENGTH(0x100)
|
MCFG_PALETTE_LENGTH(0x100)
|
||||||
|
|
||||||
MCFG_VIDEO_UPDATE(sigmab98)
|
MCFG_VIDEO_UPDATE(sigmab98)
|
||||||
// MCFG_VIDEO_EOF(sammymdl)
|
// MCFG_VIDEO_EOF(sammymdl)
|
||||||
|
|
||||||
// sound hardware
|
// sound hardware
|
||||||
// OKI MSM981x ?
|
// OKI MSM981x ?
|
||||||
|
@ -180,46 +180,46 @@ static READ8_HANDLER( ss9601_reelram_lo_r )
|
|||||||
|
|
||||||
mtrain:
|
mtrain:
|
||||||
|
|
||||||
80 = 00 40 = - L0 = 8x8 L1 = 8x8 ; title screen
|
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 ; gameplay (center reel)
|
||||||
80 = 01 40 = - L0 = REEL L1 = 8x8 ; girl slot (top, bottom reels)
|
80 = 01 40 = - L0 = REEL L1 = 8x8 ; girl slot (top, bottom reels)
|
||||||
|
|
||||||
xtrain:
|
xtrain:
|
||||||
|
|
||||||
80 = 00 40 = FD L0 = - L1 = 8x8 ; ram test (disable = 01 -> L0 disabled)
|
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 ; 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 = 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 = 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 = 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 = 40 40 = 00 L0 = 8x16? L1 = 8x8 ; girl dancing
|
||||||
80 = 00 40 = FF L0 = 8x8 L1 = 8x8 ; soft dsw screen
|
80 = 00 40 = FF L0 = 8x8 L1 = 8x8 ; soft dsw screen
|
||||||
|
|
||||||
xplan:
|
xplan:
|
||||||
|
|
||||||
80 = 00 40 = FD L0 = - L1 = 8x8 ; ram test (disable = 01 -> L0 disabled)
|
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 = 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 = 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 = 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 = FF L0 = 8x8 L1 = 8x8 ; test mode and stat screens
|
||||||
|
|
||||||
bishjan:
|
bishjan:
|
||||||
|
|
||||||
80 = 00 40 = FD L0 = - L1 = 8x8 ; ram test (disable = 01 -> L0 disabled)
|
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 = 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 = 0x L0 = 8x8 L1 = 8x8 ; stat screens and gameplay (40 = 07/0d, seems a don't care)
|
||||||
|
|
||||||
saklove:
|
saklove:
|
||||||
|
|
||||||
80 = 00 40 = 0D L0 = - L1 = 8x8 ; ram test (disable = 01 -> L0 disabled)
|
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 = 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 = 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 = 07 L0 = 8x8 L1 = 8x8 ; pool [L0 line scroll]
|
||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
More registers, at boot (never changed AFAICT):
|
More registers, at boot (never changed AFAICT):
|
||||||
|
|
||||||
mtrain saklove xtrain, expcard
|
mtrain saklove xtrain, expcard
|
||||||
xplan
|
xplan
|
||||||
|
|
||||||
C0 = 0A C0 = 0A
|
C0 = 0A C0 = 0A
|
||||||
@ -432,14 +432,14 @@ static VIDEO_START( subsino2 )
|
|||||||
ss9601_reelrects = mtrain_reelrects;
|
ss9601_reelrects = mtrain_reelrects;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
state_save_register_global_pointer(machine, ss9601_reelrams[VRAM_HI], 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, 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_HI], 0x200);
|
||||||
state_save_register_global_pointer(machine, layers[0].scrollrams[VRAM_LO], 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_HI], 0x200);
|
||||||
state_save_register_global_pointer(machine, layers[1].scrollrams[VRAM_LO], 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);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -776,7 +776,7 @@ static WRITE16_HANDLER( bishjan_outputs_w )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// popmessage("0: %04x", outputs16[0]);
|
// popmessage("0: %04x", outputs16[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -861,7 +861,7 @@ static WRITE8_HANDLER( expcard_outputs_w )
|
|||||||
break;
|
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, 0, data & 0x01 ); // key in
|
||||||
coin_counter_w(space->machine, 1, data & 0x02 ); // coin 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, 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;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
@ -896,7 +896,7 @@ static WRITE8_HANDLER( mtrain_outputs_w )
|
|||||||
break;
|
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 )
|
static WRITE8_HANDLER( mtrain_videoram_w )
|
||||||
@ -1020,7 +1020,7 @@ static WRITE8_HANDLER( saklove_outputs_w )
|
|||||||
break;
|
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 )
|
static ADDRESS_MAP_START( saklove_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
@ -1110,7 +1110,7 @@ static WRITE8_HANDLER( xplan_outputs_w )
|
|||||||
break;
|
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 )
|
static ADDRESS_MAP_START( xplan_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
@ -1213,7 +1213,7 @@ static WRITE8_HANDLER( xtrain_outputs_w )
|
|||||||
break;
|
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 )
|
static ADDRESS_MAP_START( expcard_io, ADDRESS_SPACE_IO, 8 )
|
||||||
@ -2198,11 +2198,11 @@ ROM_END
|
|||||||
0000-8100? is not encrypted
|
0000-8100? is not encrypted
|
||||||
|
|
||||||
rom addr
|
rom addr
|
||||||
8100 -> 0000 ; after decryption (code start)
|
8100 -> 0000 ; after decryption (code start)
|
||||||
8200 -> 0100 ; after decryption
|
8200 -> 0100 ; after decryption
|
||||||
8d97 -> 0c97 ; after decryption
|
8d97 -> 0c97 ; after decryption
|
||||||
1346 -> b346
|
1346 -> b346
|
||||||
ec40 -> 6b40 ; after decryption
|
ec40 -> 6b40 ; after decryption
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
@ -40,9 +40,9 @@ public:
|
|||||||
int joy_rotations;
|
int joy_rotations;
|
||||||
|
|
||||||
// 720 fake spinner
|
// 720 fake spinner
|
||||||
UINT32 spin_last_rotate_count;
|
UINT32 spin_last_rotate_count;
|
||||||
INT32 spin_pos; /* track fake position of spinner */
|
INT32 spin_pos; /* track fake position of spinner */
|
||||||
UINT32 spin_center_count;
|
UINT32 spin_center_count;
|
||||||
|
|
||||||
UINT16 vram[0x8000/2];
|
UINT16 vram[0x8000/2];
|
||||||
};
|
};
|
||||||
|
@ -66,7 +66,7 @@ public:
|
|||||||
/* memory */
|
/* memory */
|
||||||
UINT8 color_ram[0x400];
|
UINT8 color_ram[0x400];
|
||||||
UINT8 palette_ram[0x10];
|
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,
|
by allocating twice the amount,
|
||||||
we can use the same gfx_layout */
|
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);
|
beezer_timer1_w(device->machine->device("custom"), 0, data&0x80);
|
||||||
//if ((data&0x1f) != 0x01)
|
//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 )
|
DRIVER_INIT( beezer )
|
||||||
|
@ -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,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,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 */
|
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
|
// 0xf9 (0x18) opcode is right but arguments could be swapped
|
||||||
// 0x80 (0x2b) not sure, could be 0x1b
|
// 0x80 (0x2b) not sure, could be 0x1b
|
||||||
|
@ -345,7 +345,7 @@ static const int BarcrestStepTab[] =
|
|||||||
0, //0001->0110 1->6
|
0, //0001->0110 1->6
|
||||||
0, //0001->0111 1->7
|
0, //0001->0111 1->7
|
||||||
0, //0001->1000 1->8
|
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->1010 1->A
|
||||||
0, //0001->1011 1->B
|
0, //0001->1011 1->B
|
||||||
0, //0001->1100 1->C
|
0, //0001->1100 1->C
|
||||||
|
@ -1763,6 +1763,6 @@ void cave_get_sprite_info( running_machine *machine )
|
|||||||
static STATE_POSTLOAD( cave_sprite_postload )
|
static STATE_POSTLOAD( cave_sprite_postload )
|
||||||
{
|
{
|
||||||
/* FIXME: this is probably not the best way to restore the sprites,
|
/* 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);
|
cave_get_sprite_info(machine);
|
||||||
}
|
}
|
||||||
|
@ -312,7 +312,7 @@ const options_entry mame_win_options[] =
|
|||||||
{ "prescale", "1", 0, "scale screen rendering by this amount in software" },
|
{ "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" },
|
{ "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" },
|
{ "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
|
// DirectDraw-specific options
|
||||||
{ NULL, NULL, OPTION_HEADER, "DIRECTDRAW-SPECIFIC OPTIONS" },
|
{ NULL, NULL, OPTION_HEADER, "DIRECTDRAW-SPECIFIC OPTIONS" },
|
||||||
|
@ -10,4 +10,4 @@
|
|||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
extern const char build_version[];
|
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