mirror of
https://github.com/holub/mame
synced 2025-05-05 05:53:05 +03:00
Cleanups and version bump.
This commit is contained in:
parent
8dac65b955
commit
ffc97bd35d
@ -1801,7 +1801,7 @@ static size_t dsp56k_op_asl4(const UINT16 op, UINT8* cycles)
|
||||
/* - ? * * * * ? ? */
|
||||
/* TODO: L, E, U */
|
||||
/* V - Set if an arithmetic overflow occurs in the 40 bit result. Also set if bit 35 through 39 are
|
||||
not the same. */
|
||||
not the same. */
|
||||
/* C - Set if bit 36 of source operand is set. Cleared otherwise. */
|
||||
if (*((UINT64*)D.addr) & U64(0x0000008000000000)) N_bit_set(1); else N_bit_set(0);
|
||||
if (*((UINT64*)D.addr) == 0) Z_bit_set(1); else Z_bit_set(0);
|
||||
|
@ -188,7 +188,7 @@ enum
|
||||
|
||||
/* 8052 Only Vectors */
|
||||
V_TF2 = 0x02b, /* Timer 2 Overflow */
|
||||
|
||||
|
||||
/* DS5002FP */
|
||||
V_PFI = 0x02b, /* Power Failure Interrupt */
|
||||
};
|
||||
@ -228,7 +228,7 @@ struct _mcs51_regs
|
||||
int t2_cnt; /* number of 0->1 transistions on T2 line */
|
||||
int t2ex_cnt; /* number of 0->1 transistions on T2EX line */
|
||||
int cur_irq_prio; /* Holds value of the current IRQ Priority Level; -1 if no irq */
|
||||
UINT8 irq_active; /* mask which irq levels are serviced */
|
||||
UINT8 irq_active; /* mask which irq levels are serviced */
|
||||
UINT8 irq_prio[8]; /* interrupt priority */
|
||||
|
||||
mcs51_uart uart; /* internal uart */
|
||||
@ -474,9 +474,9 @@ struct _mcs51_regs
|
||||
#define SET_CT2(n) SET_BIT(T2CON, 1, n) //Sets Timer 2 Counter/Timer Mode
|
||||
#define SET_CP(n) SET_BIT(T2CON, 0, n) //Sets Timer 2 Capture/Reload Mode
|
||||
|
||||
#define SET_GF1(n) SET_BIT(PCON, 3, n)
|
||||
#define SET_GF1(n) SET_BIT(PCON, 3, n)
|
||||
#define SET_GF0(n) SET_BIT(PCON, 2, n)
|
||||
#define SET_PD(n) SET_BIT(PCON, 1, n)
|
||||
#define SET_PD(n) SET_BIT(PCON, 1, n)
|
||||
#define SET_IDL(n) SET_BIT(PCON, 0, n)
|
||||
|
||||
/* Macros for accessing flags */
|
||||
@ -536,9 +536,9 @@ struct _mcs51_regs
|
||||
|
||||
/* Only in 80C51BH & other cmos */
|
||||
|
||||
#define GET_GF1 GET_BIT(PCON, 3)
|
||||
#define GET_GF1 GET_BIT(PCON, 3)
|
||||
#define GET_GF0 GET_BIT(PCON, 2)
|
||||
#define GET_PD GET_BIT(PCON, 1)
|
||||
#define GET_PD GET_BIT(PCON, 1)
|
||||
#define GET_IDL (GET_BIT(PCON, 0) & ~(GET_PD)) /* PD takes precedence! */
|
||||
|
||||
/* 8052 Only flags */
|
||||
@ -630,20 +630,20 @@ static int (*hold_serial_rx_callback)(void);
|
||||
INLINE FUNCTIONS
|
||||
***************************************************************************/
|
||||
|
||||
INLINE void clear_current_irq(void)
|
||||
INLINE void clear_current_irq(void)
|
||||
{
|
||||
//printf("reti cip %d, act %02x\n",mcs51.cur_irq_prio, mcs51.irq_active);
|
||||
//assert(mcs51.cur_irq_prio >= 0 && mcs51.irq_active);
|
||||
|
||||
|
||||
if (mcs51.cur_irq_prio >= 0)
|
||||
mcs51.irq_active &= ~(1 << mcs51.cur_irq_prio);
|
||||
mcs51.irq_active &= ~(1 << mcs51.cur_irq_prio);
|
||||
if (mcs51.irq_active & 4)
|
||||
mcs51.cur_irq_prio = 2;
|
||||
else if (mcs51.irq_active & 2)
|
||||
mcs51.cur_irq_prio = 1;
|
||||
else if (mcs51.irq_active & 1)
|
||||
mcs51.cur_irq_prio = 0;
|
||||
else
|
||||
else
|
||||
mcs51.cur_irq_prio = -1;
|
||||
LOG(("New: %d %02x\n", mcs51.cur_irq_prio, mcs51.irq_active));
|
||||
}
|
||||
@ -967,17 +967,17 @@ INLINE void update_timer_t0(int cycles)
|
||||
|
||||
/* From the DS5002FP User Manual
|
||||
When Timer 1 is selected for operation in Mode 3, it stops counting and holds its current value. This
|
||||
action is the same as setting TR1 = 0. When Timer 0 is selected in Mode 3, Timer 1’s control bits are
|
||||
stolen as described above. As a result, Timer 1’s functions are limited in this MODE. It is forced to
|
||||
action is the same as setting TR1 = 0. When Timer 0 is selected in Mode 3, Timer 1???s control bits are
|
||||
stolen as described above. As a result, Timer 1???s functions are limited in this MODE. It is forced to
|
||||
operate as a timer whose clock in-put is 12 tCLK and it cannot generate an interrupt on overflow. In
|
||||
addition, it also cannot be used with the GATE function. However, it can be started and stopped by
|
||||
switching it into or out of Mode 3 or it can be assigned as a baud rate generator for the serial port.
|
||||
*/
|
||||
|
||||
/* Intel documentation:
|
||||
* Timer 1 may still be used in modes 0, 1, and 2, while timer 0
|
||||
* is in mode 3. With one important exception: No interrupts
|
||||
* will be generated by timer 1 while timer 0 is using the TF1
|
||||
* Timer 1 may still be used in modes 0, 1, and 2, while timer 0
|
||||
* is in mode 3. With one important exception: No interrupts
|
||||
* will be generated by timer 1 while timer 0 is using the TF1
|
||||
* overflow flag
|
||||
*/
|
||||
|
||||
@ -993,17 +993,17 @@ INLINE void update_timer_t1(int cycles)
|
||||
{
|
||||
UINT32 delta;
|
||||
UINT32 overflow = 0;
|
||||
|
||||
|
||||
/* counter / external input */
|
||||
delta = GET_CT1 ? mcs51.t1_cnt : cycles;
|
||||
/* taken, reset */
|
||||
mcs51.t1_cnt = 0;
|
||||
/* TODO: Not sure about IE0. The manual specifies INT0=high,
|
||||
* which in turn means CLEAR_LINE. Change to access last_state?
|
||||
* IE0 may be edge triggered depending on IT0 */
|
||||
* which in turn means CLEAR_LINE. Change to access last_state?
|
||||
* IE0 may be edge triggered depending on IT0 */
|
||||
if (GET_GATE1 && !GET_IE1)
|
||||
delta = 0;
|
||||
|
||||
|
||||
//printf("mode: %d\n", mode);
|
||||
switch(mode) {
|
||||
case 0: /* 13 Bit Timer Mode */
|
||||
@ -1040,12 +1040,12 @@ INLINE void update_timer_t1(int cycles)
|
||||
transmit_receive(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
UINT32 delta;
|
||||
UINT32 overflow = 0;
|
||||
|
||||
|
||||
delta = cycles;
|
||||
/* taken, reset */
|
||||
mcs51.t1_cnt = 0;
|
||||
@ -1612,7 +1612,7 @@ static void check_irqs(void)
|
||||
int i;
|
||||
|
||||
//If All Inerrupts Disabled or no pending abort..
|
||||
int_mask = (GET_EA ? IE : 0x00);
|
||||
int_mask = (GET_EA ? IE : 0x00);
|
||||
|
||||
if (mcs51.features & FEATURE_I8052)
|
||||
ints |= ((GET_TF2|GET_EXF2)<<5);
|
||||
@ -1630,9 +1630,9 @@ static void check_irqs(void)
|
||||
/* mask out interrupts not enabled */
|
||||
ints &= int_mask;
|
||||
}
|
||||
|
||||
|
||||
if (!ints) return;
|
||||
|
||||
|
||||
/* CLear IDL - got enabled interrupt */
|
||||
if (mcs51.features & FEATURE_CMOS)
|
||||
{
|
||||
@ -1658,9 +1658,9 @@ static void check_irqs(void)
|
||||
}
|
||||
|
||||
/* Skip the interrupt request if currently processing interrupt
|
||||
* and the new request does not have a higher priority
|
||||
*/
|
||||
|
||||
* and the new request does not have a higher priority
|
||||
*/
|
||||
|
||||
LOG(("Request: %d\n", priority_request));
|
||||
if (mcs51.irq_active && (priority_request <= mcs51.cur_irq_prio))
|
||||
{
|
||||
@ -1722,9 +1722,9 @@ static void check_irqs(void)
|
||||
break;
|
||||
/* DS5002FP specific */
|
||||
/* case V_PFI:
|
||||
* no flags are cleared, PFW is reset by software
|
||||
* This has the same vector as V_TF2.
|
||||
*/
|
||||
* no flags are cleared, PFW is reset by software
|
||||
* This has the same vector as V_TF2.
|
||||
*/
|
||||
|
||||
}
|
||||
}
|
||||
@ -1901,7 +1901,7 @@ static int mcs51_execute(int cycles)
|
||||
|
||||
/* burn the cycles */
|
||||
mcs51_icount -= mcs51.inst_cycles;
|
||||
|
||||
|
||||
/* if in powerdown, just return */
|
||||
if ((mcs51.features & FEATURE_CMOS) && GET_PD)
|
||||
return cycles - mcs51_icount;
|
||||
@ -2261,10 +2261,10 @@ static void ds5002fp_sfr_write(size_t offset, UINT8 data)
|
||||
switch (offset)
|
||||
{
|
||||
|
||||
case ADDR_TA:
|
||||
case ADDR_TA:
|
||||
mcs51.ds5002fp.previous_ta = TA;
|
||||
/* init the time window after having wrote 0xaa */
|
||||
if ((data == 0xaa) && (mcs51.ds5002fp.ta_window == 0))
|
||||
if ((data == 0xaa) && (mcs51.ds5002fp.ta_window == 0))
|
||||
{
|
||||
mcs51.ds5002fp.ta_window = 6; /* 4*12 + 2*12 */
|
||||
LOG(("ds5002fp #%d: TA window initiated at 0x%04x\n", cpu_getactivecpu(), PC));
|
||||
@ -2611,14 +2611,14 @@ void i8752_get_info(UINT32 state, cpuinfo *info)
|
||||
void i80c31_get_info(UINT32 state, cpuinfo *info)
|
||||
{
|
||||
/* according to PHILIPS datasheet this is a stripped down version
|
||||
* of i80c52 with 128 bytes internal ram */
|
||||
* of i80c52 with 128 bytes internal ram */
|
||||
switch (state)
|
||||
{
|
||||
case CPUINFO_PTR_INIT: info->init = i80c31_init; break;
|
||||
|
||||
case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map8 = NULL; break;
|
||||
case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map8 = address_map_data_7bit; break;
|
||||
|
||||
|
||||
case CPUINFO_STR_NAME: strcpy(info->s, "I80C31"); break;
|
||||
default: i8031_get_info(state, info); break;
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ enum
|
||||
MCS51_T1_LINE, /* P3.5: Timer 1 External Input */
|
||||
MCS51_T2_LINE, /* P1.0: Timer 2 External Input */
|
||||
MCS51_T2EX_LINE, /* P1.1: Timer 2 Capture Reload Trigger */
|
||||
|
||||
|
||||
DS5002FP_PFI_LINE, /* DS5002FP Power fail interrupt */
|
||||
};
|
||||
|
||||
|
@ -166,7 +166,7 @@ typedef struct
|
||||
memory_interface mem;
|
||||
|
||||
const nec_config *config;
|
||||
|
||||
|
||||
UINT8 prefetch_size;
|
||||
UINT8 prefetch_cycles;
|
||||
INT8 prefetch_count;
|
||||
@ -202,13 +202,13 @@ INLINE void prefetch(void)
|
||||
static void do_prefetch(int previous_ICount)
|
||||
{
|
||||
int diff = previous_ICount - (int) nec_ICount;
|
||||
|
||||
|
||||
/* The implementation is not accurate, but comes close.
|
||||
* It does not respect that the V30 will fetch two bytes
|
||||
* at once directly, but instead uses only 2 cycles instead
|
||||
* of 4. There are however only very few sources publicy
|
||||
* available and they are vague.
|
||||
*/
|
||||
* It does not respect that the V30 will fetch two bytes
|
||||
* at once directly, but instead uses only 2 cycles instead
|
||||
* of 4. There are however only very few sources publicy
|
||||
* available and they are vague.
|
||||
*/
|
||||
while (I.prefetch_count<0)
|
||||
{
|
||||
I.prefetch_count++;
|
||||
@ -233,13 +233,13 @@ static void do_prefetch(int previous_ICount)
|
||||
|
||||
}
|
||||
|
||||
INLINE UINT8 fetch(void)
|
||||
INLINE UINT8 fetch(void)
|
||||
{
|
||||
prefetch();
|
||||
return cpu_readop_arg(FETCH_XOR((I.sregs[PS]<<4)+I.ip++));
|
||||
}
|
||||
|
||||
INLINE UINT16 fetchword(void)
|
||||
INLINE UINT16 fetchword(void)
|
||||
{
|
||||
UINT16 r = FETCH();
|
||||
r |= (FETCH()<<8);
|
||||
@ -257,7 +257,7 @@ static UINT8 parity_table[256];
|
||||
static UINT8 fetchop(void)
|
||||
{
|
||||
UINT8 ret;
|
||||
|
||||
|
||||
prefetch();
|
||||
ret = cpu_readop( FETCH_XOR( ( I.sregs[PS]<<4)+I.ip++));
|
||||
|
||||
@ -298,7 +298,7 @@ static void nec_reset (void)
|
||||
I.CarryVal = 0;
|
||||
I.ParityVal = 0;
|
||||
|
||||
|
||||
|
||||
I.sregs[PS] = 0xffff;
|
||||
|
||||
CHANGE_PC;
|
||||
|
@ -1290,7 +1290,7 @@ static void advance_eg_channel(FM_OPN *OPN, FM_SLOT *SLOT)
|
||||
{
|
||||
if ( !(OPN->eg_cnt & ((1<<SLOT->eg_sh_d2r)-1) ) )
|
||||
{
|
||||
|
||||
|
||||
if ((OPN->type == TYPE_YM2612) || (OPN->type == TYPE_YM2608))
|
||||
{
|
||||
SLOT->volume += 6 * eg_inc[SLOT->eg_sel_d2r + ((OPN->eg_cnt>>SLOT->eg_sh_d2r)&7)];
|
||||
@ -1937,7 +1937,7 @@ static void OPNSetPres(FM_OPN *OPN, int pres, int timer_prescaler, int SSGpres)
|
||||
|
||||
/* maximal frequency is required for Phase overflow calculation, register size is 17 bits (Nemesis) */
|
||||
OPN->fn_max = (UINT32)( (double)0x20000 * OPN->ST.freqbase * (1<<(FREQ_SH-10)) );
|
||||
|
||||
|
||||
/* LFO freq. table */
|
||||
for(i = 0; i < 8; i++)
|
||||
{
|
||||
|
@ -451,13 +451,13 @@ static DISCRETE_SOUND_START(dkong2b)
|
||||
DISCRETE_TRANSFORM4(NODE_71, DS_DAC, DK_SUP_V/256.0, NODE_70, DS_DISCHARGE_INV, "01*3!2+*")
|
||||
|
||||
/* following the DAC are two opamps. The first is a current-to-voltage changer
|
||||
* for the DAC08 which delivers a variable output current.
|
||||
*
|
||||
* The second one is a Sallen Key filter ...
|
||||
* http://www.t-linespeakers.org/tech/filters/Sallen-Key.html
|
||||
* f = w / 2 / pi = 1 / ( 2 * pi * 5.6k*sqrt(22n*10n)) = 1916 Hz
|
||||
* Q = 1/2 * sqrt(22n/10n)= 0.74
|
||||
*/
|
||||
* for the DAC08 which delivers a variable output current.
|
||||
*
|
||||
* The second one is a Sallen Key filter ...
|
||||
* http://www.t-linespeakers.org/tech/filters/Sallen-Key.html
|
||||
* f = w / 2 / pi = 1 / ( 2 * pi * 5.6k*sqrt(22n*10n)) = 1916 Hz
|
||||
* Q = 1/2 * sqrt(22n/10n)= 0.74
|
||||
*/
|
||||
DISCRETE_SALLEN_KEY_FILTER(NODE_73, 1, NODE_71, DISC_SALLEN_KEY_LOW_PASS, &dkong_sallen_key_info)
|
||||
|
||||
/* Adjustment VR2 */
|
||||
@ -715,13 +715,13 @@ static DISCRETE_SOUND_START(radarscp)
|
||||
DISCRETE_TRANSFORM4(NODE_171, DS_DAC, DK_SUP_V/256.0, NODE_170, DS_DISCHARGE_INV, "01*3!2+*")
|
||||
|
||||
/* following the DAC are two opamps. The first is a current-to-voltage changer
|
||||
* for the DAC08 which delivers a variable output current.
|
||||
*
|
||||
* The second one is a Sallen Key filter ...
|
||||
* http://www.t-linespeakers.org/tech/filters/Sallen-Key.html
|
||||
* f = w / 2 / pi = 1 / ( 2 * pi * 5.6k*sqrt(22n*10n)) = 1916 Hz
|
||||
* Q = 1/2 * sqrt(22n/10n)= 0.74
|
||||
*/
|
||||
* for the DAC08 which delivers a variable output current.
|
||||
*
|
||||
* The second one is a Sallen Key filter ...
|
||||
* http://www.t-linespeakers.org/tech/filters/Sallen-Key.html
|
||||
* f = w / 2 / pi = 1 / ( 2 * pi * 5.6k*sqrt(22n*10n)) = 1916 Hz
|
||||
* Q = 1/2 * sqrt(22n/10n)= 0.74
|
||||
*/
|
||||
DISCRETE_SALLEN_KEY_FILTER(NODE_173, 1, NODE_171, DISC_SALLEN_KEY_LOW_PASS, &dkong_sallen_key_info)
|
||||
|
||||
/* Adjustment VR3 */
|
||||
@ -876,8 +876,8 @@ static DISCRETE_SOUND_START(dkongjr)
|
||||
DISCRETE_74LS624( NODE_14, 1, NODE_13, 0.98*DK_SUP_V, JR_C22, DISC_LS624_OUT_ENERGY)
|
||||
DISCRETE_RCDISC_MODULATED(NODE_15, NODE_12, NODE_14, 120, JR_R27, RES_K(0.001), JR_R28, JR_C28, DK_SUP_V)
|
||||
/* The following circuit does not match 100%, however works.
|
||||
* To be exact, we need a C-R-C-R circuit, we actually do not have.
|
||||
*/
|
||||
* To be exact, we need a C-R-C-R circuit, we actually do not have.
|
||||
*/
|
||||
DISCRETE_CRFILTER_VREF(NODE_16, 1, NODE_15, JR_R4, JR_C23, 2.5)
|
||||
DISCRETE_RCFILTER(DS_OUT_SOUND1, 1, NODE_16, JR_R19, JR_C21)
|
||||
|
||||
@ -890,8 +890,8 @@ static DISCRETE_SOUND_START(dkongjr)
|
||||
DISCRETE_LS123_INV(NODE_25, DS_SOUND2_INV, JR_R17, JR_C27)
|
||||
DISCRETE_RCDISC_MODULATED(NODE_26, NODE_25, NODE_21, 120, JR_R24, RES_K(0.001), JR_R18, JR_C29, DK_SUP_V)
|
||||
/* The following circuit does not match 100%, however works.
|
||||
* To be exact, we need a C-R-C-R circuit, we actually do not have.
|
||||
*/
|
||||
* To be exact, we need a C-R-C-R circuit, we actually do not have.
|
||||
*/
|
||||
DISCRETE_CRFILTER_VREF(NODE_27, 1, NODE_26, JR_R6, JR_C30, 2.5)
|
||||
DISCRETE_RCFILTER(DS_OUT_SOUND2, 1, NODE_27, JR_R2, JR_C25)
|
||||
|
||||
@ -943,13 +943,13 @@ static DISCRETE_SOUND_START(dkongjr)
|
||||
DISCRETE_TRANSFORM4(NODE_171, DS_DAC, DK_SUP_V/256.0, NODE_170, DS_DISCHARGE_INV, "01*3!2+*")
|
||||
|
||||
/* following the DAC are two opamps. The first is a current-to-voltage changer
|
||||
* for the DAC08 which delivers a variable output current.
|
||||
*
|
||||
* The second one is a Sallen Key filter ...
|
||||
* http://www.t-linespeakers.org/tech/filters/Sallen-Key.html
|
||||
* f = w / 2 / pi = 1 / ( 2 * pi * 5.6k*sqrt(22n*10n)) = 1916 Hz
|
||||
* Q = 1/2 * sqrt(22n/10n)= 0.74
|
||||
*/
|
||||
* for the DAC08 which delivers a variable output current.
|
||||
*
|
||||
* The second one is a Sallen Key filter ...
|
||||
* http://www.t-linespeakers.org/tech/filters/Sallen-Key.html
|
||||
* f = w / 2 / pi = 1 / ( 2 * pi * 5.6k*sqrt(22n*10n)) = 1916 Hz
|
||||
* Q = 1/2 * sqrt(22n/10n)= 0.74
|
||||
*/
|
||||
|
||||
DISCRETE_SALLEN_KEY_FILTER(DS_OUT_DAC, 1, NODE_171, DISC_SALLEN_KEY_LOW_PASS, &dkong_sallen_key_info)
|
||||
|
||||
@ -960,8 +960,8 @@ static DISCRETE_SOUND_START(dkongjr)
|
||||
DISCRETE_MIXER5(NODE_288, 1, DS_OUT_SOUND9, DS_OUT_SOUND0, DS_OUT_SOUND2, DS_OUT_SOUND1, DS_OUT_DAC, &dkongjr_mixer_desc)
|
||||
|
||||
/* Amplifier: internal amplifier
|
||||
* Just a 1:n amplifier without filters - just the output filter
|
||||
*/
|
||||
* Just a 1:n amplifier without filters - just the output filter
|
||||
*/
|
||||
DISCRETE_CRFILTER(NODE_295,1,NODE_288, 1000, JR_C13)
|
||||
DISCRETE_OUTPUT(NODE_295, 32767.0/5.0 * 10)
|
||||
|
||||
@ -1045,32 +1045,32 @@ Addresses found at @0x510, cpu2
|
||||
18 C1 (5100: NC)
|
||||
3 CLK (5100: ROM-CK)
|
||||
|
||||
For documentation purposes:
|
||||
For documentation purposes:
|
||||
|
||||
Addresses
|
||||
{ 0x0000, 0x007a, 0x018b, 0x0320, 0x036c, 0x03c4, 0x041c, 0x0520, 0x063e }
|
||||
and related samples interface
|
||||
Addresses
|
||||
{ 0x0000, 0x007a, 0x018b, 0x0320, 0x036c, 0x03c4, 0x041c, 0x0520, 0x063e }
|
||||
and related samples interface
|
||||
|
||||
static const char *const radarsc1_sample_names[] =
|
||||
{
|
||||
"*radarsc1",
|
||||
"10.wav",
|
||||
"12.wav",
|
||||
"14.wav",
|
||||
"16.wav",
|
||||
"18.wav",
|
||||
"1A.wav",
|
||||
"1C.wav",
|
||||
"1E.wav",
|
||||
"20.wav",
|
||||
0
|
||||
};
|
||||
static const char *const radarsc1_sample_names[] =
|
||||
{
|
||||
"*radarsc1",
|
||||
"10.wav",
|
||||
"12.wav",
|
||||
"14.wav",
|
||||
"16.wav",
|
||||
"18.wav",
|
||||
"1A.wav",
|
||||
"1C.wav",
|
||||
"1E.wav",
|
||||
"20.wav",
|
||||
0
|
||||
};
|
||||
|
||||
static const samples_interface radarsc1_samples_interface =
|
||||
{
|
||||
8,
|
||||
radarsc1_sample_names
|
||||
};
|
||||
static const samples_interface radarsc1_samples_interface =
|
||||
{
|
||||
8,
|
||||
radarsc1_sample_names
|
||||
};
|
||||
|
||||
*/
|
||||
|
||||
@ -1091,16 +1091,16 @@ static WRITE8_HANDLER( M58817_command_w )
|
||||
static WRITE8_HANDLER( dkong_voice_w )
|
||||
{
|
||||
/* only provided for documentation purposes
|
||||
* not actually used
|
||||
*/
|
||||
* not actually used
|
||||
*/
|
||||
logerror("dkong_speech_w: 0x%02x\n", data);
|
||||
}
|
||||
|
||||
static READ8_HANDLER( dkong_voice_status_r )
|
||||
{
|
||||
/* only provided for documentation purposes
|
||||
* not actually used
|
||||
*/
|
||||
* not actually used
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1231,11 +1231,11 @@ MACHINE_DRIVER_START( dkong2b_audio )
|
||||
MDRV_LATCH8_DISCRETE_NODE(7, DS_SOUND7_INP)
|
||||
|
||||
/* If P2.Bit7 -> is apparently an external signal decay or other output control
|
||||
* If P2.Bit6 -> activates the external compressed sample ROM (not radarsc1)
|
||||
* If P2.Bit5 -> Signal ANSN ==> Grid enable (radarsc1)
|
||||
* If P2.Bit4 -> status code to main cpu
|
||||
* P2.Bit2-0 -> select the 256 byte bank for external ROM
|
||||
*/
|
||||
* If P2.Bit6 -> activates the external compressed sample ROM (not radarsc1)
|
||||
* If P2.Bit5 -> Signal ANSN ==> Grid enable (radarsc1)
|
||||
* If P2.Bit4 -> status code to main cpu
|
||||
* P2.Bit2-0 -> select the 256 byte bank for external ROM
|
||||
*/
|
||||
|
||||
MDRV_LATCH8_ADD( "virtual_p2" ) /* virtual latch for port B */
|
||||
MDRV_LATCH8_INVERT( 0x20 ) /* signal is inverted */
|
||||
|
@ -163,13 +163,13 @@ static VIDEO_START( acommand )
|
||||
#define LED_ON 0x01c00
|
||||
#define LED_OFF 0x00000
|
||||
/*
|
||||
a
|
||||
---
|
||||
f | | b
|
||||
-g-
|
||||
e | | c
|
||||
---
|
||||
d
|
||||
a
|
||||
---
|
||||
f | | b
|
||||
-g-
|
||||
e | | c
|
||||
---
|
||||
d
|
||||
a & 1
|
||||
b & 2
|
||||
c & 4
|
||||
@ -179,7 +179,7 @@ f & 20
|
||||
g & 40
|
||||
7f
|
||||
*/
|
||||
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f*/
|
||||
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f*/
|
||||
static const UINT8 led_fill[0x10] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x00,0x00,0x00,0x00,0x00};
|
||||
|
||||
static void draw_led(bitmap_t *bitmap, int x, int y,UINT8 value)
|
||||
@ -300,10 +300,10 @@ static READ16_HANDLER(ac_devices_r)
|
||||
return okim6295_status_1_r(machine,0);
|
||||
case 0x0040/2:
|
||||
/*
|
||||
"Upper switch / Under Switch"
|
||||
xx-x ---- xx-x xx-x
|
||||
-x-- ---- ---- ---- Catch Switch - 3
|
||||
--x- ---- ---- ---- Lower Switch - 3
|
||||
"Upper switch / Under Switch"
|
||||
xx-x ---- xx-x xx-x
|
||||
-x-- ---- ---- ---- Catch Switch - 3
|
||||
--x- ---- ---- ---- Lower Switch - 3
|
||||
---x ---- ---- ---- Upper Switch - 3
|
||||
---- -x-- ---- ---- Catch Switch - 2
|
||||
---- --x- ---- ---- Lower Switch - 2
|
||||
@ -329,19 +329,19 @@ static READ16_HANDLER(ac_devices_r)
|
||||
ufo_sw1|=0x1000;
|
||||
if(ac_devram[offset] & 0x4000)
|
||||
ufo_sw1|=0x2000;
|
||||
// if(ac_devram[0x0048/2] & 0x0001)
|
||||
// ufo_sw1|=0x0040;
|
||||
// if(ac_devram[0x0048/2] & 0x0004)
|
||||
// ufo_sw1|=0x0400;
|
||||
// if(ac_devram[0x0048/2] & 0x0100)
|
||||
// ufo_sw1|=0x4000;
|
||||
// if(ac_devram[0x0048/2] & 0x0001)
|
||||
// ufo_sw1|=0x0040;
|
||||
// if(ac_devram[0x0048/2] & 0x0004)
|
||||
// ufo_sw1|=0x0400;
|
||||
// if(ac_devram[0x0048/2] & 0x0100)
|
||||
// ufo_sw1|=0x4000;
|
||||
return ufo_sw1;
|
||||
}
|
||||
case 0x0044/2:
|
||||
/*
|
||||
---- ---- --x- ---- Lower Switch - 5
|
||||
---- ---- ---x ---- Upper Switch - 5
|
||||
---- ---- ---- --x- Lower Switch - 4 (active high)
|
||||
---- ---- --x- ---- Lower Switch - 5
|
||||
---- ---- ---x ---- Upper Switch - 5
|
||||
---- ---- ---- --x- Lower Switch - 4 (active high)
|
||||
---- ---- ---- ---x Upper Switch - 4 (active low)
|
||||
*/
|
||||
{
|
||||
|
@ -101,7 +101,7 @@ static int msm5205_vclk_toggle;
|
||||
static READ16_HANDLER(fake_4a00a_r)
|
||||
{
|
||||
/* If it returns 1 there's no sound. Is it used to sync the game and sound?
|
||||
or just a debug enable/disable register? */
|
||||
or just a debug enable/disable register? */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -451,7 +451,7 @@ static INPUT_PORTS_START( spaceint )
|
||||
PORT_DIPSETTING( 0x00, "3" )
|
||||
PORT_DIPSETTING( 0x04, "4" )
|
||||
PORT_DIPSETTING( 0x02, "5" )
|
||||
// PORT_DIPSETTING( 0x06, "5" ) /* duplicate settings */
|
||||
// PORT_DIPSETTING( 0x06, "5" ) /* duplicate settings */
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Coinage ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
|
||||
@ -472,8 +472,8 @@ static INPUT_PORTS_START( spaceinj )
|
||||
PORT_DIPNAME( 0x06, 0x00, DEF_STR( Lives ) ) /* code at 0x0d37 */
|
||||
PORT_DIPSETTING( 0x00, "3" )
|
||||
PORT_DIPSETTING( 0x02, "5" )
|
||||
// PORT_DIPSETTING( 0x04, "5" ) /* duplicate settings */
|
||||
// PORT_DIPSETTING( 0x06, "5" ) /* duplicate settings */
|
||||
// PORT_DIPSETTING( 0x04, "5" ) /* duplicate settings */
|
||||
// PORT_DIPSETTING( 0x06, "5" ) /* duplicate settings */
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
@ -583,7 +583,7 @@ static INPUT_PORTS_START( astrof )
|
||||
PORT_DIPSETTING( 0x03, "6" )
|
||||
PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW:3,4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) /* duplicate settings */
|
||||
// PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) /* duplicate settings */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW:5,6") /* table at 0xf6b2 */
|
||||
@ -636,7 +636,7 @@ static INPUT_PORTS_START( abattle )
|
||||
PORT_DIPSETTING( 0x03, "6" )
|
||||
PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW:3,4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) /* duplicate settings */
|
||||
// PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) /* duplicate settings */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW:5,6") /* table at 0xf87a */
|
||||
@ -688,7 +688,7 @@ static INPUT_PORTS_START( spfghmk2 )
|
||||
PORT_DIPSETTING( 0x02, "5" )
|
||||
PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW:3,4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) /* duplicate settings */
|
||||
// PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) /* duplicate settings */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPNAME( 0x30, 0x00, "Free Credit" ) PORT_DIPLOCATION("SW:5,6") /* table at 0xfa58 */
|
||||
@ -739,7 +739,7 @@ static INPUT_PORTS_START( spfgmk22 )
|
||||
PORT_DIPSETTING( 0x02, "5" )
|
||||
PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW:3,4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) /* duplicate settings */
|
||||
// PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) /* duplicate settings */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPNAME( 0x30, 0x00, "Free Credit" ) PORT_DIPLOCATION("SW:5,6") /* table at 0xf9f8 */
|
||||
@ -796,7 +796,7 @@ static INPUT_PORTS_START( tomahawk )
|
||||
PORT_DIPSETTING( 0x03, "6" )
|
||||
PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW:3,4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) /* duplicate settings */
|
||||
// PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) /* duplicate settings */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW:5,6") /* table at 0xf428 */
|
||||
|
@ -18,7 +18,7 @@ To enter service mode, keep 1&2 pressed on reset
|
||||
due to code at 0xcb38 :
|
||||
|
||||
CB38: B6 30 88 LDA $1800
|
||||
CB3B: 43 COMA
|
||||
CB3B: 43 COMA
|
||||
CB3C: 84 2B ANDA #$03
|
||||
CB3E: 81 8B CMPA #$03
|
||||
CB40: 25 20 BCS $CB44
|
||||
@ -28,7 +28,7 @@ To enter service mode, keep 1&2 pressed on reset
|
||||
In other sets, you have the following (code from 'circusc') :
|
||||
|
||||
CB38: B6 30 88 LDA $1800
|
||||
CB3B: 43 COMA
|
||||
CB3B: 43 COMA
|
||||
CB3C: 84 2B ANDA #$03
|
||||
CB3E: 81 8B CMPA #$03
|
||||
CB40: 25 20 BCS $CB44
|
||||
|
@ -241,14 +241,14 @@ static INPUT_PORTS_START( cop01 )
|
||||
PORT_DIPSETTING( 0x08, "5" )
|
||||
PORT_DIPSETTING( 0x00, "6" )
|
||||
/* DP2:3,4,5 defined in manual/test-mode as:
|
||||
PORT_DIPNAME( 0x10, 0x10, "1st Bonus Life" )
|
||||
PORT_DIPSETTING( 0x10, "20000" )
|
||||
PORT_DIPSETTING( 0x00, "30000" )
|
||||
PORT_DIPNAME( 0x60, 0x60, "2nd Bonus Life" )
|
||||
PORT_DIPSETTING( 0x60, "30000" )
|
||||
PORT_DIPSETTING( 0x20, "50000" )
|
||||
PORT_DIPSETTING( 0x40, "100000" )
|
||||
PORT_DIPSETTING( 0x00, "150000" ) */
|
||||
PORT_DIPNAME( 0x10, 0x10, "1st Bonus Life" )
|
||||
PORT_DIPSETTING( 0x10, "20000" )
|
||||
PORT_DIPSETTING( 0x00, "30000" )
|
||||
PORT_DIPNAME( 0x60, 0x60, "2nd Bonus Life" )
|
||||
PORT_DIPSETTING( 0x60, "30000" )
|
||||
PORT_DIPSETTING( 0x20, "50000" )
|
||||
PORT_DIPSETTING( 0x40, "100000" )
|
||||
PORT_DIPSETTING( 0x00, "150000" ) */
|
||||
PORT_DIPNAME( 0x70, 0x70, DEF_STR( Bonus_Life ) )
|
||||
PORT_DIPSETTING( 0x70, "20k 50k 30k+" )
|
||||
PORT_DIPSETTING( 0x30, "20k 70k 50k+" )
|
||||
|
@ -39,45 +39,45 @@ Stephh's notes (based on the game M68EC020 code and some tests) :
|
||||
- Don't trust the "test mode" as it displays Dip Switches infos
|
||||
that are in fact unused by the game ! Leftover from another game ?
|
||||
|
||||
PORT_START("DSW")
|
||||
PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
|
||||
PORT_DIPSETTING( 0x0002, "1" )
|
||||
PORT_DIPSETTING( 0x0003, "2" )
|
||||
PORT_DIPSETTING( 0x0001, "3" )
|
||||
PORT_DIPSETTING( 0x0000, "4" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW2:3" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x0008, IP_ACTIVE_LOW, "SW2:4" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW2:5" )
|
||||
PORT_DIPNAME( 0x0060, 0x0060, "Ticket Payout" ) PORT_DIPLOCATION("SW2:6,7")
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
|
||||
PORT_DIPSETTING( 0x0020, "Little" )
|
||||
PORT_DIPSETTING( 0x0060, DEF_STR( Normal ) )
|
||||
PORT_DIPSETTING( 0x0040, "Much" )
|
||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
|
||||
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4")
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0x0400, DEF_STR( 3C_1C ) )
|
||||
PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x0a00, DEF_STR( 2C_3C ) )
|
||||
PORT_DIPSETTING( 0x0c00, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x0800, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6,7")
|
||||
PORT_DIPSETTING( 0x2000, "Level 1" )
|
||||
PORT_DIPSETTING( 0x1000, "Level 2" )
|
||||
PORT_DIPSETTING( 0x0000, "Level 3" )
|
||||
PORT_DIPSETTING( 0x7000, "Level 4" )
|
||||
PORT_DIPSETTING( 0x6000, "Level 5" )
|
||||
PORT_DIPSETTING( 0x5000, "Level 6" )
|
||||
PORT_DIPSETTING( 0x4000, "Level 7" )
|
||||
PORT_DIPSETTING( 0x3000, "Level 8" )
|
||||
PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" )
|
||||
PORT_START("DSW")
|
||||
PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
|
||||
PORT_DIPSETTING( 0x0002, "1" )
|
||||
PORT_DIPSETTING( 0x0003, "2" )
|
||||
PORT_DIPSETTING( 0x0001, "3" )
|
||||
PORT_DIPSETTING( 0x0000, "4" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW2:3" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x0008, IP_ACTIVE_LOW, "SW2:4" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW2:5" )
|
||||
PORT_DIPNAME( 0x0060, 0x0060, "Ticket Payout" ) PORT_DIPLOCATION("SW2:6,7")
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
|
||||
PORT_DIPSETTING( 0x0020, "Little" )
|
||||
PORT_DIPSETTING( 0x0060, DEF_STR( Normal ) )
|
||||
PORT_DIPSETTING( 0x0040, "Much" )
|
||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
|
||||
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4")
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0x0400, DEF_STR( 3C_1C ) )
|
||||
PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x0a00, DEF_STR( 2C_3C ) )
|
||||
PORT_DIPSETTING( 0x0c00, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x0800, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6,7")
|
||||
PORT_DIPSETTING( 0x2000, "Level 1" )
|
||||
PORT_DIPSETTING( 0x1000, "Level 2" )
|
||||
PORT_DIPSETTING( 0x0000, "Level 3" )
|
||||
PORT_DIPSETTING( 0x7000, "Level 4" )
|
||||
PORT_DIPSETTING( 0x6000, "Level 5" )
|
||||
PORT_DIPSETTING( 0x5000, "Level 6" )
|
||||
PORT_DIPSETTING( 0x4000, "Level 7" )
|
||||
PORT_DIPSETTING( 0x3000, "Level 8" )
|
||||
PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" )
|
||||
|
||||
*/
|
||||
|
||||
|
@ -144,7 +144,7 @@ Stephh's notes (based on the games M6502 code and some tests) :
|
||||
extra "lsr a" instruction at 0x6843 !
|
||||
Correct code shall be :
|
||||
|
||||
6843: EA nop
|
||||
6843: EA nop
|
||||
|
||||
Fortunately, table at 0x685f is filled with 0x30 so you'll
|
||||
always have 30 seconds to "clear" the wagon (which is more
|
||||
|
@ -285,7 +285,7 @@ static INPUT_PORTS_START( gyruss )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) /* tables at 0x1653 (15 bytes) or 0x4bf3 (13 bytes) */
|
||||
PORT_DIPSETTING( 0x08, "30k 90k 60k+" ) /* last bonus life at 810k : max. 14 bonus lives */
|
||||
PORT_DIPSETTING( 0x08, "30k 90k 60k+" ) /* last bonus life at 810k : max. 14 bonus lives */
|
||||
PORT_DIPSETTING( 0x00, "40k 110k 70k+" ) /* last bonus life at 810k : max. 12 bonus lives */
|
||||
PORT_DIPNAME( 0x70, 0x30, DEF_STR( Difficulty ) )
|
||||
PORT_DIPSETTING( 0x70, "1 (Easiest)" )
|
||||
@ -311,7 +311,7 @@ static INPUT_PORTS_START( gyrussce )
|
||||
|
||||
PORT_MODIFY("DSW2")
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) /* tables at 0x1653 (15 bytes) or 0x4bf3 (13 bytes) */
|
||||
PORT_DIPSETTING( 0x08, "50k 120k 70k+" ) /* last bonus life at 960k : max. 14 bonus lives */
|
||||
PORT_DIPSETTING( 0x08, "50k 120k 70k+" ) /* last bonus life at 960k : max. 14 bonus lives */
|
||||
PORT_DIPSETTING( 0x00, "60k 140k 80k+" ) /* last bonus life at 940k : max. 12 bonus lives */
|
||||
PORT_DIPNAME( 0x70, 0x20, DEF_STR( Difficulty ) ) /* "Difficult" default setting according to Centuri manual */
|
||||
PORT_DIPSETTING( 0x70, "1 (Easiest)" )
|
||||
|
@ -218,7 +218,7 @@ static VIDEO_START( jalmah )
|
||||
sc2_tilemap_3 = tilemap_create(get_sc2_tile_info,range3_16x16,16,16,32,256);
|
||||
|
||||
sc3_tilemap_0 = tilemap_create(get_sc3_tile_info,tilemap_scan_cols,8,8,256,32);
|
||||
// sc3_tilemap_1 = tilemap_create(get_sc3_tile_info,tilemap_scan_cols,8,8,256,32);
|
||||
// sc3_tilemap_1 = tilemap_create(get_sc3_tile_info,tilemap_scan_cols,8,8,256,32);
|
||||
sc3_tilemap_2 = tilemap_create(get_sc3_tile_info,range2_8x8,8,8,128,64);
|
||||
sc3_tilemap_3 = tilemap_create(get_sc3_tile_info,range3_8x8,8,8,64,128);
|
||||
|
||||
@ -261,52 +261,52 @@ static UINT8 sc0_prin,sc1_prin,sc2_prin,sc3_prin;
|
||||
|
||||
static void jalmah_priority_system(void)
|
||||
{
|
||||
// UINT8 *pri_rom = memory_region(Machine, "user1");
|
||||
// UINT8 *pri_rom = memory_region(Machine, "user1");
|
||||
/*
|
||||
Case by case priorities:
|
||||
kakumei: title screen = 0/23 (0-1 unused)
|
||||
attract mode = 0/0123 (?)
|
||||
card table = 0/013 (2 unused)
|
||||
gameplay = 0/0123
|
||||
kakumei2:title screen = 0/0123
|
||||
attract mode = 4/013 (2 unused) also 4/0213
|
||||
card table = 9/013 (2 unused)
|
||||
character screen = 9/013 (2 unused)
|
||||
gameplay = 2/03 (1-2 unused) also 2/013 (2 unused)
|
||||
continue screen = 9/013 (2 unused)
|
||||
suchipi: title screen = 0/03 (1-2 unused)
|
||||
attract mode = 6/103 (2 unused) also 6/1023
|
||||
card table = 1/013 (2 unused)
|
||||
character screen = 4/0213
|
||||
victory screen = 6/0123 also 6/1023
|
||||
gameplay = d/0123
|
||||
mjzoomin doesn't seem to use the priority number (0/0123)
|
||||
daireika/urashima uses priority number with the protection device
|
||||
daireika: gameplay = x/103 (2 unused),might be 6
|
||||
good results:
|
||||
0/0123
|
||||
4/0213
|
||||
6/1023
|
||||
*/
|
||||
Case by case priorities:
|
||||
kakumei: title screen = 0/23 (0-1 unused)
|
||||
attract mode = 0/0123 (?)
|
||||
card table = 0/013 (2 unused)
|
||||
gameplay = 0/0123
|
||||
kakumei2:title screen = 0/0123
|
||||
attract mode = 4/013 (2 unused) also 4/0213
|
||||
card table = 9/013 (2 unused)
|
||||
character screen = 9/013 (2 unused)
|
||||
gameplay = 2/03 (1-2 unused) also 2/013 (2 unused)
|
||||
continue screen = 9/013 (2 unused)
|
||||
suchipi: title screen = 0/03 (1-2 unused)
|
||||
attract mode = 6/103 (2 unused) also 6/1023
|
||||
card table = 1/013 (2 unused)
|
||||
character screen = 4/0213
|
||||
victory screen = 6/0123 also 6/1023
|
||||
gameplay = d/0123
|
||||
mjzoomin doesn't seem to use the priority number (0/0123)
|
||||
daireika/urashima uses priority number with the protection device
|
||||
daireika: gameplay = x/103 (2 unused),might be 6
|
||||
good results:
|
||||
0/0123
|
||||
4/0213
|
||||
6/1023
|
||||
*/
|
||||
static const UINT16 pri_scheme[0x10] = { 0x0123, 0x0123, 0x0123, 0x0123, 0x0213, 0x0123, 0x1023, 0x0123,
|
||||
0x0123, 0x1203, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123 };
|
||||
// UINT8 prinum[0x10];
|
||||
// UINT8 prinum[0x10];
|
||||
|
||||
// for(i=0;i<0x10;i++)
|
||||
// prinum[i] = pri_rom[i+pri*0x10];
|
||||
// for(i=0;i<0x10;i++)
|
||||
// prinum[i] = pri_rom[i+pri*0x10];
|
||||
sc0_prin = (pri_scheme[pri] & 0xf000) >> 12;
|
||||
sc1_prin = (pri_scheme[pri] & 0x0f00) >> 8;
|
||||
sc2_prin = (pri_scheme[pri] & 0x00f0) >> 4;
|
||||
sc3_prin = (pri_scheme[pri] & 0x000f) >> 0;
|
||||
|
||||
// popmessage("%04x",pri);
|
||||
// popmessage("%04x",pri);
|
||||
/*
|
||||
popmessage("%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x %02x"
|
||||
,prinum[0x00],prinum[0x01],prinum[0x02],prinum[0x03]
|
||||
,prinum[0x04],prinum[0x05],prinum[0x06],prinum[0x07]
|
||||
,prinum[0x08],prinum[0x09],prinum[0x0a],prinum[0x0b]
|
||||
,prinum[0x0c],prinum[0x0d],prinum[0x0e],prinum[0x0f],pri);
|
||||
*/
|
||||
popmessage("%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x %02x"
|
||||
,prinum[0x00],prinum[0x01],prinum[0x02],prinum[0x03]
|
||||
,prinum[0x04],prinum[0x05],prinum[0x06],prinum[0x07]
|
||||
,prinum[0x08],prinum[0x09],prinum[0x0a],prinum[0x0b]
|
||||
,prinum[0x0c],prinum[0x0d],prinum[0x0e],prinum[0x0f],pri);
|
||||
*/
|
||||
}
|
||||
|
||||
static void draw_sc0_layer(bitmap_t *bitmap, const rectangle *cliprect,int trans)
|
||||
@ -374,7 +374,7 @@ static VIDEO_UPDATE( jalmah )
|
||||
tilemap_set_scrollx( sc2_tilemap_3, 0, jm_scrollram[2] & 0x1ff);
|
||||
|
||||
tilemap_set_scrollx( sc3_tilemap_0, 0, jm_scrollram[3] & 0x7ff);
|
||||
// empty
|
||||
// empty
|
||||
tilemap_set_scrollx( sc3_tilemap_2, 0, jm_scrollram[3] & 0x3ff);
|
||||
tilemap_set_scrollx( sc3_tilemap_3, 0, jm_scrollram[3] & 0x1ff);
|
||||
|
||||
@ -395,7 +395,7 @@ static VIDEO_UPDATE( jalmah )
|
||||
tilemap_set_scrolly( sc2_tilemap_3, 0, jm_scrollram[6] & 0xfff);
|
||||
|
||||
tilemap_set_scrolly( sc3_tilemap_0, 0, jm_scrollram[7] & 0xff);
|
||||
// empty
|
||||
// empty
|
||||
tilemap_set_scrolly( sc3_tilemap_2, 0, jm_scrollram[7] & 0x1ff);
|
||||
tilemap_set_scrolly( sc3_tilemap_3, 0, jm_scrollram[7] & 0x3ff);
|
||||
|
||||
@ -561,13 +561,13 @@ static WRITE16_HANDLER( urashima_vregs_w )
|
||||
case 0x084/2: jm_scrollram[0] = data; break; //sc0 x offset
|
||||
case 0x086/2: jm_scrollram[4] = data; break; //sc0 y offset
|
||||
|
||||
// case 0x182/2: jm_vregs[0] = data; break;
|
||||
// case 0x184/2: jm_scrollram[0] = data; break;
|
||||
// case 0x186/2: jm_scrollram[4] = data; break;
|
||||
// case 0x182/2: jm_vregs[0] = data; break;
|
||||
// case 0x184/2: jm_scrollram[0] = data; break;
|
||||
// case 0x186/2: jm_scrollram[4] = data; break;
|
||||
|
||||
// case 0x382/2: jm_vregs[0] = data; break;
|
||||
// case 0x384/2: jm_scrollram[0] = data; break;
|
||||
// case 0x386/2: jm_scrollram[4] = data; break;
|
||||
// case 0x382/2: jm_vregs[0] = data; break;
|
||||
// case 0x384/2: jm_scrollram[0] = data; break;
|
||||
// case 0x386/2: jm_scrollram[4] = data; break;
|
||||
|
||||
case 0x882/2: jm_vregs[3] = data; break; //sc3 plane enable
|
||||
case 0x884/2: jm_scrollram[3] = data; break; //sc3 x offset
|
||||
@ -645,7 +645,7 @@ static void daireika_palette_dma(running_machine *machine,UINT16 val)
|
||||
/*a0=301c0+jm_shared_ram[0x540/2] & 0xf00 */
|
||||
/*a1=88000*/
|
||||
src_addr = 0x301c0 + (val * 0x40);
|
||||
// popmessage("%08x",src_addr);
|
||||
// popmessage("%08x",src_addr);
|
||||
for(index_1=0;index_1<0x200;index_1+=0x20)
|
||||
{
|
||||
tmp_addr = src_addr;
|
||||
@ -939,7 +939,7 @@ static ADDRESS_MAP_START( urashima, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x094000, 0x097fff) AM_RAM_WRITE(urashima_sc0_vram_w)
|
||||
AM_RANGE(0x098000, 0x09bfff) AM_RAM_WRITE(urashima_sc0_vram_w)
|
||||
// AM_RANGE(0x094000, 0x097fff) AM_RAM_WRITE(urashima_sc1_vram_w) AM_BASE(&sc1_vram)/*unused*/
|
||||
// AM_RANGE(0x098000, 0x09bfff) AM_RAM_WRITE(urashima_sc2_vram_w) AM_BASE(&sc2_vram)/*unused*/
|
||||
// AM_RANGE(0x098000, 0x09bfff) AM_RAM_WRITE(urashima_sc2_vram_w) AM_BASE(&sc2_vram)/*unused*/
|
||||
/*$9c000-$9cfff Video Registers*/
|
||||
/**/AM_RANGE(0x09c000, 0x09dfff) AM_WRITE(urashima_vregs_w)
|
||||
/**///AM_RANGE(0x09c480, 0x09c49f) AM_READ(SMH_RAM) AM_WRITE(urashima_sc2vregs_w)
|
||||
@ -1339,7 +1339,7 @@ ROM_START( daireika )
|
||||
ROM_LOAD( "mj10.bin", 0x00000, 0x80000, CRC(1f5509a5) SHA1(4dcdee0e159956cf73f5f85ce278479be2a9ca9f) )
|
||||
|
||||
ROM_REGION( 0x40000, "gfx3", 0 ) /* BG2 */
|
||||
// ROM_COPY( "gfx4", 0x20000, 0x20000, 0x20000 )/*mj10.bin*/
|
||||
// ROM_COPY( "gfx4", 0x20000, 0x20000, 0x20000 )/*mj10.bin*/
|
||||
ROM_LOAD( "mj11.bin", 0x00000, 0x20000, CRC(14867c51) SHA1(b282b5048a55c9ad72ceb0d23f010a0fee78704f) )
|
||||
ROM_LOAD( "mj12.bin", 0x20000, 0x20000, CRC(236f809f) SHA1(9e15dd8a810a9d4f7f75f084d6bd277ea7d0e40a) )
|
||||
|
||||
@ -1575,7 +1575,7 @@ static READ16_HANDLER( urashima_mcu_r )
|
||||
res = resp[respcount++];
|
||||
if (respcount >= sizeof(resp)/sizeof(resp[0])) respcount = 0;
|
||||
|
||||
// logerror("%04x: mcu_r %02x\n",activecpu_get_pc(),res);
|
||||
// logerror("%04x: mcu_r %02x\n",activecpu_get_pc(),res);
|
||||
|
||||
return res;
|
||||
}
|
||||
@ -1791,7 +1791,7 @@ static READ16_HANDLER( daireika_mcu_r )
|
||||
res = resp[respcount++];
|
||||
if (respcount >= sizeof(resp)/sizeof(resp[0])) respcount = 0;
|
||||
|
||||
// logerror("%04x: mcu_r %02x\n",activecpu_get_pc(),res);
|
||||
// logerror("%04x: mcu_r %02x\n",activecpu_get_pc(),res);
|
||||
|
||||
return res;
|
||||
}
|
||||
@ -2067,7 +2067,7 @@ static READ16_HANDLER( mjzoomin_mcu_r )
|
||||
res = resp[respcount++];
|
||||
if (respcount >= sizeof(resp)/sizeof(resp[0])) respcount = 0;
|
||||
|
||||
// logerror("%04x: mcu_r %02x\n",activecpu_get_pc(),res);
|
||||
// logerror("%04x: mcu_r %02x\n",activecpu_get_pc(),res);
|
||||
|
||||
return res;
|
||||
}
|
||||
@ -2202,7 +2202,7 @@ static READ16_HANDLER( kakumei_mcu_r )
|
||||
res = resp[respcount++];
|
||||
if (respcount >= sizeof(resp)/sizeof(resp[0])) respcount = 0;
|
||||
|
||||
// popmessage("%04x: mcu_r %02x",activecpu_get_pc(),res);
|
||||
// popmessage("%04x: mcu_r %02x",activecpu_get_pc(),res);
|
||||
|
||||
return res;
|
||||
}
|
||||
@ -2223,7 +2223,7 @@ static READ16_HANDLER( suchipi_mcu_r )
|
||||
res = resp[respcount++];
|
||||
if (respcount >= sizeof(resp)/sizeof(resp[0])) respcount = 0;
|
||||
|
||||
// popmessage("%04x: mcu_r %02x",activecpu_get_pc(),res);
|
||||
// popmessage("%04x: mcu_r %02x",activecpu_get_pc(),res);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
@ -124,10 +124,10 @@ static TILE_GET_INFO( get_bg_tile_info )
|
||||
---- ---- color code.
|
||||
---- ---- seems unused.
|
||||
*/
|
||||
// int attr = colorram[tile_index];
|
||||
// int attr = colorram[tile_index];
|
||||
int code = videoram[tile_index];
|
||||
// int bank = (attr & 0x08) >> 3;
|
||||
// int color = (attr & 0x03);
|
||||
// int bank = (attr & 0x08) >> 3;
|
||||
// int color = (attr & 0x03);
|
||||
|
||||
SET_TILE_INFO( 0 /* bank */, code, 0 /* color */, 0);
|
||||
}
|
||||
@ -163,7 +163,7 @@ static PALETTE_INIT( jokrwild )
|
||||
|
||||
//static READ8_HANDLER( random_gen_r )
|
||||
//{
|
||||
// return mame_rand(machine) & 0xff;
|
||||
// return mame_rand(machine) & 0xff;
|
||||
//}
|
||||
|
||||
|
||||
@ -174,15 +174,15 @@ static PALETTE_INIT( jokrwild )
|
||||
static ADDRESS_MAP_START( jokrwild_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_WRITE(jokrwild_videoram_w) AM_BASE(&videoram)
|
||||
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_WRITE(jokrwild_colorram_w) AM_BASE(&colorram)
|
||||
// AM_RANGE(0x0010, 0x0010) AM_READ(random_gen_r)
|
||||
// AM_RANGE(0x4004, 0x4007) AM_READWRITE(pia_0_r, pia_0_w)
|
||||
// AM_RANGE(0x4008, 0x400b) AM_READWRITE(pia_1_r, pia_1_w)
|
||||
// AM_RANGE(0x4010, 0x4010) AM_READNOP /* R ???? */
|
||||
// AM_RANGE(0x0010, 0x0010) AM_READ(random_gen_r)
|
||||
// AM_RANGE(0x4004, 0x4007) AM_READWRITE(pia_0_r, pia_0_w)
|
||||
// AM_RANGE(0x4008, 0x400b) AM_READWRITE(pia_1_r, pia_1_w)
|
||||
// AM_RANGE(0x4010, 0x4010) AM_READNOP /* R ???? */
|
||||
AM_RANGE(0x6000, 0x6000) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
|
||||
AM_RANGE(0x6001, 0x6001) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
|
||||
// AM_RANGE(0x6100, 0x6100) AM_READWRITENOP /* R/W ???? */
|
||||
// AM_RANGE(0x6200, 0x6203) another PIA?
|
||||
// AM_RANGE(0x6300, 0x6300) unknown
|
||||
// AM_RANGE(0x6100, 0x6100) AM_READWRITENOP /* R/W ???? */
|
||||
// AM_RANGE(0x6200, 0x6203) another PIA?
|
||||
// AM_RANGE(0x6300, 0x6300) unknown
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -197,9 +197,9 @@ ADDRESS_MAP_END
|
||||
4004-400b R/W ; 2x PIAs?
|
||||
4010 R ; unknown.
|
||||
|
||||
6100 R/W ; unknown.
|
||||
6100 R/W ; unknown.
|
||||
6200-6203 R/W ; extra PIA?
|
||||
6300 R ; unknown.
|
||||
6300 R ; unknown.
|
||||
|
||||
|
||||
*/
|
||||
@ -341,7 +341,7 @@ static MACHINE_DRIVER_START( jokrwild )
|
||||
MDRV_CPU_PROGRAM_MAP(jokrwild_map, 0)
|
||||
MDRV_CPU_VBLANK_INT("main", nmi_line_pulse)
|
||||
|
||||
// MDRV_NVRAM_HANDLER(generic_0fill)
|
||||
// MDRV_NVRAM_HANDLER(generic_0fill)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
@ -420,8 +420,8 @@ static DRIVER_INIT( jokrwild )
|
||||
}
|
||||
|
||||
/* Initializing PIAs... */
|
||||
// pia_config(0, &pia0_intf);
|
||||
// pia_config(1, &pia1_intf);
|
||||
// pia_config(0, &pia0_intf);
|
||||
// pia_config(1, &pia1_intf);
|
||||
}
|
||||
|
||||
|
||||
|
@ -338,10 +338,10 @@ INLINE DRIVER_INIT( loht_mcu )
|
||||
|
||||
#if 0
|
||||
/* running the mcu at twice the speed, the following
|
||||
* timeouts have to be modified.
|
||||
* At normal speed, the timing heavily depends on opcode
|
||||
* prefetching on the V30.
|
||||
*/
|
||||
* timeouts have to be modified.
|
||||
* At normal speed, the timing heavily depends on opcode
|
||||
* prefetching on the V30.
|
||||
*/
|
||||
{
|
||||
UINT8 *rom=memory_region(machine, "mcu");
|
||||
|
||||
|
@ -393,7 +393,7 @@ static void update_colors(running_machine *machine)
|
||||
static WRITE32_HANDLER( macrossp_palette_fade_w )
|
||||
{
|
||||
fade_effect = ((data & 0xff00) >> 8) - 0x28;//it writes two times,first with a -0x28 then with the proper data
|
||||
// popmessage("%02x",fade_effect);
|
||||
// popmessage("%02x",fade_effect);
|
||||
if(old_fade != fade_effect)
|
||||
{
|
||||
old_fade = fade_effect;
|
||||
|
@ -292,12 +292,12 @@
|
||||
you're busted.
|
||||
|
||||
All cards have their own value, except for 10, 11 and 12 that are half point.
|
||||
Special hands have their own price.
|
||||
Special hands have their own price.
|
||||
|
||||
Sun 7 + sun king = 100 (by credit).
|
||||
Any 7 + any king = 16 (by credit).
|
||||
Any 7 and half = 8 (by credit).
|
||||
Pass = 2 (by credit).
|
||||
Pass = 2 (by credit).
|
||||
|
||||
|
||||
How to play...
|
||||
|
@ -2672,7 +2672,7 @@ static READ16_HANDLER( _32x_68k_fbcontrol_r )
|
||||
|
||||
if (megadrive_hblank_flag) retdata |= 0x4000;
|
||||
|
||||
// printf("_32x_68k_fbcontrol_r\n");
|
||||
// printf("_32x_68k_fbcontrol_r\n");
|
||||
|
||||
|
||||
return retdata;
|
||||
@ -6123,7 +6123,7 @@ static WRITE16_HANDLER( _32x_68k_comms_w )
|
||||
|
||||
static WRITE32_HANDLER( sh2_commsport_w )
|
||||
{
|
||||
// printf("comms write %d %08x %08x\n",offset, data, mem_mask);
|
||||
// printf("comms write %d %08x %08x\n",offset, data, mem_mask);
|
||||
|
||||
if (ACCESSING_BITS_16_31)
|
||||
{
|
||||
@ -6560,23 +6560,23 @@ ROM_START( 32x_bios )
|
||||
ROM_REGION16_BE( 0x400000, "main", ROMREGION_ERASE00 )
|
||||
|
||||
ROM_REGION16_BE( 0x400000, "gamecart", 0 ) /* 68000 Code */
|
||||
// ROM_LOAD( "32xquin.rom", 0x000000, 0x005d124, CRC(93d4b0a3) SHA1(128bd0b6e048c749da1a2f4c3abd6a867539a293))
|
||||
// ROM_LOAD( "32xquin.rom", 0x000000, 0x005d124, CRC(93d4b0a3) SHA1(128bd0b6e048c749da1a2f4c3abd6a867539a293))
|
||||
// ROM_LOAD( "32x_babe.rom", 0x000000, 0x14f80, CRC(816b0cb4) SHA1(dc16d3170d5809b57192e03864b7136935eada64) )
|
||||
// ROM_LOAD( "32xhot.rom", 0x000000, 0x01235c, CRC(da9c93c9) SHA1(a62652eb8ad8c62b36f6b1ffb96922d045c4e3ac))
|
||||
// ROM_LOAD( "knux.rom", 0x000000, 0x300000, CRC(d0b0b842) SHA1(0c2fff7bc79ed26507c08ac47464c3af19f7ced7) )
|
||||
// ROM_LOAD( "32x_g_bios.bin", 0x000000, 0x000100, CRC(5c12eae8) SHA1(dbebd76a448447cb6e524ac3cb0fd19fc065d944) )
|
||||
// ROM_LOAD( "knux.rom", 0x000000, 0x300000, CRC(d0b0b842) SHA1(0c2fff7bc79ed26507c08ac47464c3af19f7ced7) )
|
||||
// ROM_LOAD( "32x_g_bios.bin", 0x000000, 0x000100, CRC(5c12eae8) SHA1(dbebd76a448447cb6e524ac3cb0fd19fc065d944) )
|
||||
// ROM_LOAD( "32x_rot.bin", 0x000000, 0x0001638, CRC(98c25033) SHA1(8d9ab3084bd29e60b8cdf4b9f1cb755eb4c88d29) )
|
||||
// ROM_LOAD( "32x_3d.bin", 0x000000, 0x6568, CRC(0171743e) SHA1(bbe6fec182baae5e4d47d263fae6b419db5366ae) )
|
||||
// ROM_LOAD( "32x_spin.bin", 0x000000, 0x012c28, CRC(3d1d1191) SHA1(221a74408653e18cef8ce2f9b4d33ed93e4218b7) )
|
||||
// ROM_LOAD( "32x_doom.bin", 0x000000, 0x300000, CRC(208332fd) SHA1(b68e9c7af81853b8f05b8696033dfe4c80327e38) )
|
||||
// ROM_LOAD( "32x_3d.bin", 0x000000, 0x6568, CRC(0171743e) SHA1(bbe6fec182baae5e4d47d263fae6b419db5366ae) )
|
||||
// ROM_LOAD( "32x_spin.bin", 0x000000, 0x012c28, CRC(3d1d1191) SHA1(221a74408653e18cef8ce2f9b4d33ed93e4218b7) )
|
||||
// ROM_LOAD( "32x_doom.bin", 0x000000, 0x300000, CRC(208332fd) SHA1(b68e9c7af81853b8f05b8696033dfe4c80327e38) )
|
||||
ROM_LOAD( "32x_koli.bin", 0x000000, 0x300000, CRC(20ca53ef) SHA1(191ae0b525ecf32664086d8d748e0b35f776ddfe) ) // works but stutters.. probably flags
|
||||
// ROM_LOAD( "32x_head.bin", 0x000000, 0x300000, CRC(1) SHA1(1) ) // works but stutters.. probably flags
|
||||
// ROM_LOAD( "32x_head.bin", 0x000000, 0x300000, CRC(1) SHA1(1) ) // works but stutters.. probably flags
|
||||
|
||||
ROM_REGION32_BE( 0x400000, "gamecart_sh2", 0 ) /* Copy for the SH2 */
|
||||
ROM_COPY( "gamecart", 0x0, 0x0, 0x400000)
|
||||
|
||||
ROM_REGION16_BE( 0x400000, "32x_68k_bios", 0 ) /* 68000 Code */
|
||||
// ROM_COPY( "gamecart", 0x0, 0x0, 0x400000)
|
||||
// ROM_COPY( "gamecart", 0x0, 0x0, 0x400000)
|
||||
ROM_LOAD( "32x_g_bios.bin", 0x000000, 0x000100, CRC(5c12eae8) SHA1(dbebd76a448447cb6e524ac3cb0fd19fc065d944) )
|
||||
|
||||
ROM_REGION( 0x400000, "32x_master_sh2", 0 ) /* SH2 Code */
|
||||
|
@ -186,9 +186,9 @@ static ADDRESS_MAP_START( mirage_readmem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
|
||||
AM_RANGE(0x130000, 0x1307ff) AM_READ(SMH_RAM)
|
||||
|
||||
// AM_RANGE(0x140006, 0x140007) AM_READ(random_readers)
|
||||
// AM_RANGE(0x140006, 0x140007) AM_READ(random_readers)
|
||||
|
||||
// AM_RANGE(0x150006, 0x150007) AM_READ(SMH_NOP)
|
||||
// AM_RANGE(0x150006, 0x150007) AM_READ(SMH_NOP)
|
||||
|
||||
AM_RANGE(0x16c006, 0x16c007) AM_READ(mirage_input_r)
|
||||
|
||||
|
@ -461,157 +461,157 @@ INPUT_PORTS_END
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Neo-Geo game pcb infos:
|
||||
=======================
|
||||
Neo-Geo game pcb infos:
|
||||
=======================
|
||||
|
||||
The Neo-Geo games for AES (home) and MVS (arcade) systems are cartridge based.
|
||||
The Neo-Geo games for AES (home) and MVS (arcade) systems are cartridge based.
|
||||
|
||||
Each cartridge consists of two pcb's: CHA and PROG.
|
||||
Each cartridge consists of two pcb's: CHA and PROG.
|
||||
|
||||
CHA pcb contains gfx data ('C' - rom), text layer data ('S' - rom) and sound driver ('M' - rom).
|
||||
PROG pcb contains sample data ('V' - rom) and program code ('P' - rom).
|
||||
CHA pcb contains gfx data ('C' - rom), text layer data ('S' - rom) and sound driver ('M' - rom).
|
||||
PROG pcb contains sample data ('V' - rom) and program code ('P' - rom).
|
||||
|
||||
On most pcb's various custom/protection chips can also be found:
|
||||
On most pcb's various custom/protection chips can also be found:
|
||||
|
||||
CHA:
|
||||
. NEO-273
|
||||
. NEO-CMC
|
||||
. NEO-ZMC
|
||||
. NEO-ZMC2
|
||||
. PRO-CT0
|
||||
. SNK-9201
|
||||
CHA:
|
||||
. NEO-273
|
||||
. NEO-CMC
|
||||
. NEO-ZMC
|
||||
. NEO-ZMC2
|
||||
. PRO-CT0
|
||||
. SNK-9201
|
||||
|
||||
PROG:
|
||||
. 0103 (QFP144)
|
||||
. ALTERA (EPM7128SQC100-15)
|
||||
. NEO-COMA
|
||||
. NEO-PCM2 (SNK 1999)
|
||||
. NEO-PCM2 (PLAYMORE 2002)
|
||||
. NEO-PVC
|
||||
. NEO-SMA
|
||||
. PCM
|
||||
. PRO-CT0
|
||||
. SNK-9201
|
||||
PROG:
|
||||
. 0103 (QFP144)
|
||||
. ALTERA (EPM7128SQC100-15)
|
||||
. NEO-COMA
|
||||
. NEO-PCM2 (SNK 1999)
|
||||
. NEO-PCM2 (PLAYMORE 2002)
|
||||
. NEO-PVC
|
||||
. NEO-SMA
|
||||
. PCM
|
||||
. PRO-CT0
|
||||
. SNK-9201
|
||||
|
||||
|
||||
Known pcb's:
|
||||
============
|
||||
Known pcb's:
|
||||
============
|
||||
|
||||
MVS CHA:
|
||||
-- SNK --
|
||||
. NEO-MVS CHA-32
|
||||
. NEO-MVS CHA-8M
|
||||
. NEO-MVS CHA42G
|
||||
. NEO-MVS CHA42G-1
|
||||
. NEO-MVS CHA 42G-2
|
||||
. NEO-MVS CHA 42G-3
|
||||
. NEO-MVS CHA42G-3B
|
||||
. NEO-MVS CHA256
|
||||
. NEO-MVS CHA256B
|
||||
. NEO-MVS PSTM CHA136
|
||||
. NEO-MVS CHA512Y
|
||||
. NEO-MVS CHAFIO (1999.6.14)
|
||||
. MVS CHAFIO REV1.0 (KOF-2001)
|
||||
. NEO-MVS CHAFIO (SNK 2002) - MADE IN KOREA
|
||||
-- SNKPLAYMORE --
|
||||
. NEO-MVS CHAFIO (2003.7.24)
|
||||
MVS CHA:
|
||||
-- SNK --
|
||||
. NEO-MVS CHA-32
|
||||
. NEO-MVS CHA-8M
|
||||
. NEO-MVS CHA42G
|
||||
. NEO-MVS CHA42G-1
|
||||
. NEO-MVS CHA 42G-2
|
||||
. NEO-MVS CHA 42G-3
|
||||
. NEO-MVS CHA42G-3B
|
||||
. NEO-MVS CHA256
|
||||
. NEO-MVS CHA256B
|
||||
. NEO-MVS PSTM CHA136
|
||||
. NEO-MVS CHA512Y
|
||||
. NEO-MVS CHAFIO (1999.6.14)
|
||||
. MVS CHAFIO REV1.0 (KOF-2001)
|
||||
. NEO-MVS CHAFIO (SNK 2002) - MADE IN KOREA
|
||||
-- SNKPLAYMORE --
|
||||
. NEO-MVS CHAFIO (2003.7.24)
|
||||
|
||||
MVS PROG:
|
||||
-- SNK --
|
||||
. NEO-MVS PROG-NAM
|
||||
. NEO-MVS PROG-HERO
|
||||
. NEO-MVS PROG-EP
|
||||
. NEO-MVS PROG-8MB
|
||||
. NEO-MVS PROG8M42
|
||||
. NEO-MVS PROG16
|
||||
. NEO-MVS PROG42G
|
||||
. NEO-MVS PROG42G-COM
|
||||
. NEO-MVS PROG42G-1
|
||||
. NEO-MVS PROG-G2
|
||||
. NEO-MVS PROG 4096
|
||||
. NEO-MVS PROG 4096 B
|
||||
. NEO-MVS PROGGSC
|
||||
. NEO-MVS PROGSM
|
||||
. NEO-MVS PROGSS3
|
||||
. NEO-MVS PROGTOP
|
||||
. NEO-MVS PROGSF1 (1998.6.17)
|
||||
. NEO-MVS PROGEOP (1999.2.2)
|
||||
. NEO-MVS PROGLBA (1999.4.12) - LBA-SUB (2000.2.24)
|
||||
. NEO-MVS PROGBK1
|
||||
. NEO-MVS PROGBK2 (2000.3.21)
|
||||
. MVS PROGBK2 REV1.0 (KOF-2001)
|
||||
. NEO-MVS PROGBK2 (SNK 2002) - MADE IN KOREA
|
||||
-- SNKPLAYMORE --
|
||||
. NEO-MVS PROGBK2R (2003.8.26) - NEO-HYCS (2003.9.29)
|
||||
. NEO-MVS PROGBK3R (2003.9.2) - NEO-HYCS (2003.9.29)
|
||||
. NEO-MVS PROGBK3S (2003.10.1)
|
||||
. NEO-MVS PROGBK2S (2003.10.18)
|
||||
MVS PROG:
|
||||
-- SNK --
|
||||
. NEO-MVS PROG-NAM
|
||||
. NEO-MVS PROG-HERO
|
||||
. NEO-MVS PROG-EP
|
||||
. NEO-MVS PROG-8MB
|
||||
. NEO-MVS PROG8M42
|
||||
. NEO-MVS PROG16
|
||||
. NEO-MVS PROG42G
|
||||
. NEO-MVS PROG42G-COM
|
||||
. NEO-MVS PROG42G-1
|
||||
. NEO-MVS PROG-G2
|
||||
. NEO-MVS PROG 4096
|
||||
. NEO-MVS PROG 4096 B
|
||||
. NEO-MVS PROGGSC
|
||||
. NEO-MVS PROGSM
|
||||
. NEO-MVS PROGSS3
|
||||
. NEO-MVS PROGTOP
|
||||
. NEO-MVS PROGSF1 (1998.6.17)
|
||||
. NEO-MVS PROGEOP (1999.2.2)
|
||||
. NEO-MVS PROGLBA (1999.4.12) - LBA-SUB (2000.2.24)
|
||||
. NEO-MVS PROGBK1
|
||||
. NEO-MVS PROGBK2 (2000.3.21)
|
||||
. MVS PROGBK2 REV1.0 (KOF-2001)
|
||||
. NEO-MVS PROGBK2 (SNK 2002) - MADE IN KOREA
|
||||
-- SNKPLAYMORE --
|
||||
. NEO-MVS PROGBK2R (2003.8.26) - NEO-HYCS (2003.9.29)
|
||||
. NEO-MVS PROGBK3R (2003.9.2) - NEO-HYCS (2003.9.29)
|
||||
. NEO-MVS PROGBK3S (2003.10.1)
|
||||
. NEO-MVS PROGBK2S (2003.10.18)
|
||||
|
||||
|
||||
AES CHA:
|
||||
-- SNK --
|
||||
. NEO-AEG CHA-32
|
||||
. NEO-AEG CHA-8M
|
||||
. NEO-AEG CHA42G
|
||||
. NEO-AEG CHA42G-1
|
||||
. NEO-AEG CHA42G-2B
|
||||
. NEO-AEG CHA42G-3
|
||||
. NEO-AEG CHA42G-4
|
||||
. NEO-AEG CHA256
|
||||
. NEO-AEG CHA256[B]
|
||||
. NEO-AEG CHA256RY
|
||||
. NEO-AEG CHA512Y
|
||||
. NEO-AEG CHAFIO (1999.8.10)
|
||||
-- SNKPLAYMORE --
|
||||
. NEO-AEG CHAFIO (2003.7.24)
|
||||
AES CHA:
|
||||
-- SNK --
|
||||
. NEO-AEG CHA-32
|
||||
. NEO-AEG CHA-8M
|
||||
. NEO-AEG CHA42G
|
||||
. NEO-AEG CHA42G-1
|
||||
. NEO-AEG CHA42G-2B
|
||||
. NEO-AEG CHA42G-3
|
||||
. NEO-AEG CHA42G-4
|
||||
. NEO-AEG CHA256
|
||||
. NEO-AEG CHA256[B]
|
||||
. NEO-AEG CHA256RY
|
||||
. NEO-AEG CHA512Y
|
||||
. NEO-AEG CHAFIO (1999.8.10)
|
||||
-- SNKPLAYMORE --
|
||||
. NEO-AEG CHAFIO (2003.7.24)
|
||||
|
||||
AES PROG:
|
||||
-- SNK --
|
||||
. NEO-AEG PROG-NAM
|
||||
. NEO-AEG PROG-HERO
|
||||
. NEO-AEG PROG-4A
|
||||
. NEO-AEG PROG-4B
|
||||
. NEO-AEG PROG 8M42
|
||||
. NEO-AEG PROG B
|
||||
. NEO-AEG PROG16
|
||||
. NEO-AEG PROG42G
|
||||
. NEO-AEG PROG42G-COM
|
||||
. NEO-AEG PROG42G-1
|
||||
. NEO-AEG PROG-G2
|
||||
. NEO-AEG PROG4096 B
|
||||
. NEO-AEG PROGGS
|
||||
. NEO-AEG PROGTOP2
|
||||
. NEO-AEG PROGLBA (1999.7.6)
|
||||
. NEO-AEG PROGRK
|
||||
. NEO-AEG PROGRKB
|
||||
. NEO-AEG PROGBK1Y
|
||||
. NEO-AEG PROGBK1F
|
||||
-- PLAYMORE --
|
||||
. NEO-AEG PROGBK2 (2002.4.1)
|
||||
-- SNKPLAYMORE --
|
||||
. NEO-AEG PROGBK3R (2003.8.29) - NEO-HYCS (2003.9.29)
|
||||
. NEO-AEG PROGBK2S (2003.10.16)
|
||||
AES PROG:
|
||||
-- SNK --
|
||||
. NEO-AEG PROG-NAM
|
||||
. NEO-AEG PROG-HERO
|
||||
. NEO-AEG PROG-4A
|
||||
. NEO-AEG PROG-4B
|
||||
. NEO-AEG PROG 8M42
|
||||
. NEO-AEG PROG B
|
||||
. NEO-AEG PROG16
|
||||
. NEO-AEG PROG42G
|
||||
. NEO-AEG PROG42G-COM
|
||||
. NEO-AEG PROG42G-1
|
||||
. NEO-AEG PROG-G2
|
||||
. NEO-AEG PROG4096 B
|
||||
. NEO-AEG PROGGS
|
||||
. NEO-AEG PROGTOP2
|
||||
. NEO-AEG PROGLBA (1999.7.6)
|
||||
. NEO-AEG PROGRK
|
||||
. NEO-AEG PROGRKB
|
||||
. NEO-AEG PROGBK1Y
|
||||
. NEO-AEG PROGBK1F
|
||||
-- PLAYMORE --
|
||||
. NEO-AEG PROGBK2 (2002.4.1)
|
||||
-- SNKPLAYMORE --
|
||||
. NEO-AEG PROGBK3R (2003.8.29) - NEO-HYCS (2003.9.29)
|
||||
. NEO-AEG PROGBK2S (2003.10.16)
|
||||
|
||||
|
||||
Cartridge colours:
|
||||
==================
|
||||
Cartridge colours:
|
||||
==================
|
||||
|
||||
MVS cartridges were produced in different colours.
|
||||
|
||||
Known cartridge colours:
|
||||
. Black
|
||||
. Blue
|
||||
. Green
|
||||
. Grey
|
||||
. Red
|
||||
. Transparent
|
||||
. Transparent Blue
|
||||
. Transparent Green
|
||||
. White
|
||||
. Yellow
|
||||
MVS cartridges were produced in different colours.
|
||||
|
||||
The above listed only covers SNK / PLAYMORE / SNKPLAYMORE pcb's. There also exists a
|
||||
wide range of 'bootleg' pcb's.
|
||||
Known cartridge colours:
|
||||
. Black
|
||||
. Blue
|
||||
. Green
|
||||
. Grey
|
||||
. Red
|
||||
. Transparent
|
||||
. Transparent Blue
|
||||
. Transparent Green
|
||||
. White
|
||||
. Yellow
|
||||
|
||||
The above listed only covers SNK / PLAYMORE / SNKPLAYMORE pcb's. There also exists a
|
||||
wide range of 'bootleg' pcb's.
|
||||
|
||||
|
||||
Neo-Geo game pcb infos by Johnboy
|
||||
|
@ -340,7 +340,7 @@ static READ16_HANDLER( tharrier_mcu_r )
|
||||
static WRITE16_HANDLER( macross2_sound_reset_w )
|
||||
{
|
||||
/* PCB behaviour verified by Corrado Tomaselli at MAME Italia Forum:
|
||||
every time music changes Z80 is resetted */
|
||||
every time music changes Z80 is resetted */
|
||||
cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
|
||||
}
|
||||
|
||||
|
@ -59,7 +59,7 @@
|
||||
We made a full artwork that allow you to play this game with bells and whistles.
|
||||
|
||||
|
||||
* Buena Suerte ´94 Video Poker Game w/ Double Up feature - 1 Player.
|
||||
* Buena Suerte ?94 Video Poker Game w/ Double Up feature - 1 Player.
|
||||
|
||||
This game is a reprogrammed version of the Buena Suerte! poker game, to run on this
|
||||
GEMINIS RE900 hardware.
|
||||
@ -90,13 +90,13 @@ static UINT8 psg_pa, psg_pb = 0, mux_data = 0, ledant = 0, player = 1, stat_a= 1
|
||||
|
||||
static READ8_HANDLER (re_psg_portA_r)
|
||||
{
|
||||
if ((input_port_read(machine, "IN0") & 0x01) == 0)
|
||||
if ((input_port_read(machine, "IN0") & 0x01) == 0)
|
||||
{
|
||||
output_set_lamp_value(0,1); // Operator Key ON
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
else
|
||||
{
|
||||
output_set_lamp_value(0,0); // Operator Key OFF
|
||||
}
|
||||
|
||||
@ -139,7 +139,7 @@ static READ8_HANDLER (re_psg_portB_r)
|
||||
}
|
||||
/* End of Select Player Hack */
|
||||
|
||||
/* "INA": Unified port to share the player Keys among all players - Key In & Key Out have their own buttons on keyboard. */
|
||||
/* "INA": Unified port to share the player Keys among all players - Key In & Key Out have their own buttons on keyboard. */
|
||||
switch( mux_data )
|
||||
{
|
||||
case 0x01: retval = (input_port_read(machine, "IN6") | 0x80 ) - (( player == 6 ) ? (input_port_read(machine, "INA") | 0x80 ) ^ 0xff: 0x00 ); break; /* Player 6 */
|
||||
@ -189,7 +189,7 @@ static WRITE8_HANDLER (re_mux_port_B_w)
|
||||
{
|
||||
output_set_lamp_value(20 + led, 1);
|
||||
|
||||
if (led != ledant)
|
||||
if (led != ledant)
|
||||
{
|
||||
output_set_lamp_value(20 + ledant, 0);
|
||||
ledant = led;
|
||||
@ -199,8 +199,8 @@ static WRITE8_HANDLER (re_mux_port_B_w)
|
||||
|
||||
static WRITE8_HANDLER (cpu_port_0_w)
|
||||
{
|
||||
// output_set_lamp_value(7,1 ^ ( (data >> 4) & 1)); /* Cont. Sal */
|
||||
// output_set_lamp_value(8,1 ^ ( (data >> 5) & 1)); /* Cont. Ent */
|
||||
// output_set_lamp_value(7,1 ^ ( (data >> 4) & 1)); /* Cont. Sal */
|
||||
// output_set_lamp_value(8,1 ^ ( (data >> 5) & 1)); /* Cont. Ent */
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER(re900_watchdog_reset_w)
|
||||
@ -218,14 +218,14 @@ static ADDRESS_MAP_START( mem_prg, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( mem_io, ADDRESS_SPACE_IO, 8 )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_READ (rom_r)
|
||||
AM_RANGE(0x0000, 0xbfff) AM_READ (rom_r)
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
|
||||
AM_RANGE(0xe000, 0xe000) AM_WRITE(TMS9928A_vram_w)
|
||||
AM_RANGE(0xe001, 0xe001) AM_WRITE(TMS9928A_register_w)
|
||||
AM_RANGE(0xe800, 0xe800) AM_WRITE(ay8910_control_port_0_w)
|
||||
AM_RANGE(0xe801, 0xe801) AM_WRITE(ay8910_write_port_0_w)
|
||||
AM_RANGE(0xe802, 0xe802) AM_READ(ay8910_read_port_0_r)
|
||||
AM_RANGE(0xe000, 0xefff) AM_WRITE(re900_watchdog_reset_w)
|
||||
AM_RANGE(0xe000, 0xefff) AM_WRITE(re900_watchdog_reset_w)
|
||||
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_WRITE(cpu_port_0_w)
|
||||
AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_NOP
|
||||
AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_NOP
|
||||
@ -253,14 +253,14 @@ INPUT_PORTS_START( re900 )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Operator Key") PORT_TOGGLE PORT_CODE(KEYCODE_0)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Auditor Key") PORT_TOGGLE PORT_CODE(KEYCODE_9)
|
||||
|
||||
PORT_START("INA")
|
||||
PORT_START("INA")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Bet")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Up") PORT_CODE(KEYCODE_UP)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN1")
|
||||
@ -281,7 +281,7 @@ INPUT_PORTS_START( re900 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("P2 Key-In") PORT_CODE(KEYCODE_2)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("P2 Key-Out") PORT_CODE(KEYCODE_W)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN3")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
@ -291,7 +291,7 @@ INPUT_PORTS_START( re900 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("P3 Key-In") PORT_CODE(KEYCODE_3)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("P3 Key-Out") PORT_CODE(KEYCODE_E)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN4")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
@ -301,7 +301,7 @@ INPUT_PORTS_START( re900 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("P4 Key-In") PORT_CODE(KEYCODE_4)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("P4 Key-Out") PORT_CODE(KEYCODE_R)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN5")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
@ -311,7 +311,7 @@ INPUT_PORTS_START( re900 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("P5 Key-In") PORT_CODE(KEYCODE_5)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("P5 Key-Out") PORT_CODE(KEYCODE_T)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN6")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
@ -325,12 +325,12 @@ INPUT_PORTS_START( re900 )
|
||||
|
||||
PORT_START("IN_S")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("Player Select") PORT_CODE(KEYCODE_L)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
@ -381,7 +381,7 @@ static const ay8910_interface ay8910_re900 =
|
||||
re_psg_portA_r,
|
||||
re_psg_portB_r,
|
||||
re_mux_port_A_w,
|
||||
re_mux_port_B_w
|
||||
re_mux_port_B_w
|
||||
};
|
||||
|
||||
static const ay8910_interface ay8910_bs94 =
|
||||
@ -404,7 +404,7 @@ static MACHINE_DRIVER_START( re900 )
|
||||
MDRV_CPU_ADD("main", I8051, MAIN_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(mem_prg, 0)
|
||||
MDRV_CPU_IO_MAP(mem_io, 0)
|
||||
MDRV_CPU_VBLANK_INT("main", re900_video_interrupt)
|
||||
MDRV_CPU_VBLANK_INT("main", re900_video_interrupt)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_IMPORT_FROM(tms9928a)
|
||||
@ -413,7 +413,7 @@ static MACHINE_DRIVER_START( re900 )
|
||||
|
||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||
|
||||
/* sound hardware */
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
MDRV_SOUND_ADD("ay_re900", AY8910, TMS_CLOCK) /* From TMS9128NL - Pin 37 (GROMCLK) */
|
||||
MDRV_SOUND_CONFIG(ay8910_re900)
|
||||
@ -424,7 +424,7 @@ static MACHINE_DRIVER_START( bs94 )
|
||||
|
||||
MDRV_IMPORT_FROM(re900)
|
||||
|
||||
/* sound hardware */
|
||||
/* sound hardware */
|
||||
MDRV_SOUND_MODIFY("ay_re900")
|
||||
MDRV_SOUND_CONFIG(ay8910_bs94)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
|
||||
|
@ -289,7 +289,7 @@ WRITE64_HANDLER( dc_sysctrl_w )
|
||||
else if ((address >= 0x13000000) && (address <= 0x13FFFFFF))
|
||||
if (dc_sysctrl_regs[SB_LMMODE1])
|
||||
mame_printf_verbose("SYSCTRL: Ch2 direct display lists dma %x from %08x to %08x (lmmode0=%d lmmode1=%d)\n", dc_sysctrl_regs[SB_C2DLEN], ddtdata.source-ddtdata.length, dc_sysctrl_regs[SB_C2DSTAT],dc_sysctrl_regs[SB_LMMODE0],dc_sysctrl_regs[SB_LMMODE1]); // 1
|
||||
else
|
||||
else
|
||||
mame_printf_verbose("SYSCTRL: Ch2 direct textures dma %x from %08x to %08x (lmmode0=%d lmmode1=%d)\n", dc_sysctrl_regs[SB_C2DLEN], ddtdata.source-ddtdata.length, dc_sysctrl_regs[SB_C2DSTAT],dc_sysctrl_regs[SB_LMMODE0],dc_sysctrl_regs[SB_LMMODE1]); // 0
|
||||
else if ((address >= 0x10800000) && (address <= 0x10ffffff))
|
||||
mame_printf_verbose("SYSCTRL: Ch2 YUV dma %x from %08x to %08x (lmmode0=%d lmmode1=%d)\n", dc_sysctrl_regs[SB_C2DLEN], ddtdata.source-ddtdata.length, dc_sysctrl_regs[SB_C2DSTAT],dc_sysctrl_regs[SB_LMMODE0],dc_sysctrl_regs[SB_LMMODE1]);
|
||||
|
@ -27,7 +27,7 @@ static UINT16 gfx_bank;
|
||||
static UINT16 scrollx[3], scrolly[3];
|
||||
static UINT16 video_register;
|
||||
|
||||
enum
|
||||
enum
|
||||
{
|
||||
TWIN16_SCREEN_FLIPY = 0x01, /* ? breaks devils world text layer */
|
||||
TWIN16_SCREEN_FLIPX = 0x02, /* confirmed: Hard Puncher Intro */
|
||||
@ -60,7 +60,7 @@ WRITE16_HANDLER( fround_gfx_bank_w )
|
||||
|
||||
WRITE16_HANDLER( twin16_video_register_w )
|
||||
{
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0:
|
||||
COMBINE_DATA( &video_register );
|
||||
@ -120,9 +120,9 @@ static void draw_sprite( bitmap_t *bitmap,const UINT16 *pen_data, int pal_base,
|
||||
|
||||
if( pen )
|
||||
{
|
||||
if(pdest[sx]<pval)
|
||||
{
|
||||
dest[sx] = pal_base + pen;
|
||||
if(pdest[sx]<pval)
|
||||
{
|
||||
dest[sx] = pal_base + pen;
|
||||
}
|
||||
pdest[sx]|=0x10;
|
||||
}
|
||||
@ -198,12 +198,12 @@ static void draw_sprites( bitmap_t *bitmap )
|
||||
const UINT16 *source = 0x1800+buffered_spriteram16 + 0x800 - 4;
|
||||
const UINT16 *finish = 0x1800+buffered_spriteram16;
|
||||
|
||||
for (; source >= finish; source -= 4)
|
||||
for (; source >= finish; source -= 4)
|
||||
{
|
||||
UINT16 attributes = source[3];
|
||||
UINT16 code = source[0];
|
||||
|
||||
if((code!=0xffff) && (attributes&0x8000))
|
||||
if((code!=0xffff) && (attributes&0x8000))
|
||||
{
|
||||
int xpos = source[1];
|
||||
int ypos = source[2];
|
||||
@ -215,11 +215,11 @@ static void draw_sprites( bitmap_t *bitmap )
|
||||
int flipy = attributes&0x0200;
|
||||
int flipx = attributes&0x0100;
|
||||
|
||||
if( twin16_custom_video == 1 )
|
||||
if( twin16_custom_video == 1 )
|
||||
{
|
||||
pen_data = twin16_gfx_rom + 0x80000;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
switch( (code>>12)&0x3 )
|
||||
{ /* bank select */
|
||||
@ -301,7 +301,7 @@ static void draw_layer( bitmap_t *bitmap, int opaque )
|
||||
dy = scrolly[2];
|
||||
palette = 1;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
source += 0x0000;
|
||||
dx = scrollx[1];
|
||||
@ -317,7 +317,7 @@ static void draw_layer( bitmap_t *bitmap, int opaque )
|
||||
bank_table[1] = (gfx_bank>>(4*1))&0xf;
|
||||
bank_table[0] = (gfx_bank>>(4*0))&0xf;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
gfx_base = twin16_tile_gfx_ram;
|
||||
bank_table[0] = 0;
|
||||
@ -445,7 +445,7 @@ VIDEO_UPDATE( twin16 )
|
||||
fillbitmap(priority_bitmap,0,cliprect);
|
||||
draw_layer( bitmap,1 );
|
||||
|
||||
if (twin16_custom_video)
|
||||
if (twin16_custom_video)
|
||||
{
|
||||
draw_layer( bitmap,0 );
|
||||
draw_sprites( bitmap );
|
||||
|
@ -7,12 +7,12 @@
|
||||
|
||||
****************************************************************************
|
||||
|
||||
Template file format:
|
||||
|
||||
<html header>
|
||||
<!--PATH--> = insert path
|
||||
<!--CONTENT--> = insert content
|
||||
<html footer>
|
||||
Template file format:
|
||||
|
||||
<html header>
|
||||
<!--PATH--> = insert path
|
||||
<!--CONTENT--> = insert content
|
||||
<html footer>
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
@ -223,7 +223,7 @@ int main(int argc, char *argv[])
|
||||
incpathhead = &(*incpathhead)->next;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* other parameter */
|
||||
else if (arg[0] != '-' && unadorned == 0)
|
||||
{
|
||||
@ -247,7 +247,7 @@ int main(int argc, char *argv[])
|
||||
/* make sure we got 3 parameters */
|
||||
if (srcdir == NULL || dstdir == NULL || tempfilename == NULL)
|
||||
goto usage;
|
||||
|
||||
|
||||
/* read the template file into an astring */
|
||||
if (core_fopen(astring_c(tempfilename), OPEN_FLAG_READ, &tempfile) == FILERR_NONE)
|
||||
{
|
||||
@ -261,7 +261,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
core_fclose(tempfile);
|
||||
}
|
||||
|
||||
|
||||
/* verify the template */
|
||||
if (tempheader == NULL)
|
||||
{
|
||||
@ -744,7 +744,7 @@ static core_file *create_file_and_output_header(const astring *filename, const a
|
||||
{
|
||||
astring *modified;
|
||||
core_file *file;
|
||||
|
||||
|
||||
/* create the indexfile */
|
||||
if (core_fopen(astring_c(filename), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS | OPEN_FLAG_NO_BOM, &file) != FILERR_NONE)
|
||||
return NULL;
|
||||
|
@ -9,4 +9,4 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
const char build_version[] = "0.128u1 ("__DATE__")";
|
||||
const char build_version[] = "0.128u2 ("__DATE__")";
|
||||
|
Loading…
Reference in New Issue
Block a user