mirror of
https://github.com/holub/mame
synced 2025-04-30 11:50:30 +03:00
Cleanups and version bump.
This commit is contained in:
parent
2e7d262931
commit
224eb1f58b
@ -229,15 +229,15 @@ const char *format_int(astring *string, UINT64 value, int format)
|
||||
case XML_INT_FORMAT_DECIMAL:
|
||||
astring_printf(string, "%d", (UINT32)value);
|
||||
break;
|
||||
|
||||
|
||||
case XML_INT_FORMAT_DECIMAL_POUND:
|
||||
astring_printf(string, "#%d", (UINT32)value);
|
||||
break;
|
||||
|
||||
|
||||
case XML_INT_FORMAT_HEX_DOLLAR:
|
||||
astring_printf(string, "$%X", (UINT32)value);
|
||||
break;
|
||||
|
||||
|
||||
case XML_INT_FORMAT_HEX_C:
|
||||
astring_printf(string, "0x%X", (UINT32)value);
|
||||
break;
|
||||
@ -277,7 +277,7 @@ void cheat_init(running_machine *machine)
|
||||
cheat_list_save("output", cheatinfo->cheatlist);
|
||||
|
||||
/* we rely on the debugger expression callbacks; if the debugger isn't
|
||||
enabled, we must jumpstart them manually */
|
||||
enabled, we must jumpstart them manually */
|
||||
if ((machine->debug_flags & DEBUG_FLAG_ENABLED) == 0)
|
||||
debug_cpu_init(machine);
|
||||
}
|
||||
@ -354,7 +354,7 @@ void *cheat_get_next_menu_entry(running_machine *machine, void *previous, const
|
||||
/* description is standard */
|
||||
if (description != NULL)
|
||||
*description = astring_c(cheat->description);
|
||||
|
||||
|
||||
/* some cheat entries are just text for display */
|
||||
if (cheat->parameter == NULL && cheat->script[SCRIPT_STATE_RUN] == NULL && cheat->script[SCRIPT_STATE_OFF] == NULL && cheat->script[SCRIPT_STATE_ON] == NULL)
|
||||
{
|
||||
@ -987,7 +987,7 @@ static void cheat_entry_save(mame_file *cheatfile, const cheat_entry *cheat)
|
||||
{
|
||||
script_state state;
|
||||
int scriptcount;
|
||||
|
||||
|
||||
/* count the scripts */
|
||||
scriptcount = 0;
|
||||
for (state = SCRIPT_STATE_OFF; state < SCRIPT_STATE_COUNT; state++)
|
||||
@ -1133,7 +1133,7 @@ error:
|
||||
static void cheat_parameter_save(mame_file *cheatfile, const cheat_parameter *param)
|
||||
{
|
||||
astring *string = astring_alloc();
|
||||
|
||||
|
||||
/* output the parameter tag */
|
||||
mame_fprintf(cheatfile, "\t\t<parameter");
|
||||
|
||||
|
@ -1287,7 +1287,7 @@ static void read_track_data(laserdisc_state *ld)
|
||||
ld->videotarget.height /= 2;
|
||||
ld->videotarget.rowpixels *= 2;
|
||||
ld->avconfig.video = &ld->videotarget;
|
||||
|
||||
|
||||
/* set the audio target information */
|
||||
if (ld->audiobufin + ld->audiomaxsamples <= ld->audiobufsize)
|
||||
{
|
||||
@ -1301,7 +1301,7 @@ static void read_track_data(laserdisc_state *ld)
|
||||
ld->avconfig.audio[0] = &ld->audiobuffer[0][0];
|
||||
ld->avconfig.audio[1] = &ld->audiobuffer[1][0];
|
||||
}
|
||||
|
||||
|
||||
/* override if we're not decoding */
|
||||
ld->avconfig.maxsamples = ld->audiomaxsamples;
|
||||
ld->avconfig.actsamples = &ld->audiocursamples;
|
||||
@ -1372,7 +1372,7 @@ static void process_track_data(const device_config *device)
|
||||
ld->videofields[ld->videoindex]++;
|
||||
ld->videoframenum[ld->videoindex] = ld->last_frame;
|
||||
}
|
||||
|
||||
|
||||
/* pass the audio to the callback */
|
||||
if (ld->audiocallback != NULL)
|
||||
(*ld->audiocallback)(device, ld->samplerate, ld->audiocursamples, ld->avconfig.audio[0], ld->avconfig.audio[1]);
|
||||
@ -1381,24 +1381,24 @@ static void process_track_data(const device_config *device)
|
||||
if (ld->audiocursamples != 0 && ld->audiobufin != 0)
|
||||
{
|
||||
int chnum;
|
||||
|
||||
|
||||
/* iterate over channels */
|
||||
for (chnum = 0; chnum < 2; chnum++)
|
||||
if (ld->avconfig.audio[chnum] == &ld->audiobuffer[chnum][0])
|
||||
{
|
||||
int samplesleft;
|
||||
|
||||
|
||||
/* move data to the end */
|
||||
samplesleft = ld->audiobufsize - ld->audiobufin;
|
||||
samplesleft = MIN(samplesleft, ld->audiocursamples);
|
||||
memmove(&ld->audiobuffer[chnum][ld->audiobufin], &ld->audiobuffer[chnum][0], samplesleft * 2);
|
||||
|
||||
|
||||
/* shift data at the beginning */
|
||||
if (samplesleft < ld->audiocursamples)
|
||||
memmove(&ld->audiobuffer[chnum][0], &ld->audiobuffer[chnum][samplesleft], (ld->audiocursamples - samplesleft) * 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* update the input buffer pointer */
|
||||
ld->audiobufin = (ld->audiobufin + ld->audiocursamples) % ld->audiobufsize;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
#ifndef __262INTF_H__
|
||||
#define __262INTF_H__
|
||||
|
||||
|
@ -69,7 +69,7 @@ static void process_commands(const device_config *laserdisc)
|
||||
static const UINT8 digits[10] = { 0x3f, 0x0f, 0x8f, 0x4f, 0x2f, 0xaf, 0x6f, 0x1f, 0x9f, 0x5f };
|
||||
input_port_value controls = input_port_read(laserdisc->machine, "controls");
|
||||
int number;
|
||||
|
||||
|
||||
/* scan/step backwards */
|
||||
if (!(last_controls & 0x01) && (controls & 0x01))
|
||||
{
|
||||
@ -83,7 +83,7 @@ static void process_commands(const device_config *laserdisc)
|
||||
if (playing)
|
||||
laserdisc_data_w(laserdisc, 0xfd);
|
||||
}
|
||||
|
||||
|
||||
/* scan/step forwards */
|
||||
if (!(last_controls & 0x02) && (controls & 0x02))
|
||||
{
|
||||
@ -97,14 +97,14 @@ static void process_commands(const device_config *laserdisc)
|
||||
if (playing)
|
||||
laserdisc_data_w(laserdisc, 0xfd);
|
||||
}
|
||||
|
||||
|
||||
/* play/pause */
|
||||
if (!(last_controls & 0x10) && (controls & 0x10))
|
||||
{
|
||||
playing = !playing;
|
||||
laserdisc_data_w(laserdisc, playing ? 0xfd : 0xa0);
|
||||
}
|
||||
|
||||
|
||||
/* toggle display */
|
||||
if (!(last_controls & 0x20) && (controls & 0x20))
|
||||
{
|
||||
@ -112,19 +112,19 @@ static void process_commands(const device_config *laserdisc)
|
||||
laserdisc_data_w(laserdisc, digits[displaying]);
|
||||
laserdisc_data_w(laserdisc, 0xf1);
|
||||
}
|
||||
|
||||
|
||||
/* numbers */
|
||||
for (number = 0; number < 10; number++)
|
||||
if (!(last_controls & (0x100 << number)) && (controls & (0x100 << number)))
|
||||
laserdisc_data_w(laserdisc, digits[number]);
|
||||
|
||||
|
||||
/* enter */
|
||||
if (!(last_controls & 0x40000) && (controls & 0x40000))
|
||||
{
|
||||
playing = FALSE;
|
||||
laserdisc_data_w(laserdisc, 0xf7);
|
||||
}
|
||||
|
||||
|
||||
last_controls = controls;
|
||||
}
|
||||
|
||||
@ -134,14 +134,14 @@ static TIMER_CALLBACK( vsync_update )
|
||||
const device_config *laserdisc = device_list_first(machine->config->devicelist, LASERDISC);
|
||||
int vblank_scanline;
|
||||
attotime target;
|
||||
|
||||
|
||||
/* handle commands */
|
||||
if (!param)
|
||||
process_commands(laserdisc);
|
||||
|
||||
|
||||
/* update the laserdisc */
|
||||
laserdisc_vsync(laserdisc);
|
||||
|
||||
|
||||
/* set a timer to go off on the next VBLANK */
|
||||
vblank_scanline = video_screen_get_visible_area(machine->primary_screen)->max_y + 1;
|
||||
target = video_screen_get_time_until_pos(machine->primary_screen, vblank_scanline, 0);
|
||||
@ -158,7 +158,7 @@ static MACHINE_START( ldplayer )
|
||||
static TIMER_CALLBACK( autoplay )
|
||||
{
|
||||
const device_config *laserdisc = device_list_first(machine->config->devicelist, LASERDISC);
|
||||
|
||||
|
||||
/* start playing */
|
||||
laserdisc_data_w(laserdisc, 0xfd);
|
||||
playing = TRUE;
|
||||
@ -170,7 +170,7 @@ static MACHINE_RESET( ldplayer )
|
||||
{
|
||||
/* set up a timer to start playing immediately */
|
||||
timer_set(attotime_zero, NULL, 0, autoplay);
|
||||
|
||||
|
||||
/* indicate the name of the file we opened */
|
||||
popmessage("Opened %s\n", astring_c(filename));
|
||||
}
|
||||
@ -291,7 +291,7 @@ static DRIVER_INIT( ldplayer )
|
||||
while ((dir = mame_readpath(path)) != NULL)
|
||||
{
|
||||
int length = strlen(dir->name);
|
||||
|
||||
|
||||
/* look for files ending in .chd */
|
||||
if (length > 4 &&
|
||||
tolower(dir->name[length - 4] == '.') &&
|
||||
@ -301,7 +301,7 @@ static DRIVER_INIT( ldplayer )
|
||||
{
|
||||
file_error filerr;
|
||||
chd_error chderr;
|
||||
|
||||
|
||||
/* open the file itself via our search path */
|
||||
filerr = mame_fopen(SEARCHPATH_IMAGE, dir->name, OPEN_FLAG_READ, &image_file);
|
||||
if (filerr == FILERR_NONE)
|
||||
@ -324,7 +324,7 @@ static DRIVER_INIT( ldplayer )
|
||||
}
|
||||
mame_closepath(path);
|
||||
}
|
||||
|
||||
|
||||
/* if we failed, pop a message and exit */
|
||||
if (image_file == NULL)
|
||||
fatalerror("No valid image file found!\n");
|
||||
|
@ -95,7 +95,7 @@ struct _avcomp_state
|
||||
huffman_context * crcontext;
|
||||
huffman_context * audiohicontext;
|
||||
huffman_context * audiolocontext;
|
||||
|
||||
|
||||
/* configuration data */
|
||||
av_codec_compress_config compress;
|
||||
av_codec_decompress_config decompress;
|
||||
@ -133,7 +133,7 @@ avcomp_state *avcomp_init(UINT32 maxwidth, UINT32 maxheight, UINT32 maxchannels)
|
||||
{
|
||||
huffman_error hufferr;
|
||||
avcomp_state *state;
|
||||
|
||||
|
||||
/* error if out of range */
|
||||
if (maxchannels > MAX_CHANNELS)
|
||||
return NULL;
|
||||
@ -219,7 +219,7 @@ void avcomp_config_compress(avcomp_state *state, const av_codec_compress_config
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
avcomp_config_decompress - configure
|
||||
avcomp_config_decompress - configure
|
||||
decompression parameters
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -247,7 +247,7 @@ avcomp_error avcomp_encode_data(avcomp_state *state, const UINT8 *source, UINT8
|
||||
avcomp_error err;
|
||||
UINT32 dstoffs;
|
||||
int chnum;
|
||||
|
||||
|
||||
/* extract data from source if present */
|
||||
if (source != NULL)
|
||||
{
|
||||
@ -261,7 +261,7 @@ avcomp_error avcomp_encode_data(avcomp_state *state, const UINT8 *source, UINT8
|
||||
samples = (source[6] << 8) + source[7];
|
||||
width = (source[8] << 8) + source[9];
|
||||
height = (source[10] << 8) + source[11];
|
||||
|
||||
|
||||
/* determine the start of each piece of data */
|
||||
source += 12;
|
||||
metastart = source;
|
||||
@ -272,17 +272,17 @@ avcomp_error avcomp_encode_data(avcomp_state *state, const UINT8 *source, UINT8
|
||||
source += 2 * samples;
|
||||
}
|
||||
videostart = source;
|
||||
|
||||
|
||||
/* data is assumed to be big-endian already */
|
||||
audioxor = videoxor = 0;
|
||||
videostride = 2 * width;
|
||||
}
|
||||
|
||||
|
||||
/* otherwise, extract from the state */
|
||||
else
|
||||
{
|
||||
UINT16 betest = 0;
|
||||
|
||||
|
||||
/* extract metadata information */
|
||||
metastart = state->compress.metadata;
|
||||
metasize = state->compress.metalength;
|
||||
@ -305,7 +305,7 @@ avcomp_error avcomp_encode_data(avcomp_state *state, const UINT8 *source, UINT8
|
||||
width = state->compress.video->width;
|
||||
height = state->compress.video->height;
|
||||
}
|
||||
|
||||
|
||||
/* data is assumed to be native-endian */
|
||||
*(UINT8 *)&betest = 1;
|
||||
audioxor = videoxor = (betest == 1) ? 1 : 0;
|
||||
@ -409,7 +409,7 @@ avcomp_error avcomp_decode_data(avcomp_state *state, const UINT8 *source, UINT32
|
||||
totalsize += (source[10 + 2 * chnum] << 8) | source[11 + 2 * chnum];
|
||||
if (totalsize >= complength)
|
||||
return AVCERR_INVALID_DATA;
|
||||
|
||||
|
||||
/* starting offsets */
|
||||
srcoffs = 10 + 2 * channels;
|
||||
|
||||
@ -440,28 +440,28 @@ avcomp_error avcomp_decode_data(avcomp_state *state, const UINT8 *source, UINT32
|
||||
dest += 2 * samples;
|
||||
}
|
||||
videostart = dest;
|
||||
|
||||
|
||||
/* data is assumed to be big-endian already */
|
||||
audioxor = videoxor = 0;
|
||||
videostride = 2 * width;
|
||||
}
|
||||
|
||||
|
||||
/* otherwise, extract from the state */
|
||||
else
|
||||
{
|
||||
UINT16 betest = 0;
|
||||
|
||||
|
||||
/* determine the start of each piece of data */
|
||||
metastart = state->decompress.metadata;
|
||||
for (chnum = 0; chnum < channels; chnum++)
|
||||
audiostart[chnum] = (UINT8 *)state->decompress.audio[chnum];
|
||||
videostart = (state->decompress.video != NULL) ? state->decompress.video->base : NULL;
|
||||
videostride = (state->decompress.video != NULL) ? state->decompress.video->rowpixels * 2 : 0;
|
||||
|
||||
|
||||
/* data is assumed to be native-endian */
|
||||
*(UINT8 *)&betest = 1;
|
||||
audioxor = videoxor = (betest == 1) ? 1 : 0;
|
||||
|
||||
|
||||
/* verify against sizes */
|
||||
if (state->decompress.video != NULL && (state->decompress.video->width < width || state->decompress.video->height < height))
|
||||
return AVCERR_VIDEO_TOO_LARGE;
|
||||
@ -470,7 +470,7 @@ avcomp_error avcomp_decode_data(avcomp_state *state, const UINT8 *source, UINT32
|
||||
return AVCERR_AUDIO_TOO_LARGE;
|
||||
if (state->decompress.metadata != NULL && state->decompress.maxmetalength < metasize)
|
||||
return AVCERR_METADATA_TOO_LARGE;
|
||||
|
||||
|
||||
/* set the output values */
|
||||
if (state->decompress.actsamples != NULL)
|
||||
*state->decompress.actsamples = samples;
|
||||
@ -530,14 +530,14 @@ static avcomp_error encode_audio(avcomp_state *state, int channels, int samples,
|
||||
UINT8 *output = dest;
|
||||
int chnum, sampnum;
|
||||
UINT8 *deltabuf;
|
||||
|
||||
|
||||
/* iterate over channels to compute deltas */
|
||||
deltabuf = state->audiodata;
|
||||
for (chnum = 0; chnum < channels; chnum++)
|
||||
{
|
||||
const UINT8 *srcdata = source[chnum];
|
||||
INT16 prevsample = 0;
|
||||
|
||||
|
||||
/* extract audio data into hi and lo deltas stored in big-endian order */
|
||||
for (sampnum = 0; sampnum < samples; sampnum++)
|
||||
{
|
||||
@ -566,7 +566,7 @@ static avcomp_error encode_audio(avcomp_state *state, int channels, int samples,
|
||||
if (hufferr != HUFFERR_NONE)
|
||||
return AVCERR_COMPRESSION_ERROR;
|
||||
output += size;
|
||||
|
||||
|
||||
/* note the size of the two trees */
|
||||
huffsize = output - dest;
|
||||
sizes[0] = huffsize >> 8;
|
||||
@ -577,7 +577,7 @@ static avcomp_error encode_audio(avcomp_state *state, int channels, int samples,
|
||||
for (chnum = 0; chnum < channels; chnum++)
|
||||
{
|
||||
const UINT8 *input = state->audiodata + chnum * samples * 2;
|
||||
|
||||
|
||||
/* encode the data */
|
||||
hufferr = huffman_encode_data_interleaved(2, contexts, input, samples * 2, 1, 0, 0, output, samples * 2, &size);
|
||||
if (hufferr != HUFFERR_NONE)
|
||||
@ -591,7 +591,7 @@ static avcomp_error encode_audio(avcomp_state *state, int channels, int samples,
|
||||
sizes[chnum * 2 + 2] = size >> 8;
|
||||
sizes[chnum * 2 + 3] = size;
|
||||
}
|
||||
|
||||
|
||||
/* if we ran out of room, throw it all away and just store raw */
|
||||
if (chnum < channels)
|
||||
{
|
||||
@ -701,7 +701,7 @@ static avcomp_error decode_audio(avcomp_state *state, int channels, int samples,
|
||||
for (chnum = 0; chnum < channels; chnum++)
|
||||
{
|
||||
UINT8 *curdest = dest[chnum];
|
||||
|
||||
|
||||
/* extract the size of this channel */
|
||||
size = (sizes[chnum * 2 + 2] << 8) | sizes[chnum * 2 + 3];
|
||||
|
||||
@ -714,7 +714,7 @@ static avcomp_error decode_audio(avcomp_state *state, int channels, int samples,
|
||||
INT16 delta = (source[0] << 8) | source[1];
|
||||
INT16 newsample = prevsample + delta;
|
||||
prevsample = newsample;
|
||||
|
||||
|
||||
curdest[0 ^ dxor] = newsample >> 8;
|
||||
curdest[1 ^ dxor] = newsample;
|
||||
source += 2;
|
||||
@ -733,7 +733,7 @@ static avcomp_error decode_audio(avcomp_state *state, int channels, int samples,
|
||||
return AVCERR_INVALID_DATA;
|
||||
source += actsize;
|
||||
huffsize = actsize;
|
||||
|
||||
|
||||
hufferr = huffman_import_tree(state->audiolocontext, source, size, &actsize);
|
||||
if (hufferr != HUFFERR_NONE)
|
||||
return AVCERR_INVALID_DATA;
|
||||
@ -741,7 +741,7 @@ static avcomp_error decode_audio(avcomp_state *state, int channels, int samples,
|
||||
huffsize += actsize;
|
||||
if (huffsize != size)
|
||||
return AVCERR_INVALID_DATA;
|
||||
|
||||
|
||||
/* set up the contexts */
|
||||
contexts[0] = state->audiohicontext;
|
||||
contexts[1] = state->audiolocontext;
|
||||
@ -778,7 +778,7 @@ static avcomp_error decode_audio(avcomp_state *state, int channels, int samples,
|
||||
INT16 delta = (deltabuf[0] << 8) | deltabuf[1];
|
||||
INT16 newsample = prevsample + delta;
|
||||
prevsample = newsample;
|
||||
|
||||
|
||||
curdest[0 ^ dxor] = newsample >> 8;
|
||||
curdest[1 ^ dxor] = newsample;
|
||||
deltabuf += 2;
|
||||
@ -833,7 +833,7 @@ static avcomp_error decode_video_lossless(avcomp_state *state, int width, int he
|
||||
if (hufferr != HUFFERR_NONE)
|
||||
return AVCERR_INVALID_DATA;
|
||||
source += actsize;
|
||||
|
||||
|
||||
/* set up the decoding contexts */
|
||||
contexts[0] = state->ycontext;
|
||||
contexts[1] = state->cbcontext;
|
||||
|
@ -66,34 +66,34 @@
|
||||
|
||||
****************************************************************************
|
||||
|
||||
Delta-RLE encoding works as follows:
|
||||
|
||||
Starting value is assumed to be 0. All data is encoded as a delta
|
||||
from the previous value, such that final[i] = final[i - 1] + delta.
|
||||
Long runs of 0s are RLE-encoded as follows:
|
||||
|
||||
0x100 = repeat count of 8
|
||||
0x101 = repeat count of 9
|
||||
0x102 = repeat count of 10
|
||||
0x103 = repeat count of 11
|
||||
0x104 = repeat count of 12
|
||||
0x105 = repeat count of 13
|
||||
0x106 = repeat count of 14
|
||||
0x107 = repeat count of 15
|
||||
0x108 = repeat count of 16
|
||||
0x109 = repeat count of 32
|
||||
0x10a = repeat count of 64
|
||||
0x10b = repeat count of 128
|
||||
0x10c = repeat count of 256
|
||||
0x10d = repeat count of 512
|
||||
0x10e = repeat count of 1024
|
||||
0x10f = repeat count of 2048
|
||||
|
||||
Note that repeat counts are reset at the end of a row, so if a 0 run
|
||||
extends to the end of a row, a large repeat count may be used.
|
||||
|
||||
The reason for starting the run counts at 8 is that 0 is expected to
|
||||
be the most common symbol, and is typically encoded in 1 or 2 bits.
|
||||
Delta-RLE encoding works as follows:
|
||||
|
||||
Starting value is assumed to be 0. All data is encoded as a delta
|
||||
from the previous value, such that final[i] = final[i - 1] + delta.
|
||||
Long runs of 0s are RLE-encoded as follows:
|
||||
|
||||
0x100 = repeat count of 8
|
||||
0x101 = repeat count of 9
|
||||
0x102 = repeat count of 10
|
||||
0x103 = repeat count of 11
|
||||
0x104 = repeat count of 12
|
||||
0x105 = repeat count of 13
|
||||
0x106 = repeat count of 14
|
||||
0x107 = repeat count of 15
|
||||
0x108 = repeat count of 16
|
||||
0x109 = repeat count of 32
|
||||
0x10a = repeat count of 64
|
||||
0x10b = repeat count of 128
|
||||
0x10c = repeat count of 256
|
||||
0x10d = repeat count of 512
|
||||
0x10e = repeat count of 1024
|
||||
0x10f = repeat count of 2048
|
||||
|
||||
Note that repeat counts are reset at the end of a row, so if a 0 run
|
||||
extends to the end of a row, a large repeat count may be used.
|
||||
|
||||
The reason for starting the run counts at 8 is that 0 is expected to
|
||||
be the most common symbol, and is typically encoded in 1 or 2 bits.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
@ -305,8 +305,8 @@ INLINE UINT32 bit_buffer_read(bit_buffer *bitbuf, int numbits)
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
bit_buffer_peek - peek ahead and return
|
||||
'numbits' bits from the buffer, returning
|
||||
bit_buffer_peek - peek ahead and return
|
||||
'numbits' bits from the buffer, returning
|
||||
them right-justified
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -473,7 +473,7 @@ huffman_error huffman_export_tree(huffman_context *context, UINT8 *dest, UINT32
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
huffman_deltarle_import_tree - import a
|
||||
huffman_deltarle_import_tree - import a
|
||||
huffman tree from a source data stream for
|
||||
delta-RLE encoded data
|
||||
-------------------------------------------------*/
|
||||
@ -485,7 +485,7 @@ huffman_error huffman_deltarle_import_tree(huffman_context *context, const UINT8
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
huffman__deltarle_export_tree - export a
|
||||
huffman__deltarle_export_tree - export a
|
||||
huffman tree to a target data stream for
|
||||
delta-RLE encoded data
|
||||
-------------------------------------------------*/
|
||||
@ -510,7 +510,7 @@ huffman_error huffman_compute_tree_interleaved(int numcontexts, huffman_context
|
||||
{
|
||||
UINT32 sx, sy, ctxnum;
|
||||
huffman_error error;
|
||||
|
||||
|
||||
/* initialize all nodes */
|
||||
for (ctxnum = 0; ctxnum < numcontexts; ctxnum++)
|
||||
{
|
||||
@ -531,11 +531,11 @@ huffman_error huffman_compute_tree_interleaved(int numcontexts, huffman_context
|
||||
context->datahisto[source[sx ^ sxor]]++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* advance to the next row */
|
||||
source += sstride;
|
||||
}
|
||||
|
||||
|
||||
/* compute optimal trees for each */
|
||||
for (ctxnum = 0; ctxnum < numcontexts; ctxnum++)
|
||||
{
|
||||
@ -549,8 +549,8 @@ huffman_error huffman_compute_tree_interleaved(int numcontexts, huffman_context
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
huffman_deltarle_compute_tree - compute an
|
||||
optimal huffman tree for the given source
|
||||
huffman_deltarle_compute_tree - compute an
|
||||
optimal huffman tree for the given source
|
||||
data, with pre-encoding as delta-RLE
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -563,7 +563,7 @@ huffman_error huffman_deltarle_compute_tree_interleaved(int numcontexts, huffman
|
||||
{
|
||||
UINT32 sx, sy, ctxnum;
|
||||
huffman_error error;
|
||||
|
||||
|
||||
/* initialize all nodes */
|
||||
for (ctxnum = 0; ctxnum < numcontexts; ctxnum++)
|
||||
{
|
||||
@ -590,7 +590,7 @@ huffman_error huffman_deltarle_compute_tree_interleaved(int numcontexts, huffman
|
||||
{
|
||||
huffman_context *context = contexts[ctxnum];
|
||||
UINT8 newdata, delta;
|
||||
|
||||
|
||||
/* if still counting RLE, do nothing */
|
||||
if (context->rleremaining != 0)
|
||||
{
|
||||
@ -619,7 +619,7 @@ huffman_error huffman_deltarle_compute_tree_interleaved(int numcontexts, huffman
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/* if we hit the end of row, maximize the count */
|
||||
if (scan >= swidth && zerocount >= 8)
|
||||
zerocount = 100000;
|
||||
@ -627,7 +627,7 @@ huffman_error huffman_deltarle_compute_tree_interleaved(int numcontexts, huffman
|
||||
/* encode the maximal count we can */
|
||||
rlecode = rlecount_to_code(zerocount);
|
||||
context->datahisto[rlecode]++;
|
||||
|
||||
|
||||
/* set up the remaining count */
|
||||
context->rleremaining = code_to_rlecount(rlecode) - 1;
|
||||
}
|
||||
@ -638,11 +638,11 @@ huffman_error huffman_deltarle_compute_tree_interleaved(int numcontexts, huffman
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* advance to the next row */
|
||||
source += sstride;
|
||||
}
|
||||
|
||||
|
||||
/* compute optimal trees for each */
|
||||
for (ctxnum = 0; ctxnum < numcontexts; ctxnum++)
|
||||
{
|
||||
@ -672,7 +672,7 @@ huffman_error huffman_encode_data_interleaved(int numcontexts, huffman_context *
|
||||
|
||||
/* initialize the output buffer */
|
||||
bit_buffer_write_init(&bitbuf, dest, dlength);
|
||||
|
||||
|
||||
/* iterate over "height" */
|
||||
for (sy = 0; sy < sheight; sy++)
|
||||
{
|
||||
@ -687,7 +687,7 @@ huffman_error huffman_encode_data_interleaved(int numcontexts, huffman_context *
|
||||
bit_buffer_write(&bitbuf, node->bits, node->numbits);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* advance to the next row */
|
||||
source += sstride;
|
||||
}
|
||||
@ -699,7 +699,7 @@ huffman_error huffman_encode_data_interleaved(int numcontexts, huffman_context *
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
huffman_deltarle_encode_data - encode data
|
||||
huffman_deltarle_encode_data - encode data
|
||||
using the given tree with delta-RLE
|
||||
pre-encoding
|
||||
-------------------------------------------------*/
|
||||
@ -713,17 +713,17 @@ huffman_error huffman_deltarle_encode_data_interleaved(int numcontexts, huffman_
|
||||
{
|
||||
UINT32 sx, sy, ctxnum;
|
||||
bit_buffer bitbuf;
|
||||
|
||||
|
||||
/* initialize the output buffer */
|
||||
bit_buffer_write_init(&bitbuf, dest, dlength);
|
||||
|
||||
|
||||
/* initialize the contexts */
|
||||
for (ctxnum = 0; ctxnum < numcontexts; ctxnum++)
|
||||
{
|
||||
huffman_context *context = contexts[ctxnum];
|
||||
context->prevdata = 0;
|
||||
}
|
||||
|
||||
|
||||
/* iterate over "height" */
|
||||
for (sy = 0; sy < sheight; sy++)
|
||||
{
|
||||
@ -743,7 +743,7 @@ huffman_error huffman_deltarle_encode_data_interleaved(int numcontexts, huffman_
|
||||
huffman_context *context = contexts[ctxnum];
|
||||
UINT8 newdata, delta;
|
||||
huffman_node *node;
|
||||
|
||||
|
||||
/* if still counting RLE, do nothing */
|
||||
if (context->rleremaining != 0)
|
||||
{
|
||||
@ -781,7 +781,7 @@ huffman_error huffman_deltarle_encode_data_interleaved(int numcontexts, huffman_
|
||||
rlecode = rlecount_to_code(zerocount);
|
||||
node = &context->huffnode[rlecode];
|
||||
bit_buffer_write(&bitbuf, node->bits, node->numbits);
|
||||
|
||||
|
||||
/* set up the remaining count */
|
||||
context->rleremaining = code_to_rlecount(rlecode) - 1;
|
||||
}
|
||||
@ -793,7 +793,7 @@ huffman_error huffman_deltarle_encode_data_interleaved(int numcontexts, huffman_
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* advance to the next row */
|
||||
source += sstride;
|
||||
}
|
||||
@ -825,7 +825,7 @@ huffman_error huffman_decode_data(huffman_context *context, const UINT8 *source,
|
||||
return error;
|
||||
}
|
||||
table = context->lookup;
|
||||
|
||||
|
||||
/* initialize our bit buffer */
|
||||
bit_buffer_read_init(&bitbuf, source, slength);
|
||||
|
||||
@ -837,10 +837,10 @@ huffman_error huffman_decode_data(huffman_context *context, const UINT8 *source,
|
||||
{
|
||||
huffman_lookup_value lookup;
|
||||
UINT32 bits;
|
||||
|
||||
|
||||
/* peek ahead to get maxbits worth of data */
|
||||
bits = bit_buffer_peek(&bitbuf, maxbits);
|
||||
|
||||
|
||||
/* look it up, then remove the actual number of bits for this code */
|
||||
lookup = table[bits];
|
||||
bit_buffer_remove(&bitbuf, LOOKUP_BITS(lookup));
|
||||
@ -848,7 +848,7 @@ huffman_error huffman_decode_data(huffman_context *context, const UINT8 *source,
|
||||
/* store the upper byte */
|
||||
dest[dx ^ dxor] = LOOKUP_CODE(lookup);
|
||||
}
|
||||
|
||||
|
||||
/* advance to the next row */
|
||||
dest += dstride;
|
||||
}
|
||||
@ -881,7 +881,7 @@ huffman_error huffman_decode_data_interleaved(int numcontexts, huffman_context *
|
||||
return error;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* initialize our bit buffer */
|
||||
bit_buffer_read_init(&bitbuf, source, slength);
|
||||
|
||||
@ -897,10 +897,10 @@ huffman_error huffman_decode_data_interleaved(int numcontexts, huffman_context *
|
||||
huffman_context *context = contexts[ctxnum];
|
||||
huffman_lookup_value lookup;
|
||||
UINT32 bits;
|
||||
|
||||
|
||||
/* peek ahead to get maxbits worth of data */
|
||||
bits = bit_buffer_peek(&bitbuf, context->maxbits);
|
||||
|
||||
|
||||
/* look it up, then remove the actual number of bits for this code */
|
||||
lookup = context->lookup[bits];
|
||||
bit_buffer_remove(&bitbuf, LOOKUP_BITS(lookup));
|
||||
@ -909,7 +909,7 @@ huffman_error huffman_decode_data_interleaved(int numcontexts, huffman_context *
|
||||
dest[dx ^ dxor] = LOOKUP_CODE(lookup);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* advance to the next row */
|
||||
dest += dstride;
|
||||
}
|
||||
@ -921,8 +921,8 @@ huffman_error huffman_decode_data_interleaved(int numcontexts, huffman_context *
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
huffman_deltarle_decode_data - decode data
|
||||
using the given tree with delta-RLE
|
||||
huffman_deltarle_decode_data - decode data
|
||||
using the given tree with delta-RLE
|
||||
post-decoding
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -944,7 +944,7 @@ huffman_error huffman_deltarle_decode_data(huffman_context *context, const UINT8
|
||||
return error;
|
||||
}
|
||||
table = context->lookup;
|
||||
|
||||
|
||||
/* initialize our bit buffer */
|
||||
bit_buffer_read_init(&bitbuf, source, slength);
|
||||
|
||||
@ -960,7 +960,7 @@ huffman_error huffman_deltarle_decode_data(huffman_context *context, const UINT8
|
||||
huffman_lookup_value lookup;
|
||||
UINT32 bits;
|
||||
int data;
|
||||
|
||||
|
||||
/* if we have RLE remaining, just store that */
|
||||
if (rleremaining != 0)
|
||||
{
|
||||
@ -968,17 +968,17 @@ huffman_error huffman_deltarle_decode_data(huffman_context *context, const UINT8
|
||||
dest[dx ^ dxor] = prevdata;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
/* peek ahead to get maxbits worth of data */
|
||||
bits = bit_buffer_peek(&bitbuf, maxbits);
|
||||
|
||||
|
||||
/* look it up, then remove the actual number of bits for this code */
|
||||
lookup = table[bits];
|
||||
bit_buffer_remove(&bitbuf, LOOKUP_BITS(lookup));
|
||||
|
||||
/* compute the data and handle RLE decoding */
|
||||
data = LOOKUP_CODE(lookup);
|
||||
|
||||
|
||||
/* if not an RLE special, just add to the previous; otherwise, start counting RLE */
|
||||
if (data < 0x100)
|
||||
prevdata += (UINT8)data;
|
||||
@ -988,7 +988,7 @@ huffman_error huffman_deltarle_decode_data(huffman_context *context, const UINT8
|
||||
/* store the updated data value */
|
||||
dest[dx ^ dxor] = prevdata;
|
||||
}
|
||||
|
||||
|
||||
/* advance to the next row */
|
||||
dest += dstride;
|
||||
}
|
||||
@ -1000,7 +1000,7 @@ huffman_error huffman_deltarle_decode_data(huffman_context *context, const UINT8
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
huffman_deltarle_decode_data_interleaved -
|
||||
huffman_deltarle_decode_data_interleaved -
|
||||
decode data using multiple contexts and
|
||||
delta-RLE post-decoding
|
||||
-------------------------------------------------*/
|
||||
@ -1010,9 +1010,9 @@ huffman_error huffman_deltarle_decode_data_interleaved(int numcontexts, huffman_
|
||||
UINT32 dx, dy, ctxnum;
|
||||
huffman_error error;
|
||||
bit_buffer bitbuf;
|
||||
|
||||
|
||||
/* fast case the A/V Y/Cb/Y/Cr case */
|
||||
if (numcontexts == 4 && contexts[0] == contexts[2] && contexts[0] != contexts[1] && contexts[1] != contexts[3] &&
|
||||
if (numcontexts == 4 && contexts[0] == contexts[2] && contexts[0] != contexts[1] && contexts[1] != contexts[3] &&
|
||||
contexts[0]->maxbits == contexts[1]->maxbits && contexts[0]->maxbits == contexts[3]->maxbits)
|
||||
return huffman_deltarle_decode_data_interleaved_0102(contexts, source, slength, dest, dwidth, dheight, dstride, dxor, actlength);
|
||||
|
||||
@ -1052,7 +1052,7 @@ huffman_error huffman_deltarle_decode_data_interleaved(int numcontexts, huffman_
|
||||
huffman_lookup_value lookup;
|
||||
UINT32 bits;
|
||||
int data;
|
||||
|
||||
|
||||
/* if we have RLE remaining, just store that */
|
||||
if (context->rleremaining != 0)
|
||||
{
|
||||
@ -1060,10 +1060,10 @@ huffman_error huffman_deltarle_decode_data_interleaved(int numcontexts, huffman_
|
||||
dest[dx ^ dxor] = context->prevdata;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
/* peek ahead to get maxbits worth of data */
|
||||
bits = bit_buffer_peek(&bitbuf, context->maxbits);
|
||||
|
||||
|
||||
/* look it up, then remove the actual number of bits for this code */
|
||||
lookup = context->lookup[bits];
|
||||
bit_buffer_remove(&bitbuf, LOOKUP_BITS(lookup));
|
||||
@ -1081,7 +1081,7 @@ huffman_error huffman_deltarle_decode_data_interleaved(int numcontexts, huffman_
|
||||
dest[dx ^ dxor] = context->prevdata;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* advance to the next row */
|
||||
dest += dstride;
|
||||
}
|
||||
@ -1093,8 +1093,8 @@ huffman_error huffman_deltarle_decode_data_interleaved(int numcontexts, huffman_
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
huffman_deltarle_decode_data_interleaved_0102 -
|
||||
decode data using 3 unique contexts in
|
||||
huffman_deltarle_decode_data_interleaved_0102 -
|
||||
decode data using 3 unique contexts in
|
||||
0/1/0/2 order (used for Y/Cb/Y/Cr encoding)
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -1107,7 +1107,7 @@ static huffman_error huffman_deltarle_decode_data_interleaved_0102(huffman_conte
|
||||
huffman_error error;
|
||||
bit_buffer bitbuf;
|
||||
UINT32 dx, dy;
|
||||
|
||||
|
||||
/* regenerate the lookup tables if necessary */
|
||||
if (contexts[0]->lookupdirty)
|
||||
{
|
||||
@ -1127,7 +1127,7 @@ static huffman_error huffman_deltarle_decode_data_interleaved_0102(huffman_conte
|
||||
if (error != HUFFERR_NONE)
|
||||
return error;
|
||||
}
|
||||
|
||||
|
||||
/* cache the tables locally */
|
||||
table02 = contexts[0]->lookup;
|
||||
table1 = contexts[1]->lookup;
|
||||
@ -1148,9 +1148,9 @@ static huffman_error huffman_deltarle_decode_data_interleaved_0102(huffman_conte
|
||||
huffman_lookup_value lookup;
|
||||
UINT32 bits;
|
||||
int data;
|
||||
|
||||
|
||||
/* ----- offset 0 ----- */
|
||||
|
||||
|
||||
/* if we have RLE remaining, just store that */
|
||||
if (rleremaining02 != 0)
|
||||
rleremaining02--;
|
||||
@ -1158,14 +1158,14 @@ static huffman_error huffman_deltarle_decode_data_interleaved_0102(huffman_conte
|
||||
{
|
||||
/* peek ahead to get maxbits worth of data */
|
||||
bits = bit_buffer_peek(&bitbuf, maxbits);
|
||||
|
||||
|
||||
/* look it up, then remove the actual number of bits for this code */
|
||||
lookup = table02[bits];
|
||||
bit_buffer_remove(&bitbuf, LOOKUP_BITS(lookup));
|
||||
|
||||
/* compute the data and handle RLE decoding */
|
||||
data = LOOKUP_CODE(lookup);
|
||||
|
||||
|
||||
/* if not an RLE special, just add to the previous; otherwise, start counting RLE */
|
||||
if (data < 0x100)
|
||||
prevdata02 += (UINT8)data;
|
||||
@ -1177,7 +1177,7 @@ static huffman_error huffman_deltarle_decode_data_interleaved_0102(huffman_conte
|
||||
dest[(dx + 0) ^ dxor] = prevdata02;
|
||||
|
||||
/* ----- offset 1 ----- */
|
||||
|
||||
|
||||
/* if we have RLE remaining, just store that */
|
||||
if (rleremaining1 != 0)
|
||||
rleremaining1--;
|
||||
@ -1185,14 +1185,14 @@ static huffman_error huffman_deltarle_decode_data_interleaved_0102(huffman_conte
|
||||
{
|
||||
/* peek ahead to get maxbits worth of data */
|
||||
bits = bit_buffer_peek(&bitbuf, maxbits);
|
||||
|
||||
|
||||
/* look it up, then remove the actual number of bits for this code */
|
||||
lookup = table1[bits];
|
||||
bit_buffer_remove(&bitbuf, LOOKUP_BITS(lookup));
|
||||
|
||||
/* compute the data and handle RLE decoding */
|
||||
data = LOOKUP_CODE(lookup);
|
||||
|
||||
|
||||
/* if not an RLE special, just add to the previous; otherwise, start counting RLE */
|
||||
if (data < 0x100)
|
||||
prevdata1 += (UINT8)data;
|
||||
@ -1204,7 +1204,7 @@ static huffman_error huffman_deltarle_decode_data_interleaved_0102(huffman_conte
|
||||
dest[(dx + 1) ^ dxor] = prevdata1;
|
||||
|
||||
/* ----- offset 2 (same as 0) ----- */
|
||||
|
||||
|
||||
/* if we have RLE remaining, just store that */
|
||||
if (rleremaining02 != 0)
|
||||
rleremaining02--;
|
||||
@ -1212,14 +1212,14 @@ static huffman_error huffman_deltarle_decode_data_interleaved_0102(huffman_conte
|
||||
{
|
||||
/* peek ahead to get maxbits worth of data */
|
||||
bits = bit_buffer_peek(&bitbuf, maxbits);
|
||||
|
||||
|
||||
/* look it up, then remove the actual number of bits for this code */
|
||||
lookup = table02[bits];
|
||||
bit_buffer_remove(&bitbuf, LOOKUP_BITS(lookup));
|
||||
|
||||
/* compute the data and handle RLE decoding */
|
||||
data = LOOKUP_CODE(lookup);
|
||||
|
||||
|
||||
/* if not an RLE special, just add to the previous; otherwise, start counting RLE */
|
||||
if (data < 0x100)
|
||||
prevdata02 += (UINT8)data;
|
||||
@ -1231,7 +1231,7 @@ static huffman_error huffman_deltarle_decode_data_interleaved_0102(huffman_conte
|
||||
dest[(dx + 2) ^ dxor] = prevdata02;
|
||||
|
||||
/* ----- offset 3 ----- */
|
||||
|
||||
|
||||
/* if we have RLE remaining, just store that */
|
||||
if (rleremaining3 != 0)
|
||||
rleremaining3--;
|
||||
@ -1239,14 +1239,14 @@ static huffman_error huffman_deltarle_decode_data_interleaved_0102(huffman_conte
|
||||
{
|
||||
/* peek ahead to get maxbits worth of data */
|
||||
bits = bit_buffer_peek(&bitbuf, maxbits);
|
||||
|
||||
|
||||
/* look it up, then remove the actual number of bits for this code */
|
||||
lookup = table3[bits];
|
||||
bit_buffer_remove(&bitbuf, LOOKUP_BITS(lookup));
|
||||
|
||||
/* compute the data and handle RLE decoding */
|
||||
data = LOOKUP_CODE(lookup);
|
||||
|
||||
|
||||
/* if not an RLE special, just add to the previous; otherwise, start counting RLE */
|
||||
if (data < 0x100)
|
||||
prevdata3 += (UINT8)data;
|
||||
@ -1257,7 +1257,7 @@ static huffman_error huffman_deltarle_decode_data_interleaved_0102(huffman_conte
|
||||
/* store the updated data value */
|
||||
dest[(dx + 3) ^ dxor] = prevdata3;
|
||||
}
|
||||
|
||||
|
||||
/* advance to the next row */
|
||||
dest += dstride;
|
||||
}
|
||||
@ -1274,7 +1274,7 @@ static huffman_error huffman_deltarle_decode_data_interleaved_0102(huffman_conte
|
||||
***************************************************************************/
|
||||
|
||||
/*-------------------------------------------------
|
||||
import_tree - import a huffman tree from a
|
||||
import_tree - import a huffman tree from a
|
||||
source data stream
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -1339,7 +1339,7 @@ static huffman_error import_tree(huffman_context *context, const UINT8 *source,
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
export_tree - export a huffman tree to a
|
||||
export_tree - export a huffman tree to a
|
||||
target data stream
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -1451,7 +1451,7 @@ static huffman_error compute_optimal_tree(huffman_context *context, const UINT32
|
||||
UINT32 lowerweight, upperweight;
|
||||
UINT32 sdatacount;
|
||||
int i;
|
||||
|
||||
|
||||
/* compute the number of data items in the histogram */
|
||||
sdatacount = 0;
|
||||
for (i = 0; i < numcodes; i++)
|
||||
|
@ -126,14 +126,14 @@ static const discrete_mixer_desc madalien_final_mix =
|
||||
|
||||
DISCRETE_SOUND_START( madalien )
|
||||
/************************************************
|
||||
* Input register mapping
|
||||
************************************************/
|
||||
* Input register mapping
|
||||
************************************************/
|
||||
DISCRETE_INPUT_DATA(MADALIEN_8910_PORTA)
|
||||
DISCRETE_INPUT_DATA(MADALIEN_8910_PORTB)
|
||||
|
||||
/************************************************
|
||||
* Convert to individual bits
|
||||
************************************************/
|
||||
* Convert to individual bits
|
||||
************************************************/
|
||||
// Port A is used to turn filtering on/off.
|
||||
// 1 - player shot, siren, music
|
||||
// turn bit into 4066 Ron value of 270 ohms @ 5V
|
||||
@ -165,16 +165,16 @@ DISCRETE_SOUND_START( madalien )
|
||||
DISCRETE_TRANSFORM3(MADALIEN_8910_PORTB_7, 1, MADALIEN_8910_PORTB, 0x40, (DEFAULT_TTL_V_LOGIC_1 - 1) / 0x40, "01&2*")
|
||||
|
||||
/************************************************
|
||||
* PSG input streams
|
||||
************************************************/
|
||||
* PSG input streams
|
||||
************************************************/
|
||||
// AY-3-8910 PSG have a 1Vpp level
|
||||
DISCRETE_INPUTX_STREAM(MADALIEN_8910_PSG_A, 0, 2.0/32768, .250)
|
||||
DISCRETE_INPUTX_STREAM(MADALIEN_8910_PSG_B, 1, 2.0/32768, .250)
|
||||
DISCRETE_INPUTX_STREAM(MADALIEN_8910_PSG_C, 2, 2.0/32768, .250)
|
||||
|
||||
/************************************************
|
||||
* AY-3-8910 filtering
|
||||
************************************************/
|
||||
* AY-3-8910 filtering
|
||||
************************************************/
|
||||
// top op-amp
|
||||
DISCRETE_ONOFF(NODE_20, MADALIEN_8910_PORTA_2, MADALIEN_8910_PSG_A)
|
||||
DISCRETE_OP_AMP_FILTER(NODE_21, 1, NODE_20, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &madalien_psg_a_filter)
|
||||
@ -195,8 +195,8 @@ DISCRETE_SOUND_START( madalien )
|
||||
DISCRETE_MIXER3(NODE_48, 1, NODE_21, NODE_33, NODE_41, &madalien_psg_mix)
|
||||
|
||||
/************************************************
|
||||
* Player motor
|
||||
************************************************/
|
||||
* Player motor
|
||||
************************************************/
|
||||
DISCRETE_555_ASTABLE(NODE_50, // cap is buffered by op-amp 2D.
|
||||
1, // always enabled
|
||||
RES_K(4.7),
|
||||
@ -225,8 +225,8 @@ DISCRETE_SOUND_START( madalien )
|
||||
DISCRETE_COMP_ADDER(NODE_59, 1, MADALIEN_8910_PORTB_23, &madalien_effect_1b_vol_r)
|
||||
|
||||
/************************************************
|
||||
* Enemy motor
|
||||
************************************************/
|
||||
* Enemy motor
|
||||
************************************************/
|
||||
DISCRETE_CRFILTER(NODE_60, 1, MADALIEN_8910_PORTB_7, RES_K(100), CAP_U(4.7))
|
||||
// 2 diodes clamp it positive.
|
||||
DISCRETE_CLAMP(NODE_62, 1, NODE_60, 0, 12, 0)
|
||||
@ -249,8 +249,8 @@ DISCRETE_SOUND_START( madalien )
|
||||
DISCRETE_DAC_R1(NODE_68, 1, NODE_67, DEFAULT_TTL_V_LOGIC_1, &madalien_effect2_dac)
|
||||
|
||||
/************************************************
|
||||
* Mixer
|
||||
************************************************/
|
||||
* Mixer
|
||||
************************************************/
|
||||
DISCRETE_MIXER7(NODE_90, 1, MADALIEN_8910_PSG_A, NODE_48, MADALIEN_8910_PSG_B, MADALIEN_8910_PSG_C, NODE_56, NODE_57, NODE_68, &madalien_final_mix)
|
||||
|
||||
DISCRETE_OUTPUT(NODE_90, 1.1)
|
||||
|
@ -302,14 +302,14 @@ static UINT8 speech_cnt;
|
||||
static TIMER_CALLBACK( ad2083_step )
|
||||
{
|
||||
/* only 16 bytes needed ... The original dump is bad. This
|
||||
* is what is needed to get speech to work. The prom data has
|
||||
* been updated and marked as BAD_DUMP. The information below
|
||||
* is given for reference once another dump should surface.
|
||||
* is what is needed to get speech to work. The prom data has
|
||||
* been updated and marked as BAD_DUMP. The information below
|
||||
* is given for reference once another dump should surface.
|
||||
*
|
||||
* static const int prom[16] = {0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00,
|
||||
* 0x02, 0x00, 0x40, 0x00, 0x04, 0x06, 0x04, 0x84 };
|
||||
* static const int prom[16] = {0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00,
|
||||
* 0x02, 0x00, 0x40, 0x00, 0x04, 0x06, 0x04, 0x84 };
|
||||
*/
|
||||
UINT8 *prom = memory_region(machine, "tms5110_ctrl");
|
||||
UINT8 *prom = memory_region(machine, "tms5110_ctrl");
|
||||
UINT8 ctrl;
|
||||
|
||||
if (param == 0)
|
||||
|
@ -715,8 +715,8 @@ static INPUT_PORTS_START( tetrsark )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // or up? it rotates the piece.
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
|
||||
// PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // WTF? it does't work
|
||||
// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) // WTF? it does't work
|
||||
// PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // WTF? it does't work
|
||||
// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) // WTF? it does't work
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
|
||||
INPUT_PORTS_END
|
||||
|
@ -780,9 +780,9 @@ OSC : 40.000MHz, 32.000MHz, 25.000MHz
|
||||
DIP SW: 8 position (x2)
|
||||
|
||||
RAM : MCM54260 (x2, 40 pin SOJ)
|
||||
TMS44251 (x4, 28 pin ZIP)
|
||||
|
||||
OTHER :
|
||||
TMS44251 (x4, 28 pin ZIP)
|
||||
|
||||
OTHER :
|
||||
CSI CAT28C16 EEPROM (24 pin DIP)
|
||||
ADV476KN80E (28 pin DIP)
|
||||
8 PALs
|
||||
@ -793,8 +793,8 @@ OTHER :
|
||||
74HC14 Logic Chip
|
||||
10 Pin header (probably for re-programming the XC3030's
|
||||
after it suicides....)
|
||||
|
||||
|
||||
|
||||
|
||||
ROMs :
|
||||
Byte
|
||||
Filename Type C'sum
|
||||
@ -802,7 +802,7 @@ Filename Type C'sum
|
||||
u1801.bin 27C4001 344Eh OKI Samples
|
||||
|
||||
u101.bin 27C2001 617Ah \ Main Program
|
||||
u102.bin 27C2001 8F04h /
|
||||
u102.bin 27C2001 8F04h /
|
||||
|
||||
u1600.bin 32M Mask 1105h \
|
||||
u1601.bin 32M Mask 8642h / Gfx
|
||||
|
@ -579,7 +579,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
/* Forgotten Worlds has dial controls on B-board mapped at 800040-80005f. See DRIVER_INIT */
|
||||
AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_BASE(&cps1_cps_a_regs) /* CPS-A custom */
|
||||
/* CPS-B custom is mapped by a PAL on B-board. SF2 revision "E" US 910228 has it a a different
|
||||
address, see DRIVER_INIT */
|
||||
address, see DRIVER_INIT */
|
||||
AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_BASE(&cps1_cps_b_regs)
|
||||
AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */
|
||||
AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
|
||||
|
@ -519,7 +519,7 @@ static MACHINE_RESET(crystal)
|
||||
memory_set_bankptr(1,memory_region(machine, "user1")+0);
|
||||
FlashCmd=0xff;
|
||||
OldPort4=0;
|
||||
|
||||
|
||||
DMActrl[0]=0;
|
||||
DMActrl[1]=0;
|
||||
|
||||
|
@ -1590,7 +1590,7 @@ static ADDRESS_MAP_START( quiz365_writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x17ffff) AM_WRITE(SMH_ROM) // ROM
|
||||
AM_RANGE(0x200000, 0x2003ff) AM_WRITE(ddenlovr_palette_w) // Palette
|
||||
AM_RANGE(0x200e0a, 0x200e0d) AM_WRITE(quiz365_protection_w) // Protection
|
||||
// AM_RANGE(0x201000, 0x2017ff) AM_WRITE(SMH_RAM) // ?
|
||||
// AM_RANGE(0x201000, 0x2017ff) AM_WRITE(SMH_RAM) // ?
|
||||
AM_RANGE(0x300200, 0x300201) AM_WRITE(ddenlovr_select2_16_w)
|
||||
AM_RANGE(0x300202, 0x300203) AM_WRITE(quiz365_coincounter_w) // Coin Counters + more stuff written on startup
|
||||
AM_RANGE(0x300240, 0x300247) AM_WRITE(ddenlovr16_palette_base_w)
|
||||
@ -1656,7 +1656,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( ddenlvrj_writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) // ROM
|
||||
AM_RANGE(0x200000, 0x2003ff) AM_WRITE(ddenlovr_palette_w) // Palette
|
||||
// AM_RANGE(0x201000, 0x2017ff) AM_WRITE(SMH_RAM) // ? B0 on startup, then 00
|
||||
// AM_RANGE(0x201000, 0x2017ff) AM_WRITE(SMH_RAM) // ? B0 on startup, then 00
|
||||
AM_RANGE(0x300040, 0x300047) AM_WRITE(ddenlovr16_palette_base_w)
|
||||
AM_RANGE(0x300048, 0x30004f) AM_WRITE(ddenlovr16_palette_mask_w)
|
||||
AM_RANGE(0x300050, 0x300057) AM_WRITE(ddenlovr16_transparency_pen_w)
|
||||
@ -1697,7 +1697,7 @@ static ADDRESS_MAP_START( ddenlovr_writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) // ROM
|
||||
AM_RANGE(0x300000, 0x300001) AM_WRITE(ddenlovr_oki_bank_w)
|
||||
AM_RANGE(0xd00000, 0xd003ff) AM_WRITE(ddenlovr_palette_w) // Palette
|
||||
// AM_RANGE(0xd01000, 0xd017ff) SMH_RAM) // ? B0 on startup, then 00
|
||||
// AM_RANGE(0xd01000, 0xd017ff) SMH_RAM) // ? B0 on startup, then 00
|
||||
AM_RANGE(0xe00040, 0xe00047) AM_WRITE(ddenlovr16_palette_base_w)
|
||||
AM_RANGE(0xe00048, 0xe0004f) AM_WRITE(ddenlovr16_palette_mask_w)
|
||||
AM_RANGE(0xe00050, 0xe00057) AM_WRITE(ddenlovr16_transparency_pen_w)
|
||||
@ -1712,7 +1712,7 @@ static ADDRESS_MAP_START( ddenlovr_writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0xe00400, 0xe00401) AM_WRITE(ym2413_register_port_0_lsb_w)
|
||||
AM_RANGE(0xe00402, 0xe00403) AM_WRITE(ym2413_data_port_0_lsb_w)
|
||||
AM_RANGE(0xe00500, 0xe0051f) AM_DEVWRITE8(MSM6242, "rtc", msm6242_w, 0x00ff) // 6242RTC
|
||||
// AM_RANGE(0xe00302, 0xe00303) AM_WRITE(SMH_NOP) // ?
|
||||
// AM_RANGE(0xe00302, 0xe00303) AM_WRITE(SMH_NOP) // ?
|
||||
AM_RANGE(0xe00600, 0xe00601) AM_WRITE(ay8910_control_port_0_lsb_w)
|
||||
AM_RANGE(0xe00602, 0xe00603) AM_WRITE(ay8910_write_port_0_lsb_w)
|
||||
AM_RANGE(0xe00700, 0xe00701) AM_WRITE(okim6295_data_0_lsb_w)
|
||||
@ -3242,7 +3242,7 @@ static ADDRESS_MAP_START( akamaru_writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM) // ROM
|
||||
AM_RANGE(0x213570, 0x213571) AM_WRITE(akamaru_protection1_w) // OKI bank
|
||||
AM_RANGE(0xd00000, 0xd003ff) AM_WRITE(ddenlovr_palette_w) // Palette
|
||||
// AM_RANGE(0xd01000, 0xd017ff) AM_WRITE(SMH_RAM) // 0
|
||||
// AM_RANGE(0xd01000, 0xd017ff) AM_WRITE(SMH_RAM) // 0
|
||||
AM_RANGE(0xe00040, 0xe00047) AM_WRITE(ddenlovr16_palette_base_w)
|
||||
AM_RANGE(0xe00048, 0xe0004f) AM_WRITE(ddenlovr16_palette_mask_w)
|
||||
AM_RANGE(0xe00050, 0xe00057) AM_WRITE(ddenlovr16_transparency_pen_w)
|
||||
@ -3674,7 +3674,7 @@ static INPUT_PORTS_START( quiz365 )
|
||||
PORT_DIPSETTING( 0x40, "0" )
|
||||
PORT_DIPSETTING( 0x80, "1" )
|
||||
PORT_DIPSETTING( 0xc0, "2" )
|
||||
// PORT_DIPSETTING( 0x00, "2" )
|
||||
// PORT_DIPSETTING( 0x00, "2" )
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x03, 0x03, "Unknown 2-0&1" )
|
||||
@ -3785,7 +3785,7 @@ static INPUT_PORTS_START( rongrong )
|
||||
PORT_DIPSETTING( 0x30, "1" )
|
||||
PORT_DIPSETTING( 0x20, "2" )
|
||||
PORT_DIPSETTING( 0x10, "3" )
|
||||
// PORT_DIPSETTING( 0x00, "3" )
|
||||
// PORT_DIPSETTING( 0x00, "3" )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
@ -3936,8 +3936,8 @@ static INPUT_PORTS_START( mmpanic )
|
||||
PORT_DIPSETTING( 0x10, "3" )
|
||||
PORT_DIPSETTING( 0x0c, "4" )
|
||||
PORT_DIPSETTING( 0x08, "5" )
|
||||
// PORT_DIPSETTING( 0x04, "5" )
|
||||
// PORT_DIPSETTING( 0x00, "5" )
|
||||
// PORT_DIPSETTING( 0x04, "5" )
|
||||
// PORT_DIPSETTING( 0x00, "5" )
|
||||
PORT_DIPNAME( 0x20, 0x20, "Linked Cabinets" )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
@ -4056,7 +4056,7 @@ static INPUT_PORTS_START( animaljr )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x18, 0x18, "Unknown 2-3&4" ) // used ?
|
||||
// PORT_DIPSETTING( 0x10, "0" )
|
||||
// PORT_DIPSETTING( 0x10, "0" )
|
||||
PORT_DIPSETTING( 0x00, "0" )
|
||||
PORT_DIPSETTING( 0x18, "1" )
|
||||
PORT_DIPSETTING( 0x08, "2" )
|
||||
@ -4698,7 +4698,7 @@ static INPUT_PORTS_START( mjreach1 )
|
||||
PORT_DIPSETTING( 0x01, "1500" )
|
||||
PORT_DIPSETTING( 0x00, "2000" )
|
||||
PORT_DIPNAME( 0x18, 0x18, "YAKUMAN Times" )
|
||||
// PORT_DIPSETTING( 0x00, "1" )
|
||||
// PORT_DIPSETTING( 0x00, "1" )
|
||||
PORT_DIPSETTING( 0x18, "1" )
|
||||
PORT_DIPSETTING( 0x10, "2" )
|
||||
PORT_DIPSETTING( 0x08, "3" )
|
||||
@ -4905,9 +4905,9 @@ static INPUT_PORTS_START( mjchuuka )
|
||||
PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
|
||||
PORT_DIPNAME( 0x0c, 0x0c, "Min Credits To Start" )
|
||||
PORT_DIPSETTING( 0x0c, "1" )
|
||||
// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
|
||||
// PORT_DIPSETTING( 0x04, "3" )
|
||||
// PORT_DIPSETTING( 0x00, "5" )
|
||||
// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
|
||||
// PORT_DIPSETTING( 0x04, "3" )
|
||||
// PORT_DIPSETTING( 0x00, "5" )
|
||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x10, "10" )
|
||||
PORT_DIPSETTING( 0x00, "255" )
|
||||
@ -4932,7 +4932,7 @@ static INPUT_PORTS_START( mjchuuka )
|
||||
PORT_DIPSETTING( 0x01, "1000?" )
|
||||
PORT_DIPSETTING( 0x00, "1000?" )
|
||||
PORT_DIPNAME( 0x18, 0x18, "YAKUMAN Times" )
|
||||
// PORT_DIPSETTING( 0x00, "1" )
|
||||
// PORT_DIPSETTING( 0x00, "1" )
|
||||
PORT_DIPSETTING( 0x18, "1" )
|
||||
PORT_DIPSETTING( 0x10, "2" )
|
||||
PORT_DIPSETTING( 0x08, "3?" )
|
||||
@ -5047,8 +5047,8 @@ static INPUT_PORTS_START( funkyfig )
|
||||
PORT_DIPSETTING( 0x10, "3" )
|
||||
PORT_DIPSETTING( 0x0c, "4" )
|
||||
PORT_DIPSETTING( 0x08, "5" )
|
||||
// PORT_DIPSETTING( 0x04, "5" )
|
||||
// PORT_DIPSETTING( 0x00, "5" )
|
||||
// PORT_DIPSETTING( 0x04, "5" )
|
||||
// PORT_DIPSETTING( 0x00, "5" )
|
||||
PORT_DIPNAME( 0x20, 0x20, "Linked Cabinets" )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
@ -5198,9 +5198,9 @@ static INPUT_PORTS_START( mjmyster )
|
||||
PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
|
||||
PORT_DIPNAME( 0x0c, 0x0c, "Min Credits To Start" )
|
||||
PORT_DIPSETTING( 0x0c, "1" )
|
||||
// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
|
||||
// PORT_DIPSETTING( 0x04, "3" )
|
||||
// PORT_DIPSETTING( 0x00, "5" )
|
||||
// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
|
||||
// PORT_DIPSETTING( 0x04, "3" )
|
||||
// PORT_DIPSETTING( 0x00, "5" )
|
||||
PORT_DIPNAME( 0x70, 0x70, "YAKUMAN Bonus" )
|
||||
PORT_DIPSETTING( 0x70, "Cut" )
|
||||
PORT_DIPSETTING( 0x60, "1 T" )
|
||||
@ -5216,7 +5216,7 @@ static INPUT_PORTS_START( mjmyster )
|
||||
|
||||
PORT_START("DSW3")
|
||||
PORT_DIPNAME( 0x03, 0x03, "YAKUMAN Times" )
|
||||
// PORT_DIPSETTING( 0x00, "1" )
|
||||
// PORT_DIPSETTING( 0x00, "1" )
|
||||
PORT_DIPSETTING( 0x03, "1" )
|
||||
PORT_DIPSETTING( 0x02, "2" )
|
||||
PORT_DIPSETTING( 0x01, "3?" )
|
||||
@ -5293,13 +5293,13 @@ INPUT_PORTS_END
|
||||
static INPUT_PORTS_START( hginga )
|
||||
PORT_START("SYSTEM")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
|
||||
// PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
// PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1) // Test
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE2 ) // data clear
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) // note
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1)
|
||||
// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("KEY0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(2) // A
|
||||
@ -5812,9 +5812,9 @@ static INPUT_PORTS_START( mjmyornt )
|
||||
PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
|
||||
PORT_DIPNAME( 0x0c, 0x0c, "Min Credits To Start" )
|
||||
PORT_DIPSETTING( 0x0c, "1" )
|
||||
// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
|
||||
// PORT_DIPSETTING( 0x04, "3" )
|
||||
// PORT_DIPSETTING( 0x00, "5" )
|
||||
// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
|
||||
// PORT_DIPSETTING( 0x04, "3" )
|
||||
// PORT_DIPSETTING( 0x00, "5" )
|
||||
PORT_DIPNAME( 0x70, 0x70, "YAKUMAN Bonus" )
|
||||
PORT_DIPSETTING( 0x70, "Cut" )
|
||||
PORT_DIPSETTING( 0x60, "1 T" )
|
||||
@ -5830,7 +5830,7 @@ static INPUT_PORTS_START( mjmyornt )
|
||||
|
||||
PORT_START("DSW3")
|
||||
PORT_DIPNAME( 0x03, 0x03, "YAKUMAN Times" )
|
||||
// PORT_DIPSETTING( 0x00, "1" )
|
||||
// PORT_DIPSETTING( 0x00, "1" )
|
||||
PORT_DIPSETTING( 0x03, "1" )
|
||||
PORT_DIPSETTING( 0x02, "2" )
|
||||
PORT_DIPSETTING( 0x01, "3?" )
|
||||
@ -5993,9 +5993,9 @@ static INPUT_PORTS_START( mjmyuniv )
|
||||
PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
|
||||
PORT_DIPNAME( 0x0c, 0x0c, "Min Credits To Start" )
|
||||
PORT_DIPSETTING( 0x0c, "1" )
|
||||
// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
|
||||
// PORT_DIPSETTING( 0x04, "3" )
|
||||
// PORT_DIPSETTING( 0x00, "5" )
|
||||
// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
|
||||
// PORT_DIPSETTING( 0x04, "3" )
|
||||
// PORT_DIPSETTING( 0x00, "5" )
|
||||
PORT_DIPNAME( 0x70, 0x70, "YAKUMAN Bonus" )
|
||||
PORT_DIPSETTING( 0x70, "Cut" )
|
||||
PORT_DIPSETTING( 0x60, "1 T" )
|
||||
@ -6011,7 +6011,7 @@ static INPUT_PORTS_START( mjmyuniv )
|
||||
|
||||
PORT_START("DSW3")
|
||||
PORT_DIPNAME( 0x03, 0x03, "YAKUMAN Times" )
|
||||
// PORT_DIPSETTING( 0x00, "1" )
|
||||
// PORT_DIPSETTING( 0x00, "1" )
|
||||
PORT_DIPSETTING( 0x03, "1" )
|
||||
PORT_DIPSETTING( 0x02, "2" )
|
||||
PORT_DIPSETTING( 0x01, "3?" )
|
||||
@ -6431,7 +6431,7 @@ static INPUT_PORTS_START( hparadis )
|
||||
PORT_DIPSETTING( 0x60, "Hanafuda" )
|
||||
PORT_DIPSETTING( 0x40, "Mahjong" )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Joystick ) )
|
||||
// PORT_DIPSETTING( 0x00, DEF_STR( Joystick ) )
|
||||
// PORT_DIPSETTING( 0x00, DEF_STR( Joystick ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, "First Chance" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
|
||||
@ -7544,7 +7544,7 @@ ROM_START( ddenlovr )
|
||||
ROM_END
|
||||
|
||||
|
||||
/*
|
||||
/*
|
||||
Don Den Lover (bootleg)
|
||||
|
||||
PCB Layout
|
||||
|
@ -41,25 +41,25 @@
|
||||
|
||||
Dumping a HD image.
|
||||
|
||||
2.5 inch 2.5 to 2.5 to
|
||||
2.5 inch 2.5 to 2.5 to
|
||||
hard drive 3.5 adapter long 3.5 IDE cable 3.5 adapter PCB
|
||||
/---|- |----------------------| -|---\
|
||||
/---|- |----------------------| -|---\
|
||||
|------|- |-/ |- |----------------------| -| \-| -|
|
||||
| |- | |- |----------------------| -| | -|
|
||||
|------|- |-\ |- |----------------------| -| /-| -|
|
||||
\---|- |----------------------| -|---/
|
||||
\---|- |----------------------| -|---/
|
||||
|| ||
|
||||
|| /\ ||<-- Power connector
|
||||
|| || not used
|
||||
|| ||
|
||||
||
|
||||
||
|
||||
--------- unplug here
|
||||
| PC | when game PCB is booted
|
||||
|Power | and working. Boot Windows and stop at menu (F8)
|
||||
|Supply | Then plug HD into PC IDE controller, and continue boot process
|
||||
|+5V and| then dump the hard drive with Winhex
|
||||
|GND | once PC is booted up again.
|
||||
---------
|
||||
|+5V and| then dump the hard drive with Winhex
|
||||
|GND | once PC is booted up again.
|
||||
---------
|
||||
|
||||
*/
|
||||
|
||||
|
@ -13,11 +13,11 @@ PCB Layout
|
||||
6295 6295 6116 *PLCC84 DM1004
|
||||
6116 DM1005
|
||||
PIC16C55 DM1006
|
||||
|
||||
|
||||
6116 6116 DM1007
|
||||
6116 6116 DM1008
|
||||
6116
|
||||
6116
|
||||
6116
|
||||
TPC1020
|
||||
DSW1 62256 62256 (PLCC84)
|
||||
DM1000A DM1000B
|
||||
@ -26,7 +26,7 @@ DSW2 68000 TPC1020 62256
|
||||
12MHz 32MHz
|
||||
|
||||
|
||||
Notes:
|
||||
Notes:
|
||||
*: Unknown PLCC84 chip (surface scratched)
|
||||
VSync: 60Hz
|
||||
HSync: 15.625kHz
|
||||
|
@ -47,7 +47,7 @@ EXPRO-02
|
||||
clock input on any of the pins of these chips. They're not ROMs either
|
||||
because the pinout doesn't match any known EPROMs.
|
||||
There are no markings on the chips other than 'GP-U27' & 'GP-U41'
|
||||
If GP-U41 is removed, on bootup the PCB gives an error 'BG ERROR' and
|
||||
If GP-U41 is removed, on bootup the PCB gives an error 'BG ERROR' and
|
||||
a memory address. If GP-U27 is removed, the PCB works but there are no
|
||||
background graphics.
|
||||
|
||||
@ -56,8 +56,8 @@ EXPRO-02
|
||||
GP-U41 clocks - pins 21 & 22 - 12.0MHz, pins 1 & 2 - 6.0MHz, pins 8 & 9 - 15.6249kHz (HSync?)
|
||||
GP-U27 clock - none (so it's not an MCU)
|
||||
|
||||
(TODO: which is correct?)
|
||||
OKI M6295 clock - 2.0MHz (12/6). pin7 = low
|
||||
(TODO: which is correct?)
|
||||
OKI M6295 clock - 2.0MHz (12/6). pin7 = low
|
||||
OKI M6295 clock - 2.000 MHz [16/8]. Sample rate 2000000/165
|
||||
|
||||
VSync - 60Hz
|
||||
|
@ -380,7 +380,7 @@ INPUT_PORTS_END
|
||||
/* the same as f1gp, but with an extra button */
|
||||
static INPUT_PORTS_START( f1gp2 )
|
||||
PORT_INCLUDE( f1gp )
|
||||
|
||||
|
||||
PORT_MODIFY("INPUTS")
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 )
|
||||
|
||||
|
@ -572,9 +572,9 @@ static INPUT_PORTS_START( victnine )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("EXTRA_P1") /* D805 */
|
||||
/* bits 0,1 are MCU related:
|
||||
- bit 0: mcu is ready to receive data from main cpu
|
||||
- bit 1: mcu has sent data to the main cpu */
|
||||
/* bits 0,1 are MCU related:
|
||||
- bit 0: mcu is ready to receive data from main cpu
|
||||
- bit 1: mcu has sent data to the main cpu */
|
||||
PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(victnine_mcu_status_bit01_r, NULL)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 )
|
||||
|
@ -854,7 +854,7 @@ ROM_START( freekcb2 )
|
||||
ROM_LOAD( "1.bin", 0x00000, 0x08000, CRC(a6030ba9) SHA1(f363100f54a7a80701a6395c7539b8daa60db054) )
|
||||
|
||||
/* the first half of the gfx roms isn't used on this bootleg (roms are double size)
|
||||
- the content is otherwise identical */
|
||||
- the content is otherwise identical */
|
||||
ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE ) /* GFX */
|
||||
ROM_LOAD( "2.bin", 0x000000, 0x04000, CRC(96aeae91) SHA1(073ca6c9fbe14760ee10293791254da3bcb43940) )
|
||||
ROM_CONTINUE(0x0000,0x4000)
|
||||
@ -998,7 +998,7 @@ Gigas (bootleg)
|
||||
|
||||
CPU: Z80 (on a small plug in board), 8748 MCU (on same plug-in board)
|
||||
SND: 76489 x3
|
||||
DIPSW: 8 position x3
|
||||
DIPSW: 8 position x3
|
||||
RAM: 6116 x2 (near ROMs 1-6), 6264 x1 (near ROMs 7-8), 2018 x2 (located in center of board)
|
||||
XTAL: 18.432MHz
|
||||
PROMs: 82s129 x6 (not dumped yet, probably match existing archives....)
|
||||
|
@ -499,7 +499,7 @@ ADDRESS_MAP_END
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
Input Ports
|
||||
Input Ports
|
||||
---------------------------------------------------------------------------- */
|
||||
|
||||
static INPUT_PORTS_START( fromanc2 )
|
||||
|
@ -306,13 +306,13 @@ static INPUT_PORTS_START( pbancho )
|
||||
PORT_DIPSETTING( 0x001c, DEF_STR( Normal ) ) // 3
|
||||
PORT_DIPSETTING( 0x0018, DEF_STR( Hard ) ) // 4
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( Hardest ) ) // 5
|
||||
// PORT_DIPSETTING( 0x0000, DEF_STR( Normal ) ) // 3
|
||||
// PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) // 3
|
||||
// PORT_DIPSETTING( 0x0014, DEF_STR( Normal ) ) // 3
|
||||
// PORT_DIPSETTING( 0x0000, DEF_STR( Normal ) ) // 3
|
||||
// PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) // 3
|
||||
// PORT_DIPSETTING( 0x0014, DEF_STR( Normal ) ) // 3
|
||||
PORT_DIPNAME( 0x0060, 0x0060, "Lives (Vs Mode)" )
|
||||
PORT_DIPSETTING( 0x0000, "1" ) // 1 1
|
||||
PORT_DIPSETTING( 0x0060, "2" ) // 2 3
|
||||
// PORT_DIPSETTING( 0x0020, "2" ) // 2 3
|
||||
// PORT_DIPSETTING( 0x0020, "2" ) // 2 3
|
||||
PORT_DIPSETTING( 0x0040, "3" ) // 3 5
|
||||
PORT_DIPNAME( 0x0080, 0x0080, "? Senin Mode ?" )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
||||
@ -323,7 +323,7 @@ static INPUT_PORTS_START( pbancho )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0200, 0x0200, "Allow Game Selection" ) // "unused" in the manual?
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( Yes ) )
|
||||
// PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) // Why cripple the game!?
|
||||
// PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) // Why cripple the game!?
|
||||
PORT_DIPNAME( 0x1c00, 0x1c00, DEF_STR( Coin_A ) )
|
||||
PORT_DIPSETTING( 0x0c00, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0x1400, DEF_STR( 3C_1C ) )
|
||||
|
@ -684,7 +684,7 @@ Notes:
|
||||
6264 - 8k x8 SRAM (x2, DIP28)
|
||||
6116 - 2k x8 SRAM (x8, DIP24)
|
||||
VSync - 58Hz
|
||||
|
||||
|
||||
ROMs:
|
||||
SQUASH_D16.E16 27C010 \
|
||||
SQUASH_D18.E18 27C010 / 68K Program
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Galxaia
|
||||
/* Galxaia
|
||||
|
||||
Galaxia by Zaccaria (1979)
|
||||
|
||||
@ -49,7 +49,7 @@ static VIDEO_START( galaxia )
|
||||
static VIDEO_UPDATE( galaxia )
|
||||
{
|
||||
int x,y, count;
|
||||
|
||||
|
||||
bitmap_t *s2636_0_bitmap;
|
||||
bitmap_t *s2636_1_bitmap;
|
||||
bitmap_t *s2636_2_bitmap;
|
||||
@ -65,7 +65,7 @@ static VIDEO_UPDATE( galaxia )
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
s2636_0_bitmap = s2636_update(s2636_0, cliprect);
|
||||
s2636_1_bitmap = s2636_update(s2636_1, cliprect);
|
||||
s2636_2_bitmap = s2636_update(s2636_2, cliprect);
|
||||
@ -89,7 +89,7 @@ static VIDEO_UPDATE( galaxia )
|
||||
|
||||
if (S2636_IS_PIXEL_DRAWN(pixel1))
|
||||
*BITMAP_ADDR16(bitmap, y, x) = S2636_PIXEL_COLOR(pixel1);
|
||||
|
||||
|
||||
if (S2636_IS_PIXEL_DRAWN(pixel2))
|
||||
*BITMAP_ADDR16(bitmap, y, x) = S2636_PIXEL_COLOR(pixel2);
|
||||
}
|
||||
@ -109,7 +109,7 @@ static WRITE8_HANDLER(galaxia_video_w)
|
||||
galaxia_color[offset]=data;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static READ8_HANDLER(galaxia_video_r)
|
||||
{
|
||||
return galaxia_video[offset];
|
||||
@ -117,12 +117,12 @@ static READ8_HANDLER(galaxia_video_r)
|
||||
|
||||
static ADDRESS_MAP_START( mem_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x13ff) AM_ROM
|
||||
AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_RAM
|
||||
AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_RAM
|
||||
AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_RAM AM_BASE(&galaxia_s2636_0_ram)
|
||||
AM_RANGE(0x1600, 0x16ff) AM_MIRROR(0x6000) AM_RAM AM_BASE(&galaxia_s2636_1_ram)
|
||||
AM_RANGE(0x1700, 0x17ff) AM_MIRROR(0x6000) AM_RAM AM_BASE(&galaxia_s2636_2_ram)
|
||||
AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_READWRITE(galaxia_video_r, galaxia_video_w) AM_BASE(&galaxia_video)
|
||||
AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
|
||||
AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
|
||||
AM_RANGE(0x2000, 0x33ff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -2033,7 +2033,7 @@ static INPUT_PORTS_START( ckongg )
|
||||
PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coinage ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
|
||||
// PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0xc0, DEF_STR( Free_Play ) )
|
||||
|
||||
PORT_START("DSW0")
|
||||
|
@ -230,12 +230,12 @@ static INPUT_PORTS_START( galivan )
|
||||
/* This is how the Bonus Life are defined in Service Mode */
|
||||
/* However, to keep the way Bonus Life are defined in MAME, */
|
||||
/* below are the same values, but using the MAME way */
|
||||
// PORT_DIPNAME( 0x04, 0x04, "1st Bonus Life" )
|
||||
// PORT_DIPSETTING( 0x04, "20k" )
|
||||
// PORT_DIPSETTING( 0x00, "50k" )
|
||||
// PORT_DIPNAME( 0x08, 0x08, "2nd Bonus Life" )
|
||||
// PORT_DIPSETTING( 0x08, "every 60k" )
|
||||
// PORT_DIPSETTING( 0x00, "every 90k" )
|
||||
// PORT_DIPNAME( 0x04, 0x04, "1st Bonus Life" )
|
||||
// PORT_DIPSETTING( 0x04, "20k" )
|
||||
// PORT_DIPSETTING( 0x00, "50k" )
|
||||
// PORT_DIPNAME( 0x08, 0x08, "2nd Bonus Life" )
|
||||
// PORT_DIPSETTING( 0x08, "every 60k" )
|
||||
// PORT_DIPSETTING( 0x00, "every 90k" )
|
||||
PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) )
|
||||
PORT_DIPSETTING( 0x0c, "20k and every 60k" )
|
||||
PORT_DIPSETTING( 0x08, "50k and every 60k" )
|
||||
|
@ -447,7 +447,7 @@ static INPUT_PORTS_START( mrgoemon )
|
||||
PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) )
|
||||
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) )
|
||||
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
|
||||
// PORT_DIPSETTING( 0x00, "Invalid" )
|
||||
// PORT_DIPSETTING( 0x00, "Invalid" )
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
|
||||
|
@ -207,7 +207,7 @@ static INPUT_PORTS_START( gbusters )
|
||||
PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) )
|
||||
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) )
|
||||
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
|
||||
// PORT_DIPSETTING( 0x00, "Invalid" )
|
||||
// PORT_DIPSETTING( 0x00, "Invalid" )
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
|
||||
|
@ -604,7 +604,7 @@ static void laserdisc_audio_process(const device_config *device, int samplerate,
|
||||
|
||||
if (logit)
|
||||
logerror("--------------\n");
|
||||
|
||||
|
||||
/* if no data, reset it all */
|
||||
if (ch1 == NULL)
|
||||
{
|
||||
|
@ -280,7 +280,7 @@ static INPUT_PORTS_START( gradius3 )
|
||||
PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) )
|
||||
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) )
|
||||
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
|
||||
// PORT_DIPSETTING( 0x00, "Invalid" )
|
||||
// PORT_DIPSETTING( 0x00, "Invalid" )
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
|
||||
|
@ -348,9 +348,9 @@ static VIDEO_UPDATE( aso )
|
||||
}
|
||||
|
||||
|
||||
static CUSTOM_INPUT( sound_status_r )
|
||||
{
|
||||
return snk_sound_busy_bit;
|
||||
static CUSTOM_INPUT( sound_status_r )
|
||||
{
|
||||
return snk_sound_busy_bit;
|
||||
}
|
||||
|
||||
|
||||
|
@ -188,7 +188,7 @@ A046491
|
||||
| 16MHz | 0 | |---| |
|
||||
| | 0 | 136077-1032-70N CY7C168 |TMS| SOCKET 136052-1123.65A
|
||||
| | 0 | | | |
|
||||
| | | 6264 CY7C168 |320|
|
||||
| | | 6264 CY7C168 |320|
|
||||
| | | |C10| |
|
||||
| | | 20MHz| | |
|
||||
| |-----| | | 95C 95A |
|
||||
|
@ -205,7 +205,7 @@ static INPUT_PORTS_START( hcastle )
|
||||
PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) )
|
||||
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) )
|
||||
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
|
||||
// PORT_DIPSETTING( 0x00, "Invalidity" ) // Disables the 2 coin slots
|
||||
// PORT_DIPSETTING( 0x00, "Invalidity" ) // Disables the 2 coin slots
|
||||
|
||||
PORT_START("DSW3")
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
|
||||
|
@ -77,7 +77,7 @@ static ADDRESS_MAP_START( hyperspt_readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x1000, 0x10ff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x1600, 0x1600) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0x1680, 0x1680) AM_READ_PORT("SYSTEM")
|
||||
// AM_RANGE(0x1681, 0x1681) AM_READ_PORT("P1_P2")
|
||||
// AM_RANGE(0x1681, 0x1681) AM_READ_PORT("P1_P2")
|
||||
AM_RANGE(0x1681, 0x1681) AM_READ(konami_IN1_r) /* P1/P2 IO and handle fake button for cheating */
|
||||
AM_RANGE(0x1682, 0x1682) AM_READ_PORT("P3_P4")
|
||||
AM_RANGE(0x1683, 0x1683) AM_READ_PORT("DSW1")
|
||||
@ -150,7 +150,7 @@ static INPUT_PORTS_START( hyperspt )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
|
||||
// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
/* Fake button to press buttons 1 and 3 impossibly fast. Handle via konami_IN1_r */
|
||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Run Like Hell (Cheat)") PORT_PLAYER(1)
|
||||
|
||||
@ -200,7 +200,7 @@ static INPUT_PORTS_START( hyperspt )
|
||||
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
|
||||
PORT_DIPSETTING( 0x00, "Disabled" )
|
||||
/* 0x00 disables Coin 2. It still accepts coins and makes the sound, but
|
||||
it doesn't give you any credit */
|
||||
it doesn't give you any credit */
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x01, 0x00, "After Last Event" )
|
||||
@ -301,7 +301,7 @@ static INPUT_PORTS_START( roadf )
|
||||
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
|
||||
PORT_DIPSETTING( 0x00, "Disabled" )
|
||||
/* 0x00 disables Coin 2. It still accepts coins and makes the sound, but
|
||||
it doesn't give you any credit */
|
||||
it doesn't give you any credit */
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Allow_Continue ) )
|
||||
|
@ -152,7 +152,7 @@ static VIDEO_UPDATE(igs)
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
In addition to the blitter, the CPU can also read from and write to
|
||||
In addition to the blitter, the CPU can also read from and write to
|
||||
the framebuffers for the 8 layers, seen as 0x100000 bytes in memory.
|
||||
The first half contains layers 0-3. Layers 4-7 are in the other half.
|
||||
|
||||
@ -160,7 +160,7 @@ static VIDEO_UPDATE(igs)
|
||||
|
||||
- bytes 0x00000-0x00003 contain the 1st pixel of layer 0,1,2,3
|
||||
- bytes 0x00004-0x00007 contain the 2nd pixel of layer 0,1,2,3
|
||||
...
|
||||
...
|
||||
- bytes 0x80000-0x80003 contain the 1st pixel of layer 4,5,6,7
|
||||
- bytes 0x80004-0x80007 contain the 2nd pixel of layer 4,5,6,7
|
||||
|
||||
@ -2848,7 +2848,7 @@ static DRIVER_INIT( dbc )
|
||||
rom[0x1923e/2] = 0x4e71; // 01923E: 6408 bcc 19248 (fills screen with characters otherwise)
|
||||
|
||||
// Fix for the palette fade on title screen
|
||||
// rom[0x19E90/2] = 0x00ff;
|
||||
// rom[0x19E90/2] = 0x00ff;
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
@ -2998,13 +2998,13 @@ ROMs:
|
||||
2x PAL16L8ACN (u17,u18)(read protected)
|
||||
2x PALATF22V10B (u15,u45)
|
||||
1x empty space for additional PALATV750 (u16)
|
||||
|
||||
|
||||
Notes:
|
||||
1x JAMMA edge connector
|
||||
1x trimmer (volume)
|
||||
3x 8x2 switches DIP
|
||||
|
||||
The PCB is perfectly working, empty spaces and empty sockets are clearly intended to be empty.
|
||||
The PCB is perfectly working, empty spaces and empty sockets are clearly intended to be empty.
|
||||
25/07/2007 f205v Corrado Tomaselli Gnoppi
|
||||
|
||||
***************************************************************************/
|
||||
@ -3194,7 +3194,7 @@ Notes:
|
||||
IGS_M0202 - OKI samples (4M maskROM)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
ROM_START( lhba )
|
||||
ROM_REGION( 0x80000, "main", 0 )
|
||||
ROM_LOAD( "maj_v-033c.u30", 0x00000, 0x80000, CRC(02a0b716) SHA1(cd0ee32ea69f66768196b0e9b4df0fae3af84ed3) )
|
||||
@ -3254,7 +3254,7 @@ Notes:
|
||||
IGS_M0201 - Graphics (16M maskROM)
|
||||
IGS_M0202 - OKI samples (4M maskROM)
|
||||
MAJ-H_CG - Graphics (27c4001 EPROM)
|
||||
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
ROM_START( dbc )
|
||||
|
@ -404,9 +404,9 @@ Grand Tour
|
||||
IGS, 1993
|
||||
|
||||
This game probably runs on the same board as IGS's IQ Block.
|
||||
Two of the PALs are labelled GRAND3 and GRAND4. However, there may be other
|
||||
games that run on this same PCB also, since three of the PALs are
|
||||
labelled AF1, AF2 and AF3, meaning the main/first game to run on this
|
||||
Two of the PALs are labelled GRAND3 and GRAND4. However, there may be other
|
||||
games that run on this same PCB also, since three of the PALs are
|
||||
labelled AF1, AF2 and AF3, meaning the main/first game to run on this
|
||||
hardware was called A-something F-something.
|
||||
|
||||
|
||||
|
@ -356,7 +356,7 @@ static int special_result = 0;
|
||||
|
||||
static CUSTOM_INPUT( special_port_r )
|
||||
{
|
||||
if (sound_int_state)
|
||||
if (sound_int_state)
|
||||
special_result ^= 1;
|
||||
|
||||
return special_result;
|
||||
|
@ -365,14 +365,14 @@ static ADDRESS_MAP_START( berlwall, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x200000, 0x20ffff) AM_RAM // Work RAM
|
||||
AM_RANGE(0x30e000, 0x30ffff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites
|
||||
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette
|
||||
// AM_RANGE(0x480000, 0x480001) AM_RAM // ?
|
||||
// AM_RANGE(0x480000, 0x480001) AM_RAM // ?
|
||||
AM_RANGE(0x500000, 0x500001) AM_READWRITE(kaneko16_bg15_reg_r, kaneko16_bg15_reg_w) AM_BASE(&kaneko16_bg15_reg) // High Color Background
|
||||
AM_RANGE(0x580000, 0x580001) AM_READWRITE(kaneko16_bg15_select_r, kaneko16_bg15_select_w) AM_BASE(&kaneko16_bg15_select)
|
||||
AM_RANGE(0x600000, 0x60003f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs) // Sprites Regs
|
||||
AM_RANGE(0x680000, 0x680001) AM_READ_PORT("DSW_P1")
|
||||
AM_RANGE(0x680002, 0x680003) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x680004, 0x680005) AM_READ_PORT("SYSTEM")
|
||||
// AM_RANGE(0x680006, 0x680007) AM_READ_PORT("UNK")
|
||||
// AM_RANGE(0x680006, 0x680007) AM_READ_PORT("UNK")
|
||||
AM_RANGE(0x700000, 0x700001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout
|
||||
AM_RANGE(0x780000, 0x780001) AM_READ(watchdog_reset16_r) // Watchdog
|
||||
AM_RANGE(0x800000, 0x80001f) AM_READWRITE(kaneko16_YM2149_0_r, kaneko16_YM2149_0_w) // Sound
|
||||
@ -1079,11 +1079,11 @@ static INPUT_PORTS_START( blazeon )
|
||||
PORT_DIPSETTING( 0x0009, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( 4C_3C ) )
|
||||
PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x0003, "5 Coins/6 Credits" )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( 4C_5C ) )
|
||||
PORT_DIPSETTING( 0x0006, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x0001, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x0001, DEF_STR( 2C_3C ) )
|
||||
PORT_DIPSETTING( 0x000e, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x000d, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
|
||||
@ -1097,11 +1097,11 @@ static INPUT_PORTS_START( blazeon )
|
||||
PORT_DIPSETTING( 0x0090, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( 4C_3C ) )
|
||||
PORT_DIPSETTING( 0x00f0, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x0030, "5 Coins/6 Credits" )
|
||||
PORT_DIPSETTING( 0x0020, DEF_STR( 4C_5C ) )
|
||||
PORT_DIPSETTING( 0x0060, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x0010, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x0010, DEF_STR( 2C_3C ) )
|
||||
PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x00d0, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) )
|
||||
@ -2777,7 +2777,7 @@ Kaneko, 1995
|
||||
PCB Layouts
|
||||
-----------
|
||||
|
||||
KANEKO AX-SYSTEM BOARD
|
||||
KANEKO AX-SYSTEM BOARD
|
||||
M201F00584 KANEKO (sticker)
|
||||
|------------------------------------------------------|
|
||||
| PX4460 CNC1 |
|
||||
@ -2837,13 +2837,13 @@ Notes:
|
||||
CNC1/CNC2 \
|
||||
CNA/CNB | Multi-pin connectors joining top board to bottom board
|
||||
CN1/2/3 /
|
||||
Custom IC's -
|
||||
Custom IC's -
|
||||
KANEKO VIEW2-CHIP (x2, QFP144)
|
||||
KANEKO KC-002 (QFP208)
|
||||
*1 - KANEKO JAPAN 9448 TA (QFP44)
|
||||
|
||||
|
||||
KANEKO AX-SYSTEM BOARD ROM-08
|
||||
KANEKO AX-SYSTEM BOARD ROM-08
|
||||
AX09S00584 KANEKO (sticker)
|
||||
|------------------------------------------------------|
|
||||
| 93C46 SW1 CNB CN1 |
|
||||
@ -2921,7 +2921,7 @@ Notes:
|
||||
M2B0X0.U93 27C010 (1M) |
|
||||
M2B1X0.U94 27C010 (1M) /
|
||||
|
||||
M2-100-00.U48 8M MASKROM (32-Pin) \
|
||||
M2-100-00.U48 8M MASKROM (32-Pin) \
|
||||
M2W1A1.U47 27C040 (4M) / Oki Samples
|
||||
|
||||
***************************************************************************/
|
||||
|
@ -95,7 +95,7 @@ static ADDRESS_MAP_START( kingpin_readport, ADDRESS_SPACE_IO, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READ(io_read_missing_dips)
|
||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("DSW")
|
||||
/* AM_RANGE(0x02, 0x02) AM_READ(io_read_missing_dips) */
|
||||
/* AM_RANGE(0x02, 0x02) AM_READ(io_read_missing_dips) */
|
||||
AM_RANGE(0x10, 0x10) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0x11, 0x11) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0x20, 0x20) AM_READ(TMS9928A_vram_r)
|
||||
|
@ -1485,7 +1485,7 @@ static INPUT_PORTS_START( common )
|
||||
// d5a002 = input port: service4/3/2/1 coin 4/3/2/1
|
||||
// d5a003 = objint stat, exioint stat, trackint stat, excgint stat, escint stat,
|
||||
// excpuint stat, objdma stat, eeprom do
|
||||
|
||||
|
||||
// note: racin' force expects bit 1 of the eeprom port to toggle
|
||||
PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
||||
PORT_BIT( 0x000000fe, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gx_rdport1_3_r, NULL)
|
||||
@ -2672,22 +2672,22 @@ PWB300456A
|
||||
|DIPSW CN3 CN4 |
|
||||
|----------------------------------------------|
|
||||
Notes:
|
||||
This version mother board has the game board connectors on top,
|
||||
This version mother board has the game board connectors on top,
|
||||
meaning the game board plugs in above the mother board. A small
|
||||
cable feeds the RGB from the game board to the JAMMA connector via
|
||||
an adapter board for the 1st screen. Another small cable is used
|
||||
to connect the 2nd RGB output to the 'versus' cabinet/monitor.
|
||||
|
||||
|
||||
68020 clock: 24.000MHz (QFP100)
|
||||
68000 clock: 8.000MHz (PLCC68)
|
||||
VSync : 60Hz
|
||||
|
||||
|
||||
S_OUT: Connector for right speaker sound output.
|
||||
CN3 : Connector for 3rd player controls
|
||||
CN4 : Connector for 4th player controls
|
||||
CN5 : Connector for player 1 gun
|
||||
CN6 : Connector for player 2 gun
|
||||
|
||||
|
||||
RAM:
|
||||
CY7C185: 8K x8 SRAM
|
||||
8464 : 8K x8 SRAM
|
||||
@ -2739,7 +2739,7 @@ PWB 301798A
|
||||
|----------------------------------------------|
|
||||
Notes:
|
||||
*: Unpopulated ROM positions.
|
||||
|
||||
|
||||
Konami Customs:
|
||||
003462 - Xilinx PLCC84 FPGA stamped 003462
|
||||
053936 - QFP100, also marked KS10011-PF PSAC2
|
||||
@ -3040,7 +3040,7 @@ ROM_START( racinfru )
|
||||
ROM_END
|
||||
|
||||
|
||||
/*
|
||||
/*
|
||||
Open Golf Championship - version EAE
|
||||
Konami, 1994
|
||||
|
||||
@ -3052,7 +3052,7 @@ PCB Layout (Bottom Board)
|
||||
|
||||
PWB354207B
|
||||
--------------------------------------
|
||||
A23
|
||||
A23
|
||||
A22 A26
|
||||
A21 A25 A07 M514256(x12)
|
||||
A20 A24 A06
|
||||
|
@ -130,7 +130,7 @@ static INPUT_PORTS_START( labyrunr )
|
||||
PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) )
|
||||
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) )
|
||||
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
|
||||
// PORT_DIPSETTING( 0x00, "Invalid" )
|
||||
// PORT_DIPSETTING( 0x00, "Invalid" )
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
|
||||
|
@ -271,9 +271,9 @@ static INPUT_PORTS_START( laserbat )
|
||||
PORT_DIPSETTING( 0x20, "5" )
|
||||
PORT_DIPSETTING( 0x30, "6" )
|
||||
PORT_DIPSETTING( 0x40, "Infinites" )
|
||||
// PORT_DIPSETTING( 0x50, "Infinites" )
|
||||
// PORT_DIPSETTING( 0x60, "Infinites" )
|
||||
// PORT_DIPSETTING( 0x70, "Infinites" )
|
||||
// PORT_DIPSETTING( 0x50, "Infinites" )
|
||||
// PORT_DIPSETTING( 0x60, "Infinites" )
|
||||
// PORT_DIPSETTING( 0x70, "Infinites" )
|
||||
PORT_DIPNAME( 0x80, 0x80, "Collision Detection" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
@ -424,9 +424,9 @@ static INPUT_PORTS_START( catnmous )
|
||||
PORT_DIPSETTING( 0x20, "4" )
|
||||
PORT_DIPSETTING( 0x30, "5" )
|
||||
PORT_DIPSETTING( 0x40, "Infinites" )
|
||||
// PORT_DIPSETTING( 0x50, "Infinites" )
|
||||
// PORT_DIPSETTING( 0x60, "Infinites" )
|
||||
// PORT_DIPSETTING( 0x70, "Infinites" )
|
||||
// PORT_DIPSETTING( 0x50, "Infinites" )
|
||||
// PORT_DIPSETTING( 0x60, "Infinites" )
|
||||
// PORT_DIPSETTING( 0x70, "Infinites" )
|
||||
PORT_DIPNAME( 0x80, 0x80, "Game Over Melody" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
@ -693,7 +693,7 @@ static INPUT_PORTS_START( skybump )
|
||||
PORT_DIPSETTING( 0x40, "3" )
|
||||
PORT_DIPSETTING( 0x60, "5" )
|
||||
PORT_DIPSETTING( 0x00, "Infinite (Cheat)")
|
||||
// PORT_DIPSETTING( 0x20, "Infinite (Cheat)")
|
||||
// PORT_DIPSETTING( 0x20, "Infinite (Cheat)")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
@ -202,7 +202,7 @@
|
||||
Coin EF E0 00 DF F6 01 "ready?"
|
||||
|
||||
(*) "big" and "small" are splitted from the sample "big or small".
|
||||
|
||||
|
||||
|
||||
So, you can easily see that writes to ports 0x00-0x01 define the start (pos) offset,
|
||||
and writes to ports 0x03-0x04 the ending offset of each sample to be played.
|
||||
@ -234,9 +234,9 @@
|
||||
Pinout
|
||||
======
|
||||
|
||||
General In Lucky74 Measured Comments
|
||||
General In Lucky74 Measured Comments
|
||||
------------------------------------------------------------------
|
||||
01 - Clock In (12 MHz)
|
||||
01 - Clock In (12 MHz)
|
||||
02 - Clock Out 1 (In/2) (6 MHz)
|
||||
03 - Clock Out 2 (In/4) (3 MHz)
|
||||
04 - Clock Out 3 (In/4) (3 MHz) Yes, again!
|
||||
@ -282,7 +282,7 @@
|
||||
LUCKY 74 - E2 Comments
|
||||
------------------------------------------------------
|
||||
01 - I - Flip State.
|
||||
02 - I - CLK1 1.5 MHz. In phase with 6 MHz & 3 MHz.
|
||||
02 - I - CLK1 1.5 MHz. In phase with 6 MHz & 3 MHz.
|
||||
03 - I - CLK2 12 MHz.
|
||||
04 - I - CLK3 1.5 MHz. In phase with 6 MHz.
|
||||
05 - I - CLK4 3 MHz. In phase with 6 MHz.
|
||||
@ -314,7 +314,7 @@
|
||||
LUCKY 74 - E1 Comments
|
||||
------------------------------------------------------
|
||||
01 - I - Flip State.
|
||||
02 - I - CLK1 1.5 MHz. In phase with 6 MHz & 3 MHz.
|
||||
02 - I - CLK1 1.5 MHz. In phase with 6 MHz & 3 MHz.
|
||||
03 - I - CLK2 12 MHz.
|
||||
04 - I - CLK3 1.5 MHz. In phase with 6 MHz.
|
||||
05 - I - CLK4 3 MHz. In phase with 6 MHz.
|
||||
@ -371,13 +371,13 @@
|
||||
Pinout
|
||||
======
|
||||
|
||||
General Comments
|
||||
General Comments
|
||||
---------------------------------------------------------------
|
||||
01 - Low Nibble Enable Half sample rate.
|
||||
02 - High Nibble Enable Half sample rate inverted.
|
||||
03 - /BUSY LOW while playing.
|
||||
04 - /Read Strobe LOW to read from Data Bus.
|
||||
05 - /Write Strobe LOW to write on Data Bus.
|
||||
04 - /Read Strobe LOW to read from Data Bus.
|
||||
05 - /Write Strobe LOW to write on Data Bus.
|
||||
06 - A0 Internal Register address 0.
|
||||
07 - A1 Internal Register address 1.
|
||||
08 - A2 Internal Register address 2.
|
||||
@ -708,7 +708,7 @@ static READ8_HANDLER( custom_09R81P_port_r )
|
||||
static WRITE8_HANDLER( custom_09R81P_port_w )
|
||||
{
|
||||
lucky74_adpcm_reg[offset] = data;
|
||||
}
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( ym2149_portb_w )
|
||||
{
|
||||
@ -1125,7 +1125,7 @@ static void lucky74_adpcm_int(running_machine *machine, int num)
|
||||
if (lucky74_adpcm_busy_line) /* still not started */
|
||||
{
|
||||
/* init all 09R81P registers */
|
||||
logerror("init ADPCM registers\n");
|
||||
logerror("init ADPCM registers\n");
|
||||
lucky74_adpcm_end = (lucky74_adpcm_reg[04] << 8) + lucky74_adpcm_reg[03];
|
||||
lucky74_adpcm_pos = (lucky74_adpcm_reg[01] << 8) + lucky74_adpcm_reg[00];
|
||||
lucky74_adpcm_busy_line = 0;
|
||||
@ -1241,9 +1241,9 @@ static MACHINE_DRIVER_START( lucky74 )
|
||||
MDRV_CPU_VBLANK_INT("main", nmi_interrupt) /* 60 Hz. measured */
|
||||
|
||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||
|
||||
|
||||
MDRV_SOUND_START(lucky74)
|
||||
|
||||
|
||||
|
||||
/* 2x 82c255 (4x 8255) */
|
||||
MDRV_DEVICE_ADD( "ppi8255_0", PPI8255 )
|
||||
@ -1306,7 +1306,7 @@ MACHINE_DRIVER_END
|
||||
|
||||
- The black CPU box was replaced with a mini daughterboard
|
||||
with a real Z80, the program ROM, and NVRAM.
|
||||
|
||||
|
||||
- The checksum routines were patched.
|
||||
|
||||
- All the co-processor routines are there, but the calls were NOPed.
|
||||
|
@ -13,8 +13,8 @@
|
||||
|
||||
|
||||
2008-08
|
||||
Dip locations have been added assuming that the layout is the same as the
|
||||
m92 boards (and earlier Irem boards). However, it would be nice to have them
|
||||
Dip locations have been added assuming that the layout is the same as the
|
||||
m92 boards (and earlier Irem boards). However, it would be nice to have them
|
||||
confirmed for m107 games as well.
|
||||
|
||||
*******************************************************************************/
|
||||
|
@ -60,9 +60,9 @@ JP4: /
|
||||
|
||||
2008-08
|
||||
Dip locations verified with dips listing for: kungfum, ldrun, kidniki,
|
||||
spelunkr, spelunk2.
|
||||
The other locations have been added assuming that the layout is the same
|
||||
on all m62 boards. However, it would be nice to have them confirmed for
|
||||
spelunkr, spelunk2.
|
||||
The other locations have been added assuming that the layout is the same
|
||||
on all m62 boards. However, it would be nice to have them confirmed for
|
||||
other supported games as well.
|
||||
|
||||
**************************************************************************/
|
||||
@ -451,7 +451,7 @@ ADDRESS_MAP_END
|
||||
static INPUT_PORTS_START( common )
|
||||
PORT_START("SYSTEM")
|
||||
/* Start 1 & 2 also restarts and freezes the game with stop mode on
|
||||
and are used in test mode to enter and esc the various tests */
|
||||
and are used in test mode to enter and esc the various tests */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
|
||||
/* service coin must be active for 19 frames to be consistently recognized */
|
||||
|
@ -286,7 +286,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta
|
||||
sx, sy,
|
||||
cliprect,
|
||||
TRANSPARENCY_PEN, 0);
|
||||
|
||||
|
||||
/* sprite wrapping - verified on real hardware*/
|
||||
if(sx>0xf0)
|
||||
{
|
||||
@ -297,7 +297,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta
|
||||
cliprect,
|
||||
TRANSPARENCY_PEN, 0);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -71,10 +71,10 @@ kengo 0x18 --------------
|
||||
|
||||
2008-08
|
||||
Dip locations verified for the following games:
|
||||
- dbreed, hharry, loht (jpn), poundfor, rtype, rtype2 [manual]
|
||||
- airduel, gallop, imgfight [dip listing]
|
||||
The other locations have been added assuming that the layout is the same
|
||||
on all m72 boards. However, it would be nice to have them confirmed for
|
||||
- dbreed, hharry, loht (jpn), poundfor, rtype, rtype2 [manual]
|
||||
- airduel, gallop, imgfight [dip listing]
|
||||
The other locations have been added assuming that the layout is the same
|
||||
on all m72 boards. However, it would be nice to have them confirmed for
|
||||
other supported games as well.
|
||||
|
||||
|
||||
@ -1442,7 +1442,7 @@ static INPUT_PORTS_START( airduel )
|
||||
PORT_DIPSETTING( 0xb000, DEF_STR( 5C_1C ) )
|
||||
PORT_DIPSETTING( 0xc000, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0xd000, DEF_STR( 3C_1C ) )
|
||||
// PORT_DIPSETTING( 0x1000, DEF_STR( Free-Play ) ) /* another free play */
|
||||
// PORT_DIPSETTING( 0x1000, DEF_STR( Free-Play ) ) /* another free play */
|
||||
PORT_DIPSETTING( 0xe000, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x3000, DEF_STR( 3C_2C ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( 4C_3C ) )
|
||||
|
@ -122,23 +122,23 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( main_cpu_io, ADDRESS_SPACE_IO, 16 )
|
||||
AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w)
|
||||
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1_P2")
|
||||
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1_P2")
|
||||
AM_RANGE(0x02, 0x03) AM_WRITE(m90_coincounter_w)
|
||||
AM_RANGE(0x02, 0x03) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x02, 0x03) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x04, 0x05) AM_WRITE(quizf1_bankswitch_w)
|
||||
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x06, 0x07) AM_READ_PORT("P3_P4")
|
||||
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x06, 0x07) AM_READ_PORT("P3_P4")
|
||||
AM_RANGE(0x80, 0x8f) AM_WRITE(m90_video_control_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( dynablsb_cpu_io, ADDRESS_SPACE_IO, 16 )
|
||||
AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w)
|
||||
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1_P2")
|
||||
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1_P2")
|
||||
AM_RANGE(0x02, 0x03) AM_WRITE(m90_coincounter_w)
|
||||
AM_RANGE(0x02, 0x03) AM_READ_PORT("SYSTEM")
|
||||
// AM_RANGE(0x04, 0x05) AM_WRITE(unknown_w) /* dynablsb: write continuosly 0x6000 */
|
||||
AM_RANGE(0x02, 0x03) AM_READ_PORT("SYSTEM")
|
||||
// AM_RANGE(0x04, 0x05) AM_WRITE(unknown_w) /* dynablsb: write continuosly 0x6000 */
|
||||
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x06, 0x07) AM_READ_PORT("P3_P4")
|
||||
AM_RANGE(0x06, 0x07) AM_READ_PORT("P3_P4")
|
||||
AM_RANGE(0x80, 0x8f) AM_WRITE(m90_video_control_w)
|
||||
// AM_RANGE(0x90, 0x91) AM_WRITE(unknown_w)
|
||||
ADDRESS_MAP_END
|
||||
|
@ -187,8 +187,8 @@ Notes:
|
||||
|
||||
2008-08
|
||||
Dip locations verified for:
|
||||
- dsccr94j, gunforce, inthunt, majtitl2, uccops [manual]
|
||||
- bmaster, hook, lethalt, mysticri, rtypeleo [dip listing]
|
||||
- dsccr94j, gunforce, inthunt, majtitl2, uccops [manual]
|
||||
- bmaster, hook, lethalt, mysticri, rtypeleo [dip listing]
|
||||
psoldier dip locations still need veritication.
|
||||
|
||||
*****************************************************************************/
|
||||
@ -1641,12 +1641,12 @@ ROM_END
|
||||
Undercover Cops Alpha Renewal Version
|
||||
Irem, 1992
|
||||
|
||||
An alt. version, runs on standard
|
||||
An alt. version, runs on standard
|
||||
M92 main board: M92-A-B 05C04170B1
|
||||
|
||||
ROM board: M92-E-B 05C04238B1
|
||||
Chips used are...
|
||||
Nanao 08J27504A1
|
||||
Nanao 08J27504A1
|
||||
Nanao 08J27291A5 @ 14.31818MHz
|
||||
*/
|
||||
|
||||
|
@ -181,7 +181,7 @@ static INPUT_PORTS_START( magic10 )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unused ) ) PORT_CONDITION("DSW", 0xc000, PORTCOND_EQUALS, 0x4000)
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x3000, 0x3000, "1 Play Won" ) PORT_CONDITION("DSW", 0xc000, PORTCOND_EQUALS, 0x0000)
|
||||
// PORT_DIPSETTING( 0x0000, "Every 10 Score" )
|
||||
// PORT_DIPSETTING( 0x1000, "Every 10 Score" )
|
||||
|
@ -35,16 +35,16 @@
|
||||
'1' to go back to the game.
|
||||
|
||||
Guru Notes:
|
||||
This board looks like an early proto, it's hand etched, with
|
||||
This board looks like an early proto, it's hand etched, with
|
||||
a ton of wire mods. I'm told the game is kind of like Scramble.
|
||||
It's probably _ultra_ rare too.
|
||||
|
||||
The board looks like pure crap actually, with lot's of resistors
|
||||
|
||||
The board looks like pure crap actually, with lot's of resistors
|
||||
jumpering tracks and a partial harness that is wired directly to
|
||||
the logic chips which has been *ruthlessly* chopped off!
|
||||
|
||||
the logic chips which has been *ruthlessly* chopped off!
|
||||
|
||||
Here's what I can see.....
|
||||
|
||||
|
||||
EPROMs (x5, dumped, MALZAK.1 by itself, the other 4 grouped together)
|
||||
S 8039 2650AI (DIP 40)
|
||||
S 8051 2636N (DIP 40)
|
||||
@ -57,7 +57,7 @@
|
||||
SN76477 (x2, DIP28)
|
||||
INS/DP8212N P8212 (x2, DIP 24)
|
||||
plenty of logic chips, resistors, caps etc
|
||||
|
||||
|
||||
Note: There's no PALs or PROMs
|
||||
|
||||
*/
|
||||
|
@ -108,12 +108,12 @@ static INPUT_PORTS_START( marineb )
|
||||
PORT_DIPSETTING( 0x03, "6" )
|
||||
PORT_DIPNAME( 0x1c, 0x00, DEF_STR( Coinage ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x04, "???" )
|
||||
// PORT_DIPSETTING( 0x08, "???" )
|
||||
// PORT_DIPSETTING( 0x0c, "???" )
|
||||
// PORT_DIPSETTING( 0x10, "???" )
|
||||
// PORT_DIPSETTING( 0x14, "???" )
|
||||
// PORT_DIPSETTING( 0x18, "???" )
|
||||
// PORT_DIPSETTING( 0x04, "???" )
|
||||
// PORT_DIPSETTING( 0x08, "???" )
|
||||
// PORT_DIPSETTING( 0x0c, "???" )
|
||||
// PORT_DIPSETTING( 0x10, "???" )
|
||||
// PORT_DIPSETTING( 0x14, "???" )
|
||||
// PORT_DIPSETTING( 0x18, "???" )
|
||||
PORT_DIPSETTING( 0x1c, DEF_STR( Free_Play ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Bonus_Life ) )
|
||||
PORT_DIPSETTING( 0x00, "20000 50000" )
|
||||
@ -158,8 +158,8 @@ static INPUT_PORTS_START( changes )
|
||||
PORT_DIPSETTING( 0x03, "6" )
|
||||
PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x04, "???" )
|
||||
// PORT_DIPSETTING( 0x08, "???" )
|
||||
// PORT_DIPSETTING( 0x04, "???" )
|
||||
// PORT_DIPSETTING( 0x08, "???" )
|
||||
PORT_DIPSETTING( 0x0c, DEF_STR( Free_Play ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, "1st Bonus Life" )
|
||||
PORT_DIPSETTING( 0x00, "20000" )
|
||||
|
@ -123,9 +123,9 @@ static READ8_HANDLER( sound_nmi_ack_r )
|
||||
return 0;
|
||||
}
|
||||
|
||||
static CUSTOM_INPUT( sound_status_r )
|
||||
{
|
||||
return sound_cpu_busy;
|
||||
static CUSTOM_INPUT( sound_status_r )
|
||||
{
|
||||
return sound_cpu_busy;
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
@ -194,7 +194,7 @@ static ADDRESS_MAP_START( madcrash_cpuA_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8500, 0x8500) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0x8600, 0x86ff) AM_RAM /* video attribute */
|
||||
AM_RANGE(0x8700, 0x8700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
|
||||
// AM_RANGE(0xc800, 0xc800) AM_WRITE(marvins_palette_bank_w) // palette bank switch (c8f1 for Vanguard)
|
||||
// AM_RANGE(0xc800, 0xc800) AM_WRITE(marvins_palette_bank_w) // palette bank switch (c8f1 for Vanguard)
|
||||
AM_RANGE(0xc800, 0xc8ff) AM_RAM
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE(&spriteram) AM_SHARE(1)
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(marvins_background_ram_w) AM_SHARE(2) AM_BASE(&spriteram_3)
|
||||
|
@ -939,7 +939,7 @@ ROM_END
|
||||
static INPUT_PORTS_START( 64street )
|
||||
PORT_START("SYSTEM")
|
||||
COINS
|
||||
|
||||
|
||||
PORT_START("P1")
|
||||
JOY_2BUTTONS(1) // fire jump
|
||||
|
||||
@ -1080,7 +1080,7 @@ static INPUT_PORTS_START( astyanax )
|
||||
JOY_3BUTTONS(1) // fire jump magic
|
||||
|
||||
PORT_START("P2") /* 0x80004.b - 0x80005.b */
|
||||
JOY_3BUTTONS(2)
|
||||
JOY_3BUTTONS(2)
|
||||
RESERVE
|
||||
|
||||
PORT_START("DSW1") /* 0x80006.b */
|
||||
@ -1089,19 +1089,19 @@ static INPUT_PORTS_START( astyanax )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 3C_1C ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) // 1_2 shown in test mode
|
||||
// PORT_DIPSETTING( 0x05, DEF_STR( 1C_1C ) ) // 1_3
|
||||
// PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) // 1_4
|
||||
// PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) ) // 1_5
|
||||
// PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) // 1_2 shown in test mode
|
||||
// PORT_DIPSETTING( 0x05, DEF_STR( 1C_1C ) ) // 1_3
|
||||
// PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) // 1_4
|
||||
// PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) ) // 1_5
|
||||
PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x18, DEF_STR( 1C_1C ) ) // 1_2 shown in test mode
|
||||
// PORT_DIPSETTING( 0x28, DEF_STR( 1C_1C ) ) // 1_3
|
||||
// PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) ) // 1_4
|
||||
// PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) // 1_5
|
||||
// PORT_DIPSETTING( 0x18, DEF_STR( 1C_1C ) ) // 1_2 shown in test mode
|
||||
// PORT_DIPSETTING( 0x28, DEF_STR( 1C_1C ) ) // 1_3
|
||||
// PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) ) // 1_4
|
||||
// PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) // 1_5
|
||||
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
@ -1443,11 +1443,11 @@ static INPUT_PORTS_START( bigstrik )
|
||||
PORT_DIPSETTING( 0x09, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x05, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x04, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x03, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x02, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x01, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x06, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x04, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x03, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x02, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x01, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x06, DEF_STR( 2C_3C ) )
|
||||
PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) )
|
||||
@ -1460,11 +1460,11 @@ static INPUT_PORTS_START( bigstrik )
|
||||
PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x50, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x30, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x20, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x10, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x30, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x20, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x10, DEF_STR( 2C_3C ) )
|
||||
// PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) )
|
||||
PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) )
|
||||
@ -1936,7 +1936,7 @@ static INPUT_PORTS_START( hachoo )
|
||||
JOY_2BUTTONS(1) // fire jump
|
||||
|
||||
PORT_START("P2") /* 0x80004.b - 0x80005.b */
|
||||
JOY_2BUTTONS(2)
|
||||
JOY_2BUTTONS(2)
|
||||
RESERVE
|
||||
|
||||
PORT_START("DSW1") /* 0x80006.b */
|
||||
@ -2351,9 +2351,9 @@ static INPUT_PORTS_START( jitsupro )
|
||||
PORT_DIPSETTING( 0x14, "H" )
|
||||
PORT_DIPSETTING( 0x10, "O (M)" )
|
||||
PORT_DIPSETTING( 0x0c, "Bu" )
|
||||
// PORT_DIPSETTING( 0x08, "13" )
|
||||
// PORT_DIPSETTING( 0x04, "14" )
|
||||
// PORT_DIPSETTING( 0x00, "15" )
|
||||
// PORT_DIPSETTING( 0x08, "13" )
|
||||
// PORT_DIPSETTING( 0x04, "14" )
|
||||
// PORT_DIPSETTING( 0x00, "15" )
|
||||
PORT_DIPNAME( 0x40, 0x40, "Scroll Is Based On" )
|
||||
PORT_DIPSETTING( 0x40, "Shadow of Baseball" )
|
||||
PORT_DIPSETTING( 0x00, "The Baseball Itself" )
|
||||
@ -2562,7 +2562,7 @@ static INPUT_PORTS_START( lomakai )
|
||||
JOY_2BUTTONS(1) // fire jump
|
||||
|
||||
PORT_START("P2") /* 0x80004.b - 0x80005.b */
|
||||
JOY_2BUTTONS(2)
|
||||
JOY_2BUTTONS(2)
|
||||
RESERVE
|
||||
|
||||
PORT_START("DSW1") /* 0x80006.b */
|
||||
@ -2744,7 +2744,7 @@ static INPUT_PORTS_START( p47 )
|
||||
JOY_2BUTTONS(1) // fire bomb
|
||||
|
||||
PORT_START("P2") /* 0x80004.b - 0x80005.b */
|
||||
JOY_2BUTTONS(2)
|
||||
JOY_2BUTTONS(2)
|
||||
RESERVE
|
||||
|
||||
PORT_START("DSW1") /* 0x80006.b */
|
||||
@ -3065,7 +3065,7 @@ static INPUT_PORTS_START( plusalph )
|
||||
JOY_2BUTTONS(1) // fire bomb
|
||||
|
||||
PORT_START("P2") /* 0x80004.b - 0x80005.b */
|
||||
JOY_2BUTTONS(2)
|
||||
JOY_2BUTTONS(2)
|
||||
RESERVE
|
||||
|
||||
PORT_START("DSW1") /* 0x80006.b */
|
||||
@ -3353,7 +3353,7 @@ static INPUT_PORTS_START( stdragon )
|
||||
JOY_2BUTTONS(1) // fire fire
|
||||
|
||||
PORT_START("P2") /* 0x80004.b - 0x80005.b */
|
||||
JOY_2BUTTONS(2)
|
||||
JOY_2BUTTONS(2)
|
||||
RESERVE
|
||||
|
||||
PORT_START("DSW1") /* 0x80006.b */
|
||||
@ -3440,12 +3440,12 @@ ROM_END
|
||||
static INPUT_PORTS_START( soldamj )
|
||||
PORT_START("SYSTEM") /* 0x80001.b */
|
||||
COINS
|
||||
|
||||
|
||||
PORT_START("P1") /* 0x80003.b */
|
||||
JOY_2BUTTONS(1) // turn turn (3rd button is shown in service mode, but seems unused)
|
||||
|
||||
PORT_START("P2") /* 0x80004.b - 0x80005.b */
|
||||
JOY_2BUTTONS(2)
|
||||
JOY_2BUTTONS(2)
|
||||
RESERVE
|
||||
|
||||
PORT_START("DSW1") /* 0x80006.b */
|
||||
|
@ -1386,7 +1386,7 @@ ROM_END
|
||||
War Gods
|
||||
Midway, 1996
|
||||
|
||||
This game runs on hardware that appears to be similar to Cruisin' USA but using
|
||||
This game runs on hardware that appears to be similar to Cruisin' USA but using
|
||||
a 420M 2.5" IDE hard drive. Only about 100M of the hard drive is used.
|
||||
There are only 2 ROMs located at U12 and U41.
|
||||
|
||||
|
@ -1063,11 +1063,11 @@ static READ64_HANDLER( model3_ctrl_r )
|
||||
}
|
||||
else if (ACCESSING_BITS_24_31)
|
||||
{
|
||||
if(model3_controls_bank & 0x1)
|
||||
if(model3_controls_bank & 0x1)
|
||||
{
|
||||
return (input_port_read(machine, "IN1")) << 24;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
return (input_port_read(machine, "IN0")) << 24;
|
||||
}
|
||||
|
@ -246,7 +246,7 @@ static INPUT_PORTS_START( gfire2 )
|
||||
PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Normal ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Hard ) )
|
||||
// PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
|
||||
// PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, "Bonus Time" )
|
||||
PORT_DIPSETTING( 0x00, "*2 +30" )
|
||||
PORT_DIPSETTING( 0x02, "*2 +50" )
|
||||
|
@ -746,7 +746,7 @@ static INPUT_PORTS_START( p47aces )
|
||||
PORT_DIPNAME( 0x00030000, 0x00030000, "FG/BG X offset" ) PORT_DIPLOCATION("SW3:8,7")
|
||||
PORT_DIPSETTING( 0x00030000, "0/0" )
|
||||
PORT_DIPSETTING( 0x00020000, "5/5" )
|
||||
// PORT_DIPSETTING( 0x00010000, "5/5" )
|
||||
// PORT_DIPSETTING( 0x00010000, "5/5" )
|
||||
PORT_DIPSETTING( 0x00000000, "2/4" )
|
||||
PORT_DIPNAME( 0x00400000, 0x00400000, "FBI Logo" ) PORT_DIPLOCATION("SW3:2")
|
||||
PORT_DIPSETTING( 0x00400000, DEF_STR( No ) )
|
||||
@ -870,9 +870,9 @@ static INPUT_PORTS_START( kirarast ) // player 1 inputs done? others?
|
||||
PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_SERVICE1 )
|
||||
PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1)
|
||||
// PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_START1 ) /* already mapped in mahjong inputs */
|
||||
// PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_START1 ) /* already mapped in mahjong inputs */
|
||||
PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
// PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_START2 ) /* ms32.c mahjongs don't have P2 inputs */
|
||||
// PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_START2 ) /* ms32.c mahjongs don't have P2 inputs */
|
||||
PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
@ -918,7 +918,7 @@ static INPUT_PORTS_START( 47pie2 ) // player 1 inputs done? others?
|
||||
PORT_INCLUDE( kirarast )
|
||||
|
||||
PORT_MODIFY("INPUTS")
|
||||
// PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_COIN2 ) /* coin 2 is unused */
|
||||
// PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_COIN2 ) /* coin 2 is unused */
|
||||
PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_MODIFY("DSW")
|
||||
|
@ -505,7 +505,7 @@ Notes:
|
||||
VR1: master volume
|
||||
VR2: shoot volume
|
||||
VR3: music volume
|
||||
8035 clocks: pins 2 and 3 measure 6.000MHz
|
||||
8035 clocks: pins 2 and 3 measure 6.000MHz
|
||||
pin 9 measures 399.256kHz
|
||||
pin 12 measures 200.0kHz
|
||||
pin 13 measures 105.0kHz
|
||||
@ -514,7 +514,7 @@ Notes:
|
||||
pin 23 measures 399.3kHz
|
||||
pin 24 measures 399.3kHz
|
||||
pin 39 measures 61.5627Hz
|
||||
|
||||
|
||||
|
||||
Middle board
|
||||
------------
|
||||
@ -546,7 +546,7 @@ Notes:
|
||||
VR1: adjusts brightness
|
||||
Board contains mostly logic ICs (not shown)
|
||||
Video output is b/w, the harness is wired to a JAMMA fingerboard but only blue is used.
|
||||
|
||||
|
||||
|
||||
Bottom board
|
||||
------------
|
||||
@ -579,10 +579,10 @@ Notes:
|
||||
4116: 2K x8 DRAM
|
||||
8080 clock: 2.0160MHz (20.160 / 10)
|
||||
Sync: no V reading, H is 15.57kHz
|
||||
|
||||
|
||||
Set 1 is on the PCB and is complete.
|
||||
Some ROMs in set1 match the current sfeverbw set.
|
||||
|
||||
|
||||
The other two sets were supplied as just EPROMs.
|
||||
Set2 (maybe High Splitter) is missing the ROM at location I2. Might be missing, or maybe
|
||||
just the program is smaller and the extra ROM was not required.
|
||||
|
@ -938,7 +938,7 @@ This game runs on Namco NB-1 hardware.
|
||||
|
||||
PCB Layout
|
||||
----------
|
||||
NB-1 MAIN PCB MEMEXT OBJ2 PCB
|
||||
NB-1 MAIN PCB MEMEXT OBJ2 PCB
|
||||
8634961101 (8634963101) 8635901201 (8635901301)
|
||||
|------------------------------------------------------|---------|
|
||||
| 62256 62256 | |
|
||||
|
@ -50,9 +50,9 @@ Notes:
|
||||
CN25/26 - Connectors for filter board
|
||||
EPF8452AQC160-3 - Altera FLEX EPF8452AQC160-3 FPGA (QFP160)
|
||||
315-6188.IC31 - Altera EPC1064 (DIP8)
|
||||
According to the datasheet, it's an FPGA Configuration
|
||||
Device which loads the Altera Flex EPF8452 with some info
|
||||
on power-up.
|
||||
According to the datasheet, it's an FPGA Configuration
|
||||
Device which loads the Altera Flex EPF8452 with some info
|
||||
on power-up.
|
||||
JP1 - set to 2-3. Alt setting is 1-2
|
||||
JP4 - set to 2-3. Alt setting is 1-2
|
||||
93C46 - 128 bytes EEPROM
|
||||
|
@ -5834,7 +5834,7 @@ Notes:
|
||||
6295 - Oki M6295, running at MHz, sample rate (x2, QFP44)
|
||||
DIP1/2- 8 position Dip Switches
|
||||
VOL - Volume Potentiometer
|
||||
|
||||
|
||||
NMK CUSTOM IC'S
|
||||
- NMK004; Actually a TLCS90-based Toshiba TMP91P640F-10 MCU
|
||||
with 16K internal OTP PROM, running at 8.000MHz [16 / 2] (QFP64)
|
||||
|
@ -3318,7 +3318,7 @@ Notes:
|
||||
PAL - Atmel ATF22V10B PAL (DIP24, labelled 'EA U4')
|
||||
U3 - Unpopulated position for 32MBit MASKROM (DIP42)
|
||||
U6, U7 - Unpopulated position for 74LS245 logic chip (x2)
|
||||
|
||||
|
||||
|
||||
IGS PCB NO- T0237
|
||||
|-----------------------------------------------|
|
||||
|
@ -2105,7 +2105,7 @@ Notes:
|
||||
U1 - 4M MASKROM (SOP44)
|
||||
VOL - Master Volume Potentiometer
|
||||
* - Unpopulated position for 16M SOP44 MASKROM
|
||||
|
||||
|
||||
|
||||
CPU: MC68EC020FG16
|
||||
OSC: 16.000MHz
|
||||
|
@ -1440,7 +1440,7 @@ Notes:
|
||||
*COPX-D2 - 2M MaskROM stamped 'COPX-D2' at location U0313 (DIP40)
|
||||
* means these ROMs are soldered-in and match ROMs from the original Raiden II PCB
|
||||
|
||||
SEIBU Custom ICs -
|
||||
SEIBU Custom ICs -
|
||||
SIE150 (QFP100)
|
||||
SEI252 SB05-106 (QFP208)
|
||||
SEI0200 TC110G21AF 0076 (QFP100)
|
||||
|
@ -1118,7 +1118,7 @@ ROM_END
|
||||
PCB No: DE-0353-3
|
||||
Mask ROM code: MAM
|
||||
Sound : 45 (HuC6280 CPU), OKI M6295 (x2), YM2151, YM3012
|
||||
RAM : 6264 (x4 near 113 + x1 near 18P - 5 total)
|
||||
RAM : 6264 (x4 near 113 + x1 near 18P - 5 total)
|
||||
Xtals: 32.200MHz, 28.000MHz
|
||||
DIPSW: 8 position x3
|
||||
PALs: PAL16L8 x4 labelled TP-00 (near MAM-07), TP-01, TP-02 (both near 68000),
|
||||
|
@ -3090,7 +3090,7 @@ Notes:
|
||||
|
||||
BG-1P, BG-2P - Backgrounds, MX29F1610MC surface mounted 16MBit FlashROM (SOP44)
|
||||
BG-1D, BG-2D - Backgrounds, MX23C3210MC surface mounted 32MBit MaskROM (SOP44)
|
||||
|
||||
|
||||
PCM0, PCM1 - PCM sound samples, 27C4001 4MBit EPROM (DIP32)
|
||||
|
||||
FIX0, FIX1, FIX2 - 27C512 EPROM (DIP28)
|
||||
|
@ -1,25 +1,25 @@
|
||||
/***************************************************************************
|
||||
|
||||
Arcade games (hacks of console games) running on SNES harware.
|
||||
|
||||
|
||||
Driver (based on nss.c ) by Tomasz Slanina analog[at]op.pl
|
||||
|
||||
Supported games:
|
||||
- Killer Instinct
|
||||
- Final Fight 2
|
||||
- Sonic Blast Man 2 (not working)
|
||||
|
||||
Not dumped:
|
||||
- Final Fight 3
|
||||
|
||||
Supported games:
|
||||
- Killer Instinct
|
||||
- Final Fight 2
|
||||
- Sonic Blast Man 2 (not working)
|
||||
|
||||
Not dumped:
|
||||
- Final Fight 3
|
||||
|
||||
TODO:
|
||||
|
||||
- ffight2b - dipswitches ($7eadd7 ?)
|
||||
- sblast2b - decrypt (xor+swaps)
|
||||
- kiinstb - fix gfx glitches, missing texts
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Final Fight 2 PCB layout:
|
||||
------------------------
|
||||
|
||||
@ -369,10 +369,10 @@ static INPUT_PORTS_START( ffight2b )
|
||||
PORT_DIPSETTING( 0x18, "1" )
|
||||
PORT_DIPNAME( 0xe0, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:6,7,8")
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) )
|
||||
PORT_DIPSETTING( 0x60, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
/* PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) */
|
||||
/* PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) */
|
||||
PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
|
||||
@ -426,7 +426,7 @@ static DRIVER_INIT(kinstb)
|
||||
{
|
||||
rom[i]=BITSWAP8(rom[i],5,0,6,1,7,4,3,2);
|
||||
}
|
||||
|
||||
|
||||
shared_ram=auto_malloc(0x100);
|
||||
memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x781000, 0x7810ff, 0, 0, sharedram_r, sharedram_w);
|
||||
|
||||
@ -468,7 +468,7 @@ DRIVER_INIT( ffight2b )
|
||||
/* boot vector */
|
||||
rom[0x7ffd]=0x89;
|
||||
rom[0x7ffc]=0x54;
|
||||
|
||||
|
||||
ffight2b_coins=0;
|
||||
memory_install_read8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x7eadce, 0x7eadce, 0, 0, ffight2b_coin_r);
|
||||
|
||||
|
@ -75,7 +75,7 @@ GOLF E30-001A
|
||||
|-------------------------------------------------------------|
|
||||
Notes:
|
||||
VOL : Master Volume Potentiometer
|
||||
MB3714 : Fujitsu MB3714 Power Amp
|
||||
MB3714 : Fujitsu MB3714 Power Amp
|
||||
D6376 : NEC uPD6376 2-channel 16-bit D/A convertor (SOIC16)
|
||||
MB3790 : Power Monitoring IC with Reset and Watchdog Timer Function (SOIC16)
|
||||
TC528257: Toshiba TC528257 32k x8 SRAM (SOJ28)
|
||||
|
@ -487,7 +487,7 @@ E51-00001-A
|
||||
|------------------------------------|
|
||||
|
||||
Note:
|
||||
Unknown QFP (surface scratched off) is the CPU
|
||||
Unknown QFP (surface scratched off) is the CPU
|
||||
+ GFX generator - it's possibly NEC V70/V810
|
||||
*/
|
||||
|
||||
|
@ -3175,7 +3175,7 @@ Deniam (Licensed to Sega Enterprises, Ltd), 1997
|
||||
|
||||
PCB Number: LEX-0704
|
||||
|
||||
This is a non-Sega-manufactured STV cart which works with Japanese and USA bioses.
|
||||
This is a non-Sega-manufactured STV cart which works with Japanese and USA bioses.
|
||||
The cart is mostly the same as the Sega carts, containing not a lot except some ROMs
|
||||
and logic chips.
|
||||
|
||||
|
@ -437,13 +437,13 @@ static void cottonbm_slave_speedup( UINT32 data )
|
||||
|
||||
DRIVER_INIT(cottonbm)
|
||||
{
|
||||
// cpunum_set_info_int(0, CPUINFO_INT_SH2_PCFLUSH_SELECT, FIRST_SPEEDUP_SLOT);
|
||||
// cpunum_set_info_int(0, CPUINFO_INT_SH2_PCFLUSH_ADDR, 0x6030ee2);
|
||||
// cpunum_set_info_int(1, CPUINFO_INT_SH2_PCFLUSH_SELECT, FIRST_SPEEDUP_SLOT+1);
|
||||
// cpunum_set_info_int(1, CPUINFO_INT_SH2_PCFLUSH_ADDR, 0x6032b52);
|
||||
// cpunum_set_info_int(0, CPUINFO_INT_SH2_PCFLUSH_SELECT, FIRST_SPEEDUP_SLOT);
|
||||
// cpunum_set_info_int(0, CPUINFO_INT_SH2_PCFLUSH_ADDR, 0x6030ee2);
|
||||
// cpunum_set_info_int(1, CPUINFO_INT_SH2_PCFLUSH_SELECT, FIRST_SPEEDUP_SLOT+1);
|
||||
// cpunum_set_info_int(1, CPUINFO_INT_SH2_PCFLUSH_ADDR, 0x6032b52);
|
||||
|
||||
// cpunum_set_info_fct(1, CPUINFO_PTR_SH2_FTCSR_READ_CALLBACK, (genf*)cottonbm_slave_speedup );
|
||||
// memory_install_read32_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x60ffc10, 0x60ffc13, 0, 0, cottonbm_speedup_r ); // idle loop of main cpu
|
||||
// cpunum_set_info_fct(1, CPUINFO_PTR_SH2_FTCSR_READ_CALLBACK, (genf*)cottonbm_slave_speedup );
|
||||
// memory_install_read32_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x60ffc10, 0x60ffc13, 0, 0, cottonbm_speedup_r ); // idle loop of main cpu
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
|
@ -4927,7 +4927,7 @@ Notes:
|
||||
TCO540OBN - / (QFP160)
|
||||
TCO100SCN - Tilemap Controller (QFP160)
|
||||
TCO510NIO - I/O (QFP100)
|
||||
|
||||
|
||||
RAM:
|
||||
62256 : 32K x8 SRAM
|
||||
TC51832: 32K x8 SRAM
|
||||
|
@ -1409,7 +1409,7 @@ Notes:
|
||||
5510 ESP clocks: pin1- 8.000MHz, pins4-6- 2.6686MHz, pins9-10- 29.7623kHz, pin16- 3.8095225MHz
|
||||
VSync : 59Hz
|
||||
HSync : 15.97kHz
|
||||
|
||||
|
||||
D29* /D49* /D53* = PALs
|
||||
D53-12 PAL16L8B
|
||||
D29-17-1 PALCE16V8H
|
||||
@ -2304,12 +2304,12 @@ NEW F3 MOTHER (ASIA) M20A0001B MOTHER PCB J1100335B
|
||||
Notes:
|
||||
68020 clock : 15.23809 (30.47618 / 2)
|
||||
68000 clock : 15.23809 (30.47618 / 2)
|
||||
68681 clocks : pin2- 500kHz, pin32- 4.000MHz, pin36- 1.000MHz, pin38- 1.000MHz, pin39- 500kHz,
|
||||
5505 clocks : pin12- 2.6686MHz, pin34- 15.23809MHz,
|
||||
68681 clocks : pin2- 500kHz, pin32- 4.000MHz, pin36- 1.000MHz, pin38- 1.000MHz, pin39- 500kHz,
|
||||
5505 clocks : pin12- 2.6686MHz, pin34- 15.23809MHz,
|
||||
5510 clocks : pin1- 8.000MHz, pins4-6- 2.6686MHz, pin16- 2.6686MHz
|
||||
VSync : 59Hz
|
||||
HSync : 15.78kHz
|
||||
|
||||
|
||||
D77* = PALs
|
||||
|
||||
|
||||
|
@ -117,7 +117,7 @@ static ADDRESS_MAP_START( 6206B_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
// AM_RANGE(0xfc02, 0xfc02) AM_WRITE(unknown_write) /* written during start-up, not again */
|
||||
AM_RANGE(0xfc03, 0xfc03) AM_READWRITE(input_port_3_r, tbowl_coin_counter_w) /* Player 4 inputs */
|
||||
// AM_RANGE(0xfc05, 0xfc05) AM_WRITE(unknown_write) /* no idea */
|
||||
// AM_RANGE(0xfc06, 0xfc06) AM_READ(dummy_r) /* Read During NMI */
|
||||
// AM_RANGE(0xfc06, 0xfc06) AM_READ(dummy_r) /* Read During NMI */
|
||||
AM_RANGE(0xfc07, 0xfc07) AM_READ(input_port_4_r) /* System inputs */
|
||||
AM_RANGE(0xfc08, 0xfc08) AM_READ(input_port_5_r) /* DSW1 */
|
||||
// AM_RANGE(0xfc08, 0xfc08) AM_WRITE(unknown_write) /* hardly used .. */
|
||||
|
@ -315,13 +315,13 @@ static WRITE8_HANDLER( wdclr_w )
|
||||
|
||||
static CUSTOM_INPUT( tempest_knob_r )
|
||||
{
|
||||
return input_port_read(field->port->machine, (tempest_player_select == 0) ?
|
||||
return input_port_read(field->port->machine, (tempest_player_select == 0) ?
|
||||
TEMPEST_KNOB_P1_TAG : TEMPEST_KNOB_P2_TAG);
|
||||
}
|
||||
|
||||
static CUSTOM_INPUT( tempest_buttons_r )
|
||||
{
|
||||
return input_port_read(field->port->machine, (tempest_player_select == 0) ?
|
||||
return input_port_read(field->port->machine, (tempest_player_select == 0) ?
|
||||
TEMPEST_BUTTONS_P1_TAG : TEMPEST_BUTTONS_P2_TAG);
|
||||
}
|
||||
|
||||
|
@ -487,8 +487,8 @@ OTHER: ADV476KN50E (DIP28)
|
||||
MACH110 (CPLD, PLCC44)
|
||||
DALLAS DS1220Y-150 (NVRAM)
|
||||
4-pin header for standard light gun (x2)
|
||||
|
||||
ROMS :
|
||||
|
||||
ROMS :
|
||||
-----------------------------------------
|
||||
ds1220y.ic1 NVRAM located near ic2
|
||||
1.ic2 27C040 \
|
||||
|
@ -178,7 +178,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0xfe0d00, 0xfe1807) AM_RAM /* still part of OBJ RAM */
|
||||
AM_RANGE(0xfe4000, 0xfe4001) AM_READWRITE(input_port_0_word_r, tigeroad_videoctrl_w) /* char bank, coin counters, + ? */
|
||||
AM_RANGE(0xfe4002, 0xfe4003) AM_READ(input_port_1_word_r)
|
||||
/* AM_RANGE(0xfe4002, 0xfe4003) AM_WRITE(tigeroad_soundcmd_w) added by init_tigeroad() */
|
||||
/* AM_RANGE(0xfe4002, 0xfe4003) AM_WRITE(tigeroad_soundcmd_w) added by init_tigeroad() */
|
||||
AM_RANGE(0xfe4004, 0xfe4005) AM_READ(input_port_2_word_r)
|
||||
AM_RANGE(0xfec000, 0xfec7ff) AM_RAM_WRITE(tigeroad_videoram_w) AM_BASE(&videoram16)
|
||||
AM_RANGE(0xfe8000, 0xfe8003) AM_WRITE(tigeroad_scroll_w)
|
||||
@ -532,7 +532,7 @@ static MACHINE_DRIVER_START( tigeroad )
|
||||
MDRV_CPU_ADD("audio", Z80, XTAL_3_579545MHz) /* verified on pcb */
|
||||
MDRV_CPU_PROGRAM_MAP(sound_map,0)
|
||||
MDRV_CPU_IO_MAP(sound_port_map,0)
|
||||
|
||||
|
||||
/* IRQs are triggered by the YM2203 */
|
||||
|
||||
/* video hardware */
|
||||
|
@ -989,9 +989,9 @@ Konami, 2002
|
||||
PCB number - GM941-PWB(A)C Copyright 1999 Konami Made In Japan
|
||||
|
||||
Mahjong Fight Club is a multi player Mahjong battle game for up to 8 players. A
|
||||
single PCB will not boot unless all of the other units are connected and powered
|
||||
on, although how exactly they're connected is unknown. There is probably a
|
||||
master unit that talks to all of the 8 satellite units. At the moment I have
|
||||
single PCB will not boot unless all of the other units are connected and powered
|
||||
on, although how exactly they're connected is unknown. There is probably a
|
||||
master unit that talks to all of the 8 satellite units. At the moment I have
|
||||
only 2 of the 8 satellite units so I can't confirm that.
|
||||
However, I don't have access to the main unit anyway as it was not included in
|
||||
the auction we won :(
|
||||
@ -1015,15 +1015,15 @@ card as it is PC readable. The card contains only 1 file named c09jad04.bin
|
||||
surface mounted at location U25. The BIOS is common to ALL Viper games.
|
||||
|
||||
nvram.u39 is a ST M48T58Y Timekeeper NVRAM soldered-in at location U39. The
|
||||
codes at the start of the image (probably just the first 16 or 32 bytes) are
|
||||
used as a simple (and very weak) protection check to stop game swaps. The
|
||||
codes at the start of the image (probably just the first 16 or 32 bytes) are
|
||||
used as a simple (and very weak) protection check to stop game swaps. The
|
||||
contents of the NVRAM is different for ALL games on this hardware.
|
||||
|
||||
Some games use a dongle and swapping games won't work unless the dongle is also provided.
|
||||
The following games comes with a dongle....
|
||||
Mahjong Fight Club
|
||||
|
||||
For non-dongled games, I have verified the following games will work when the
|
||||
For non-dongled games, I have verified the following games will work when the
|
||||
CF card and NVRAM are swapped....
|
||||
*/
|
||||
|
||||
|
@ -202,7 +202,7 @@
|
||||
PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) \
|
||||
PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) \
|
||||
PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \
|
||||
/* PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) */ \
|
||||
PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) ) \
|
||||
PORT_DIPSETTING( 0x60, DEF_STR( 1C_3C ) ) \
|
||||
PORT_DIPSETTING( 0x50, DEF_STR( 1C_4C ) ) \
|
||||
|
@ -43,53 +43,53 @@ static int rndseed;
|
||||
|
||||
int rnd()
|
||||
{
|
||||
rndseed = rndseed * 0x290029;
|
||||
return (rndseed >> 16) & 0xff;
|
||||
rndseed = rndseed * 0x290029;
|
||||
return (rndseed >> 16) & 0xff;
|
||||
}
|
||||
|
||||
void generate_key(UINT8 *key, int seed, int upper_bound)
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
rndseed = seed;
|
||||
for (i = 0; i < 0x1000; ++i)
|
||||
{
|
||||
if ("we must encrypt this data table position")
|
||||
{
|
||||
UINT8 byteval;
|
||||
rndseed = seed;
|
||||
for (i = 0; i < 0x1000; ++i)
|
||||
{
|
||||
if ("we must encrypt this data table position")
|
||||
{
|
||||
UINT8 byteval;
|
||||
|
||||
do
|
||||
{
|
||||
byteval = rnd();
|
||||
} while (byteval == 0x40);
|
||||
do
|
||||
{
|
||||
byteval = rnd();
|
||||
} while (byteval == 0x40);
|
||||
|
||||
opcode_key[i] = byteval;
|
||||
opcode_key[i] = byteval;
|
||||
|
||||
do
|
||||
{
|
||||
byteval = rnd();
|
||||
} while (byteval == 0x40);
|
||||
do
|
||||
{
|
||||
byteval = rnd();
|
||||
} while (byteval == 0x40);
|
||||
|
||||
data_key[i] = byteval;
|
||||
}
|
||||
}
|
||||
data_key[i] = byteval;
|
||||
}
|
||||
}
|
||||
|
||||
rndseed = seed;
|
||||
for (i = 0; i < 0x1000; ++i)
|
||||
{
|
||||
if ("we mustn't encrypt this data table position")
|
||||
{
|
||||
UINT8 byteval;
|
||||
rndseed = seed;
|
||||
for (i = 0; i < 0x1000; ++i)
|
||||
{
|
||||
if ("we mustn't encrypt this data table position")
|
||||
{
|
||||
UINT8 byteval;
|
||||
|
||||
do
|
||||
{
|
||||
byteval = rnd();
|
||||
} while (byteval == 0x40);
|
||||
do
|
||||
{
|
||||
byteval = rnd();
|
||||
} while (byteval == 0x40);
|
||||
|
||||
opcode_key[i] = byteval;
|
||||
data_key[i] = 0x40;
|
||||
}
|
||||
}
|
||||
opcode_key[i] = byteval;
|
||||
data_key[i] = 0x40;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -2546,7 +2546,7 @@ static void cps1_render_stars(const device_config *screen, bitmap_t *bitmap,cons
|
||||
if (!stars_rom && (cps1_stars_enabled[0] || cps1_stars_enabled[1]))
|
||||
{
|
||||
#ifdef MAME_DEBUG
|
||||
// popmessage("stars enabled but no stars ROM");
|
||||
// popmessage("stars enabled but no stars ROM");
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
@ -261,7 +261,7 @@ static void docpy16(int opcode,int src,int *dst,INT16 _ax,INT16 _ay)
|
||||
static int org_first_pixel(int _org_dpd)
|
||||
{
|
||||
int gbm = (HD63484_reg[0x02/2] & 0x700) >> 8;
|
||||
|
||||
|
||||
switch (gbm)
|
||||
{
|
||||
case 0:
|
||||
|
@ -611,7 +611,7 @@ static avi_error read_avi_frame(avi_file *avi, UINT32 framenum, UINT32 first_sam
|
||||
if (avierr != AVIERR_NONE)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
||||
/* build the fake bitmap */
|
||||
*avconfig->video = *fullbitmap;
|
||||
if (interlaced)
|
||||
@ -851,7 +851,7 @@ static int do_createav(int argc, char *argv[], int param)
|
||||
goto cleanup;
|
||||
}
|
||||
avconfig.video = &fakebitmap;
|
||||
|
||||
|
||||
/* allocate audio buffers */
|
||||
avconfig.channels = channels;
|
||||
for (chnum = 0; chnum < channels; chnum++)
|
||||
@ -1474,7 +1474,7 @@ static int do_extractav(int argc, char *argv[], int param)
|
||||
goto cleanup;
|
||||
}
|
||||
avconfig.video = &fakebitmap;
|
||||
|
||||
|
||||
/* allocate audio buffers */
|
||||
avconfig.maxsamples = ((UINT64)rate * 1000000 + fps_times_1million - 1) / fps_times_1million;
|
||||
avconfig.actsamples = &numsamples;
|
||||
@ -1527,7 +1527,7 @@ static int do_extractav(int argc, char *argv[], int param)
|
||||
{
|
||||
/* progress */
|
||||
progress(framenum == 0, "Extracting hunk %d/%d... \r", framenum, numframes);
|
||||
|
||||
|
||||
/* set up the fake bitmap for this frame */
|
||||
*avconfig.video = *fullbitmap;
|
||||
if (interlaced)
|
||||
@ -1536,7 +1536,7 @@ static int do_extractav(int argc, char *argv[], int param)
|
||||
avconfig.video->rowpixels *= 2;
|
||||
avconfig.video->height /= 2;
|
||||
}
|
||||
|
||||
|
||||
/* configure the decompressor for this frame */
|
||||
chd_codec_config(chd, AV_CODEC_DECOMPRESS_CONFIG, &avconfig);
|
||||
|
||||
@ -1555,7 +1555,7 @@ static int do_extractav(int argc, char *argv[], int param)
|
||||
if (avierr != AVIERR_NONE)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
||||
/* write video */
|
||||
if (!interlaced || (firstframe + framenum) % 2 == 1)
|
||||
{
|
||||
|
@ -458,7 +458,7 @@ static void verify_video(int frame, bitmap_t *bitmap)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* now examine the active video signal */
|
||||
pixels = 0;
|
||||
for (y = 22*2 + fieldnum; y < bitmap->height; y += 2)
|
||||
@ -467,7 +467,7 @@ static void verify_video(int frame, bitmap_t *bitmap)
|
||||
pixelhisto[*BITMAP_ADDR16(bitmap, y, x) >> 8]++;
|
||||
pixels += 720 - 16 - 16;
|
||||
}
|
||||
|
||||
|
||||
/* remove the top/bottom 0.1% */
|
||||
remaining = pixels / 1000;
|
||||
for (minval = 0; remaining >= 0; minval++)
|
||||
@ -475,11 +475,11 @@ static void verify_video(int frame, bitmap_t *bitmap)
|
||||
remaining = pixels / 1000;
|
||||
for (maxval = 255; remaining >= 0; maxval--)
|
||||
remaining -= pixelhisto[maxval];
|
||||
|
||||
|
||||
/* update the overall min/max */
|
||||
video_min_overall = MIN(minval, video_min_overall);
|
||||
video_max_overall = MAX(maxval, video_max_overall);
|
||||
|
||||
|
||||
/* track low fields */
|
||||
if (minval < 16)
|
||||
{
|
||||
@ -534,7 +534,7 @@ static void verify_video_final(int frame, bitmap_t *bitmap)
|
||||
if (!video_saw_leadout)
|
||||
printf("Track %6d.%d: never saw any lead-out (WARNING)\n", field / fields_per_frame, 0);
|
||||
|
||||
/* any remaining high/low reports? */
|
||||
/* any remaining high/low reports? */
|
||||
if (video_num_low_fields > 0)
|
||||
printf("%6d.%d-%6d.%d: active video signal level low for %d fields (WARNING)\n", video_first_low_frame, video_first_low_field, frame, 0, video_num_low_fields);
|
||||
if (video_num_high_fields > 0)
|
||||
|
@ -9,4 +9,4 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
const char build_version[] = "0.126u4 ("__DATE__")";
|
||||
const char build_version[] = "0.126u5 ("__DATE__")";
|
||||
|
Loading…
Reference in New Issue
Block a user