mirror of
https://github.com/holub/mame
synced 2025-10-07 01:16:22 +03:00
Cleanups and version bump.
This commit is contained in:
parent
cf63e2baa8
commit
5123b07115
@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
// NOTES For register setting:
|
// NOTES For register setting:
|
||||||
// FM.3-4 : When A2 or B2 is read, the register contents occupy the low-order portion
|
// FM.3-4 : When A2 or B2 is read, the register contents occupy the low-order portion
|
||||||
// (bits 7-0) of the word; the high-order portion (bits 16-8) is sign-extended. When A2 or B2
|
// (bits 7-0) of the word; the high-order portion (bits 16-8) is sign-extended. When A2 or B2
|
||||||
// is written, the register receives the low-order portion of the word; the high-order portion is not used
|
// is written, the register receives the low-order portion of the word; the high-order portion is not used
|
||||||
// : ...much more!
|
// : ...much more!
|
||||||
// : ...shifter/limiter/overflow notes too.
|
// : ...shifter/limiter/overflow notes too.
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
// Helper functions and macros
|
// Helper functions and macros
|
||||||
|
@ -211,7 +211,7 @@ static void pcu_reset(void)
|
|||||||
IPR = 0x0000;
|
IPR = 0x0000;
|
||||||
|
|
||||||
// FM.5-4
|
// FM.5-4
|
||||||
// I_bits_set(0x03); This is what the manual says, but i'm dubious! Polygonet's HI interrupt wouldn't happen with the I bits set.
|
// I_bits_set(0x03); This is what the manual says, but i'm dubious! Polygonet's HI interrupt wouldn't happen with the I bits set.
|
||||||
I_bits_set(0x00);
|
I_bits_set(0x00);
|
||||||
S_bits_set(0);
|
S_bits_set(0);
|
||||||
L_bit_set(0);
|
L_bit_set(0);
|
||||||
|
@ -789,7 +789,7 @@ int m68k_execute(int num_cycles)
|
|||||||
|
|
||||||
/* See if interrupts came in */
|
/* See if interrupts came in */
|
||||||
m68ki_check_interrupts();
|
m68ki_check_interrupts();
|
||||||
|
|
||||||
/* Make sure we're not stopped */
|
/* Make sure we're not stopped */
|
||||||
if(!CPU_STOPPED)
|
if(!CPU_STOPPED)
|
||||||
{
|
{
|
||||||
|
@ -25,7 +25,7 @@ z80_daisy_state *z80daisy_init(running_machine *machine, const z80_daisy_chain *
|
|||||||
z80_daisy_state *head = NULL;
|
z80_daisy_state *head = NULL;
|
||||||
z80_daisy_state **tailptr = &head;
|
z80_daisy_state **tailptr = &head;
|
||||||
|
|
||||||
/* create a linked list of devices */
|
/* create a linked list of devices */
|
||||||
for ( ; daisy->devtype != NULL; daisy++)
|
for ( ; daisy->devtype != NULL; daisy++)
|
||||||
{
|
{
|
||||||
*tailptr = auto_malloc(sizeof(**tailptr));
|
*tailptr = auto_malloc(sizeof(**tailptr));
|
||||||
@ -36,7 +36,7 @@ z80_daisy_state *z80daisy_init(running_machine *machine, const z80_daisy_chain *
|
|||||||
(*tailptr)->irq_reti = (z80_daisy_irq_reti)device_get_info_fct((*tailptr)->device, DEVINFO_FCT_IRQ_RETI);
|
(*tailptr)->irq_reti = (z80_daisy_irq_reti)device_get_info_fct((*tailptr)->device, DEVINFO_FCT_IRQ_RETI);
|
||||||
tailptr = &(*tailptr)->next;
|
tailptr = &(*tailptr)->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
return head;
|
return head;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,7 +331,7 @@ void cpunum_set_input_line_and_vector(running_machine *machine, int cpunum, int
|
|||||||
case CPU_TMS32026:
|
case CPU_TMS32026:
|
||||||
fatalerror("CPU %s: PULSE_LINE used with level-detected IRQ %d\n", machine->config->cpu[cpunum].tag, line);
|
fatalerror("CPU %s: PULSE_LINE used with level-detected IRQ %d\n", machine->config->cpu[cpunum].tag, line);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1520,7 +1520,7 @@ static void init_video(const device_config *device)
|
|||||||
ldcore->videotex = render_texture_alloc(NULL, NULL);
|
ldcore->videotex = render_texture_alloc(NULL, NULL);
|
||||||
if (ldcore->videotex == NULL)
|
if (ldcore->videotex == NULL)
|
||||||
fatalerror("Out of memory allocating video texture");
|
fatalerror("Out of memory allocating video texture");
|
||||||
|
|
||||||
/* allocate palette for applying brightness/contrast/gamma */
|
/* allocate palette for applying brightness/contrast/gamma */
|
||||||
ldcore->videopalette = palette_alloc(256, 1);
|
ldcore->videopalette = palette_alloc(256, 1);
|
||||||
if (ldcore->videopalette == NULL)
|
if (ldcore->videopalette == NULL)
|
||||||
|
@ -104,15 +104,15 @@ static WRITE8_HANDLER( ld_controls )
|
|||||||
case 0:
|
case 0:
|
||||||
// write $00 at startup/reject
|
// write $00 at startup/reject
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
// write $06 at startup/reject
|
// write $06 at startup/reject
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
// write $8A at startup
|
// write $8A at startup
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
// write $9F at startup/reject
|
// write $9F at startup/reject
|
||||||
break;
|
break;
|
||||||
@ -120,7 +120,7 @@ static WRITE8_HANDLER( ld_controls )
|
|||||||
case 6:
|
case 6:
|
||||||
// write $C3 at startup/reject
|
// write $C3 at startup/reject
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 7:
|
case 7:
|
||||||
// write $90 at startup
|
// write $90 at startup
|
||||||
break;
|
break;
|
||||||
@ -133,7 +133,7 @@ static READ8_HANDLER( ld_controls )
|
|||||||
switch (offset)
|
switch (offset)
|
||||||
{
|
{
|
||||||
case 4:
|
case 4:
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,7 +142,7 @@ static WRITE8_HANDLER( unknown_port_w )
|
|||||||
{
|
{
|
||||||
// Writes to $00/$02/$00
|
// Writes to $00/$02/$00
|
||||||
// Values:
|
// Values:
|
||||||
// $04/$09/$0F
|
// $04/$09/$0F
|
||||||
// $04/$0E/$0F
|
// $04/$0E/$0F
|
||||||
// $04/ /$0F
|
// $04/ /$0F
|
||||||
}
|
}
|
||||||
|
@ -2478,7 +2478,7 @@ void render_texture_free(render_texture *texture)
|
|||||||
/* release palette references */
|
/* release palette references */
|
||||||
if (texture->palette != NULL)
|
if (texture->palette != NULL)
|
||||||
palette_deref(texture->palette);
|
palette_deref(texture->palette);
|
||||||
|
|
||||||
/* free any B/C/G lookup tables */
|
/* free any B/C/G lookup tables */
|
||||||
if (texture->bcglookup != NULL)
|
if (texture->bcglookup != NULL)
|
||||||
free(texture->bcglookup);
|
free(texture->bcglookup);
|
||||||
@ -2500,7 +2500,7 @@ void render_texture_free(render_texture *texture)
|
|||||||
void render_texture_set_bitmap(render_texture *texture, bitmap_t *bitmap, const rectangle *sbounds, int format, palette_t *palette)
|
void render_texture_set_bitmap(render_texture *texture, bitmap_t *bitmap, const rectangle *sbounds, int format, palette_t *palette)
|
||||||
{
|
{
|
||||||
int scalenum;
|
int scalenum;
|
||||||
|
|
||||||
/* ensure we have a valid palette for palettized modes */
|
/* ensure we have a valid palette for palettized modes */
|
||||||
if (format == TEXFORMAT_PALETTE16 || format == TEXFORMAT_PALETTEA16)
|
if (format == TEXFORMAT_PALETTE16 || format == TEXFORMAT_PALETTEA16)
|
||||||
assert(palette != NULL);
|
assert(palette != NULL);
|
||||||
@ -2508,7 +2508,7 @@ void render_texture_set_bitmap(render_texture *texture, bitmap_t *bitmap, const
|
|||||||
/* invalidate references to the old bitmap */
|
/* invalidate references to the old bitmap */
|
||||||
if (bitmap != texture->bitmap && texture->bitmap != NULL)
|
if (bitmap != texture->bitmap && texture->bitmap != NULL)
|
||||||
invalidate_all_render_ref(texture->bitmap);
|
invalidate_all_render_ref(texture->bitmap);
|
||||||
|
|
||||||
/* if the palette is different, adjust references */
|
/* if the palette is different, adjust references */
|
||||||
if (palette != texture->palette)
|
if (palette != texture->palette)
|
||||||
{
|
{
|
||||||
@ -2647,23 +2647,23 @@ static const rgb_t *texture_get_adjusted_palette(render_texture *texture, render
|
|||||||
const rgb_t *adjusted;
|
const rgb_t *adjusted;
|
||||||
int numentries;
|
int numentries;
|
||||||
int index;
|
int index;
|
||||||
|
|
||||||
/* override the palette with our adjusted palette */
|
/* override the palette with our adjusted palette */
|
||||||
switch (texture->format)
|
switch (texture->format)
|
||||||
{
|
{
|
||||||
case TEXFORMAT_PALETTE16:
|
case TEXFORMAT_PALETTE16:
|
||||||
case TEXFORMAT_PALETTEA16:
|
case TEXFORMAT_PALETTEA16:
|
||||||
|
|
||||||
/* if no adjustment necessary, return the raw palette */
|
/* if no adjustment necessary, return the raw palette */
|
||||||
assert(texture->palette != NULL);
|
assert(texture->palette != NULL);
|
||||||
adjusted = palette_entry_list_adjusted(texture->palette);
|
adjusted = palette_entry_list_adjusted(texture->palette);
|
||||||
if (container->brightness == 1.0f && container->contrast == 1.0f && container->gamma == 1.0f)
|
if (container->brightness == 1.0f && container->contrast == 1.0f && container->gamma == 1.0f)
|
||||||
return adjusted;
|
return adjusted;
|
||||||
|
|
||||||
/* if this is the machine palette, return our precomputed adjusted palette */
|
/* if this is the machine palette, return our precomputed adjusted palette */
|
||||||
if (container->palclient != NULL && palette_client_get_palette(container->palclient) == texture->palette)
|
if (container->palclient != NULL && palette_client_get_palette(container->palclient) == texture->palette)
|
||||||
return container->bcglookup;
|
return container->bcglookup;
|
||||||
|
|
||||||
/* otherwise, ensure we have memory allocated and compute the adjusted result ourself */
|
/* otherwise, ensure we have memory allocated and compute the adjusted result ourself */
|
||||||
numentries = palette_get_num_colors(texture->palette) * palette_get_num_groups(texture->palette);
|
numentries = palette_get_num_colors(texture->palette) * palette_get_num_groups(texture->palette);
|
||||||
if (texture->bcglookup == NULL || texture->bcglookup_entries < numentries)
|
if (texture->bcglookup == NULL || texture->bcglookup_entries < numentries)
|
||||||
@ -2681,15 +2681,15 @@ static const rgb_t *texture_get_adjusted_palette(render_texture *texture, render
|
|||||||
return texture->bcglookup;
|
return texture->bcglookup;
|
||||||
|
|
||||||
case TEXFORMAT_RGB15:
|
case TEXFORMAT_RGB15:
|
||||||
|
|
||||||
/* if no adjustment necessary, return NULL */
|
/* if no adjustment necessary, return NULL */
|
||||||
if (container->brightness == 1.0f && container->contrast == 1.0f && container->gamma == 1.0f && texture->palette == NULL)
|
if (container->brightness == 1.0f && container->contrast == 1.0f && container->gamma == 1.0f && texture->palette == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* if no palette, return the standard lookups */
|
/* if no palette, return the standard lookups */
|
||||||
if (texture->palette == NULL)
|
if (texture->palette == NULL)
|
||||||
return container->bcglookup32;
|
return container->bcglookup32;
|
||||||
|
|
||||||
/* otherwise, ensure we have memory allocated and compute the adjusted result ourself */
|
/* otherwise, ensure we have memory allocated and compute the adjusted result ourself */
|
||||||
assert(palette_get_num_colors(texture->palette) == 32);
|
assert(palette_get_num_colors(texture->palette) == 32);
|
||||||
adjusted = palette_entry_list_adjusted(texture->palette);
|
adjusted = palette_entry_list_adjusted(texture->palette);
|
||||||
@ -2709,19 +2709,19 @@ static const rgb_t *texture_get_adjusted_palette(render_texture *texture, render
|
|||||||
texture->bcglookup[0x60 + index] = val << 24;
|
texture->bcglookup[0x60 + index] = val << 24;
|
||||||
}
|
}
|
||||||
return texture->bcglookup;
|
return texture->bcglookup;
|
||||||
|
|
||||||
case TEXFORMAT_RGB32:
|
case TEXFORMAT_RGB32:
|
||||||
case TEXFORMAT_ARGB32:
|
case TEXFORMAT_ARGB32:
|
||||||
case TEXFORMAT_YUY16:
|
case TEXFORMAT_YUY16:
|
||||||
|
|
||||||
/* if no adjustment necessary, return NULL */
|
/* if no adjustment necessary, return NULL */
|
||||||
if (container->brightness == 1.0f && container->contrast == 1.0f && container->gamma == 1.0f && texture->palette == NULL)
|
if (container->brightness == 1.0f && container->contrast == 1.0f && container->gamma == 1.0f && texture->palette == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* if no palette, return the standard lookups */
|
/* if no palette, return the standard lookups */
|
||||||
if (texture->palette == NULL)
|
if (texture->palette == NULL)
|
||||||
return container->bcglookup256;
|
return container->bcglookup256;
|
||||||
|
|
||||||
/* otherwise, ensure we have memory allocated and compute the adjusted result ourself */
|
/* otherwise, ensure we have memory allocated and compute the adjusted result ourself */
|
||||||
assert(palette_get_num_colors(texture->palette) == 256);
|
assert(palette_get_num_colors(texture->palette) == 256);
|
||||||
adjusted = palette_entry_list_adjusted(texture->palette);
|
adjusted = palette_entry_list_adjusted(texture->palette);
|
||||||
@ -2745,7 +2745,7 @@ static const rgb_t *texture_get_adjusted_palette(render_texture *texture, render
|
|||||||
default:
|
default:
|
||||||
assert(FALSE);
|
assert(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1718,7 +1718,7 @@ static avi_error chunk_write(avi_file *file, UINT32 type, const void *data, UINT
|
|||||||
avi_error avierr;
|
avi_error avierr;
|
||||||
UINT32 idxreserve;
|
UINT32 idxreserve;
|
||||||
UINT32 written;
|
UINT32 written;
|
||||||
|
|
||||||
/* if we are the first RIFF, we must reserve enough space for the IDX chunk */
|
/* if we are the first RIFF, we must reserve enough space for the IDX chunk */
|
||||||
idxreserve = 0;
|
idxreserve = 0;
|
||||||
if (file->riffbase == 0 && type != CHUNKTYPE_IDX1)
|
if (file->riffbase == 0 && type != CHUNKTYPE_IDX1)
|
||||||
|
@ -111,7 +111,7 @@ palette_t *palette_alloc(UINT32 numcolors, UINT32 numgroups)
|
|||||||
if (palette == NULL)
|
if (palette == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
memset(palette, 0, sizeof(*palette));
|
memset(palette, 0, sizeof(*palette));
|
||||||
|
|
||||||
/* initialize overall controls */
|
/* initialize overall controls */
|
||||||
palette->brightness = 0.0f;
|
palette->brightness = 0.0f;
|
||||||
palette->contrast = 1.0f;
|
palette->contrast = 1.0f;
|
||||||
@ -475,7 +475,7 @@ const rgb_t *palette_entry_list_adjusted_rgb15(palette_t *palette)
|
|||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
palette_set_brightness - set the overall
|
palette_set_brightness - set the overall
|
||||||
brightness for the palette
|
brightness for the palette
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
@ -499,7 +499,7 @@ void palette_set_brightness(palette_t *palette, float brightness)
|
|||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
palette_set_contrast - set the overall
|
palette_set_contrast - set the overall
|
||||||
contrast for the palette
|
contrast for the palette
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
@ -520,7 +520,7 @@ void palette_set_contrast(palette_t *palette, float contrast)
|
|||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
palette_set_gamma - set the overall
|
palette_set_gamma - set the overall
|
||||||
gamma for the palette
|
gamma for the palette
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
@ -532,7 +532,7 @@ void palette_set_gamma(palette_t *palette, float gamma)
|
|||||||
if (palette->gamma == gamma)
|
if (palette->gamma == gamma)
|
||||||
return;
|
return;
|
||||||
palette->gamma = gamma;
|
palette->gamma = gamma;
|
||||||
|
|
||||||
/* recompute the gamma map */
|
/* recompute the gamma map */
|
||||||
gamma = 1.0f / gamma;
|
gamma = 1.0f / gamma;
|
||||||
for (index = 0; index < 256; index++)
|
for (index = 0; index < 256; index++)
|
||||||
@ -590,7 +590,7 @@ float palette_entry_get_contrast(palette_t *palette, UINT32 index)
|
|||||||
void palette_group_set_brightness(palette_t *palette, UINT32 group, float brightness)
|
void palette_group_set_brightness(palette_t *palette, UINT32 group, float brightness)
|
||||||
{
|
{
|
||||||
int index;
|
int index;
|
||||||
|
|
||||||
/* convert incoming value to normalized result */
|
/* convert incoming value to normalized result */
|
||||||
brightness = (brightness - 1.0f) * 256.0f;
|
brightness = (brightness - 1.0f) * 256.0f;
|
||||||
|
|
||||||
@ -723,8 +723,8 @@ static void update_adjusted_color(palette_t *palette, UINT32 group, UINT32 index
|
|||||||
rgb_t adjusted;
|
rgb_t adjusted;
|
||||||
|
|
||||||
/* compute the adjusted value */
|
/* compute the adjusted value */
|
||||||
adjusted = adjust_palette_entry(palette->entry_color[index],
|
adjusted = adjust_palette_entry(palette->entry_color[index],
|
||||||
palette->group_bright[group] + palette->brightness,
|
palette->group_bright[group] + palette->brightness,
|
||||||
palette->group_contrast[group] * palette->entry_contrast[index] * palette->contrast,
|
palette->group_contrast[group] * palette->entry_contrast[index] * palette->contrast,
|
||||||
palette->gamma_map);
|
palette->gamma_map);
|
||||||
|
|
||||||
|
@ -1559,7 +1559,7 @@ MACHINE_DRIVER_START( demon_sound )
|
|||||||
MDRV_CPU_CONFIG(daisy_chain)
|
MDRV_CPU_CONFIG(daisy_chain)
|
||||||
MDRV_CPU_PROGRAM_MAP(demon_sound_map,0)
|
MDRV_CPU_PROGRAM_MAP(demon_sound_map,0)
|
||||||
MDRV_CPU_IO_MAP(demon_sound_ports,0)
|
MDRV_CPU_IO_MAP(demon_sound_ports,0)
|
||||||
|
|
||||||
MDRV_Z80CTC_ADD("ctc", demon_z80ctc_interface)
|
MDRV_Z80CTC_ADD("ctc", demon_z80ctc_interface)
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(demon_sound)
|
MDRV_MACHINE_RESET(demon_sound)
|
||||||
|
@ -228,11 +228,11 @@ static MACHINE_DRIVER_START( invadpt2 )
|
|||||||
MDRV_IMPORT_FROM(mw8080bw_root)
|
MDRV_IMPORT_FROM(mw8080bw_root)
|
||||||
MDRV_CPU_MODIFY("main")
|
MDRV_CPU_MODIFY("main")
|
||||||
MDRV_CPU_IO_MAP(invadpt2_io_map,0)
|
MDRV_CPU_IO_MAP(invadpt2_io_map,0)
|
||||||
|
|
||||||
/* 60 Hz signal clocks two LS161. Ripple carry will */
|
/* 60 Hz signal clocks two LS161. Ripple carry will */
|
||||||
/* reset circuit, if LS161 not cleared before. */
|
/* reset circuit, if LS161 not cleared before. */
|
||||||
MDRV_WATCHDOG_VBLANK_INIT(255)
|
MDRV_WATCHDOG_VBLANK_INIT(255)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_VIDEO_UPDATE(invadpt2)
|
MDRV_VIDEO_UPDATE(invadpt2)
|
||||||
|
|
||||||
|
@ -1461,7 +1461,7 @@ static MACHINE_DRIVER_START( tenpindx )
|
|||||||
MDRV_CPU_CONFIG(tenpin_daisy_chain)
|
MDRV_CPU_CONFIG(tenpin_daisy_chain)
|
||||||
MDRV_CPU_PROGRAM_MAP(tenpin_sub_map,0)
|
MDRV_CPU_PROGRAM_MAP(tenpin_sub_map,0)
|
||||||
MDRV_CPU_IO_MAP(tenpin_sub_io_map,0)
|
MDRV_CPU_IO_MAP(tenpin_sub_io_map,0)
|
||||||
|
|
||||||
MDRV_Z80CTC_ADD("ctc", ctc_intf)
|
MDRV_Z80CTC_ADD("ctc", ctc_intf)
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
|
@ -701,7 +701,7 @@ static MACHINE_DRIVER_START( dlair_base )
|
|||||||
MDRV_CPU_PROGRAM_MAP(dlus_map,0)
|
MDRV_CPU_PROGRAM_MAP(dlus_map,0)
|
||||||
MDRV_CPU_VBLANK_INT("main", vblank_callback)
|
MDRV_CPU_VBLANK_INT("main", vblank_callback)
|
||||||
MDRV_CPU_PERIODIC_INT(irq0_line_hold, (double)MASTER_CLOCK_US/8/16/16/16/16)
|
MDRV_CPU_PERIODIC_INT(irq0_line_hold, (double)MASTER_CLOCK_US/8/16/16/16/16)
|
||||||
|
|
||||||
MDRV_MACHINE_START(dlair)
|
MDRV_MACHINE_START(dlair)
|
||||||
MDRV_MACHINE_RESET(dlair)
|
MDRV_MACHINE_RESET(dlair)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Kaneko EXPRO-02 board
|
Kaneko EXPRO-02 board
|
||||||
|
|
||||||
|
@ -532,7 +532,7 @@ static READ8_HANDLER( nflfoot_ip2_r )
|
|||||||
static WRITE8_HANDLER( nflfoot_op4_w )
|
static WRITE8_HANDLER( nflfoot_op4_w )
|
||||||
{
|
{
|
||||||
const device_config *sio = devtag_get_device(machine, Z80SIO, "ipu_sio");
|
const device_config *sio = devtag_get_device(machine, Z80SIO, "ipu_sio");
|
||||||
|
|
||||||
/* bit 7 = J3-7 on IPU board = /RXDA on SIO */
|
/* bit 7 = J3-7 on IPU board = /RXDA on SIO */
|
||||||
logerror("%04X:op4_w(%d%d%d)\n", activecpu_get_pc(), (data >> 7) & 1, (data >> 6) & 1, (data >> 5) & 1);
|
logerror("%04X:op4_w(%d%d%d)\n", activecpu_get_pc(), (data >> 7) & 1, (data >> 6) & 1, (data >> 5) & 1);
|
||||||
|
|
||||||
|
@ -1055,7 +1055,7 @@ static MACHINE_DRIVER_START( mcr3_base )
|
|||||||
MDRV_CPU_ADD("main", Z80, MASTER_CLOCK/4)
|
MDRV_CPU_ADD("main", Z80, MASTER_CLOCK/4)
|
||||||
MDRV_CPU_CONFIG(mcr_daisy_chain)
|
MDRV_CPU_CONFIG(mcr_daisy_chain)
|
||||||
MDRV_CPU_VBLANK_INT_HACK(mcr_interrupt,2)
|
MDRV_CPU_VBLANK_INT_HACK(mcr_interrupt,2)
|
||||||
|
|
||||||
MDRV_Z80CTC_ADD("ctc", mcr_ctc_intf)
|
MDRV_Z80CTC_ADD("ctc", mcr_ctc_intf)
|
||||||
|
|
||||||
MDRV_WATCHDOG_VBLANK_INIT(16)
|
MDRV_WATCHDOG_VBLANK_INIT(16)
|
||||||
|
@ -9,9 +9,9 @@
|
|||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- add flipscreen according to schematics
|
- add flipscreen according to schematics
|
||||||
- pitboss: dip switches
|
- pitboss: dip switches
|
||||||
- general - add named output notifiers
|
- general - add named output notifiers
|
||||||
|
|
||||||
Notes: it's important that "user1" is 0xa0000 bytes with empty space filled
|
Notes: it's important that "user1" is 0xa0000 bytes with empty space filled
|
||||||
with 0xff, because the built-in roms test checks how many question roms
|
with 0xff, because the built-in roms test checks how many question roms
|
||||||
the games has and the type of each one.
|
the games has and the type of each one.
|
||||||
@ -62,7 +62,7 @@ static MACHINE_START(merit)
|
|||||||
{
|
{
|
||||||
question_address = 0;
|
question_address = 0;
|
||||||
ram_palette = auto_malloc(RAM_PALETTE_SIZE);
|
ram_palette = auto_malloc(RAM_PALETTE_SIZE);
|
||||||
|
|
||||||
state_save_register_global_pointer(ram_palette, RAM_PALETTE_SIZE);
|
state_save_register_global_pointer(ram_palette, RAM_PALETTE_SIZE);
|
||||||
state_save_register_global(lscnblk);
|
state_save_register_global(lscnblk);
|
||||||
state_save_register_global(extra_video_bank_bit);
|
state_save_register_global(extra_video_bank_bit);
|
||||||
@ -154,13 +154,13 @@ static READ8_HANDLER( palette_r )
|
|||||||
static WRITE8_HANDLER( palette_w )
|
static WRITE8_HANDLER( palette_w )
|
||||||
{
|
{
|
||||||
int co;
|
int co;
|
||||||
|
|
||||||
video_screen_update_now(machine->primary_screen);
|
video_screen_update_now(machine->primary_screen);
|
||||||
data &= 0x0f;
|
data &= 0x0f;
|
||||||
|
|
||||||
co = ((ram_attr[offset] & 0x7F) << 3) | (offset & 0x07);
|
co = ((ram_attr[offset] & 0x7F) << 3) | (offset & 0x07);
|
||||||
ram_palette[co] = data;
|
ram_palette[co] = data;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -177,7 +177,7 @@ static MC6845_BEGIN_UPDATE( begin_update )
|
|||||||
bit2 = BIT(i,2);
|
bit2 = BIT(i,2);
|
||||||
pens[i] = MAKE_RGB(dim*bit0, dim*bit1, dim*bit2);
|
pens[i] = MAKE_RGB(dim*bit0, dim*bit1, dim*bit2);
|
||||||
}
|
}
|
||||||
|
|
||||||
return pens;
|
return pens;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -189,12 +189,12 @@ static MC6845_UPDATE_ROW( update_row )
|
|||||||
pen_t *pens = (pen_t *)param;
|
pen_t *pens = (pen_t *)param;
|
||||||
UINT8 *gfx[2];
|
UINT8 *gfx[2];
|
||||||
UINT16 x = 0;
|
UINT16 x = 0;
|
||||||
int rlen;
|
int rlen;
|
||||||
|
|
||||||
gfx[0] = memory_region(device->machine, "gfx1");
|
gfx[0] = memory_region(device->machine, "gfx1");
|
||||||
gfx[1] = memory_region(device->machine, "gfx2");
|
gfx[1] = memory_region(device->machine, "gfx2");
|
||||||
rlen = memory_region_length(device->machine, "gfx2");
|
rlen = memory_region_length(device->machine, "gfx2");
|
||||||
|
|
||||||
//ma = ma ^ 0x7ff;
|
//ma = ma ^ 0x7ff;
|
||||||
for (cx = 0; cx < x_count; cx++)
|
for (cx = 0; cx < x_count; cx++)
|
||||||
{
|
{
|
||||||
@ -220,7 +220,7 @@ static MC6845_UPDATE_ROW( update_row )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
col |= 0x03;
|
col |= 0x03;
|
||||||
|
|
||||||
col = ram_palette[col & 0x3ff];
|
col = ram_palette[col & 0x3ff];
|
||||||
*BITMAP_ADDR32(bitmap, y, x) = pens[col ? col : (lscnblk ? 8 : 0)];
|
*BITMAP_ADDR32(bitmap, y, x) = pens[col ? col : (lscnblk ? 8 : 0)];
|
||||||
|
|
||||||
@ -319,7 +319,7 @@ static ADDRESS_MAP_START( trvwhiz_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0x4c00, 0x4cff) AM_READWRITE(questions_r, high_offset_w)
|
AM_RANGE(0x4c00, 0x4cff) AM_READWRITE(questions_r, high_offset_w)
|
||||||
AM_RANGE(0x5400, 0x54ff) AM_WRITE(low_offset_w)
|
AM_RANGE(0x5400, 0x54ff) AM_WRITE(low_offset_w)
|
||||||
AM_RANGE(0x5800, 0x58ff) AM_WRITE(med_offset_w)
|
AM_RANGE(0x5800, 0x58ff) AM_WRITE(med_offset_w)
|
||||||
AM_RANGE(0x6000, 0x67ff) AM_RAM
|
AM_RANGE(0x6000, 0x67ff) AM_RAM
|
||||||
AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w)
|
AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w)
|
||||||
AM_RANGE(0xc000, 0xc003) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w)
|
AM_RANGE(0xc000, 0xc003) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w)
|
||||||
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
|
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
|
||||||
@ -337,7 +337,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( phrcraze_map, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( phrcraze_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||||
AM_RANGE(0xa000, 0xbfff) AM_RAM
|
AM_RANGE(0xa000, 0xbfff) AM_RAM
|
||||||
AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w)
|
AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w)
|
||||||
AM_RANGE(0xc00c, 0xc00f) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w)
|
AM_RANGE(0xc00c, 0xc00f) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w)
|
||||||
AM_RANGE(0xce00, 0xceff) AM_READWRITE(questions_r, high_offset_w)
|
AM_RANGE(0xce00, 0xceff) AM_READWRITE(questions_r, high_offset_w)
|
||||||
@ -358,7 +358,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( tictac_map, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( tictac_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||||
AM_RANGE(0x8000, 0x9fff) AM_RAM
|
AM_RANGE(0x8000, 0x9fff) AM_RAM
|
||||||
AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w)
|
AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w)
|
||||||
AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w)
|
AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w)
|
||||||
AM_RANGE(0xce00, 0xceff) AM_READWRITE(questions_r, high_offset_w)
|
AM_RANGE(0xce00, 0xceff) AM_READWRITE(questions_r, high_offset_w)
|
||||||
@ -379,7 +379,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( trvwhziv_map, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( trvwhziv_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||||
AM_RANGE(0xa000, 0xbfff) AM_RAM
|
AM_RANGE(0xa000, 0xbfff) AM_RAM
|
||||||
AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w)
|
AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w)
|
||||||
AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w)
|
AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w)
|
||||||
AM_RANGE(0xce00, 0xceff) AM_READWRITE(questions_r, high_offset_w)
|
AM_RANGE(0xce00, 0xceff) AM_READWRITE(questions_r, high_offset_w)
|
||||||
@ -877,7 +877,7 @@ static const ay8910_interface merit_ay8912_interface =
|
|||||||
|
|
||||||
|
|
||||||
static MACHINE_DRIVER_START( pitboss )
|
static MACHINE_DRIVER_START( pitboss )
|
||||||
MDRV_CPU_ADD("main",Z80, CPU_CLOCK)
|
MDRV_CPU_ADD("main",Z80, CPU_CLOCK)
|
||||||
MDRV_CPU_PROGRAM_MAP(pitboss_map,0)
|
MDRV_CPU_PROGRAM_MAP(pitboss_map,0)
|
||||||
MDRV_CPU_IO_MAP(trvwhiz_io_map,0)
|
MDRV_CPU_IO_MAP(trvwhiz_io_map,0)
|
||||||
|
|
||||||
@ -886,7 +886,7 @@ static MACHINE_DRIVER_START( pitboss )
|
|||||||
|
|
||||||
MDRV_MACHINE_START(merit)
|
MDRV_MACHINE_START(merit)
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32)
|
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32)
|
||||||
MDRV_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 512, 0, 512, 256, 0, 256) /* temporary, CRTC will configure screen */
|
MDRV_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 512, 0, 512, 256, 0, 256) /* temporary, CRTC will configure screen */
|
||||||
|
@ -3656,7 +3656,7 @@ static MACHINE_DRIVER_START( NBMJDRV1 )
|
|||||||
MDRV_CPU_CONFIG(daisy_chain_sound)
|
MDRV_CPU_CONFIG(daisy_chain_sound)
|
||||||
MDRV_CPU_PROGRAM_MAP(sound_readmem, sound_writemem)
|
MDRV_CPU_PROGRAM_MAP(sound_readmem, sound_writemem)
|
||||||
MDRV_CPU_IO_MAP(sound_readport, sound_writeport)
|
MDRV_CPU_IO_MAP(sound_readport, sound_writeport)
|
||||||
|
|
||||||
MDRV_Z80CTC_ADD("main_ctc", ctc_intf_main)
|
MDRV_Z80CTC_ADD("main_ctc", ctc_intf_main)
|
||||||
MDRV_Z80CTC_ADD("audio_ctc", ctc_intf_audio)
|
MDRV_Z80CTC_ADD("audio_ctc", ctc_intf_audio)
|
||||||
|
|
||||||
|
@ -344,12 +344,12 @@ INPUT_PORTS_END
|
|||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|
||||||
The current Neo-Geo MVS system set (SFIX/SM1/000-LO) used is from a NEO-MVH MV1FS board.
|
The current Neo-Geo MVS system set (SFIX/SM1/000-LO) used is from a NEO-MVH MV1FS board.
|
||||||
Other boards (MV1xx / MV2x / MV4 /MV6) other system sets?
|
Other boards (MV1xx / MV2x / MV4 /MV6) other system sets?
|
||||||
|
|
||||||
Zoom ROM (LO) 128K TC531000CP 1x 128Kx8 Zoom look-up table ROM
|
Zoom ROM (LO) 128K TC531000CP 1x 128Kx8 Zoom look-up table ROM
|
||||||
Fix ROM (SFIX) 128K 27C1000 1x 128Kx8 Text layer graphics ROM
|
Fix ROM (SFIX) 128K 27C1000 1x 128Kx8 Text layer graphics ROM
|
||||||
Sound ROM (SM1) 128K 27C1000/23C1000 1x 128Kx8 Z80 program ROM
|
Sound ROM (SM1) 128K 27C1000/23C1000 1x 128Kx8 Z80 program ROM
|
||||||
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
@ -460,157 +460,157 @@ INPUT_PORTS_END
|
|||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
Neo-Geo game pcb infos:
|
Neo-Geo game pcb infos:
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
The Neo-Geo games for AES (home) and MVS (arcade) systems are cartridge based.
|
The Neo-Geo games for AES (home) and MVS (arcade) systems are cartridge based.
|
||||||
|
|
||||||
Each cartridge consists of two pcb's: CHA and PROG.
|
Each cartridge consists of two pcb's: CHA and PROG.
|
||||||
|
|
||||||
CHA pcb contains gfx data ('C' - rom), text layer data ('S' - rom) and sound driver ('M' - rom).
|
CHA pcb contains gfx data ('C' - rom), text layer data ('S' - rom) and sound driver ('M' - rom).
|
||||||
PROG pcb contains sample data ('V' - rom) and program code ('P' - rom).
|
PROG pcb contains sample data ('V' - rom) and program code ('P' - rom).
|
||||||
|
|
||||||
On most pcb's various custom/protection chips can also be found:
|
On most pcb's various custom/protection chips can also be found:
|
||||||
|
|
||||||
CHA:
|
CHA:
|
||||||
. NEO-273
|
. NEO-273
|
||||||
. NEO-CMC
|
. NEO-CMC
|
||||||
. NEO-ZMC
|
. NEO-ZMC
|
||||||
. NEO-ZMC2
|
. NEO-ZMC2
|
||||||
. PRO-CT0
|
. PRO-CT0
|
||||||
. SNK-9201
|
. SNK-9201
|
||||||
|
|
||||||
PROG:
|
PROG:
|
||||||
. 0103 (QFP144)
|
. 0103 (QFP144)
|
||||||
. ALTERA (EPM7128SQC100-15)
|
. ALTERA (EPM7128SQC100-15)
|
||||||
. NEO-COMA
|
. NEO-COMA
|
||||||
. NEO-PCM2 (SNK 1999)
|
. NEO-PCM2 (SNK 1999)
|
||||||
. NEO-PCM2 (PLAYMORE 2002)
|
. NEO-PCM2 (PLAYMORE 2002)
|
||||||
. NEO-PVC
|
. NEO-PVC
|
||||||
. NEO-SMA
|
. NEO-SMA
|
||||||
. PCM
|
. PCM
|
||||||
. PRO-CT0
|
. PRO-CT0
|
||||||
. SNK-9201
|
. SNK-9201
|
||||||
|
|
||||||
|
|
||||||
Known pcb's:
|
Known pcb's:
|
||||||
============
|
============
|
||||||
|
|
||||||
MVS CHA:
|
MVS CHA:
|
||||||
-- SNK --
|
-- SNK --
|
||||||
. NEO-MVS CHA-32
|
. NEO-MVS CHA-32
|
||||||
. NEO-MVS CHA-8M
|
. NEO-MVS CHA-8M
|
||||||
. NEO-MVS CHA42G
|
. NEO-MVS CHA42G
|
||||||
. NEO-MVS CHA42G-1
|
. NEO-MVS CHA42G-1
|
||||||
. NEO-MVS CHA 42G-2
|
. NEO-MVS CHA 42G-2
|
||||||
. NEO-MVS CHA 42G-3
|
. NEO-MVS CHA 42G-3
|
||||||
. NEO-MVS CHA42G-3B
|
. NEO-MVS CHA42G-3B
|
||||||
. NEO-MVS CHA256
|
. NEO-MVS CHA256
|
||||||
. NEO-MVS CHA256B
|
. NEO-MVS CHA256B
|
||||||
. NEO-MVS PSTM CHA136
|
. NEO-MVS PSTM CHA136
|
||||||
. NEO-MVS CHA512Y
|
. NEO-MVS CHA512Y
|
||||||
. NEO-MVS CHAFIO (1999.6.14)
|
. NEO-MVS CHAFIO (1999.6.14)
|
||||||
. MVS CHAFIO REV1.0 (KOF-2001)
|
. MVS CHAFIO REV1.0 (KOF-2001)
|
||||||
. NEO-MVS CHAFIO (SNK 2002) - MADE IN KOREA
|
. NEO-MVS CHAFIO (SNK 2002) - MADE IN KOREA
|
||||||
-- SNKPLAYMORE --
|
-- SNKPLAYMORE --
|
||||||
. NEO-MVS CHAFIO (2003.7.24)
|
. NEO-MVS CHAFIO (2003.7.24)
|
||||||
|
|
||||||
MVS PROG:
|
MVS PROG:
|
||||||
-- SNK --
|
-- SNK --
|
||||||
. NEO-MVS PROG-HERO
|
. NEO-MVS PROG-HERO
|
||||||
. NEO-MVS PROG-EP
|
. NEO-MVS PROG-EP
|
||||||
. NEO-MVS PROG8M42
|
. NEO-MVS PROG8M42
|
||||||
. NEO-MVS PROG16
|
. NEO-MVS PROG16
|
||||||
. NEO-MVS PROG42G
|
. NEO-MVS PROG42G
|
||||||
. NEO-MVS PROG42G-1
|
. NEO-MVS PROG42G-1
|
||||||
. NEO-MVS PROG-G2
|
. NEO-MVS PROG-G2
|
||||||
. NEO-MVS PROG 4096
|
. NEO-MVS PROG 4096
|
||||||
. NEO-MVS PROG 4096 B
|
. NEO-MVS PROG 4096 B
|
||||||
. NEO-MVS PROGGSC
|
. NEO-MVS PROGGSC
|
||||||
. NEO-MVS PROGSM
|
. NEO-MVS PROGSM
|
||||||
. NEO-MVS PROGSS3
|
. NEO-MVS PROGSS3
|
||||||
. NEO-MVS PROGTOP
|
. NEO-MVS PROGTOP
|
||||||
. NEO-MVS PROGSF1 (1998.6.17)
|
. NEO-MVS PROGSF1 (1998.6.17)
|
||||||
. NEO-MVS PROGEOP (1999.2.2)
|
. NEO-MVS PROGEOP (1999.2.2)
|
||||||
. NEO-MVS PROGLBA (1999.4.12) - LBA-SUB (2000.2.24)
|
. NEO-MVS PROGLBA (1999.4.12) - LBA-SUB (2000.2.24)
|
||||||
. NEO-MVS PROGBK1
|
. NEO-MVS PROGBK1
|
||||||
. NEO-MVS PROGBK2 (2000.3.21)
|
. NEO-MVS PROGBK2 (2000.3.21)
|
||||||
. MVS PROGBK2 REV1.0 (KOF-2001)
|
. MVS PROGBK2 REV1.0 (KOF-2001)
|
||||||
. NEO-MVS PROGBK2 (SNK 2002) - MADE IN KOREA
|
. NEO-MVS PROGBK2 (SNK 2002) - MADE IN KOREA
|
||||||
-- SNKPLAYMORE --
|
-- SNKPLAYMORE --
|
||||||
. NEO-MVS PROGBK2R (2003.8.26) - NEO-HYCS (2003.9.29)
|
. NEO-MVS PROGBK2R (2003.8.26) - NEO-HYCS (2003.9.29)
|
||||||
. NEO-MVS PROGBK3R (2003.9.2) - NEO-HYCS (2003.9.29)
|
. NEO-MVS PROGBK3R (2003.9.2) - NEO-HYCS (2003.9.29)
|
||||||
. NEO-MVS PROGBK3S (2003.10.1)
|
. NEO-MVS PROGBK3S (2003.10.1)
|
||||||
. NEO-MVS PROGBK2S (2003.10.xx)
|
. NEO-MVS PROGBK2S (2003.10.xx)
|
||||||
|
|
||||||
|
|
||||||
AES CHA:
|
AES CHA:
|
||||||
-- SNK --
|
-- SNK --
|
||||||
. NEO-AEG CHA-32
|
. NEO-AEG CHA-32
|
||||||
. NEO-AEG CHA-8M
|
. NEO-AEG CHA-8M
|
||||||
. NEO-AEG CHA42G
|
. NEO-AEG CHA42G
|
||||||
. NEO-AEG CHA42G-1
|
. NEO-AEG CHA42G-1
|
||||||
. NEO-AEG CHA42G-2B
|
. NEO-AEG CHA42G-2B
|
||||||
. NEO-AEG CHA42G-3
|
. NEO-AEG CHA42G-3
|
||||||
. NEO-AEG CHA42G-4
|
. NEO-AEG CHA42G-4
|
||||||
. NEO-AEG CHA256
|
. NEO-AEG CHA256
|
||||||
. NEO-AEG CHA256[B]
|
. NEO-AEG CHA256[B]
|
||||||
. NEO-AEG CHA256RY
|
. NEO-AEG CHA256RY
|
||||||
. NEO-AEG CHA512Y
|
. NEO-AEG CHA512Y
|
||||||
. NEO-AEG CHAFIO (1999.8.10)
|
. NEO-AEG CHAFIO (1999.8.10)
|
||||||
-- SNKPLAYMORE --
|
-- SNKPLAYMORE --
|
||||||
. NEO-AEG CHAFIO (2003.7.24)
|
. NEO-AEG CHAFIO (2003.7.24)
|
||||||
|
|
||||||
AES PROG:
|
AES PROG:
|
||||||
-- SNK --
|
-- SNK --
|
||||||
. NEO-AEG PROG-NAM
|
. NEO-AEG PROG-NAM
|
||||||
. NEO-AEG PROG-HERO
|
. NEO-AEG PROG-HERO
|
||||||
. NEO-AEG PROG-4A
|
. NEO-AEG PROG-4A
|
||||||
. NEO-AEG PROG-4B
|
. NEO-AEG PROG-4B
|
||||||
. NEO-AEG PROG 8M42
|
. NEO-AEG PROG 8M42
|
||||||
. NEO-AEG PROG B
|
. NEO-AEG PROG B
|
||||||
. NEO-AEG PROG16
|
. NEO-AEG PROG16
|
||||||
. NEO-AEG PROG42G
|
. NEO-AEG PROG42G
|
||||||
. NEO-AEG PROG42G-COM
|
. NEO-AEG PROG42G-COM
|
||||||
. NEO-AEG PROG42G-1
|
. NEO-AEG PROG42G-1
|
||||||
. NEO-AEG PROG-G2
|
. NEO-AEG PROG-G2
|
||||||
. NEO-AEG PROG4096 B
|
. NEO-AEG PROG4096 B
|
||||||
. NEO-AEG PROGGS
|
. NEO-AEG PROGGS
|
||||||
. NEO-AEG PROGTOP2
|
. NEO-AEG PROGTOP2
|
||||||
. NEO-AEG PROGLBA (1999.7.6)
|
. NEO-AEG PROGLBA (1999.7.6)
|
||||||
. NEO-AEG PROGRK
|
. NEO-AEG PROGRK
|
||||||
. NEO-AEG PROGRKB
|
. NEO-AEG PROGRKB
|
||||||
. NEO-AEG PROGBK1Y
|
. NEO-AEG PROGBK1Y
|
||||||
. NEO-AEG PROGBK1F
|
. NEO-AEG PROGBK1F
|
||||||
-- PLAYMORE --
|
-- PLAYMORE --
|
||||||
. NEO-AEG PROGBK2 (2002.4.1)
|
. NEO-AEG PROGBK2 (2002.4.1)
|
||||||
-- SNKPLAYMORE --
|
-- SNKPLAYMORE --
|
||||||
. NEO-AEG PROGBK3R (2003.8.29) - NEO-HYCS (2003.9.29)
|
. NEO-AEG PROGBK3R (2003.8.29) - NEO-HYCS (2003.9.29)
|
||||||
. NEO-AEG PROGBK2S (2003.10.16)
|
. NEO-AEG PROGBK2S (2003.10.16)
|
||||||
|
|
||||||
|
|
||||||
Cartridge colours:
|
Cartridge colours:
|
||||||
==================
|
==================
|
||||||
|
|
||||||
MVS cartridges were produced in different colours.
|
MVS cartridges were produced in different colours.
|
||||||
|
|
||||||
Known cartridge colours:
|
|
||||||
. Black
|
|
||||||
. Blue
|
|
||||||
. Green
|
|
||||||
. Grey
|
|
||||||
. Red
|
|
||||||
. Transparent
|
|
||||||
. Transparent Blue
|
|
||||||
. Transparent Green
|
|
||||||
. White
|
|
||||||
. Yellow
|
|
||||||
|
|
||||||
The above listed only covers SNK / PLAYMORE / SNKPLAYMORE pcb's. There also exists a
|
Known cartridge colours:
|
||||||
wide range of 'bootleg' pcb's.
|
. Black
|
||||||
|
. Blue
|
||||||
|
. Green
|
||||||
|
. Grey
|
||||||
|
. Red
|
||||||
|
. Transparent
|
||||||
|
. Transparent Blue
|
||||||
|
. Transparent Green
|
||||||
|
. White
|
||||||
|
. Yellow
|
||||||
|
|
||||||
|
The above listed only covers SNK / PLAYMORE / SNKPLAYMORE pcb's. There also exists a
|
||||||
|
wide range of 'bootleg' pcb's.
|
||||||
|
|
||||||
|
|
||||||
Neo-Geo game pcb infos by Johnboy
|
Neo-Geo game pcb infos by Johnboy
|
||||||
|
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
@ -6360,19 +6360,19 @@ ROM_END
|
|||||||
/* Jamma PCB sets */
|
/* Jamma PCB sets */
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
The following Jamma PCB boards are known:
|
The following Jamma PCB boards are known:
|
||||||
|
|
||||||
SNK vs. CAPCOM SVC CHAOS (svcpcb)
|
SNK vs. CAPCOM SVC CHAOS (svcpcb)
|
||||||
NEO-MVH MVO 2003.6.5
|
NEO-MVH MVO 2003.6.5
|
||||||
|
|
||||||
SNK vs. CAPCOM SVC CHAOS (svcpcba)
|
SNK vs. CAPCOM SVC CHAOS (svcpcba)
|
||||||
NEO-MVH MVOB 2003.7.9
|
NEO-MVH MVOB 2003.7.9
|
||||||
|
|
||||||
Metal Slug 5
|
Metal Slug 5
|
||||||
NEO-MVH MVOBR 2003.8.4
|
NEO-MVH MVOBR 2003.8.4
|
||||||
|
|
||||||
The King of Fighters 2003
|
The King of Fighters 2003
|
||||||
NEO-MVH MVOC 2003.11.3
|
NEO-MVH MVOC 2003.11.3
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
@ -875,7 +875,7 @@ static MACHINE_DRIVER_START( niyanpai )
|
|||||||
MDRV_CPU_CONFIG(daisy_chain_sound)
|
MDRV_CPU_CONFIG(daisy_chain_sound)
|
||||||
MDRV_CPU_PROGRAM_MAP(sound_readmem, sound_writemem)
|
MDRV_CPU_PROGRAM_MAP(sound_readmem, sound_writemem)
|
||||||
MDRV_CPU_IO_MAP(sound_io_map,0)
|
MDRV_CPU_IO_MAP(sound_io_map,0)
|
||||||
|
|
||||||
MDRV_Z80CTC_ADD("ctc", ctc_intf)
|
MDRV_Z80CTC_ADD("ctc", ctc_intf)
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(niyanpai)
|
MDRV_MACHINE_RESET(niyanpai)
|
||||||
|
@ -378,7 +378,7 @@ static MACHINE_DRIVER_START( pipeline )
|
|||||||
|
|
||||||
MDRV_CPU_ADD("mcu", M68705, 7372800/2)
|
MDRV_CPU_ADD("mcu", M68705, 7372800/2)
|
||||||
MDRV_CPU_PROGRAM_MAP(mcu_mem, 0)
|
MDRV_CPU_PROGRAM_MAP(mcu_mem, 0)
|
||||||
|
|
||||||
MDRV_Z80CTC_ADD( "ctc", ctc_intf )
|
MDRV_Z80CTC_ADD( "ctc", ctc_intf )
|
||||||
|
|
||||||
MDRV_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] )
|
MDRV_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] )
|
||||||
|
@ -92,7 +92,7 @@ static void update_main_irqs(running_machine *machine)
|
|||||||
irq |= 2;
|
irq |= 2;
|
||||||
else
|
else
|
||||||
cpunum_set_input_line(machine, 0, 2, CLEAR_LINE);
|
cpunum_set_input_line(machine, 0, 2, CLEAR_LINE);
|
||||||
|
|
||||||
if (vblank_irq_state)
|
if (vblank_irq_state)
|
||||||
irq |= 4;
|
irq |= 4;
|
||||||
else
|
else
|
||||||
|
@ -412,7 +412,7 @@ MACHINE_RESET( zwackery )
|
|||||||
INTERRUPT_GEN( mcr_interrupt )
|
INTERRUPT_GEN( mcr_interrupt )
|
||||||
{
|
{
|
||||||
const device_config *ctc = devtag_get_device(machine, Z80CTC, "ctc");
|
const device_config *ctc = devtag_get_device(machine, Z80CTC, "ctc");
|
||||||
|
|
||||||
/* CTC line 2 is connected to VBLANK, which is once every 1/2 frame */
|
/* CTC line 2 is connected to VBLANK, which is once every 1/2 frame */
|
||||||
/* for the 30Hz interlaced display */
|
/* for the 30Hz interlaced display */
|
||||||
z80ctc_trg2_w(ctc, 0, 1);
|
z80ctc_trg2_w(ctc, 0, 1);
|
||||||
@ -431,7 +431,7 @@ INTERRUPT_GEN( mcr_interrupt )
|
|||||||
INTERRUPT_GEN( mcr_ipu_interrupt )
|
INTERRUPT_GEN( mcr_ipu_interrupt )
|
||||||
{
|
{
|
||||||
const device_config *ctc = devtag_get_device(machine, Z80CTC, "ipu_ctc");
|
const device_config *ctc = devtag_get_device(machine, Z80CTC, "ipu_ctc");
|
||||||
|
|
||||||
/* CTC line 3 is connected to 493, which is signalled once every */
|
/* CTC line 3 is connected to 493, which is signalled once every */
|
||||||
/* frame at 30Hz */
|
/* frame at 30Hz */
|
||||||
if (cpu_getiloops() == 0)
|
if (cpu_getiloops() == 0)
|
||||||
|
@ -60,7 +60,7 @@ static struct
|
|||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
|
|
||||||
Timers
|
Timers
|
||||||
|
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
@ -278,7 +278,7 @@ static TIMER_CALLBACK( snes_hblank_tick )
|
|||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
|
|
||||||
Input Handlers
|
Input Handlers
|
||||||
|
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
@ -1090,13 +1090,13 @@ WRITE8_HANDLER( snes_w_io )
|
|||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
|
|
||||||
Memory Handlers
|
Memory Handlers
|
||||||
|
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
There are at least 4 different kind of boards for SNES carts, which we denote with
|
There are at least 4 different kind of boards for SNES carts, which we denote with
|
||||||
mode_20, mode_21, mode_22 and mode_25. Below is a layout of the memory for each of
|
mode_20, mode_21, mode_22 and mode_25. Below is a layout of the memory for each of
|
||||||
them, as described on the SNES dev manual. Notice we mirror ROM at loading time
|
them, as described on the SNES dev manual. Notice we mirror ROM at loading time
|
||||||
where necessary (e.g. banks 0x80 to 0xff at address 0x8000 for mode_20).
|
where necessary (e.g. banks 0x80 to 0xff at address 0x8000 for mode_20).
|
||||||
|
|
||||||
@ -1105,21 +1105,21 @@ MODE_20
|
|||||||
address | | | | | | | |
|
address | | | | | | | |
|
||||||
0xffff ------------------------------------------------------------------------------|
|
0xffff ------------------------------------------------------------------------------|
|
||||||
ROM | ROM / | ROM | ROM | ROM / | | 0x00 | 0x40 |
|
ROM | ROM / | ROM | ROM | ROM / | | 0x00 | 0x40 |
|
||||||
| DSP | | | SRAM? | | to | to |
|
| DSP | | | SRAM? | | to | to |
|
||||||
0x8000 ----------------------------------------------------------| | 0x3f | 0x7f |
|
0x8000 ----------------------------------------------------------| | 0x3f | 0x7f |
|
||||||
Reserv | | | | W | | |
|
Reserv | | | | W | | |
|
||||||
| | | S | R | m | m |
|
| | | S | R | m | m |
|
||||||
0x6000 ----------------------------| | DSP / | R | A | i | i |
|
0x6000 ----------------------------| | DSP / | R | A | i | i |
|
||||||
I/O | Reserv | | A | M | r | r |
|
I/O | Reserv | | A | M | r | r |
|
||||||
0x2000 ----------------------------| | Reserv | M | | r | r |
|
0x2000 ----------------------------| | Reserv | M | | r | r |
|
||||||
Low RAM (from 0x7e) | | | | | o | o |
|
Low RAM (from 0x7e) | | | | | o | o |
|
||||||
| | | | | r | r |
|
| | | | | r | r |
|
||||||
0x0000 -------------------------------------------------------------------------------
|
0x0000 -------------------------------------------------------------------------------
|
||||||
|
|
||||||
MODE_22 is the same, but banks 0x40 to 0x7e at address 0x000 to 0x7fff contain ROM (of
|
MODE_22 is the same, but banks 0x40 to 0x7e at address 0x000 to 0x7fff contain ROM (of
|
||||||
course mirrored also at 0xc0 to 0xff). Mode 22 is quite similar to the board SHVC-2P3B
|
course mirrored also at 0xc0 to 0xff). Mode 22 is quite similar to the board SHVC-2P3B
|
||||||
shown on SNES Dev manual. It is used also in SDD-1 games (only for the first blocks of
|
shown on SNES Dev manual. It is used also in SDD-1 games (only for the first blocks of
|
||||||
data). DSP data & status can be either at banks 0x20 to 0x40 at address 0x8000 or at
|
data). DSP data & status can be either at banks 0x20 to 0x40 at address 0x8000 or at
|
||||||
banks 0x60 to 0x6f at address 0x0000.
|
banks 0x60 to 0x6f at address 0x0000.
|
||||||
|
|
||||||
|
|
||||||
@ -1128,16 +1128,16 @@ MODE_21
|
|||||||
address | | | | | | |
|
address | | | | | | |
|
||||||
0xffff --------------------------------------------------------------------|
|
0xffff --------------------------------------------------------------------|
|
||||||
mirror | 0xc0 | | mirror | |
|
mirror | 0xc0 | | mirror | |
|
||||||
upper half ROM | to | | up half | |
|
upper half ROM | to | | up half | |
|
||||||
from 0xc0 to 0xff | 0xff | | ROM | |
|
from 0xc0 to 0xff | 0xff | | ROM | |
|
||||||
0x8000 --------------------------------------| | |---------| |
|
0x8000 --------------------------------------| | |---------| |
|
||||||
DSP / | Reserv | SRAM | | W | | |
|
DSP / | Reserv | SRAM | | W | | |
|
||||||
Reserv | | | m | R | 0x00 | R |
|
Reserv | | | m | R | 0x00 | R |
|
||||||
0x6000 --------------------------------------| i | A | to | O |
|
0x6000 --------------------------------------| i | A | to | O |
|
||||||
I/O | r | M | 0x3f | M |
|
I/O | r | M | 0x3f | M |
|
||||||
0x2000 --------------------------------------| r | | mirror | |
|
0x2000 --------------------------------------| r | | mirror | |
|
||||||
Low RAM (from 0x7e) | o | | | |
|
Low RAM (from 0x7e) | o | | | |
|
||||||
| r | | | |
|
| r | | | |
|
||||||
0x0000 ---------------------------------------------------------------------
|
0x0000 ---------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
@ -1147,17 +1147,17 @@ the available banks at 0xc0 to 0xff.
|
|||||||
banks 0x00 0x20 0x3e 0x40 0x7e 0x80 0xb0 0xc0 0xff
|
banks 0x00 0x20 0x3e 0x40 0x7e 0x80 0xb0 0xc0 0xff
|
||||||
address | | | | | | | |
|
address | | | | | | | |
|
||||||
0xffff ----------------------------------------------------------------------------|
|
0xffff ----------------------------------------------------------------------------|
|
||||||
mirror | Last | | | ROM | |
|
mirror | Last | | | ROM | |
|
||||||
upper half ROM | 0.5Mbits | | | mirror | |
|
upper half ROM | 0.5Mbits | | | mirror | |
|
||||||
from 0x40 to 0x7e | ROM | ROM | | up half | ROM |
|
from 0x40 to 0x7e | ROM | ROM | | up half | ROM |
|
||||||
0x8000 -----------------------------------| | |------------------| |
|
0x8000 -----------------------------------| | |------------------| |
|
||||||
DSP / | Reserv | next | W | Reserv | SRAM | first |
|
DSP / | Reserv | next | W | Reserv | SRAM | first |
|
||||||
Reserv | | | R | | | |
|
Reserv | | | R | | | |
|
||||||
0x6000 -----------------------------------| 31 | A |------------------| 32 |
|
0x6000 -----------------------------------| 31 | A |------------------| 32 |
|
||||||
I/O | Mbits | M | 0x00 | Mbits |
|
I/O | Mbits | M | 0x00 | Mbits |
|
||||||
0x2000 -----------------------------------| | | to | |
|
0x2000 -----------------------------------| | | to | |
|
||||||
Low RAM (from 0x7e) | | | 0x3f | |
|
Low RAM (from 0x7e) | | | 0x3f | |
|
||||||
| | | mirror | |
|
| | | mirror | |
|
||||||
0x0000 -----------------------------------------------------------------------------
|
0x0000 -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
@ -1373,7 +1373,7 @@ WRITE8_HANDLER( snes_w_bank2 )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
logerror("Attempt to write to reserved address: %X\n", offset + 0x300000);
|
logerror("Attempt to write to reserved address: %X\n", offset + 0x300000);
|
||||||
}
|
}
|
||||||
/* some dsp1 games use these banks 0x30 to 0x3f at address 0x8000 */
|
/* some dsp1 games use these banks 0x30 to 0x3f at address 0x8000 */
|
||||||
else if ((snes_cart.mode == SNES_MODE_20) && has_dsp1)
|
else if ((snes_cart.mode == SNES_MODE_20) && has_dsp1)
|
||||||
DSP1_setDr(data);
|
DSP1_setDr(data);
|
||||||
@ -1430,7 +1430,7 @@ WRITE8_HANDLER( snes_w_bank6 )
|
|||||||
{
|
{
|
||||||
if (offset < 0x300000)
|
if (offset < 0x300000)
|
||||||
snes_w_bank1(machine, offset, data);
|
snes_w_bank1(machine, offset, data);
|
||||||
else
|
else
|
||||||
snes_w_bank2(machine, offset - 0x300000, data);
|
snes_w_bank2(machine, offset - 0x300000, data);
|
||||||
}
|
}
|
||||||
else /* Mode 25 has SRAM not mirrored from lower banks */
|
else /* Mode 25 has SRAM not mirrored from lower banks */
|
||||||
@ -1439,7 +1439,7 @@ WRITE8_HANDLER( snes_w_bank6 )
|
|||||||
{
|
{
|
||||||
if (offset < 0x300000)
|
if (offset < 0x300000)
|
||||||
snes_w_bank1(machine, offset, data);
|
snes_w_bank1(machine, offset, data);
|
||||||
else
|
else
|
||||||
snes_w_bank2(machine, offset - 0x300000, data);
|
snes_w_bank2(machine, offset - 0x300000, data);
|
||||||
}
|
}
|
||||||
else if ((offset >= 0x300000) && (snes_cart.sram > 0))
|
else if ((offset >= 0x300000) && (snes_cart.sram > 0))
|
||||||
@ -1449,7 +1449,7 @@ WRITE8_HANDLER( snes_w_bank6 )
|
|||||||
snes_ram[0xb06000 + (offset & mask)] = data;
|
snes_ram[0xb06000 + (offset & mask)] = data;
|
||||||
}
|
}
|
||||||
else /* Area in 0x6000-0x8000 && offset < 0x300000 is Reserved! */
|
else /* Area in 0x6000-0x8000 && offset < 0x300000 is Reserved! */
|
||||||
logerror("Attempt to write to reserved address: %X\n", offset + 0x800000);
|
logerror("Attempt to write to reserved address: %X\n", offset + 0x800000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1483,7 +1483,7 @@ WRITE8_HANDLER( snes_w_bank7 )
|
|||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
|
|
||||||
Driver Init
|
Driver Init
|
||||||
|
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
@ -1643,21 +1643,21 @@ DRIVER_INIT( snes )
|
|||||||
total_blocks = (memory_region_length(machine, "user3") / 0x8000);
|
total_blocks = (memory_region_length(machine, "user3") / 0x8000);
|
||||||
read_blocks = 0;
|
read_blocks = 0;
|
||||||
|
|
||||||
/* Loading all the data blocks from cart, we only partially cover banks 0x00 to 0x7f. Therefore, we
|
/* Loading all the data blocks from cart, we only partially cover banks 0x00 to 0x7f. Therefore, we
|
||||||
* have to mirror the blocks until we reach the end. E.g. for a 11Mbits image (44 blocks), we proceed
|
* have to mirror the blocks until we reach the end. E.g. for a 11Mbits image (44 blocks), we proceed
|
||||||
* as follows:
|
* as follows:
|
||||||
* 11 Mbits = 8 Mbits (blocks 1->32) + 2 Mbits (blocks 33->40) + 1 Mbit (blocks 41->44).
|
* 11 Mbits = 8 Mbits (blocks 1->32) + 2 Mbits (blocks 33->40) + 1 Mbit (blocks 41->44).
|
||||||
* Hence, we fill memory up to 16 Mbits (banks 0x00 to 0x3f) mirroring the final part:
|
* Hence, we fill memory up to 16 Mbits (banks 0x00 to 0x3f) mirroring the final part:
|
||||||
* 8 Mbits (blocks 1->32) + 2 Mbits (blocks 33->40) + 1 Mbit (blocks 41->44) + 1 Mbit (blocks 41->44)
|
* 8 Mbits (blocks 1->32) + 2 Mbits (blocks 33->40) + 1 Mbit (blocks 41->44) + 1 Mbit (blocks 41->44)
|
||||||
* + 2 Mbits (blocks 33->40) + 1 Mbit (blocks 41->44) + 1 Mbit (blocks 41->44).
|
* + 2 Mbits (blocks 33->40) + 1 Mbit (blocks 41->44) + 1 Mbit (blocks 41->44).
|
||||||
* And we repeat the same blocks in the second half of the banks (banks 0x40 to 0x7f).
|
* And we repeat the same blocks in the second half of the banks (banks 0x40 to 0x7f).
|
||||||
* This is likely what happens in the real SNES as well, because the unit cannot be aware of the exact
|
* This is likely what happens in the real SNES as well, because the unit cannot be aware of the exact
|
||||||
* size of data in the cart (procedure confirmed by byuu)
|
* size of data in the cart (procedure confirmed by byuu)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* LoROM carts load data in banks 0x00 to 0x7f at address 0x8000 (actually up to 0x7d, because 0x7e and
|
/* LoROM carts load data in banks 0x00 to 0x7f at address 0x8000 (actually up to 0x7d, because 0x7e and
|
||||||
* 0x7f are overwritten by WRAM). Each block is also mirrored in banks 0x80 to 0xff (up to 0xff for real)
|
* 0x7f are overwritten by WRAM). Each block is also mirrored in banks 0x80 to 0xff (up to 0xff for real)
|
||||||
*/
|
*/
|
||||||
while (read_blocks < 128 && read_blocks < total_blocks)
|
while (read_blocks < 128 && read_blocks < total_blocks)
|
||||||
{
|
{
|
||||||
/* Loading data */
|
/* Loading data */
|
||||||
@ -1708,10 +1708,10 @@ DRIVER_INIT( snes_hirom )
|
|||||||
|
|
||||||
/* See above for details about the way we fill banks 0x00 to 0x7f */
|
/* See above for details about the way we fill banks 0x00 to 0x7f */
|
||||||
|
|
||||||
/* HiROM carts load data in banks 0xc0 to 0xff. Each bank is fully mirrored in banks 0x40 to 0x7f
|
/* HiROM carts load data in banks 0xc0 to 0xff. Each bank is fully mirrored in banks 0x40 to 0x7f
|
||||||
* (actually up to 0x7d, because 0x7e and 0x7f are overwritten by WRAM). The top half (address
|
* (actually up to 0x7d, because 0x7e and 0x7f are overwritten by WRAM). The top half (address
|
||||||
* range 0x8000 - 0xffff) of each bank is also mirrored in banks 0x00 to 0x3f and 0x80 to 0xbf.
|
* range 0x8000 - 0xffff) of each bank is also mirrored in banks 0x00 to 0x3f and 0x80 to 0xbf.
|
||||||
*/
|
*/
|
||||||
while (read_blocks < 64 && read_blocks < total_blocks)
|
while (read_blocks < 64 && read_blocks < total_blocks)
|
||||||
{
|
{
|
||||||
/* Loading data */
|
/* Loading data */
|
||||||
@ -1750,7 +1750,7 @@ DRIVER_INIT( snes_hirom )
|
|||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
|
|
||||||
HDMA
|
HDMA
|
||||||
|
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ WRITE8_HANDLER( gottlieb_laserdisc_video_control_w )
|
|||||||
/* bit 3 genlock control (1 = show laserdisc image) */
|
/* bit 3 genlock control (1 = show laserdisc image) */
|
||||||
laserdisc_overlay_enable(laserdisc, (data & 0x04) ? TRUE : FALSE);
|
laserdisc_overlay_enable(laserdisc, (data & 0x04) ? TRUE : FALSE);
|
||||||
laserdisc_video_enable(laserdisc, ((data & 0x0c) == 0x0c) ? TRUE : FALSE);
|
laserdisc_video_enable(laserdisc, ((data & 0x0c) == 0x0c) ? TRUE : FALSE);
|
||||||
|
|
||||||
/* configure the palette if the laserdisc is enabled */
|
/* configure the palette if the laserdisc is enabled */
|
||||||
transparent0 = (data >> 3) & 1;
|
transparent0 = (data >> 3) & 1;
|
||||||
gottlieb_paletteram_w(machine, 0, paletteram[0]);
|
gottlieb_paletteram_w(machine, 0, paletteram[0]);
|
||||||
|
@ -233,7 +233,7 @@ static int read_chd(void *file, int frame, bitmap_t *bitmap, INT16 *lsound, INT1
|
|||||||
*samples = 0;
|
*samples = 0;
|
||||||
for (fieldnum = 0; fieldnum < interlace_factor; fieldnum++)
|
for (fieldnum = 0; fieldnum < interlace_factor; fieldnum++)
|
||||||
{
|
{
|
||||||
/* make a fake bitmap for this field */
|
/* make a fake bitmap for this field */
|
||||||
fakebitmap = *bitmap;
|
fakebitmap = *bitmap;
|
||||||
fakebitmap.base = BITMAP_ADDR16(&fakebitmap, fieldnum, 0);
|
fakebitmap.base = BITMAP_ADDR16(&fakebitmap, fieldnum, 0);
|
||||||
fakebitmap.rowpixels *= interlace_factor;
|
fakebitmap.rowpixels *= interlace_factor;
|
||||||
@ -253,7 +253,7 @@ static int read_chd(void *file, int frame, bitmap_t *bitmap, INT16 *lsound, INT1
|
|||||||
chderr = chd_read(file, frame * interlace_factor + fieldnum, NULL);
|
chderr = chd_read(file, frame * interlace_factor + fieldnum, NULL);
|
||||||
if (chderr != CHDERR_NONE)
|
if (chderr != CHDERR_NONE)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
/* account for samples read */
|
/* account for samples read */
|
||||||
*samples += numsamples;
|
*samples += numsamples;
|
||||||
}
|
}
|
||||||
@ -377,7 +377,7 @@ static void verify_video(int frame, bitmap_t *bitmap)
|
|||||||
|
|
||||||
/* remember the frame number */
|
/* remember the frame number */
|
||||||
video_last_frame = framenum;
|
video_last_frame = framenum;
|
||||||
|
|
||||||
/* if we've seen a white flag before, but it's not here, warn */
|
/* if we've seen a white flag before, but it's not here, warn */
|
||||||
if (video_first_whitefield != -1 && !metadata.white)
|
if (video_first_whitefield != -1 && !metadata.white)
|
||||||
printf("%6d.%d: detected frame number but no white flag (WARNING)\n", frame, fieldnum);
|
printf("%6d.%d: detected frame number but no white flag (WARNING)\n", frame, fieldnum);
|
||||||
@ -392,12 +392,12 @@ static void verify_video(int frame, bitmap_t *bitmap)
|
|||||||
video_first_whitefield = field;
|
video_first_whitefield = field;
|
||||||
printf("%6d.%d: first white flag seen\n", frame, fieldnum);
|
printf("%6d.%d: first white flag seen\n", frame, fieldnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if we've seen frame numbers before, but not here, warn */
|
/* if we've seen frame numbers before, but not here, warn */
|
||||||
if (video_last_frame != -1 && (metadata.line1718 & VBI_MASK_CAV_PICTURE) != VBI_CODE_CAV_PICTURE)
|
if (video_last_frame != -1 && (metadata.line1718 & VBI_MASK_CAV_PICTURE) != VBI_CODE_CAV_PICTURE)
|
||||||
printf("%6d.%d: detected white flag but no frame number (WARNING)\n", frame, fieldnum);
|
printf("%6d.%d: detected white flag but no frame number (WARNING)\n", frame, fieldnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if this is the start of a frame, handle cadence */
|
/* if this is the start of a frame, handle cadence */
|
||||||
if (metadata.white || (metadata.line1718 & VBI_MASK_CAV_PICTURE) == VBI_CODE_CAV_PICTURE)
|
if (metadata.white || (metadata.line1718 & VBI_MASK_CAV_PICTURE) == VBI_CODE_CAV_PICTURE)
|
||||||
{
|
{
|
||||||
|
@ -9,4 +9,4 @@
|
|||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
const char build_version[] = "0.127u5 ("__DATE__")";
|
const char build_version[] = "0.127u6 ("__DATE__")";
|
||||||
|
Loading…
Reference in New Issue
Block a user