mirror of
https://github.com/holub/mame
synced 2025-07-01 16:19:38 +03:00
Cleanups/version bump.
This commit is contained in:
parent
37c56cf592
commit
67e76e92f5
@ -166,12 +166,12 @@ int pic8259_acknowledge(const device_config *device)
|
||||
if ((pic8259->pending & mask) && !(pic8259->interrupt_mask & mask))
|
||||
{
|
||||
if (LOG_GENERAL)
|
||||
logerror("pic8259_acknowledge(): PIC acknowledge IRQ #%d\n", irq);
|
||||
logerror("pic8259_acknowledge(): PIC acknowledge IRQ #%d\n", irq);
|
||||
pic8259->pending &= ~mask;
|
||||
if (!pic8259->auto_eoi)
|
||||
pic8259->in_service |= mask;
|
||||
if (pic8259->is_x86) {
|
||||
/* For x86 mode*/
|
||||
/* For x86 mode*/
|
||||
return irq + pic8259->base;
|
||||
} else {
|
||||
/* in case of 8080/85) */
|
||||
|
@ -71,28 +71,28 @@ offset of 1.5V and a VPP of 1.3V.
|
||||
|
||||
The following is documentation from the code moved here and amended to reflect
|
||||
the changes done:
|
||||
|
||||
|
||||
Careful studies of the chip output prove that the chip counts up from 0
|
||||
until the counter becomes greater or equal to the period. This is an
|
||||
important difference when the program is rapidly changing the period to
|
||||
modulate the sound. This is worthwhile noting, since the datasheets
|
||||
until the counter becomes greater or equal to the period. This is an
|
||||
important difference when the program is rapidly changing the period to
|
||||
modulate the sound. This is worthwhile noting, since the datasheets
|
||||
say, that the chip counts down.
|
||||
Also, note that period = 0 is the same as period = 1. This is mentioned
|
||||
in the YM2203 data sheets. However, this does NOT apply to the Envelope
|
||||
period. In that case, period = 0 is half as period = 1.
|
||||
|
||||
Envelope shapes:
|
||||
C AtAlH
|
||||
0 0 x x \___
|
||||
0 1 x x /___
|
||||
1 0 0 0 \\\\
|
||||
1 0 0 1 \___
|
||||
1 0 1 0 \/\/
|
||||
1 0 1 1 \```
|
||||
1 1 0 0 ////
|
||||
1 1 0 1 /```
|
||||
1 1 1 0 /\/\
|
||||
1 1 1 1 /___
|
||||
C AtAlH
|
||||
0 0 x x \___
|
||||
0 1 x x /___
|
||||
1 0 0 0 \\\\
|
||||
1 0 0 1 \___
|
||||
1 0 1 0 \/\/
|
||||
1 0 1 1 \```
|
||||
1 1 0 0 ////
|
||||
1 1 0 1 /```
|
||||
1 1 1 0 /\/\
|
||||
1 1 1 1 /___
|
||||
|
||||
The envelope counter on the AY-3-8910 has 16 steps. On the YM2149 it
|
||||
has twice the steps, happening twice as fast.
|
||||
@ -190,7 +190,7 @@ struct _ay8910_context
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Static
|
||||
* Static
|
||||
*
|
||||
*************************************/
|
||||
|
||||
@ -262,7 +262,7 @@ static const ay_ym_param ay8910_param =
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Inline
|
||||
* Inline
|
||||
*
|
||||
*************************************/
|
||||
|
||||
@ -379,7 +379,7 @@ INLINE UINT16 mix_3D(ay8910_context *psg)
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Static functions
|
||||
* Static functions
|
||||
*
|
||||
*************************************/
|
||||
|
||||
@ -546,7 +546,7 @@ static void ay8910_update(void *param,stream_sample_t **inputs, stream_sample_t
|
||||
if (psg->holding == 0)
|
||||
{
|
||||
psg->count_env++;
|
||||
if (psg->count_env >= ENVELOPE_PERIOD(psg) * psg->step )
|
||||
if (psg->count_env >= ENVELOPE_PERIOD(psg) * psg->step )
|
||||
{
|
||||
psg->count_env = 0;
|
||||
psg->env_step--;
|
||||
@ -619,9 +619,9 @@ static void build_mixer_table(ay8910_context *psg)
|
||||
build_single_table(psg->intf->res_load[chan], psg->par_env, normalize, psg->env_table[chan], 0);
|
||||
}
|
||||
/*
|
||||
* The previous implementation added all three channels up instead of averaging them.
|
||||
* The factor of 3 will force the same levels if normalizing is used.
|
||||
*/
|
||||
* The previous implementation added all three channels up instead of averaging them.
|
||||
* The factor of 3 will force the same levels if normalizing is used.
|
||||
*/
|
||||
build_3D_table(psg->intf->res_load[0], psg->par, psg->par_env, normalize, 3, psg->zero_is_off, psg->vol3d_table);
|
||||
}
|
||||
|
||||
@ -650,8 +650,8 @@ static void ay8910_statesave(ay8910_context *psg, int sndindex)
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Public functions
|
||||
*
|
||||
* Public functions
|
||||
*
|
||||
* used by e.g. YM2203, YM2210 ...
|
||||
*
|
||||
*************************************/
|
||||
@ -812,7 +812,7 @@ int ay8910_read_ym(void *chip)
|
||||
/*************************************
|
||||
*
|
||||
* Sound Interface
|
||||
*
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static void *ay8910_start(int sndindex, int clock, const void *config)
|
||||
@ -947,7 +947,7 @@ void ymz294_get_info(void *token, UINT32 state, sndinfo *info)
|
||||
/*************************************
|
||||
*
|
||||
* Read/Write Handlers
|
||||
*
|
||||
*
|
||||
*************************************/
|
||||
|
||||
READ8_HANDLER( AY8910_read_port_0_r ) { return ay8910_read_ym(sndti_token(SOUND_AY8910, 0)); }
|
||||
|
@ -27,7 +27,7 @@ YMZ294: 0 I/O port
|
||||
*/
|
||||
#define AY8910_DEFAULT_LOADS {1000, 1000, 1000}
|
||||
|
||||
/*
|
||||
/*
|
||||
* The following is used by all drivers not reviewed yet.
|
||||
* This will like the old behaviour, output between
|
||||
* 0 and 7FFF
|
||||
@ -51,8 +51,8 @@ YMZ294: 0 I/O port
|
||||
|
||||
/*
|
||||
* The follwoing define causes the driver to output
|
||||
* raw volume levels, i.e. 0 .. 15 and 0..31.
|
||||
* This is intended to be used in a subsequent
|
||||
* raw volume levels, i.e. 0 .. 15 and 0..31.
|
||||
* This is intended to be used in a subsequent
|
||||
* mixing modul (i.e. mpatrol ties 6 channels from
|
||||
* AY-3-8910 together). Do not use it now.
|
||||
*/
|
||||
|
@ -334,7 +334,7 @@ static void dst_sallen_key_reset(node_description *node)
|
||||
struct dss_filter2_context *context = node->context;
|
||||
const discrete_op_amp_filt_info *info = node->custom;
|
||||
double freq, q;
|
||||
|
||||
|
||||
switch ((int) DST_SALLEN_KEY__TYPE)
|
||||
{
|
||||
case DISC_SALLEN_KEY_LOW_PASS:
|
||||
@ -344,7 +344,7 @@ static void dst_sallen_key_reset(node_description *node)
|
||||
default:
|
||||
fatalerror("Unknown sallen key filter type");
|
||||
}
|
||||
|
||||
|
||||
calculate_filter2_coefficients(freq, 1.0 / q, DISC_FILTER_LOWPASS,
|
||||
&context->a1, &context->a2,
|
||||
&context->b0, &context->b1, &context->b2);
|
||||
|
@ -2279,9 +2279,9 @@
|
||||
* | gnd |
|
||||
* | |
|
||||
* `----------------------'
|
||||
*
|
||||
*
|
||||
* EXAMPLES: see moon patrol, dkong
|
||||
*
|
||||
*
|
||||
* References:
|
||||
* http://www.t-linespeakers.org/tech/filters/Sallen-Key.html
|
||||
* http://en.wikipedia.org/wiki/Sallen_Key_filter
|
||||
|
@ -253,8 +253,8 @@ static const discrete_inverter_osc_desc dkong_inverter_osc_desc_walk =
|
||||
DISC_OSC_INVERTER_IS_TYPE2
|
||||
};
|
||||
|
||||
static const discrete_op_amp_filt_info dkong_sallen_key_info =
|
||||
{ RES_K(5.6), RES_K(5.6), 0, 0, 0,
|
||||
static const discrete_op_amp_filt_info dkong_sallen_key_info =
|
||||
{ RES_K(5.6), RES_K(5.6), 0, 0, 0,
|
||||
CAP_N(22), CAP_N(10), 0
|
||||
};
|
||||
|
||||
|
@ -194,7 +194,7 @@ static void adpcm_int(int data)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
/* All 6 (3*2) AY-3-8910 outputs are tied together
|
||||
/* All 6 (3*2) AY-3-8910 outputs are tied together
|
||||
* and put with 470 KOhm to gnd.
|
||||
* The following is a approximation */
|
||||
|
||||
@ -232,7 +232,7 @@ static const struct MSM5205interface irem_msm5205_interface_2 =
|
||||
|
||||
/*
|
||||
* http://newsgroups.derkeiler.com/Archive/Rec/rec.games.video.arcade.collecting/2006-06/msg03108.html
|
||||
*
|
||||
*
|
||||
* mentions, that moon patrol does work on moon ranger hardware.
|
||||
* There is no MSM5250, but a 74LS00 producing white noise for explosions
|
||||
*/
|
||||
@ -261,7 +261,7 @@ static const struct MSM5205interface irem_msm5205_interface_2 =
|
||||
* C35 is disabled, the mixer would just deliver
|
||||
* no signals if it is enabled.
|
||||
* TODO: Check discrete mixer
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
static const discrete_mixer_desc m52_sound_c_stage1 =
|
||||
@ -269,13 +269,13 @@ static const discrete_mixer_desc m52_sound_c_stage1 =
|
||||
{M52_R19, M52_R22 },
|
||||
{ 0, 0 }, /* variable resistors */
|
||||
{M52_C37, 0 }, /* node capacitors */
|
||||
0, M52_R23, /* rI, rF */
|
||||
M52_C35*0, /* cF */
|
||||
0, /* cAmp */
|
||||
0, M52_R23, /* rI, rF */
|
||||
M52_C35*0, /* cF */
|
||||
0, /* cAmp */
|
||||
0, 1};
|
||||
|
||||
static const discrete_op_amp_filt_info m52_sound_c_sallen_key =
|
||||
{ M52_R13, M52_R14, 0, 0, 0,
|
||||
static const discrete_op_amp_filt_info m52_sound_c_sallen_key =
|
||||
{ M52_R13, M52_R14, 0, 0, 0,
|
||||
M52_C32, M52_C38, 0
|
||||
};
|
||||
|
||||
@ -284,9 +284,9 @@ static const discrete_mixer_desc m52_sound_c_mix1 =
|
||||
{M52_R25, M52_R15 },
|
||||
{ 0, 0 }, /* variable resistors */
|
||||
{ 0, 0 }, /* node capacitors */
|
||||
0, M52_VR1, /* rI, rF */
|
||||
0, /* cF */
|
||||
CAP_U(1), /* cAmp */
|
||||
0, M52_VR1, /* rI, rF */
|
||||
0, /* cF */
|
||||
CAP_U(1), /* cAmp */
|
||||
0, 1};
|
||||
|
||||
static DISCRETE_SOUND_START( m52_sound_c )
|
||||
@ -390,27 +390,27 @@ MACHINE_DRIVER_END
|
||||
MACHINE_DRIVER_START( m52_sound_c_audio )
|
||||
|
||||
MDRV_SOUND_START(irem_audio)
|
||||
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD_TAG("iremsound", M6803, XTAL_3_579545MHz) /* verified on pcb */
|
||||
MDRV_CPU_IO_MAP(irem_sound_portmap,0)
|
||||
MDRV_CPU_PROGRAM_MAP(m52_small_sound_map,0)
|
||||
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
|
||||
MDRV_SOUND_ADD_TAG("ay8910.0", AY8910, XTAL_3_579545MHz/4) /* verified on pcb */
|
||||
MDRV_SOUND_CONFIG(irem_ay8910_interface_1)
|
||||
MDRV_SOUND_ROUTE_EX(0, "filtermix", 1.0, 0)
|
||||
|
||||
|
||||
MDRV_SOUND_ADD_TAG("ay8910.0", AY8910, XTAL_3_579545MHz/4) /* verified on pcb */
|
||||
MDRV_SOUND_CONFIG(irem_ay8910_interface_2)
|
||||
MDRV_SOUND_ROUTE_EX(0, "filtermix", 1.0, 1)
|
||||
|
||||
|
||||
MDRV_SOUND_ADD_TAG("msm5250", MSM5205, XTAL_384kHz) /* verified on pcb */
|
||||
MDRV_SOUND_CONFIG(irem_msm5205_interface_1)
|
||||
MDRV_SOUND_ROUTE_EX(0, "filtermix", 1.0, 2)
|
||||
|
||||
|
||||
MDRV_SOUND_ADD_TAG("filtermix", DISCRETE, 0)
|
||||
MDRV_SOUND_CONFIG_DISCRETE(m52_sound_c)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
@ -304,8 +304,8 @@ static const discrete_lfsr_desc mm5837_lfsr =
|
||||
16 /* Output bit */
|
||||
};
|
||||
|
||||
static const discrete_op_amp_filt_info headon_sallen_key_info =
|
||||
{ RES_K(15), RES_K(15), 0, 0, 0,
|
||||
static const discrete_op_amp_filt_info headon_sallen_key_info =
|
||||
{ RES_K(15), RES_K(15), 0, 0, 0,
|
||||
CAP_N(470), CAP_N(47), 0
|
||||
};
|
||||
|
||||
|
@ -3939,7 +3939,7 @@ ROM_END
|
||||
from the number of the only new ROM found in this set (sthj23.bin), this could
|
||||
be from a 91635B, which would classify it as a hack since that board wasn't available at the
|
||||
time of release of this game.
|
||||
All other ROMs copied from the US set
|
||||
All other ROMs copied from the US set
|
||||
*/
|
||||
ROM_START( striderj )
|
||||
ROM_REGION( CODE_SIZE, REGION_CPU1, 0 ) /* 68000 code */
|
||||
|
@ -119,7 +119,7 @@
|
||||
'Scrambled tile #' is the phisical tile position in the matrix:
|
||||
|
||||
Normal | Scrambled
|
||||
tile # | tile #
|
||||
tile # | tile #
|
||||
-------+----------
|
||||
0x00 | 0x00 \
|
||||
0x01 | 0x80 |
|
||||
@ -178,22 +178,22 @@
|
||||
0x2F | 0xF4 /
|
||||
-------+----------
|
||||
|
||||
So we extract the following decryption table:
|
||||
So we extract the following decryption table:
|
||||
|
||||
0 <-> 0; 1 <-> 8; 2 <-> 4; 3 <-> C
|
||||
4 <-> 2; 5 <-> A; 6 <-> 6; 7 <-> E
|
||||
8 <-> 1; 9 <-> 9; A <-> 5; B <-> D
|
||||
C <-> 3; D <-> B; E <-> 7; F <-> F
|
||||
0 <-> 0; 1 <-> 8; 2 <-> 4; 3 <-> C
|
||||
4 <-> 2; 5 <-> A; 6 <-> 6; 7 <-> E
|
||||
8 <-> 1; 9 <-> 9; A <-> 5; B <-> D
|
||||
C <-> 3; D <-> B; E <-> 7; F <-> F
|
||||
|
||||
...and then swap nibbles.
|
||||
|
||||
Also note that the values are inverted/mirrored bits of the original ones.
|
||||
Also note that the values are inverted/mirrored bits of the original ones.
|
||||
|
||||
0x01 (0001) <-> 0x08 (1000)
|
||||
0x02 (0010) <-> 0x04 (0100)
|
||||
0x03 (0011) <-> 0x0C (1100)
|
||||
0x04 (0100) <-> 0x04 (0010)
|
||||
0x05 (0101) <-> 0x0A (1010)
|
||||
0x01 (0001) <-> 0x08 (1000)
|
||||
0x02 (0010) <-> 0x04 (0100)
|
||||
0x03 (0011) <-> 0x0C (1100)
|
||||
0x04 (0100) <-> 0x04 (0010)
|
||||
0x05 (0101) <-> 0x0A (1010)
|
||||
...and so on.
|
||||
|
||||
To properly decrypt the thing 'on the fly' as the hardware does, I applied a bitswap into TILE_GET_INFO.
|
||||
@ -204,11 +204,11 @@
|
||||
+-------+ swapped digits 1 & 2
|
||||
| | +-------+------+
|
||||
tile_offset = BITSWAP16((tile_offset & 0xfff),15,14,13,12, 8,9,10,11, 0,1,2,3, 4,5,6,7)
|
||||
| | | | | | | | || | | |
|
||||
| | | | | | | | || | | |
|
||||
inverted inverted|inverted
|
||||
bitorder bitorder|bitorder
|
||||
|
||||
Colors are scrambled in the following way:
|
||||
Colors are scrambled in the following way:
|
||||
|
||||
Normal | Scrambled
|
||||
offset | offset
|
||||
@ -362,7 +362,7 @@ static WRITE8_HANDLER( output_port_0_w )
|
||||
/*-----------------------------
|
||||
PORT 0x5000 ;OUTPUT PORT A
|
||||
-------------------------------
|
||||
BIT 0 =
|
||||
BIT 0 =
|
||||
BIT 1 = Lamps, bit0
|
||||
BIT 2 =
|
||||
BIT 3 = Lamps, bit1
|
||||
@ -372,10 +372,10 @@ static WRITE8_HANDLER( output_port_0_w )
|
||||
BIT 7 = Lamps, bit3
|
||||
------------------------------*/
|
||||
{
|
||||
// (data >> 1) & 1; /* lamps, bit0 */
|
||||
// (data >> 3) & 1; /* lamps, bit1 */
|
||||
// (data >> 5) & 1; /* lamps, bit2 */
|
||||
// (data >> 7) & 1; /* lamps, bit3 */
|
||||
// (data >> 1) & 1; /* lamps, bit0 */
|
||||
// (data >> 3) & 1; /* lamps, bit1 */
|
||||
// (data >> 5) & 1; /* lamps, bit2 */
|
||||
// (data >> 7) & 1; /* lamps, bit3 */
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( output_port_1_w )
|
||||
@ -392,7 +392,7 @@ static WRITE8_HANDLER( output_port_1_w )
|
||||
BIT 7 =
|
||||
------------------------------*/
|
||||
{
|
||||
// (data & 1); /* lamps, bit4 */
|
||||
// (data & 1); /* lamps, bit4 */
|
||||
}
|
||||
|
||||
|
||||
@ -580,7 +580,7 @@ static INPUT_PORTS_START( tenballs )
|
||||
|
||||
/* tenballs seems a prototype, most DIP
|
||||
switches seems to do nothing at all.
|
||||
*/
|
||||
*/
|
||||
PORT_START_TAG("SW1")
|
||||
PORT_DIPNAME( 0x03, 0x00, "Pool Value" ) PORT_DIPLOCATION("SW1:7,8")
|
||||
PORT_DIPSETTING( 0x03, "100" )
|
||||
|
@ -481,19 +481,19 @@ static INPUT_PORTS_START( paprazzi )
|
||||
PORT_DIPSETTING( 0x0003, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPUNKNOWN( 0x0004, 0x0004 ) // $25bc
|
||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Language ) )
|
||||
PORT_DIPSETTING( 0x0000, "Korean" )
|
||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Language ) )
|
||||
PORT_DIPSETTING( 0x0000, "Korean" )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( English ) )
|
||||
PORT_DIPNAME( 0x0010, 0x0010, "Enemies" ) // soemthing else.. but related to enemy types
|
||||
PORT_DIPSETTING( 0x0000, "Type 1" )
|
||||
PORT_DIPNAME( 0x0010, 0x0010, "Enemies" ) // soemthing else.. but related to enemy types
|
||||
PORT_DIPSETTING( 0x0000, "Type 1" )
|
||||
PORT_DIPSETTING( 0x0010, "Type 2" )
|
||||
PORT_DIPUNKNOWN( 0x0020, 0x0020 )
|
||||
PORT_DIPUNKNOWN( 0x0020, 0x0020 )
|
||||
PORT_DIPNAME( 0x00c0, 0x0080, "Time" )
|
||||
PORT_DIPSETTING( 0x0000, "80" )
|
||||
PORT_DIPSETTING( 0x0040, "100" )
|
||||
PORT_DIPSETTING( 0x0080, "120" )
|
||||
PORT_DIPSETTING( 0x0000, "80" )
|
||||
PORT_DIPSETTING( 0x0040, "100" )
|
||||
PORT_DIPSETTING( 0x0080, "120" )
|
||||
PORT_DIPSETTING( 0x00c0, "150" )
|
||||
|
||||
|
||||
PORT_START_TAG("DSW2") // $80001d.b -> $ff0acb.b
|
||||
PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Difficulty ) ) //not sure what is it . tested all 3 bits tested @ $be48
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( Easiest ) )
|
||||
|
@ -98,7 +98,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan
|
||||
fx,fy,
|
||||
x,y+i*16,
|
||||
cliprect,TRANSPARENCY_PEN,0,
|
||||
(colour & 0x08) ? 0x00 : 0x02);
|
||||
(colour & 0x08) ? 0x00 : 0x02);
|
||||
else if (m90_video_control_data[7] & 0x02)
|
||||
pdrawgfx(bitmap,machine->gfx[1],
|
||||
sprite + (fy ? y_multi-1 - i : i),
|
||||
|
@ -96,7 +96,7 @@ static const ppu2c0x_interface ppu_interface_hboard =
|
||||
{ 256 }, /* color base */
|
||||
{ PPU_MIRROR_NONE }, /* mirroring */
|
||||
{ ppu_irq }, /* irq */
|
||||
{ 1 } /* vram */
|
||||
{ 1 } /* vram */
|
||||
};
|
||||
|
||||
static TILE_GET_INFO( get_bg_tile_info )
|
||||
|
@ -9,4 +9,4 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
const char build_version[] = "0.124u4 ("__DATE__")";
|
||||
const char build_version[] = "0.124u5 ("__DATE__")";
|
||||
|
Loading…
Reference in New Issue
Block a user