Removed generic.videoram and generic.videoram_size. These generics

have no core use, they are simply there for the convenience of drivers.  
Now that drivers are required to have devices, the data should move there.
[Atari Ace]

---------- Forwarded message ----------
From: Atari Ace <atari_ace@frontier.com>
Date: Sun, Sep 5, 2010 at 4:45 PM
Subject: [patch] Eliminate generic.videoramm generic.videoram_size
To: submit@mamedev.org
Cc: atariace@hotmail.com


Hi mamedev,

This set of patches removes generic.videoram and
generic.videoram_size.  These generics have no core use, they are
simply there for the convenience of drivers.  Now that drivers are
required to have devices, the data should move there.

The first patch sets the stage for the rest of the patch.  It includes
several changes.
1.  It replaces all the uses of generic.videoram_size with appropriate
constants.
2.  It eliminates the write handlers from pc_video.c.  These are
unused in MAME and MESS appears to have a private copy.
3.  It splits some drivers:
 a.  It separates mcr68 from the mcr driver, mostly by dividing
machine/mcr.c.
 b.  It separates naughtyb from the phoenix driver by introducing an
audio/pleiads.h include.
 c.  It replaces video/system1.h with includes/system1.h.
4.  It fixes some videoram related bugs.
 a.  balsente, mole didn't need videoram.
 b.  sbowling has a dangling reference to videoram from an earlier
driver_data conversion
5.  It expands some namcona functions to multiple lines so that later
scripted-edits look sensible.

The second patch is generated by vram01_1.pl.  It introduces videoram
local variables in function that use videoram read-only and removes
AM_SIZE_GENERIC(videoram).

The third patch is generated by vram01_2.pl.  It replaces all
occurances of generic.videoram with state->videoram,
introducing/modifying driver_device classes as needed.

The fourth patch then actually removes the generics, and fixes one
issue the scripts didn't handle.

~aa
This commit is contained in:
Aaron Giles 2010-09-08 15:45:46 +00:00
parent f4aa843155
commit 06e995de5f
195 changed files with 2328 additions and 1215 deletions

5
.gitattributes vendored
View File

@ -2756,6 +2756,7 @@ src/mame/includes/markham.h svneol=native#text/plain
src/mame/includes/matmania.h svneol=native#text/plain
src/mame/includes/mcatadv.h svneol=native#text/plain
src/mame/includes/mcr.h svneol=native#text/plain
src/mame/includes/mcr68.h svneol=native#text/plain
src/mame/includes/meadows.h svneol=native#text/plain
src/mame/includes/megadriv.h svneol=native#text/plain
src/mame/includes/megasys1.h svneol=native#text/plain
@ -2806,6 +2807,7 @@ src/mame/includes/namcos22.h svneol=native#text/plain
src/mame/includes/namcos86.h svneol=native#text/plain
src/mame/includes/naomi.h svneol=native#text/plain
src/mame/includes/naomibd.h svneol=native#text/plain
src/mame/includes/naughtyb.h svneol=native#text/plain
src/mame/includes/nb1413m3.h svneol=native#text/plain
src/mame/includes/nbmj8688.h svneol=native#text/plain
src/mame/includes/nbmj8891.h svneol=native#text/plain
@ -2978,6 +2980,7 @@ src/mame/includes/suprnova.h svneol=native#text/plain
src/mame/includes/suprridr.h svneol=native#text/plain
src/mame/includes/suprslam.h svneol=native#text/plain
src/mame/includes/surpratk.h svneol=native#text/plain
src/mame/includes/system1.h svneol=native#text/plain
src/mame/includes/system16.h svneol=native#text/plain
src/mame/includes/tagteam.h svneol=native#text/plain
src/mame/includes/tail2nos.h svneol=native#text/plain
@ -3309,6 +3312,7 @@ src/mame/machine/mathbox.h svneol=native#text/plain
src/mame/machine/mc8123.c svneol=native#text/plain
src/mame/machine/mc8123.h svneol=native#text/plain
src/mame/machine/mcr.c svneol=native#text/plain
src/mame/machine/mcr68.c svneol=native#text/plain
src/mame/machine/meters.c svneol=native#text/plain
src/mame/machine/meters.h svneol=native#text/plain
src/mame/machine/mexico86.c svneol=native#text/plain
@ -4041,7 +4045,6 @@ src/mame/video/suprridr.c svneol=native#text/plain
src/mame/video/suprslam.c svneol=native#text/plain
src/mame/video/surpratk.c svneol=native#text/plain
src/mame/video/system1.c svneol=native#text/plain
src/mame/video/system1.h svneol=native#text/plain
src/mame/video/system16.c svneol=native#text/plain
src/mame/video/tagteam.c svneol=native#text/plain
src/mame/video/tail2nos.c svneol=native#text/plain

View File

@ -278,8 +278,6 @@ private:
// holds generic pointers that are commonly used
struct generic_pointers
{
generic_ptr videoram; // videoram
UINT32 videoram_size;
generic_ptr spriteram; // spriteram
UINT32 spriteram_size;
generic_ptr spriteram2; // secondary spriteram

View File

@ -48,9 +48,7 @@ void pc_video_start(running_machine *machine,
pc_current_width = -1;
machine->generic.tmpbitmap = NULL;
machine->generic.videoram_size = vramsize;
if (machine->generic.videoram_size)
if (vramsize)
{
video_start_generic_bitmapped(machine);
}
@ -102,23 +100,3 @@ VIDEO_UPDATE( pc_video )
}
return rc;
}
WRITE8_HANDLER ( pc_video_videoram_w )
{
if (space->machine->generic.videoram.u8 && space->machine->generic.videoram.u8[offset] != data)
{
space->machine->generic.videoram.u8[offset] = data;
pc_anythingdirty = 1;
}
}
WRITE16_HANDLER( pc_video_videoram16le_w ) { write16le_with_write8_handler(pc_video_videoram_w, space, offset, data, mem_mask); }
WRITE32_HANDLER( pc_video_videoram32_w )
{
COMBINE_DATA(space->machine->generic.videoram.u32 + offset);
pc_anythingdirty = 1;
}

View File

@ -17,8 +17,4 @@ void pc_video_start(running_machine *machine,
VIDEO_UPDATE( pc_video );
WRITE8_HANDLER( pc_video_videoram_w );
WRITE16_HANDLER( pc_video_videoram16le_w );
WRITE32_HANDLER( pc_video_videoram32_w );
#endif /* PC_VIDEO_H */

View File

@ -9,7 +9,7 @@
#include "emu.h"
#include "streams.h"
#include "sound/tms36xx.h"
#include "includes/phoenix.h"
#include "audio/pleiads.h"
#define VMIN 0
#define VMAX 32767

View File

@ -580,7 +580,7 @@ static WRITE8_HANDLER( ampoker2_watchdog_reset_w )
static ADDRESS_MAP_START( ampoker2_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(ampoker2_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(ampoker2_videoram_w) AM_BASE_MEMBER(ampoker2_state, videoram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( ampoker2_io_map, ADDRESS_SPACE_IO, 8 )
@ -1050,7 +1050,7 @@ static const ay8910_interface ay8910_config =
* Machine Driver *
*************************/
static MACHINE_CONFIG_START( ampoker2, driver_device )
static MACHINE_CONFIG_START( ampoker2, ampoker2_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, MASTER_CLOCK/2) /* 3 MHz */

View File

@ -584,7 +584,7 @@ static WRITE8_HANDLER( tenpindx_lights_w )
static ADDRESS_MAP_START( seawolf2_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_MEMBER(astrocde_state, videoram)
AM_RANGE(0xc000, 0xc3ff) AM_RAM
ADDRESS_MAP_END
@ -592,14 +592,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ebases_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_MEMBER(astrocde_state, videoram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( spacezap_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_MEMBER(astrocde_state, videoram)
AM_RANGE(0xd000, 0xd03f) AM_READWRITE(protected_ram_r, protected_ram_w) AM_BASE(&protected_ram)
AM_RANGE(0xd040, 0xd7ff) AM_RAM
ADDRESS_MAP_END
@ -608,7 +608,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( wow_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_MEMBER(astrocde_state, videoram)
AM_RANGE(0x8000, 0xcfff) AM_ROM
AM_RANGE(0xd000, 0xd03f) AM_READWRITE(protected_ram_r, protected_ram_w) AM_BASE(&protected_ram)
AM_RANGE(0xd040, 0xdfff) AM_RAM
@ -618,7 +618,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( robby_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_MEMBER(astrocde_state, videoram)
AM_RANGE(0x8000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(protected_ram_r, protected_ram_w) AM_BASE(&protected_ram)
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
@ -1271,7 +1271,7 @@ static const z80_daisy_config tenpin_daisy_chain[] =
*
*************************************/
static MACHINE_CONFIG_START( astrocade_base, driver_device )
static MACHINE_CONFIG_START( astrocade_base, astrocde_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, ASTROCADE_CLOCK/4)

View File

@ -207,7 +207,7 @@ static WRITE8_HANDLER( nvram_enable_w )
/* full address map derived from schematics */
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(atetris_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(atetris_videoram_w) AM_BASE_MEMBER(atetris_state, videoram)
AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0300) AM_RAM_WRITE(paletteram_RRRGGGBB_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x2400, 0x25ff) AM_MIRROR(0x0200) AM_RAM_WRITE(nvram_w) AM_SHARE("nvram")
AM_RANGE(0x2800, 0x280f) AM_MIRROR(0x03e0) AM_DEVREADWRITE("pokey1", pokey_r, pokey_w)
@ -224,7 +224,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( atetrisb2_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(atetris_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(atetris_videoram_w) AM_BASE_MEMBER(atetris_state, videoram)
AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(paletteram_RRRGGGBB_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x2400, 0x25ff) AM_RAM_WRITE(nvram_w) AM_SHARE("nvram")
AM_RANGE(0x2802, 0x2802) AM_DEVWRITE("sn1", sn76496_w)
@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( atetris, atetris_state )
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( atetrisb2, driver_device )
static MACHINE_CONFIG_START( atetrisb2, atetris_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502,BOOTLEG_CLOCK/8)

View File

@ -244,7 +244,7 @@ DIP locations verified for:
static ADDRESS_MAP_START( cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0x0800, 0x7fff) AM_RAM_WRITE(balsente_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x0800, 0x7fff) AM_RAM_WRITE(balsente_videoram_w)
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(balsente_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x9000, 0x9007) AM_WRITE(balsente_adc_select_w)
AM_RANGE(0x9400, 0x9401) AM_READ(balsente_adc_data_r)

View File

@ -15,7 +15,7 @@
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xbfff) AM_RAM AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x0000, 0xbfff) AM_RAM AM_BASE_MEMBER(beezer_state, videoram)
AM_RANGE(0xc000, 0xcfff) AM_ROMBANK("bank1")
AM_RANGE(0xd000, 0xffff) AM_ROM AM_WRITE(beezer_bankswitch_w)
ADDRESS_MAP_END
@ -72,7 +72,7 @@ static INPUT_PORTS_START( beezer )
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
INPUT_PORTS_END
static MACHINE_CONFIG_START( beezer, driver_device )
static MACHINE_CONFIG_START( beezer, beezer_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6809, 1000000) /* 1 MHz */

View File

@ -674,7 +674,7 @@ static READ8_DEVICE_HANDLER( caterplr_AY8910_r )
static ADDRESS_MAP_START( centiped_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE(&rambase)
AM_RANGE(0x0400, 0x07bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0400, 0x07bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, videoram)
AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("DSW1") /* DSW1 */
AM_RANGE(0x0801, 0x0801) AM_READ_PORT("DSW2") /* DSW2 */
@ -699,7 +699,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( centipdb_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x4000) AM_RAM
AM_RANGE(0x0400, 0x07bf) AM_MIRROR(0x4000) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0400, 0x07bf) AM_MIRROR(0x4000) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, videoram)
AM_RANGE(0x07c0, 0x07ff) AM_MIRROR(0x4000) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0x0800, 0x0800) AM_MIRROR(0x4000) AM_READ_PORT("DSW1") /* DSW1 */
AM_RANGE(0x0801, 0x0801) AM_MIRROR(0x4000) AM_READ_PORT("DSW2") /* DSW2 */
@ -735,7 +735,7 @@ static ADDRESS_MAP_START( milliped_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x040f) AM_DEVREADWRITE("pokey", pokey_r, pokey_w)
AM_RANGE(0x0800, 0x080f) AM_DEVREADWRITE("pokey2", pokey_r, pokey_w)
AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, videoram)
AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0x2000, 0x2000) AM_READ(centiped_IN0_r)
AM_RANGE(0x2001, 0x2001) AM_READ(milliped_IN1_r)
@ -766,7 +766,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( warlords_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0400, 0x07bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, videoram)
AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("DSW1") /* DSW1 */
AM_RANGE(0x0801, 0x0801) AM_READ_PORT("DSW2") /* DSW2 */
@ -793,7 +793,7 @@ static ADDRESS_MAP_START( mazeinv_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x040f) AM_DEVREADWRITE("pokey", pokey_r, pokey_w)
AM_RANGE(0x0800, 0x080f) AM_DEVREADWRITE("pokey2", pokey_r, pokey_w)
AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, videoram)
AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("IN0")
AM_RANGE(0x2001, 0x2001) AM_READ_PORT("IN1")
@ -837,7 +837,7 @@ static ADDRESS_MAP_START( bullsdrt_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1487, 0x1487) AM_MIRROR(0x6000) AM_WRITE(centiped_flip_screen_w)
AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x6000) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_NOP
AM_RANGE(0x1800, 0x1bbf) AM_MIRROR(0x6000) AM_WRITE(centiped_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x1800, 0x1bbf) AM_MIRROR(0x6000) AM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, videoram)
AM_RANGE(0x1bc0, 0x1bff) AM_MIRROR(0x6000) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x2000, 0x2fff) AM_ROM
@ -1586,7 +1586,7 @@ static const pokey_interface warlords_pokey_interface =
*
*************************************/
static MACHINE_CONFIG_START( centiped, driver_device )
static MACHINE_CONFIG_START( centiped, centiped_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, 12096000/8) /* 1.512 MHz (slows down to 0.75MHz while accessing playfield RAM) */
@ -1710,7 +1710,7 @@ static MACHINE_CONFIG_DERIVED( mazeinv, milliped )
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( bullsdrt, driver_device )
static MACHINE_CONFIG_START( bullsdrt, centiped_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", S2650, 12096000/8)

View File

@ -168,7 +168,7 @@ static WRITE8_HANDLER( cloak_nvram_enable_w )
static ADDRESS_MAP_START( master_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(cloak_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(cloak_videoram_w) AM_BASE_MEMBER(cloak_state, videoram)
AM_RANGE(0x0800, 0x0fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1000, 0x100f) AM_DEVREADWRITE("pokey1", pokey_r, pokey_w) /* DSW0 also */
AM_RANGE(0x1800, 0x180f) AM_DEVREADWRITE("pokey2", pokey_r, pokey_w) /* DSW1 also */
@ -331,7 +331,7 @@ static const pokey_interface pokey_interface_2 =
*
*************************************/
static MACHINE_CONFIG_START( cloak, driver_device )
static MACHINE_CONFIG_START( cloak, cloak_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, 1000000) /* 1 MHz ???? */

View File

@ -30,6 +30,17 @@ CYC1399
#include "emu.h"
#include "cpu/m6502/m6502.h"
class cmmb_state : public driver_device
{
public:
cmmb_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
static VIDEO_START( cmmb )
{
@ -37,6 +48,8 @@ static VIDEO_START( cmmb )
static VIDEO_UPDATE( cmmb )
{
cmmb_state *state = screen->machine->driver_data<cmmb_state>();
UINT8 *videoram = state->videoram;
const gfx_element *gfx = screen->machine->gfx[0];
int count = 0x00000;
@ -47,8 +60,8 @@ static VIDEO_UPDATE( cmmb )
{
for (x=0;x<32;x++)
{
int tile = screen->machine->generic.videoram.u8[count] & 0x3f;
int colour = (screen->machine->generic.videoram.u8[count] & 0xc0)>>6;
int tile = videoram[count] & 0x3f;
int colour = (videoram[count] & 0xc0)>>6;
drawgfx_opaque(bitmap,cliprect,gfx,tile,colour,0,0,x*8,y*8);
count++;
@ -142,7 +155,7 @@ static READ8_HANDLER( kludge_r )
static ADDRESS_MAP_START( cmmb_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x01ff) AM_RAM /* zero page address */
// AM_RANGE(0x13c0, 0x13ff) AM_RAM //spriteram
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_BASE_MEMBER(cmmb_state, videoram)
AM_RANGE(0x2480, 0x249f) AM_RAM_WRITE(cmmb_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x4000, 0x400f) AM_READWRITE(cmmb_input_r,cmmb_output_w) //i/o
AM_RANGE(0x4900, 0x4900) AM_READ(kludge_r)
@ -270,7 +283,7 @@ static MACHINE_RESET( cmmb )
{
}
static MACHINE_CONFIG_START( cmmb, driver_device )
static MACHINE_CONFIG_START( cmmb, cmmb_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu",M65C02,8000000/2) // unknown clock

View File

@ -29,6 +29,17 @@ x
#include "sound/ay8910.h"
class coinmstr_state : public driver_device
{
public:
coinmstr_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
static UINT8 *attr_ram1, *attr_ram2, *attr_ram3;
static tilemap_t *bg_tilemap;
@ -36,7 +47,9 @@ static UINT8 question_adr[4];
static WRITE8_HANDLER( quizmstr_bg_w )
{
space->machine->generic.videoram.u8[offset] = data;
coinmstr_state *state = space->machine->driver_data<coinmstr_state>();
UINT8 *videoram = state->videoram;
videoram[offset] = data;
if(offset >= 0x0240)
tilemap_mark_tile_dirty(bg_tilemap,offset - 0x0240);
@ -184,7 +197,7 @@ static READ8_HANDLER( ff_r )
static ADDRESS_MAP_START( coinmstr_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(quizmstr_bg_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(quizmstr_bg_w) AM_BASE_MEMBER(coinmstr_state, videoram)
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(quizmstr_attr1_w) AM_BASE(&attr_ram1)
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(quizmstr_attr2_w) AM_BASE(&attr_ram2)
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(quizmstr_attr3_w) AM_BASE(&attr_ram3)
@ -878,7 +891,9 @@ GFXDECODE_END
static TILE_GET_INFO( get_bg_tile_info )
{
int tile = machine->generic.videoram.u8[tile_index + 0x0240];
coinmstr_state *state = machine->driver_data<coinmstr_state>();
UINT8 *videoram = state->videoram;
int tile = videoram[tile_index + 0x0240];
int color = tile_index;
tile |= (attr_ram1[tile_index + 0x0240] & 0x80) << 1;
@ -980,7 +995,7 @@ static const mc6845_interface h46505_intf =
};
static MACHINE_CONFIG_START( coinmstr, driver_device )
static MACHINE_CONFIG_START( coinmstr, coinmstr_state )
MDRV_CPU_ADD("maincpu",Z80,8000000) // ?
MDRV_CPU_PROGRAM_MAP(coinmstr_map)
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)

View File

@ -70,7 +70,7 @@ static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd681, 0xd681) AM_READ(t5182_sharedram_semaphore_snd_r)
AM_RANGE(0xd682, 0xd682) AM_WRITE(t5182_sharedram_semaphore_main_acquire_w)
AM_RANGE(0xd683, 0xd683) AM_WRITE(t5182_sharedram_semaphore_main_release_w)
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_BASE_MEMBER(darkmist_state, videoram)
AM_RANGE(0xe000, 0xefff) AM_RAM AM_BASE(&darkmist_workram)
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
ADDRESS_MAP_END
@ -240,7 +240,7 @@ static INTERRUPT_GEN( darkmist_interrupt )
static MACHINE_CONFIG_START( darkmist, driver_device )
static MACHINE_CONFIG_START( darkmist, darkmist_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80,4000000) /* ? MHz */
MDRV_CPU_PROGRAM_MAP(memmap)

View File

@ -64,7 +64,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x05000, 0x05fff) AM_WRITEONLY
AM_RANGE(0x06000, 0x0600f) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
AM_RANGE(0x06010, 0x07fff) AM_WRITEONLY
AM_RANGE(0x08000, 0x087ff) AM_WRITE(deadang_text_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x08000, 0x087ff) AM_WRITE(deadang_text_w) AM_BASE_MEMBER(deadang_state, videoram)
AM_RANGE(0x08800, 0x0bfff) AM_WRITEONLY
AM_RANGE(0x0a000, 0x0a001) AM_READ_PORT("P1_P2")
AM_RANGE(0x0a002, 0x0a003) AM_READ_PORT("DSW")
@ -217,7 +217,7 @@ static INTERRUPT_GEN( deadang_interrupt )
/* Machine Drivers */
static MACHINE_CONFIG_START( deadang, driver_device )
static MACHINE_CONFIG_START( deadang, deadang_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", V30,XTAL_16MHz/2) /* Sony 8623h9 CXQ70116D-8 (V30 compatible) */

View File

@ -106,12 +106,25 @@ Sound processor - 6502
#include "sound/ay8910.h"
#include "machine/laserdsc.h"
class deco_ld_state : public driver_device
{
public:
deco_ld_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
static UINT8 vram_bank;
static running_device *laserdisc;
static UINT8 laserdisc_data;
static VIDEO_UPDATE( rblaster )
{
deco_ld_state *state = screen->machine->driver_data<deco_ld_state>();
UINT8 *videoram = state->videoram;
const gfx_element *gfx = screen->machine->gfx[0];
int count = 0x0000;
@ -121,7 +134,7 @@ static VIDEO_UPDATE( rblaster )
{
for (x=0;x<32;x++)
{
int tile = screen->machine->generic.videoram.u8[count];
int tile = videoram[count];
int colour = (vram_bank & 0x7);
drawgfx_opaque(bitmap,cliprect,gfx,tile,colour,0,0,x*8,y*8);
@ -177,7 +190,7 @@ static ADDRESS_MAP_START( begas_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1007, 0x1007) AM_READWRITE(laserdisc_r,laserdisc_w) // ld data
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(paletteram_RRRGGGBB_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE_MEMBER(deco_ld_state, videoram)
AM_RANGE(0x3000, 0x3fff) AM_RAM
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
@ -196,7 +209,7 @@ static ADDRESS_MAP_START( cobra_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(paletteram_RRRGGGBB_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x2000, 0x2fff) AM_RAM
AM_RANGE(0x3000, 0x37ff) AM_RAM //vram attr?
AM_RANGE(0x3800, 0x3fff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x3800, 0x3fff) AM_RAM AM_BASE_MEMBER(deco_ld_state, videoram)
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
@ -210,7 +223,7 @@ static ADDRESS_MAP_START( rblaster_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1006, 0x1006) AM_NOP //ld status / command
AM_RANGE(0x1007, 0x1007) AM_READWRITE(laserdisc_r,laserdisc_w) // ld data
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(paletteram_RRRGGGBB_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE_MEMBER(deco_ld_state, videoram)
AM_RANGE(0x3000, 0x3fff) AM_RAM
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
@ -487,7 +500,7 @@ static MACHINE_START( rblaster )
laserdisc = machine->device("laserdisc");
}
static MACHINE_CONFIG_START( rblaster, driver_device )
static MACHINE_CONFIG_START( rblaster, deco_ld_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu",M6502,8000000/2)

View File

@ -44,6 +44,17 @@
#include "dlair.lh"
class dlair_state : public driver_device
{
public:
dlair_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*************************************
*
@ -161,13 +172,15 @@ static PALETTE_INIT( dleuro )
static VIDEO_UPDATE( dleuro )
{
dlair_state *state = screen->machine->driver_data<dlair_state>();
UINT8 *videoram = state->videoram;
int x, y;
/* redraw the overlay */
for (y = 0; y < 32; y++)
for (x = 0; x < 32; x++)
{
UINT8 *base = &screen->machine->generic.videoram.u8[y * 64 + x * 2 + 1];
UINT8 *base = &videoram[y * 64 + x * 2 + 1];
drawgfx_opaque(bitmap, cliprect, screen->machine->gfx[0], base[0], base[1], 0, 0, 10 * x, 16 * y);
}
@ -378,7 +391,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dleuro_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa7ff) AM_MIRROR(0x1800) AM_RAM
AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x1800) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x1800) AM_RAM AM_BASE_MEMBER(dlair_state, videoram)
AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1f47) // WT LED 1
AM_RANGE(0xe008, 0xe008) AM_MIRROR(0x1f47) // WT LED 2
AM_RANGE(0xe010, 0xe010) AM_MIRROR(0x1f47) AM_WRITE(led_den1_w) // WT EXT LED 1
@ -669,7 +682,7 @@ static const ay8910_interface ay8910_config =
*
*************************************/
static MACHINE_CONFIG_START( dlair_base, driver_device )
static MACHINE_CONFIG_START( dlair_base, dlair_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, MASTER_CLOCK_US/4)
@ -706,7 +719,7 @@ static MACHINE_CONFIG_DERIVED( dlair_ldv1000, dlair_base )
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( dleuro, driver_device )
static MACHINE_CONFIG_START( dleuro, dlair_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, MASTER_CLOCK_EURO/4)

View File

@ -81,7 +81,7 @@ static ADDRESS_MAP_START( master_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0b002, 0x0b003) AM_READ_PORT("DSW")
AM_RANGE(0x0b004, 0x0b005) AM_WRITENOP
AM_RANGE(0x0b006, 0x0b007) AM_WRITE(dynduke_control_w)
AM_RANGE(0x0c000, 0x0c7ff) AM_RAM_WRITE(dynduke_text_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0c000, 0x0c7ff) AM_RAM_WRITE(dynduke_text_w) AM_BASE_MEMBER(dynduke_state, videoram)
AM_RANGE(0x0d000, 0x0d00d) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
AM_RANGE(0xa0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
@ -101,7 +101,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( masterj_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x00000, 0x06fff) AM_RAM
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x08000, 0x087ff) AM_RAM_WRITE(dynduke_text_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x08000, 0x087ff) AM_RAM_WRITE(dynduke_text_w) AM_BASE_MEMBER(dynduke_state, videoram)
AM_RANGE(0x09000, 0x0900d) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
AM_RANGE(0x0c000, 0x0c0ff) AM_RAM AM_BASE(&dynduke_scroll_ram)
AM_RANGE(0x0e000, 0x0efff) AM_RAM AM_SHARE("share1")
@ -270,7 +270,7 @@ static INTERRUPT_GEN( dynduke_interrupt )
/* Machine Driver */
static MACHINE_CONFIG_START( dynduke, driver_device )
static MACHINE_CONFIG_START( dynduke, dynduke_state )
// basic machine hardware
MDRV_CPU_ADD("maincpu", V30, 16000000/2) // NEC V30-8 CPU
MDRV_CPU_PROGRAM_MAP(master_map)

View File

@ -1363,7 +1363,7 @@ static ADDRESS_MAP_START( galaxian_map_base, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0400) AM_RAM
AM_RANGE(0x5000, 0x53ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x5000, 0x53ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, videoram)
AM_RANGE(0x5800, 0x58ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram)
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x07ff) AM_READ_PORT("IN0")
AM_RANGE(0x6000, 0x6001) AM_MIRROR(0x07f8) AM_WRITE(start_lamp_w)
@ -1398,7 +1398,7 @@ static ADDRESS_MAP_START( mooncrst_map_base, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x0400) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, videoram)
AM_RANGE(0x9800, 0x98ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram)
AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x07ff) AM_READ_PORT("IN0")
AM_RANGE(0xa000, 0xa002) AM_MIRROR(0x07f8) AM_WRITE(galaxian_gfxbank_w)
@ -1430,7 +1430,7 @@ static ADDRESS_MAP_START( dambustr_map, ADDRESS_SPACE_PROGRAM, 8 )
// AM_RANGE(0x8000, 0x8000) AM_WRITE(dambustr_bg_color_w)
// AM_RANGE(0x8001, 0x8001) AM_WRITE(dambustr_bg_split_line_w)
AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x0400) AM_RAM
AM_RANGE(0xd000, 0xd3ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xd000, 0xd3ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, videoram)
AM_RANGE(0xd800, 0xd8ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram)
AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x07ff) AM_READ_PORT("IN0")
AM_RANGE(0xe004, 0xe007) AM_MIRROR(0x07f8) AM_WRITE(galaxian_lfo_freq_w)
@ -1452,7 +1452,7 @@ static ADDRESS_MAP_START( theend_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, videoram)
AM_RANGE(0x5000, 0x50ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram)
AM_RANGE(0x6801, 0x6801) AM_MIRROR(0x07f8) AM_WRITE(irq_enable_w)
AM_RANGE(0x6802, 0x6802) AM_MIRROR(0x07f8) AM_WRITE(coin_count_0_w)
@ -1471,7 +1471,7 @@ static ADDRESS_MAP_START( scobra_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x4000) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_MIRROR(0x4400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x8800, 0x8bff) AM_MIRROR(0x4400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, videoram)
AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x4700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram)
AM_RANGE(0x9800, 0x9803) AM_MIRROR(0x47fc) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
AM_RANGE(0xa000, 0xa003) AM_MIRROR(0x47fc) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w)
@ -1492,7 +1492,7 @@ static ADDRESS_MAP_START( frogger_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8800) AM_MIRROR(0x07ff) AM_READ(watchdog_reset_r)
AM_RANGE(0xa800, 0xabff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xa800, 0xabff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, videoram)
AM_RANGE(0xb000, 0xb0ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram)
AM_RANGE(0xb808, 0xb808) AM_MIRROR(0x07e3) AM_WRITE(irq_enable_w)
AM_RANGE(0xb80c, 0xb80c) AM_MIRROR(0x07e3) AM_WRITE(galaxian_flip_screen_y_w)
@ -1508,7 +1508,7 @@ static ADDRESS_MAP_START( turtles_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x4000) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x4400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x4400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, videoram)
AM_RANGE(0x9800, 0x98ff) AM_MIRROR(0x4700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram)
AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x47c7) AM_WRITE(scramble_background_red_w)
AM_RANGE(0xa008, 0xa008) AM_MIRROR(0x47c7) AM_WRITE(irq_enable_w)
@ -1529,7 +1529,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sfx_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, videoram)
AM_RANGE(0x5000, 0x50ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram)
AM_RANGE(0x6800, 0x6800) AM_MIRROR(0x07f8) AM_WRITE(scramble_background_red_w)
AM_RANGE(0x6801, 0x6801) AM_MIRROR(0x07f8) AM_WRITE(irq_enable_w)
@ -1558,7 +1558,7 @@ static ADDRESS_MAP_START( jumpbug_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, videoram)
AM_RANGE(0x5000, 0x50ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram)
AM_RANGE(0x5800, 0x5800) AM_MIRROR(0x00ff) AM_DEVWRITE("aysnd", ay8910_data_w)
AM_RANGE(0x5900, 0x5900) AM_MIRROR(0x00ff) AM_DEVWRITE("aysnd", ay8910_address_w)
@ -1580,7 +1580,7 @@ static ADDRESS_MAP_START( frogf_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x8800, 0x8bff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, videoram)
AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram)
AM_RANGE(0xa802, 0xa802) AM_MIRROR(0x07f1) AM_WRITE(galaxian_flip_screen_x_w)
AM_RANGE(0xa804, 0xa804) AM_MIRROR(0x07f1) AM_WRITE(irq_enable_w)
@ -1597,7 +1597,7 @@ static ADDRESS_MAP_START( mshuttle_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, videoram)
AM_RANGE(0x9800, 0x98ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa000, 0xa000) AM_WRITE(irq_enable_w)
@ -1956,7 +1956,7 @@ DISCRETE_SOUND_END
*
*************************************/
static MACHINE_CONFIG_START( galaxian_base, driver_device )
static MACHINE_CONFIG_START( galaxian_base, galaxian_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, GALAXIAN_PIXEL_CLOCK/3/2)

View File

@ -339,7 +339,7 @@ static const ppi8255_interface ppi8255_intf =
static ADDRESS_MAP_START( gat_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM_WRITE(gat_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x6000, 0x63ff) AM_RAM_WRITE(gat_videoram_w) AM_BASE_MEMBER(gatron_state, videoram)
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("snsnd", sn76496_w) /* PSG */
AM_RANGE(0xe000, 0xe000) AM_WRITE(output_port_0_w) /* lamps */
@ -432,7 +432,7 @@ GFXDECODE_END
* Machine Drivers *
*************************/
static MACHINE_CONFIG_START( gat, driver_device )
static MACHINE_CONFIG_START( gat, gatron_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, MASTER_CLOCK/24) /* 666.66 kHz, guess */

View File

@ -717,7 +717,7 @@ static ADDRESS_MAP_START( reactor_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xffff)
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0f00) AM_WRITEONLY AM_BASE_GENERIC(spriteram) /* FRSEL */
AM_RANGE(0x3000, 0x33ff) AM_MIRROR(0x0c00) AM_RAM_WRITE(gottlieb_videoram_w) AM_BASE_GENERIC(videoram) /* BRSEL */
AM_RANGE(0x3000, 0x33ff) AM_MIRROR(0x0c00) AM_RAM_WRITE(gottlieb_videoram_w) AM_BASE_MEMBER(gottlieb_state, videoram) /* BRSEL */
AM_RANGE(0x4000, 0x4fff) AM_RAM_WRITE(gottlieb_charram_w) AM_BASE(&gottlieb_charram) /* BOJRSEL1 */
/* AM_RANGE(0x5000, 0x5fff) AM_WRITE() */ /* BOJRSEL2 */
AM_RANGE(0x6000, 0x601f) AM_MIRROR(0x0fe0) AM_WRITE(gottlieb_paletteram_w) AM_BASE_GENERIC(paletteram) /* COLSEL */
@ -740,7 +740,7 @@ static ADDRESS_MAP_START( gottlieb_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1000, 0x1fff) AM_RAM AM_REGION("maincpu", 0x1000) /* or ROM */
AM_RANGE(0x2000, 0x2fff) AM_RAM AM_REGION("maincpu", 0x2000) /* or ROM */
AM_RANGE(0x3000, 0x30ff) AM_MIRROR(0x0700) AM_WRITEONLY AM_BASE_GENERIC(spriteram) /* FRSEL */
AM_RANGE(0x3800, 0x3bff) AM_MIRROR(0x0400) AM_RAM_WRITE(gottlieb_videoram_w) AM_BASE_GENERIC(videoram) /* BRSEL */
AM_RANGE(0x3800, 0x3bff) AM_MIRROR(0x0400) AM_RAM_WRITE(gottlieb_videoram_w) AM_BASE_MEMBER(gottlieb_state, videoram) /* BRSEL */
AM_RANGE(0x4000, 0x4fff) AM_RAM_WRITE(gottlieb_charram_w) AM_BASE(&gottlieb_charram) /* BOJRSEL1 */
AM_RANGE(0x5000, 0x501f) AM_MIRROR(0x07e0) AM_WRITE(gottlieb_paletteram_w) AM_BASE_GENERIC(paletteram) /* COLSEL */
AM_RANGE(0x5800, 0x5800) AM_MIRROR(0x07f8) AM_WRITE(watchdog_reset_w)
@ -1916,7 +1916,7 @@ static const samples_interface reactor_samples_interface =
*
*************************************/
static MACHINE_CONFIG_START( gottlieb_core, driver_device )
static MACHINE_CONFIG_START( gottlieb_core, gottlieb_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", I8088, CPU_CLOCK/3)

View File

@ -317,7 +317,7 @@ static WRITE8_HANDLER( gridlee_coin_counter_w )
/* CPU 1 read addresses */
static ADDRESS_MAP_START( cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0x0800, 0x7fff) AM_RAM_WRITE(gridlee_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x0800, 0x7fff) AM_RAM_WRITE(gridlee_videoram_w) AM_BASE_MEMBER(gridlee_state, videoram)
AM_RANGE(0x9000, 0x9000) AM_WRITE(led_0_w)
AM_RANGE(0x9010, 0x9010) AM_WRITE(led_1_w)
AM_RANGE(0x9020, 0x9020) AM_WRITE(gridlee_coin_counter_w)
@ -434,7 +434,7 @@ static const samples_interface gridlee_samples_interface =
*
*************************************/
static MACHINE_CONFIG_START( gridlee, driver_device )
static MACHINE_CONFIG_START( gridlee, gridlee_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6809, BALSENTE_CPU_CLOCK)

View File

@ -358,7 +358,7 @@ static ADDRESS_MAP_START( cpu1_map, ADDRESS_SPACE_PROGRAM , 8 )
AM_RANGE(0xaa80, 0xaa80) AM_WRITE(gsword_videoctrl_w) /* flip screen, char palette bank */
AM_RANGE(0xab00, 0xab00) AM_WRITE(gsword_scroll_w)
AM_RANGE(0xab80, 0xabff) AM_WRITEONLY AM_BASE(&gsword_spriteattrib_ram)
AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(gsword_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(gsword_videoram_w) AM_BASE_MEMBER(gsword_state, videoram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu1_io_map, ADDRESS_SPACE_IO, 8 )
@ -676,7 +676,7 @@ static const msm5205_interface msm5205_config =
MSM5205_SEX_4B /* vclk input mode */
};
static MACHINE_CONFIG_START( gsword, driver_device )
static MACHINE_CONFIG_START( gsword, gsword_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, XTAL_18MHz/6) /* verified on pcb */
@ -731,7 +731,7 @@ static MACHINE_CONFIG_START( gsword, driver_device )
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( josvolly, driver_device )
static MACHINE_CONFIG_START( josvolly, gsword_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 18000000/6) /* ? */

View File

@ -143,7 +143,7 @@ static ADDRESS_MAP_START( irobot_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1900, 0x19ff) AM_WRITEONLY /* Watchdog reset */
AM_RANGE(0x1a00, 0x1a00) AM_WRITE(irobot_clearfirq_w)
AM_RANGE(0x1b00, 0x1bff) AM_WRITE(irobot_control_w)
AM_RANGE(0x1c00, 0x1fff) AM_RAM AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x1c00, 0x1fff) AM_RAM AM_BASE_MEMBER(irobot_state, videoram)
AM_RANGE(0x2000, 0x3fff) AM_READWRITE(irobot_sharedmem_r, irobot_sharedmem_w)
AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank1")
AM_RANGE(0x6000, 0xffff) AM_ROM

View File

@ -206,7 +206,7 @@ static WRITE16_HANDLER( magmax_vreg_w )
static ADDRESS_MAP_START( magmax_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x013fff) AM_ROM
AM_RANGE(0x018000, 0x018fff) AM_RAM
AM_RANGE(0x020000, 0x0207ff) AM_RAM AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x020000, 0x0207ff) AM_RAM AM_BASE_MEMBER(magmax_state, videoram)
AM_RANGE(0x028000, 0x0281ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x030000, 0x030001) AM_READ_PORT("P1")
AM_RANGE(0x030002, 0x030003) AM_READ_PORT("P2")
@ -348,7 +348,7 @@ static const ay8910_interface ay8910_config =
};
static MACHINE_CONFIG_START( magmax, driver_device )
static MACHINE_CONFIG_START( magmax, magmax_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */

View File

@ -622,7 +622,7 @@ static ADDRESS_MAP_START( cpu_90009_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf1ff) AM_MIRROR(0x0200) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xf400, 0xf41f) AM_MIRROR(0x03e0) AM_WRITE(paletteram_xxxxRRRRBBBBGGGG_split1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf800, 0xf81f) AM_MIRROR(0x03e0) AM_WRITE(paletteram_xxxxRRRRBBBBGGGG_split2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0xfc00, 0xffff) AM_RAM_WRITE(mcr_90009_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0xfc00, 0xffff) AM_RAM_WRITE(mcr_90009_videoram_w) AM_BASE_MEMBER(mcr_state, videoram)
ADDRESS_MAP_END
/* upper I/O map determined by PAL; only SSIO ports are verified from schematics */
@ -649,7 +649,7 @@ static ADDRESS_MAP_START( cpu_90010_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x1800) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xe000, 0xe1ff) AM_MIRROR(0x1600) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xe800, 0xefff) AM_MIRROR(0x1000) AM_RAM_WRITE(mcr_90010_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0xe800, 0xefff) AM_MIRROR(0x1000) AM_RAM_WRITE(mcr_90010_videoram_w) AM_BASE_MEMBER(mcr_state, videoram)
ADDRESS_MAP_END
/* upper I/O map determined by PAL; only SSIO ports are verified from schematics */
@ -676,7 +676,7 @@ static ADDRESS_MAP_START( cpu_91490_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xe800, 0xe9ff) AM_MIRROR(0x0200) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(mcr_91490_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(mcr_91490_videoram_w) AM_BASE_MEMBER(mcr_state, videoram)
AM_RANGE(0xf800, 0xf87f) AM_MIRROR(0x0780) AM_WRITE(mcr_91490_paletteram_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
@ -1567,7 +1567,7 @@ static const samples_interface journey_samples_interface =
*************************************/
/* 90009 CPU board plus 90908/90913/91483 sound board */
static MACHINE_CONFIG_START( mcr_90009, driver_device )
static MACHINE_CONFIG_START( mcr_90009, mcr_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, MAIN_OSC_MCR_I/8)

View File

@ -482,7 +482,7 @@ static ADDRESS_MAP_START( mcrmono_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe800, 0xe9ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xea00, 0xebff) AM_RAM
AM_RANGE(0xec00, 0xec7f) AM_MIRROR(0x0380) AM_WRITE(mcr3_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(mcr3_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(mcr3_videoram_w) AM_BASE_MEMBER(mcr_state, videoram)
AM_RANGE(0xf800, 0xffff) AM_ROM /* schematics show a 2716 @ 2B here, but nobody used it */
ADDRESS_MAP_END
@ -512,7 +512,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( spyhunt_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(spyhunt_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(spyhunt_videoram_w) AM_BASE_MEMBER(mcr_state, videoram)
AM_RANGE(0xe800, 0xebff) AM_MIRROR(0x0400) AM_RAM_WRITE(spyhunt_alpharam_w) AM_BASE(&spyhunt_alpharam)
AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xf800, 0xf9ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
@ -1074,7 +1074,7 @@ GFXDECODE_END
*************************************/
/* Core MCR3 system with no sound */
static MACHINE_CONFIG_START( mcr3_base, driver_device )
static MACHINE_CONFIG_START( mcr3_base, mcr_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, MASTER_CLOCK/4)

View File

@ -58,7 +58,7 @@
#include "audio/mcr.h"
#include "audio/williams.h"
#include "machine/nvram.h"
#include "includes/mcr.h"
#include "includes/mcr68.h"
@ -315,7 +315,7 @@ static ADDRESS_MAP_START( mcr68_map, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x060000, 0x063fff) AM_RAM
AM_RANGE(0x070000, 0x070fff) AM_RAM_WRITE(mcr68_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x070000, 0x070fff) AM_RAM_WRITE(mcr68_videoram_w) AM_BASE_MEMBER(mcr68_state, videoram)
AM_RANGE(0x071000, 0x071fff) AM_RAM
AM_RANGE(0x080000, 0x080fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x090000, 0x09007f) AM_WRITE(mcr68_paletteram_w) AM_BASE_GENERIC(paletteram)
@ -343,7 +343,7 @@ static ADDRESS_MAP_START( zwackery_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x104000, 0x104007) AM_DEVREADWRITE8("pia0", pia6821_r, pia6821_w, 0xff00)
AM_RANGE(0x108000, 0x108007) AM_DEVREADWRITE8("pia1", pia6821_r, pia6821_w, 0x00ff)
AM_RANGE(0x10c000, 0x10c007) AM_DEVREADWRITE8("pia2", pia6821_r, pia6821_w, 0x00ff)
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(zwackery_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(zwackery_videoram_w) AM_BASE_MEMBER(mcr68_state, videoram)
AM_RANGE(0x802000, 0x803fff) AM_RAM_WRITE(zwackery_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xc00000, 0xc00fff) AM_RAM_WRITE(zwackery_spriteram_w) AM_BASE_SIZE_GENERIC(spriteram)
ADDRESS_MAP_END
@ -364,7 +364,7 @@ static ADDRESS_MAP_START( pigskin_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0a0000, 0x0affff) AM_READ(pigskin_port_2_r)
AM_RANGE(0x0c0000, 0x0c007f) AM_WRITE(mcr68_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0e0000, 0x0effff) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(mcr68_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(mcr68_videoram_w) AM_BASE_MEMBER(mcr68_state, videoram)
AM_RANGE(0x120000, 0x120001) AM_READWRITE(pigskin_protection_r, pigskin_protection_w)
AM_RANGE(0x140000, 0x143fff) AM_RAM
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
@ -390,7 +390,7 @@ static ADDRESS_MAP_START( trisport_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x120000, 0x12007f) AM_WRITE(mcr68_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x160000, 0x160fff) AM_RAM_WRITE(mcr68_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x160000, 0x160fff) AM_RAM_WRITE(mcr68_videoram_w) AM_BASE_MEMBER(mcr68_state, videoram)
AM_RANGE(0x180000, 0x18000f) AM_READWRITE(mcr68_6840_upper_r, mcr68_6840_upper_w)
AM_RANGE(0x1a0000, 0x1affff) AM_WRITE(archrivl_control_w)
AM_RANGE(0x1c0000, 0x1cffff) AM_WRITE(watchdog_reset16_w)
@ -887,6 +887,32 @@ INPUT_PORTS_END
*
*************************************/
static const gfx_layout mcr68_bg_layout =
{
8,8,
RGN_FRAC(1,2),
4,
{ STEP2(RGN_FRAC(1,2),1), STEP2(RGN_FRAC(0,2),1) },
{ STEP8(0,2) },
{ STEP8(0,16) },
16*8
};
static const gfx_layout mcr68_sprite_layout =
{
32,32,
RGN_FRAC(1,4),
4,
{ STEP4(0,1) },
{ STEP2(RGN_FRAC(0,4)+0,4), STEP2(RGN_FRAC(1,4)+0,4), STEP2(RGN_FRAC(2,4)+0,4), STEP2(RGN_FRAC(3,4)+0,4),
STEP2(RGN_FRAC(0,4)+8,4), STEP2(RGN_FRAC(1,4)+8,4), STEP2(RGN_FRAC(2,4)+8,4), STEP2(RGN_FRAC(3,4)+8,4),
STEP2(RGN_FRAC(0,4)+16,4), STEP2(RGN_FRAC(1,4)+16,4), STEP2(RGN_FRAC(2,4)+16,4), STEP2(RGN_FRAC(3,4)+16,4),
STEP2(RGN_FRAC(0,4)+24,4), STEP2(RGN_FRAC(1,4)+24,4), STEP2(RGN_FRAC(2,4)+24,4), STEP2(RGN_FRAC(3,4)+24,4) },
{ STEP32(0,32) },
32*32
};
static const gfx_layout zwackery_layout =
{
16,16,
@ -900,13 +926,13 @@ static const gfx_layout zwackery_layout =
};
static GFXDECODE_START( mcr68 )
GFXDECODE_SCALE( "gfx1", 0, mcr_bg_layout, 0, 4, 2, 2 )
GFXDECODE_ENTRY( "gfx2", 0, mcr_sprite_layout, 0, 4 )
GFXDECODE_SCALE( "gfx1", 0, mcr68_bg_layout, 0, 4, 2, 2 )
GFXDECODE_ENTRY( "gfx2", 0, mcr68_sprite_layout, 0, 4 )
GFXDECODE_END
static GFXDECODE_START( zwackery )
GFXDECODE_ENTRY( "gfx1", 0, zwackery_layout, 0, 16 )
GFXDECODE_ENTRY( "gfx2", 0, mcr_sprite_layout, 0x800, 32 )
GFXDECODE_ENTRY( "gfx2", 0, mcr68_sprite_layout, 0x800, 32 )
GFXDECODE_ENTRY( "gfx1", 0, zwackery_layout, 0, 16 ) /* yes, an extra copy */
GFXDECODE_END
@ -946,7 +972,7 @@ GFXDECODE_END
=================================================================*/
static MACHINE_CONFIG_START( zwackery, driver_device )
static MACHINE_CONFIG_START( zwackery, mcr68_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, 7652400) /* should be XTAL_16MHz/2 */
@ -980,7 +1006,7 @@ static MACHINE_CONFIG_START( zwackery, driver_device )
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( mcr68, driver_device )
static MACHINE_CONFIG_START( mcr68, mcr68_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, 7723800)

View File

@ -354,7 +354,7 @@ static ADDRESS_MAP_START( meadows_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0d00, 0x0d0f) AM_WRITE(meadows_spriteram_w) AM_BASE_GENERIC(spriteram)
AM_RANGE(0x0e00, 0x0eff) AM_RAM
AM_RANGE(0x1000, 0x1bff) AM_ROM
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_MEMBER(meadows_state, videoram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( bowl3d_main_map, ADDRESS_SPACE_PROGRAM, 8 )
@ -367,12 +367,12 @@ static ADDRESS_MAP_START( bowl3d_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0d00, 0x0d0f) AM_WRITE(meadows_spriteram_w) AM_BASE_GENERIC(spriteram)
AM_RANGE(0x0e00, 0x0eff) AM_RAM
AM_RANGE(0x1000, 0x1bff) AM_ROM
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_MEMBER(meadows_state, videoram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( minferno_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x1c00, 0x1eff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x1c00, 0x1eff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_MEMBER(meadows_state, videoram)
AM_RANGE(0x1f00, 0x1f00) AM_READ_PORT("JOY1")
AM_RANGE(0x1f01, 0x1f01) AM_READ_PORT("JOY2")
AM_RANGE(0x1f02, 0x1f02) AM_READ_PORT("BUTTONS")
@ -648,7 +648,7 @@ static const samples_interface bowl3d_samples_interface =
*
*************************************/
static MACHINE_CONFIG_START( meadows, driver_device )
static MACHINE_CONFIG_START( meadows, meadows_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", S2650, MASTER_CLOCK/8) /* 5MHz / 8 = 625 kHz */
@ -687,7 +687,7 @@ static MACHINE_CONFIG_START( meadows, driver_device )
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( minferno, driver_device )
static MACHINE_CONFIG_START( minferno, meadows_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", S2650, MASTER_CLOCK/24) /* 5MHz / 8 / 3 = 208.33 kHz */
@ -713,7 +713,7 @@ static MACHINE_CONFIG_START( minferno, driver_device )
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( bowl3d, driver_device )
static MACHINE_CONFIG_START( bowl3d, meadows_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", S2650, MASTER_CLOCK/8) /* 5MHz / 8 = 625 kHz */
MDRV_CPU_PROGRAM_MAP(bowl3d_main_map)

View File

@ -332,6 +332,17 @@ Notes:
#include "sound/pokey.h"
class missile_state : public driver_device
{
public:
missile_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
#define MASTER_CLOCK XTAL_10MHz
#define PIXEL_CLOCK (MASTER_CLOCK/2)
@ -454,7 +465,8 @@ DIRECT_UPDATE_HANDLER( missile_direct_handler )
/* RAM? */
if (address < 0x4000)
{
direct.explicit_configure(0x0000 | offset, 0x3fff | offset, 0x3fff, direct.space().m_machine.generic.videoram.u8);
missile_state *state = direct.space().m_machine.driver_data<missile_state>();
direct.explicit_configure(0x0000 | offset, 0x3fff | offset, 0x3fff, state->videoram);
return ~0;
}
@ -551,6 +563,8 @@ INLINE offs_t get_bit3_addr(offs_t pixaddr)
static void write_vram(address_space *space, offs_t address, UINT8 data)
{
missile_state *state = space->machine->driver_data<missile_state>();
UINT8 *videoram = state->videoram;
static const UINT8 data_lookup[4] = { 0x00, 0x0f, 0xf0, 0xff };
offs_t vramaddr;
UINT8 vramdata;
@ -562,7 +576,7 @@ static void write_vram(address_space *space, offs_t address, UINT8 data)
vramaddr = address >> 2;
vramdata = data_lookup[data >> 6];
vrammask = writeprom[(address & 7) | 0x10];
space->machine->generic.videoram.u8[vramaddr] = (space->machine->generic.videoram.u8[vramaddr] & vrammask) | (vramdata & ~vrammask);
videoram[vramaddr] = (videoram[vramaddr] & vrammask) | (vramdata & ~vrammask);
/* 3-bit VRAM writes use an extra clock to write the 3rd bit elsewhere */
/* on the schematics, this is the MUSHROOM == 1 case */
@ -571,7 +585,7 @@ static void write_vram(address_space *space, offs_t address, UINT8 data)
vramaddr = get_bit3_addr(address);
vramdata = -((data >> 5) & 1);
vrammask = writeprom[(address & 7) | 0x18];
space->machine->generic.videoram.u8[vramaddr] = (space->machine->generic.videoram.u8[vramaddr] & vrammask) | (vramdata & ~vrammask);
videoram[vramaddr] = (videoram[vramaddr] & vrammask) | (vramdata & ~vrammask);
/* account for the extra clock cycle */
cpu_adjust_icount(space->cpu, -1);
@ -581,6 +595,8 @@ static void write_vram(address_space *space, offs_t address, UINT8 data)
static UINT8 read_vram(address_space *space, offs_t address)
{
missile_state *state = space->machine->driver_data<missile_state>();
UINT8 *videoram = state->videoram;
offs_t vramaddr;
UINT8 vramdata;
UINT8 vrammask;
@ -591,7 +607,7 @@ static UINT8 read_vram(address_space *space, offs_t address)
/* this should only be called if MADSEL == 1 */
vramaddr = address >> 2;
vrammask = 0x11 << (address & 3);
vramdata = space->machine->generic.videoram.u8[vramaddr] & vrammask;
vramdata = videoram[vramaddr] & vrammask;
if ((vramdata & 0xf0) == 0)
result &= ~0x80;
if ((vramdata & 0x0f) == 0)
@ -603,7 +619,7 @@ static UINT8 read_vram(address_space *space, offs_t address)
{
vramaddr = get_bit3_addr(address);
vrammask = 1 << (address & 7);
vramdata = space->machine->generic.videoram.u8[vramaddr] & vrammask;
vramdata = videoram[vramaddr] & vrammask;
if (vramdata == 0)
result &= ~0x20;
@ -623,6 +639,8 @@ static UINT8 read_vram(address_space *space, offs_t address)
static VIDEO_UPDATE( missile )
{
missile_state *state = screen->machine->driver_data<missile_state>();
UINT8 *videoram = state->videoram;
int x, y;
/* draw the bitmap to the screen, looping over Y */
@ -631,12 +649,12 @@ static VIDEO_UPDATE( missile )
UINT16 *dst = (UINT16 *)bitmap->base + y * bitmap->rowpixels;
int effy = flipscreen ? ((256+24 - y) & 0xff) : y;
UINT8 *src = &screen->machine->generic.videoram.u8[effy * 64];
UINT8 *src = &videoram[effy * 64];
UINT8 *src3 = NULL;
/* compute the base of the 3rd pixel row */
if (effy >= 224)
src3 = &screen->machine->generic.videoram.u8[get_bit3_addr(effy << 8)];
src3 = &videoram[get_bit3_addr(effy << 8)];
/* loop over X */
for (x = cliprect->min_x; x <= cliprect->max_x; x++)
@ -664,6 +682,8 @@ static VIDEO_UPDATE( missile )
static WRITE8_HANDLER( missile_w )
{
missile_state *state = space->machine->driver_data<missile_state>();
UINT8 *videoram = state->videoram;
/* if we're in MADSEL mode, write to video RAM */
if (get_madsel(space))
{
@ -676,7 +696,7 @@ static WRITE8_HANDLER( missile_w )
/* RAM */
if (offset < 0x4000)
space->machine->generic.videoram.u8[offset] = data;
videoram[offset] = data;
/* POKEY */
else if (offset < 0x4800)
@ -720,6 +740,8 @@ static WRITE8_HANDLER( missile_w )
static READ8_HANDLER( missile_r )
{
missile_state *state = space->machine->driver_data<missile_state>();
UINT8 *videoram = state->videoram;
UINT8 result = 0xff;
/* if we're in MADSEL mode, read from video RAM */
@ -731,7 +753,7 @@ static READ8_HANDLER( missile_r )
/* RAM */
if (offset < 0x4000)
result = space->machine->generic.videoram.u8[offset];
result = videoram[offset];
/* ROM */
else if (offset >= 0x5000)
@ -779,7 +801,7 @@ static READ8_HANDLER( missile_r )
/* complete memory map derived from schematics (implemented above) */
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xffff) AM_READWRITE(missile_r, missile_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0000, 0xffff) AM_READWRITE(missile_r, missile_w) AM_BASE_MEMBER(missile_state, videoram)
ADDRESS_MAP_END
@ -975,7 +997,7 @@ static const pokey_interface pokey_config =
*
*************************************/
static MACHINE_CONFIG_START( missile, driver_device )
static MACHINE_CONFIG_START( missile, missile_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, MASTER_CLOCK/8)

View File

@ -198,7 +198,7 @@ static ADDRESS_MAP_START( mole_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0800, 0x0800) AM_WRITENOP // ???
AM_RANGE(0x0820, 0x0820) AM_WRITENOP // ???
AM_RANGE(0x5000, 0x7fff) AM_MIRROR(0x8000) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(mole_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(mole_videoram_w)
AM_RANGE(0x8400, 0x8400) AM_WRITE(mole_tilebank_w)
AM_RANGE(0x8c00, 0x8c01) AM_DEVWRITE("aysnd", ay8910_data_address_w)
AM_RANGE(0x8c40, 0x8c40) AM_WRITENOP // ???

View File

@ -56,7 +56,7 @@ static WRITE8_HANDLER(t5182shared_w)
static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(mustache_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(mustache_videoram_w) AM_BASE_MEMBER(mustache_state, videoram)
AM_RANGE(0xd000, 0xd000) AM_WRITE(t5182_sound_irq_w)
AM_RANGE(0xd001, 0xd001) AM_READ(t5182_sharedram_semaphore_snd_r)
AM_RANGE(0xd002, 0xd002) AM_WRITE(t5182_sharedram_semaphore_main_acquire_w)
@ -188,7 +188,7 @@ static INTERRUPT_GEN( assert_irq )
*/
}
static MACHINE_CONFIG_START( mustache, driver_device )
static MACHINE_CONFIG_START( mustache, mustache_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, CPU_CLOCK)

View File

@ -751,7 +751,7 @@ static ADDRESS_MAP_START( namcona1_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xefff00, 0xefffff) AM_READWRITE(namcona1_vreg_r, namcona1_vreg_w) AM_BASE(&namcona1_vreg)
AM_RANGE(0xf00000, 0xf01fff) AM_READWRITE(namcona1_paletteram_r, namcona1_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf40000, 0xf7ffff) AM_READWRITE(namcona1_gfxram_r, namcona1_gfxram_w)
AM_RANGE(0xff0000, 0xffbfff) AM_READWRITE(namcona1_videoram_r, namcona1_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xff0000, 0xffbfff) AM_READWRITE(namcona1_videoram_r, namcona1_videoram_w) AM_BASE_MEMBER(namcona1_state, videoram)
AM_RANGE(0xffd000, 0xffdfff) AM_RAM /* unknown */
AM_RANGE(0xffe000, 0xffefff) AM_RAM AM_BASE(&namcona1_scroll) /* scroll registers */
AM_RANGE(0xfff000, 0xffffff) AM_RAM AM_BASE_GENERIC(spriteram) /* spriteram */
@ -773,7 +773,7 @@ static ADDRESS_MAP_START( namcona2_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xefff00, 0xefffff) AM_READWRITE(namcona1_vreg_r, namcona1_vreg_w) AM_BASE(&namcona1_vreg)
AM_RANGE(0xf00000, 0xf01fff) AM_READWRITE(namcona1_paletteram_r, namcona1_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf40000, 0xf7ffff) AM_READWRITE(namcona1_gfxram_r, namcona1_gfxram_w)
AM_RANGE(0xff0000, 0xffbfff) AM_READWRITE(namcona1_videoram_r, namcona1_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xff0000, 0xffbfff) AM_READWRITE(namcona1_videoram_r, namcona1_videoram_w) AM_BASE_MEMBER(namcona1_state, videoram)
AM_RANGE(0xffd000, 0xffdfff) AM_RAM /* unknown */
AM_RANGE(0xffe000, 0xffefff) AM_RAM AM_BASE(&namcona1_scroll) /* scroll registers */
AM_RANGE(0xfff000, 0xffffff) AM_RAM AM_BASE_GENERIC(spriteram) /* spriteram */
@ -1004,7 +1004,7 @@ static const c140_interface C140_interface_typeA =
};
/* cropped at sides */
static MACHINE_CONFIG_START( namcona1, driver_device )
static MACHINE_CONFIG_START( namcona1, namcona1_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, 50113000/4)
MDRV_CPU_PROGRAM_MAP(namcona1_main_map)

View File

@ -105,7 +105,8 @@ TODO:
#include "emu.h"
#include "cpu/z80/z80.h"
#include "sound/tms36xx.h"
#include "includes/phoenix.h"
#include "audio/pleiads.h"
#include "includes/naughtyb.h"
#define CLOCK_XTAL 12000000
@ -249,7 +250,7 @@ static WRITE8_HANDLER( popflame_protection_w )
static ADDRESS_MAP_START( naughtyb_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(naughtyb_state, videoram)
AM_RANGE(0x8800, 0x8fff) AM_RAM AM_BASE(&naughtyb_videoram2)
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(naughtyb_videoreg_w)
AM_RANGE(0x9800, 0x9fff) AM_RAM AM_BASE(&naughtyb_scrollreg)
@ -262,7 +263,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( popflame_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(naughtyb_state, videoram)
AM_RANGE(0x8800, 0x8fff) AM_RAM AM_BASE(&naughtyb_videoram2)
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(popflame_videoreg_w)
AM_RANGE(0x9800, 0x9fff) AM_RAM AM_BASE(&naughtyb_scrollreg)
@ -433,7 +434,7 @@ static const tms36xx_interface tms3615_interface =
static MACHINE_CONFIG_START( naughtyb, driver_device )
static MACHINE_CONFIG_START( naughtyb, naughtyb_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, CLOCK_XTAL / 4) /* 12 MHz clock, divided by 4. CPU is a Z80A */
@ -469,7 +470,7 @@ MACHINE_CONFIG_END
/* Exactly the same but for certain address writes */
static MACHINE_CONFIG_START( popflame, driver_device )
static MACHINE_CONFIG_START( popflame, naughtyb_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, CLOCK_XTAL / 4) /* 12 MHz clock, divided by 4. CPU is a Z80A */

View File

@ -65,6 +65,17 @@ D.9B [f99cac4b] /
#include "deprecat.h"
#include "audio/t5182.h"
class panicr_state : public driver_device
{
public:
panicr_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
#define MASTER_CLOCK XTAL_16MHz
#define SOUND_CLOCK XTAL_14_31818MHz
#define TC15_CLOCK XTAL_12MHz
@ -144,8 +155,10 @@ static TILE_GET_INFO( get_bgtile_info )
static TILE_GET_INFO( get_txttile_info )
{
int code=machine->generic.videoram.u8[tile_index*4];
int attr=machine->generic.videoram.u8[tile_index*4+2];
panicr_state *state = machine->driver_data<panicr_state>();
UINT8 *videoram = state->videoram;
int code=videoram[tile_index*4];
int attr=videoram[tile_index*4+2];
int color = attr & 0x07;
tileinfo->group = color;
@ -177,7 +190,7 @@ static ADDRESS_MAP_START( panicr_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x02000, 0x02fff) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0x03000, 0x03fff) AM_RAM
AM_RANGE(0x08000, 0x0bfff) AM_RAM AM_REGION("user3", 0) //attribue map ?
AM_RANGE(0x0c000, 0x0cfff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x0c000, 0x0cfff) AM_RAM AM_BASE_MEMBER(panicr_state, videoram)
AM_RANGE(0x0d000, 0x0d000) AM_WRITE(t5182_sound_irq_w)
AM_RANGE(0x0d002, 0x0d002) AM_READ(t5182_sharedram_semaphore_snd_r)
AM_RANGE(0x0d004, 0x0d004) AM_WRITE(t5182_sharedram_semaphore_main_acquire_w)
@ -361,7 +374,7 @@ static GFXDECODE_START( panicr )
GFXDECODE_ENTRY( "gfx3", 0, spritelayout, 0x200, 16 )
GFXDECODE_END
static MACHINE_CONFIG_START( panicr, driver_device )
static MACHINE_CONFIG_START( panicr, panicr_state )
MDRV_CPU_ADD("maincpu", V20,MASTER_CLOCK/2) /* Sony 8623h9 CXQ70116D-8 (V20 compatible) */
MDRV_CPU_PROGRAM_MAP(panicr_map)
MDRV_CPU_VBLANK_INT_HACK(panicr_interrupt,2)

View File

@ -72,7 +72,7 @@ static READ8_DEVICE_HANDLER( pcktgal_adpcm_reset_r )
static ADDRESS_MAP_START( pcktgal_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(pcktgal_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(pcktgal_videoram_w) AM_BASE_MEMBER(pcktgal_state, videoram)
AM_RANGE(0x1000, 0x11ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x1800, 0x1800) AM_READ_PORT("P1")
AM_RANGE(0x1801, 0x1801) AM_WRITE(pcktgal_flipscreen_w)
@ -215,7 +215,7 @@ static const msm5205_interface msm5205_config =
/***************************************************************************/
static MACHINE_CONFIG_START( pcktgal, driver_device )
static MACHINE_CONFIG_START( pcktgal, pcktgal_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, 2000000)

View File

@ -173,6 +173,17 @@ Stephh's log (2007.11.28) :
#include "pe_keno.lh"
#include "pe_slots.lh"
class peplus_state : public driver_device
{
public:
peplus_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
#define MASTER_CLOCK XTAL_20MHz
#define CPU_CLOCK ((MASTER_CLOCK)/2) /* divided by 2 - 7474 */
#define MC6845_CLOCK ((MASTER_CLOCK)/8/3)
@ -357,7 +368,9 @@ static WRITE_LINE_DEVICE_HANDLER(crtc_vsync)
static WRITE8_DEVICE_HANDLER( peplus_crtc_display_w )
{
device->machine->generic.videoram.u8[vid_address] = data;
peplus_state *state = device->machine->driver_data<peplus_state>();
UINT8 *videoram = state->videoram;
videoram[vid_address] = data;
palette_ram[vid_address] = io_port[1];
palette_ram2[vid_address] = io_port[3];
@ -644,9 +657,11 @@ static READ8_DEVICE_HANDLER( peplus_input_bank_a_r )
static TILE_GET_INFO( get_bg_tile_info )
{
peplus_state *state = machine->driver_data<peplus_state>();
UINT8 *videoram = state->videoram;
int pr = palette_ram[tile_index];
int pr2 = palette_ram2[tile_index];
int vr = machine->generic.videoram.u8[tile_index];
int vr = videoram[tile_index];
int code = ((pr & 0x0f)*256) | vr;
int color = (pr>>4) & 0x0f;
@ -755,7 +770,7 @@ static ADDRESS_MAP_START( peplus_iomap, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x6000, 0x6000) AM_READ(peplus_bgcolor_r) AM_WRITE(peplus_bgcolor_w)
// Bogus Location for Video RAM
AM_RANGE(0x06001, 0x06400) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x06001, 0x06400) AM_RAM AM_BASE_MEMBER(peplus_state, videoram)
// Superboard Data
AM_RANGE(0x7000, 0x7fff) AM_READWRITE(peplus_s7000_r, peplus_s7000_w) AM_BASE(&s7000_ram)
@ -1021,7 +1036,7 @@ static MACHINE_RESET( peplus )
* Machine Driver *
*************************/
static MACHINE_CONFIG_START( peplus, driver_device )
static MACHINE_CONFIG_START( peplus, peplus_state )
// basic machine hardware
MDRV_CPU_ADD("maincpu", I80C32, CPU_CLOCK)
MDRV_CPU_PROGRAM_MAP(peplus_map)

View File

@ -34,6 +34,7 @@ Pleiads:
#include "sound/tms36xx.h"
#include "cpu/i8085/i8085.h"
#include "sound/ay8910.h"
#include "audio/pleiads.h"
#include "includes/phoenix.h"

View File

@ -94,7 +94,7 @@ static WRITE8_HANDLER(pitnrun_vflip_w)
static ADDRESS_MAP_START( pitnrun_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(pitnrun_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(pitnrun_videoram_w) AM_BASE_MEMBER(pitnrun_state, videoram)
AM_RANGE(0x9000, 0x9fff) AM_RAM_WRITE(pitnrun_videoram2_w) AM_BASE(&pitnrun_videoram2)
AM_RANGE(0xa000, 0xa0ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("SYSTEM")
@ -228,7 +228,7 @@ static GFXDECODE_START( pitnrun )
GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 0, 4 )
GFXDECODE_END
static MACHINE_CONFIG_START( pitnrun, driver_device )
static MACHINE_CONFIG_START( pitnrun, pitnrun_state )
MDRV_CPU_ADD("maincpu", Z80,XTAL_18_432MHz/6) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(pitnrun_map)
MDRV_CPU_VBLANK_INT("screen", pitnrun_nmi_source)

View File

@ -383,7 +383,7 @@ static ADDRESS_MAP_START( bios_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM // 8V
AM_RANGE(0x8800, 0x8fff) AM_READWRITE(ram_8w_r, ram_8w_w) AM_BASE(&ram_8w) // 8W
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(playch10_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(playch10_videoram_w) AM_BASE_MEMBER(playch10_state, videoram)
AM_RANGE(0xc000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xffff) AM_READWRITE(pc10_prot_r, pc10_prot_w)
ADDRESS_MAP_END
@ -684,7 +684,7 @@ static const nes_interface nes_config =
};
static MACHINE_CONFIG_START( playch10, driver_device )
static MACHINE_CONFIG_START( playch10, playch10_state )
// basic machine hardware
MDRV_CPU_ADD("maincpu", Z80, 8000000/2) // 4 MHz
MDRV_CPU_PROGRAM_MAP(bios_map)

View File

@ -107,7 +107,7 @@ static WRITE8_HANDLER( pokechmp_paletteram_w )
static ADDRESS_MAP_START( pokechmp_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(pokechmp_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(pokechmp_videoram_w) AM_BASE_MEMBER(pokechmp_state, videoram)
AM_RANGE(0x1000, 0x11ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x1800, 0x1800) AM_READ_PORT("P1")
@ -222,7 +222,7 @@ static GFXDECODE_START( pokechmp )
GFXDECODE_END
static MACHINE_CONFIG_START( pokechmp, driver_device )
static MACHINE_CONFIG_START( pokechmp, pokechmp_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, 4000000)

View File

@ -156,7 +156,7 @@ static ADDRESS_MAP_START( polyplay_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1000, 0x8fff) AM_ROM
AM_RANGE(0xe800, 0xebff) AM_ROM AM_REGION("gfx1", 0)
AM_RANGE(0xec00, 0xf7ff) AM_RAM_WRITE(polyplay_characterram_w) AM_BASE(&polyplay_characterram)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_BASE_MEMBER(polyplay_state, videoram)
ADDRESS_MAP_END
@ -276,7 +276,7 @@ GFXDECODE_END
/* the machine driver */
static MACHINE_CONFIG_START( polyplay, driver_device )
static MACHINE_CONFIG_START( polyplay, polyplay_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 9830400/4)

View File

@ -55,6 +55,17 @@ Twenty four 8116 rams.
#include "sound/ay8910.h"
#include "video/mc6845.h"
class progolf_state : public driver_device
{
public:
progolf_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
static UINT8 char_pen,char_pen_vreg;
static UINT8 *progolf_fg_fb;
static UINT8 *progolf_fbram;
@ -66,16 +77,19 @@ static UINT8 sound_cmd;
static VIDEO_START( progolf )
{
progolf_state *state = machine->driver_data<progolf_state>();
scrollx_hi = 0;
scrollx_lo = 0;
progolf_fg_fb = auto_alloc_array(machine, UINT8, 0x2000*8);
machine->generic.videoram.u8 = auto_alloc_array(machine, UINT8, 0x1000);
state->videoram = auto_alloc_array(machine, UINT8, 0x1000);
}
static VIDEO_UPDATE( progolf )
{
progolf_state *state = screen->machine->driver_data<progolf_state>();
UINT8 *videoram = state->videoram;
int count,color,x,y,xi,yi;
{
@ -87,7 +101,7 @@ static VIDEO_UPDATE( progolf )
{
for(y=0;y<32;y++)
{
int tile = screen->machine->generic.videoram.u8[count];
int tile = videoram[count];
drawgfx_opaque(bitmap,cliprect,screen->machine->gfx[0],tile,1,0,0,(256-x*8)+scroll,y*8);
/* wrap-around */
@ -185,6 +199,8 @@ static READ8_HANDLER( audio_command_r )
static READ8_HANDLER( progolf_videoram_r )
{
progolf_state *state = space->machine->driver_data<progolf_state>();
UINT8 *videoram = state->videoram;
UINT8 *gfx_rom = memory_region(space->machine, "gfx1");
if (offset >= 0x0800)
@ -196,7 +212,7 @@ static READ8_HANDLER( progolf_videoram_r )
else if (progolf_gfx_switch == 0x70)
return gfx_rom[offset + 0x2000];
else
return space->machine->generic.videoram.u8[offset];
return videoram[offset];
} else {
if (progolf_gfx_switch == 0x10)
return gfx_rom[offset];
@ -205,14 +221,16 @@ static READ8_HANDLER( progolf_videoram_r )
else if (progolf_gfx_switch == 0x30)
return gfx_rom[offset + 0x2000];
else
return space->machine->generic.videoram.u8[offset];
return videoram[offset];
}
}
static WRITE8_HANDLER( progolf_videoram_w )
{
progolf_state *state = space->machine->driver_data<progolf_state>();
UINT8 *videoram = state->videoram;
//if(progolf_gfx_switch & 0x40)
space->machine->generic.videoram.u8[offset] = data;
videoram[offset] = data;
}
static ADDRESS_MAP_START( main_cpu, ADDRESS_SPACE_PROGRAM, 8 )
@ -425,7 +443,7 @@ static PALETTE_INIT( progolf )
}
}
static MACHINE_CONFIG_START( progolf, driver_device )
static MACHINE_CONFIG_START( progolf, progolf_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, 3000000/2) /* guess, 3 Mhz makes the game to behave worse? */
MDRV_CPU_PROGRAM_MAP(main_cpu)

View File

@ -79,6 +79,17 @@ ROMS: All ROM labels say only "PROM" and a number.
#include "deprecat.h"
#include "sound/ay8910.h"
class pturn_state : public driver_device
{
public:
pturn_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
static tilemap_t *pturn_fgmap,*pturn_bgmap;
static int bgbank=0;
static int fgbank=0;
@ -97,8 +108,10 @@ static const UINT8 tile_lookup[0x10]=
static TILE_GET_INFO( get_pturn_tile_info )
{
pturn_state *state = machine->driver_data<pturn_state>();
UINT8 *videoram = state->videoram;
int tileno;
tileno = machine->generic.videoram.u8[tile_index];
tileno = videoram[tile_index];
tileno=tile_lookup[tileno>>4]|(tileno&0xf)|(fgbank<<8);
@ -184,7 +197,9 @@ READ8_HANDLER (pturn_protection2_r)
static WRITE8_HANDLER( pturn_videoram_w )
{
space->machine->generic.videoram.u8[offset]=data;
pturn_state *state = space->machine->driver_data<pturn_state>();
UINT8 *videoram = state->videoram;
videoram[offset]=data;
tilemap_mark_tile_dirty(pturn_fgmap,offset);
}
@ -280,7 +295,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xdfe0, 0xdfe0) AM_NOP
AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(pturn_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(pturn_videoram_w) AM_BASE_MEMBER(pturn_state, videoram)
AM_RANGE(0xe400, 0xe400) AM_WRITE(fgpalette_w)
AM_RANGE(0xe800, 0xe800) AM_WRITE(sound_w)
@ -444,7 +459,7 @@ static MACHINE_RESET( pturn )
soundlatch_clear_w(space,0,0);
}
static MACHINE_CONFIG_START( pturn, driver_device )
static MACHINE_CONFIG_START( pturn, pturn_state )
MDRV_CPU_ADD("maincpu", Z80, 12000000/3)
MDRV_CPU_PROGRAM_MAP(main_map)
MDRV_CPU_VBLANK_INT("screen", pturn_main_intgen)

View File

@ -27,6 +27,17 @@ Xtals 8MHz, 21.47727MHz
#include "cpu/z80/z80.h"
#include "sound/ay8910.h"
class quizo_state : public driver_device
{
public:
quizo_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
#define XTAL1 8000000
#define XTAL2 21477270
@ -65,13 +76,15 @@ static PALETTE_INIT(quizo)
static VIDEO_UPDATE( quizo )
{
quizo_state *state = screen->machine->driver_data<quizo_state>();
UINT8 *videoram = state->videoram;
int x,y;
for(y=0;y<200;y++)
{
for(x=0;x<80;x++)
{
int data=screen->machine->generic.videoram.u8[y*80+x];
int data1=screen->machine->generic.videoram.u8[y*80+x+0x4000];
int data=videoram[y*80+x];
int data1=videoram[y*80+x+0x4000];
int pix;
pix=(data&1)|(((data>>4)&1)<<1)|((data1&1)<<2)|(((data1>>4)&1)<<3);
@ -95,8 +108,10 @@ static VIDEO_UPDATE( quizo )
static WRITE8_HANDLER(vram_w)
{
quizo_state *state = space->machine->driver_data<quizo_state>();
UINT8 *videoram = state->videoram;
int bank=(port70&8)?1:0;
space->machine->generic.videoram.u8[offset+bank*0x4000]=data;
videoram[offset+bank*0x4000]=data;
}
static WRITE8_HANDLER(port70_w)
@ -183,7 +198,7 @@ static INPUT_PORTS_START( quizo )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
INPUT_PORTS_END
static MACHINE_CONFIG_START( quizo, driver_device )
static MACHINE_CONFIG_START( quizo, quizo_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80,XTAL1/2)
MDRV_CPU_PROGRAM_MAP(memmap)
@ -244,7 +259,9 @@ ROM_END
static DRIVER_INIT(quizo)
{
machine->generic.videoram.u8=auto_alloc_array(machine, UINT8, 0x4000*2);
quizo_state *state = machine->driver_data<quizo_state>();
UINT8 *videoram = state->videoram;
videoram=auto_alloc_array(machine, UINT8, 0x4000*2);
}
GAME( 1985, quizo, 0, quizo, quizo, quizo, ROT0, "Seoul Coin Corp.", "Quiz Olympic (set 1)", 0 )

View File

@ -54,7 +54,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0b000, 0x0b001) AM_READ_PORT("P1_P2")
AM_RANGE(0x0b002, 0x0b003) AM_READ_PORT("DSW")
AM_RANGE(0x0b000, 0x0b007) AM_WRITE(raiden_control_w)
AM_RANGE(0x0c000, 0x0c7ff) AM_WRITE(raiden_text_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0c000, 0x0c7ff) AM_WRITE(raiden_text_w) AM_BASE_MEMBER(raiden_state, videoram)
AM_RANGE(0x0d000, 0x0d00d) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
AM_RANGE(0x0d060, 0x0d067) AM_WRITEONLY AM_BASE(&raiden_scroll_ram)
AM_RANGE(0xa0000, 0xfffff) AM_ROM
@ -77,7 +77,7 @@ static ADDRESS_MAP_START( alt_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x08000, 0x08fff) AM_RAM AM_SHARE("share1") AM_BASE(&raiden_shared_ram)
AM_RANGE(0x0a000, 0x0a00d) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
AM_RANGE(0x0c000, 0x0c7ff) AM_WRITE(raiden_text_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0c000, 0x0c7ff) AM_WRITE(raiden_text_w) AM_BASE_MEMBER(raiden_state, videoram)
AM_RANGE(0x0e000, 0x0e001) AM_READ_PORT("P1_P2")
AM_RANGE(0x0e000, 0x0e007) AM_WRITE(raidena_control_w)
AM_RANGE(0x0e002, 0x0e003) AM_READ_PORT("DSW")
@ -95,7 +95,7 @@ static ADDRESS_MAP_START( raidenu_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0b000, 0x0b001) AM_READ_PORT("P1_P2")
AM_RANGE(0x0b002, 0x0b003) AM_READ_PORT("DSW")
AM_RANGE(0x0b000, 0x0b007) AM_WRITE(raidena_control_w)
AM_RANGE(0x0c000, 0x0c7ff) AM_WRITE(raiden_text_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0c000, 0x0c7ff) AM_WRITE(raiden_text_w) AM_BASE_MEMBER(raiden_state, videoram)
AM_RANGE(0x0d000, 0x0d00d) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
AM_RANGE(0xa0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
@ -249,7 +249,7 @@ static VIDEO_EOF( raiden )
buffer_spriteram16_w(space,0,0,0xffff); /* Could be a memory location instead */
}
static MACHINE_CONFIG_START( raiden, driver_device )
static MACHINE_CONFIG_START( raiden, raiden_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", V30,XTAL_20MHz/2) /* NEC V30 CPU, 20MHz verified on pcb */

View File

@ -280,7 +280,9 @@ static WRITE16_HANDLER(raiden2_foreground_w)
static WRITE16_HANDLER(raiden2_text_w)
{
COMBINE_DATA(&space->machine->generic.videoram.u16[offset]);
raiden2_state *state = space->machine->driver_data<raiden2_state>();
UINT16 *videoram = state->videoram;
COMBINE_DATA(&videoram[offset]);
tilemap_mark_tile_dirty(text_layer, offset);
}
@ -320,7 +322,9 @@ static TILE_GET_INFO( get_fore_tile_info )
static TILE_GET_INFO( get_text_tile_info )
{
int tile = machine->generic.videoram.u16[tile_index];
raiden2_state *state = machine->driver_data<raiden2_state>();
UINT16 *videoram = state->videoram;
int tile = videoram[tile_index];
int color = (tile>>12)&0xf;
tile &= 0xfff;
@ -845,7 +849,7 @@ static ADDRESS_MAP_START( raiden2_mem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(raiden2_background_w) AM_BASE(&back_data)
AM_RANGE(0x0d800, 0x0dfff) AM_RAM_WRITE(raiden2_foreground_w) AM_BASE(&fore_data)
AM_RANGE(0x0e000, 0x0e7ff) AM_RAM_WRITE(raiden2_midground_w) AM_BASE(&mid_data)
AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(raiden2_text_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(raiden2_text_w) AM_BASE_MEMBER(raiden2_state, videoram)
AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */
AM_RANGE(0x10000, 0x1efff) AM_RAM_WRITE(w1x) AM_BASE(&w1ram)
@ -953,7 +957,7 @@ static ADDRESS_MAP_START( nzerotea_mem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(raiden2_background_w) AM_BASE(&back_data)
AM_RANGE(0x0d800, 0x0dfff) AM_RAM_WRITE(raiden2_foreground_w) AM_BASE(&fore_data)
AM_RANGE(0x0e000, 0x0e7ff) AM_RAM_WRITE(raiden2_midground_w) AM_BASE(&mid_data)
AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(raiden2_text_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(raiden2_text_w) AM_BASE_MEMBER(raiden2_state, videoram)
AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */
AM_RANGE(0x10000, 0x1efff) AM_RAM_WRITE(w1x) AM_BASE(&w1ram)
@ -1184,7 +1188,7 @@ GFXDECODE_END
/* MACHINE DRIVERS */
static MACHINE_CONFIG_START( raiden2, driver_device )
static MACHINE_CONFIG_START( raiden2, raiden2_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", V30,XTAL_32MHz/2) /* verified on pcb */
@ -2162,7 +2166,7 @@ static ADDRESS_MAP_START( rdx_v33_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(raiden2_background_w) AM_BASE(&back_data)
AM_RANGE(0x0d800, 0x0dfff) AM_RAM_WRITE(raiden2_foreground_w) AM_BASE(&fore_data)
AM_RANGE(0x0e000, 0x0e7ff) AM_RAM_WRITE(raiden2_midground_w) AM_BASE(&mid_data)
AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(raiden2_text_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(raiden2_text_w) AM_BASE_MEMBER(raiden2_state, videoram)
AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */
AM_RANGE(0x10000, 0x1efff) AM_RAM
AM_RANGE(0x1f000, 0x1ffff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@ -2273,7 +2277,7 @@ static MACHINE_RESET( rdx_v33 )
common_reset();
}
static MACHINE_CONFIG_START( rdx_v33, driver_device )
static MACHINE_CONFIG_START( rdx_v33, raiden2_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", V33, 32000000/2 ) // ?

View File

@ -668,7 +668,7 @@ static ADDRESS_MAP_START( renegade_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(renegade_videoram2_w) AM_BASE(&renegade_videoram2)
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(renegade_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(renegade_videoram_w) AM_BASE_MEMBER(renegade_state, videoram)
AM_RANGE(0x3000, 0x30ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x3100, 0x31ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("IN0") AM_WRITE(renegade_scroll0_w) /* Player#1 controls, P1,P2 start */
@ -918,7 +918,7 @@ static MACHINE_RESET( renegade )
}
static MACHINE_CONFIG_START( renegade, driver_device )
static MACHINE_CONFIG_START( renegade, renegade_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, 12000000/8) /* 1.5 MHz (measured) */

View File

@ -98,6 +98,17 @@ Stephh's notes (based on the games Z80 code and some tests) :
#include "machine/nvram.h"
class royalmah_state : public driver_device
{
public:
royalmah_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
static UINT8 input_port_select, dsw_select, rombank;
static int palette_base;
static UINT8 *janptr96_nvram;
@ -186,6 +197,8 @@ static WRITE8_HANDLER( mjderngr_palbank_w )
static VIDEO_UPDATE( royalmah )
{
royalmah_state *state = screen->machine->driver_data<royalmah_state>();
UINT8 *videoram = state->videoram;
offs_t offs;
@ -193,8 +206,8 @@ static VIDEO_UPDATE( royalmah )
{
int i;
UINT8 data1 = screen->machine->generic.videoram.u8[offs + 0x0000];
UINT8 data2 = screen->machine->generic.videoram.u8[offs + 0x4000];
UINT8 data1 = videoram[offs + 0x0000];
UINT8 data2 = videoram[offs + 0x4000];
UINT8 y = 255 - (offs >> 6);
UINT8 x = 255 - (offs << 2);
@ -424,7 +437,7 @@ static ADDRESS_MAP_START( royalmah_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITE( royalmah_rom_w )
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "bank1" ) // banked ROMs not present in royalmah
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_MEMBER(royalmah_state, videoram)
ADDRESS_MAP_END
@ -434,7 +447,7 @@ static ADDRESS_MAP_START( mjapinky_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x7800, 0x7fff ) AM_RAM
AM_RANGE( 0x8000, 0x8000 ) AM_READ( mjapinky_dsw_r )
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "bank1" )
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_MEMBER(royalmah_state, videoram)
ADDRESS_MAP_END
@ -566,7 +579,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( janho_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITE( royalmah_rom_w )
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("share1") AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_MEMBER(royalmah_state, videoram)
ADDRESS_MAP_END
@ -688,7 +701,7 @@ static ADDRESS_MAP_START( jansou_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x6800, 0x6800 ) AM_WRITE(jansou_sound_w)
AM_RANGE( 0x7000, 0x77ff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_MEMBER(royalmah_state, videoram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( jansou_sub_map, ADDRESS_SPACE_PROGRAM, 8 )
@ -711,7 +724,7 @@ static ADDRESS_MAP_START( janptr96_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x6000, 0x6fff ) AM_RAMBANK("bank3") AM_SHARE("nvram") // nvram
AM_RANGE( 0x7000, 0x7fff ) AM_RAMBANK("bank2") // banked nvram
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1")
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_MEMBER(royalmah_state, videoram)
ADDRESS_MAP_END
static WRITE8_HANDLER( janptr96_dswsel_w )
@ -809,9 +822,11 @@ static READ8_HANDLER( mjifb_rom_io_r )
static WRITE8_HANDLER( mjifb_rom_io_w )
{
royalmah_state *state = space->machine->driver_data<royalmah_state>();
UINT8 *videoram = state->videoram;
if (mjifb_rom_enable)
{
space->machine->generic.videoram.u8[offset] = data;
videoram[offset] = data;
return;
}
@ -836,13 +851,15 @@ static WRITE8_HANDLER( mjifb_rom_io_w )
static WRITE8_HANDLER( mjifb_videoram_w )
{
space->machine->generic.videoram.u8[offset + 0x4000] = data;
royalmah_state *state = space->machine->driver_data<royalmah_state>();
UINT8 *videoram = state->videoram;
videoram[offset + 0x4000] = data;
}
static ADDRESS_MAP_START( mjifb_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xbfff ) AM_READWRITE(mjifb_rom_io_r, mjifb_rom_io_w) AM_BASE_GENERIC(videoram)
AM_RANGE( 0x8000, 0xbfff ) AM_READWRITE(mjifb_rom_io_r, mjifb_rom_io_w) AM_BASE_MEMBER(royalmah_state, videoram)
AM_RANGE( 0xc000, 0xffff ) AM_ROM AM_WRITE(mjifb_videoram_w)
// AM_RANGE( 0xc000, 0xffff ) AM_ROM AM_WRITEONLY This should, but doesn't work
ADDRESS_MAP_END
@ -916,9 +933,11 @@ static READ8_HANDLER( mjdejavu_rom_io_r )
static WRITE8_HANDLER( mjdejavu_rom_io_w )
{
royalmah_state *state = space->machine->driver_data<royalmah_state>();
UINT8 *videoram = state->videoram;
if (mjifb_rom_enable)
{
space->machine->generic.videoram.u8[offset] = data;
videoram[offset] = data;
return;
}
@ -941,7 +960,7 @@ static WRITE8_HANDLER( mjdejavu_rom_io_w )
static ADDRESS_MAP_START( mjdejavu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xbfff ) AM_READWRITE(mjdejavu_rom_io_r, mjdejavu_rom_io_w) AM_BASE_GENERIC(videoram)
AM_RANGE( 0x8000, 0xbfff ) AM_READWRITE(mjdejavu_rom_io_r, mjdejavu_rom_io_w) AM_BASE_MEMBER(royalmah_state, videoram)
AM_RANGE( 0xc000, 0xffff ) AM_ROM AM_WRITE(mjifb_videoram_w)
ADDRESS_MAP_END
@ -983,7 +1002,7 @@ static ADDRESS_MAP_START( mjtensin_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x6ff3, 0x6ff3 ) AM_WRITE( mjtensin_6ff3_w )
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "bank1" )
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_MEMBER(royalmah_state, videoram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mjtensin_iomap, ADDRESS_SPACE_IO, 8 )
@ -1053,7 +1072,7 @@ static ADDRESS_MAP_START( cafetime_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x7fe4, 0x7fe4 ) AM_READ( cafetime_7fe4_r )
AM_RANGE( 0x7ff0, 0x7fff ) AM_DEVREADWRITE("rtc", msm6242_r, msm6242_w)
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "bank1" )
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_MEMBER(royalmah_state, videoram)
ADDRESS_MAP_END
@ -1116,9 +1135,11 @@ static READ8_HANDLER( mjvegasa_rom_io_r )
static WRITE8_HANDLER( mjvegasa_rom_io_w )
{
royalmah_state *state = space->machine->driver_data<royalmah_state>();
UINT8 *videoram = state->videoram;
if ((rombank & 0x70) != 0x70)
{
space->machine->generic.videoram.u8[offset] = data;
videoram[offset] = data;
return;
}
@ -1174,7 +1195,7 @@ static ADDRESS_MAP_START( mjvegasa_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x00000, 0x05fff ) AM_ROM
AM_RANGE( 0x06000, 0x07fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x08000, 0x0ffff ) AM_READWRITE(mjvegasa_rom_io_r, mjvegasa_rom_io_w) AM_BASE_GENERIC(videoram)
AM_RANGE( 0x08000, 0x0ffff ) AM_READWRITE(mjvegasa_rom_io_r, mjvegasa_rom_io_w) AM_BASE_MEMBER(royalmah_state, videoram)
AM_RANGE( 0x10001, 0x10001 ) AM_DEVREAD( "aysnd", ay8910_r )
AM_RANGE( 0x10002, 0x10003 ) AM_DEVWRITE( "aysnd", ay8910_data_address_w )
@ -3094,7 +3115,7 @@ static const ay8910_interface ay8910_config =
DEVCB_HANDLER(royalmah_player_2_port_r)
};
static MACHINE_CONFIG_START( royalmah, driver_device )
static MACHINE_CONFIG_START( royalmah, royalmah_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */

View File

@ -230,7 +230,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x04ffff) AM_RAM AM_BASE(&rpunch_bitmapram) AM_SIZE(&rpunch_bitmapram_size)
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0x080000, 0x083fff) AM_RAM_WRITE(rpunch_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x080000, 0x083fff) AM_RAM_WRITE(rpunch_videoram_w) AM_BASE_MEMBER(rpunch_state, videoram)
AM_RANGE(0x0a0000, 0x0a07ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0c0000, 0x0c0007) AM_WRITE(rpunch_scrollreg_w)
AM_RANGE(0x0c0008, 0x0c0009) AM_WRITE(rpunch_crtc_data_w)
@ -464,7 +464,7 @@ static const ym2151_interface ym2151_config =
*
*************************************/
static MACHINE_CONFIG_START( rpunch, driver_device )
static MACHINE_CONFIG_START( rpunch, rpunch_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, MASTER_CLOCK/2)

View File

@ -177,7 +177,7 @@ static WRITE8_HANDLER (system_w)
{
int offs;
for (offs = 0;offs < 0x4000; offs++)
sbw_videoram_w(space, offs, space->machine->generic.videoram.u8[offs]);
sbw_videoram_w(space, offs, state->videoram[offs]);
}
state->sbw_system = data;
}

View File

@ -37,6 +37,17 @@
#include "sbrkout.lh"
class sbrkout_state : public driver_device
{
public:
sbrkout_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*************************************
*
@ -85,7 +96,9 @@ static TIMER_CALLBACK( pot_trigger_callback );
static MACHINE_START( sbrkout )
{
memory_set_bankptr(machine, "bank1", &machine->generic.videoram.u8[0x380]);
sbrkout_state *state = machine->driver_data<sbrkout_state>();
UINT8 *videoram = state->videoram;
memory_set_bankptr(machine, "bank1", &videoram[0x380]);
scanline_timer = timer_alloc(machine, scanline_callback, NULL);
pot_timer = timer_alloc(machine, pot_trigger_callback, NULL);
@ -110,6 +123,8 @@ static MACHINE_RESET( sbrkout )
static TIMER_CALLBACK( scanline_callback )
{
sbrkout_state *state = machine->driver_data<sbrkout_state>();
UINT8 *videoram = state->videoram;
int scanline = param;
/* force a partial update before anything happens */
@ -120,7 +135,7 @@ static TIMER_CALLBACK( scanline_callback )
cputag_set_input_line(machine, "maincpu", 0, ASSERT_LINE);
/* update the DAC state */
dac_data_w(machine->device("dac"), (machine->generic.videoram.u8[0x380 + 0x11] & (scanline >> 2)) ? 255 : 0);
dac_data_w(machine->device("dac"), (videoram[0x380 + 0x11] & (scanline >> 2)) ? 255 : 0);
/* on the VBLANK, read the pot and schedule an interrupt time for it */
if (scanline == machine->primary_screen->visible_area().max_y + 1)
@ -279,7 +294,9 @@ static READ8_HANDLER( sync2_r )
static TILE_GET_INFO( get_bg_tile_info )
{
int code = (machine->generic.videoram.u8[tile_index] & 0x80) ? machine->generic.videoram.u8[tile_index] : 0;
sbrkout_state *state = machine->driver_data<sbrkout_state>();
UINT8 *videoram = state->videoram;
int code = (videoram[tile_index] & 0x80) ? videoram[tile_index] : 0;
SET_TILE_INFO(0, code, 0, 0);
}
@ -292,7 +309,9 @@ static VIDEO_START( sbrkout )
static WRITE8_HANDLER( sbrkout_videoram_w )
{
space->machine->generic.videoram.u8[offset] = data;
sbrkout_state *state = space->machine->driver_data<sbrkout_state>();
UINT8 *videoram = state->videoram;
videoram[offset] = data;
tilemap_mark_tile_dirty(bg_tilemap, offset);
}
@ -306,15 +325,17 @@ static WRITE8_HANDLER( sbrkout_videoram_w )
static VIDEO_UPDATE( sbrkout )
{
sbrkout_state *state = screen->machine->driver_data<sbrkout_state>();
UINT8 *videoram = state->videoram;
int ball;
tilemap_draw(bitmap, cliprect, bg_tilemap, 0, 0);
for (ball = 2; ball >= 0; ball--)
{
int code = ((screen->machine->generic.videoram.u8[0x380 + 0x18 + ball * 2 + 1] & 0x80) >> 7);
int sx = 31 * 8 - screen->machine->generic.videoram.u8[0x380 + 0x10 + ball * 2];
int sy = 30 * 8 - screen->machine->generic.videoram.u8[0x380 + 0x18 + ball * 2];
int code = ((videoram[0x380 + 0x18 + ball * 2 + 1] & 0x80) >> 7);
int sx = 31 * 8 - videoram[0x380 + 0x10 + ball * 2];
int sy = 30 * 8 - videoram[0x380 + 0x18 + ball * 2];
drawgfx_transpen(bitmap, cliprect, screen->machine->gfx[1], code, 0, 0, 0, sx, sy, 0);
}
@ -333,7 +354,7 @@ static VIDEO_UPDATE( sbrkout )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x380) AM_RAMBANK("bank1")
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(sbrkout_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(sbrkout_videoram_w) AM_BASE_MEMBER(sbrkout_state, videoram)
AM_RANGE(0x0800, 0x083f) AM_READ(switches_r)
AM_RANGE(0x0840, 0x0840) AM_MIRROR(0x003f) AM_READ_PORT("COIN")
AM_RANGE(0x0880, 0x0880) AM_MIRROR(0x003f) AM_READ_PORT("START")
@ -475,7 +496,7 @@ GFXDECODE_END
*
*************************************/
static MACHINE_CONFIG_START( sbrkout, driver_device )
static MACHINE_CONFIG_START( sbrkout, sbrkout_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502,MAIN_CLOCK/16) /* 375 KHz? Should be 750KHz? */

View File

@ -347,7 +347,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0800, 0x7fff) AM_ROM /* PROM board ROM area */
AM_RANGE(0x8000, 0xbfff) AM_ROM /* PROM board ROM area */
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(mainram_w) AM_BASE(&mainram)
AM_RANGE(0xe000, 0xffff) AM_RAM_WRITE(vidram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xe000, 0xffff) AM_RAM_WRITE(vidram_w) AM_BASE_MEMBER(segag80r_state, videoram)
ADDRESS_MAP_END
@ -829,7 +829,7 @@ GFXDECODE_END
*
*************************************/
static MACHINE_CONFIG_START( g80r_base, driver_device )
static MACHINE_CONFIG_START( g80r_base, segag80r_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, VIDEO_CLOCK/4)

View File

@ -247,7 +247,7 @@ static ADDRESS_MAP_START( chinhero_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2")
AM_RANGE(0xb803, 0xb803) AM_READ_PORT("P1")
AM_RANGE(0xc000, 0xc002) AM_WRITEONLY AM_BASE(&shangkid_videoreg)
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(shangkid_videoram_w) AM_BASE_GENERIC(videoram) AM_SHARE("share1")
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(shangkid_videoram_w) AM_BASE_MEMBER(shangkid_state, videoram) AM_SHARE("share1")
AM_RANGE(0xe000, 0xfdff) AM_RAM AM_SHARE("share2")
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_GENERIC(spriteram) AM_SHARE("share3")
ADDRESS_MAP_END
@ -268,7 +268,7 @@ static ADDRESS_MAP_START( shangkid_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2")
AM_RANGE(0xb803, 0xb803) AM_READ_PORT("P1")
AM_RANGE(0xc000, 0xc002) AM_WRITEONLY AM_BASE(&shangkid_videoreg)
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(shangkid_videoram_w) AM_BASE_GENERIC(videoram) AM_SHARE("share1")
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(shangkid_videoram_w) AM_BASE_MEMBER(shangkid_state, videoram) AM_SHARE("share1")
AM_RANGE(0xe000, 0xfdff) AM_RAM AM_SHARE("share2")
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_GENERIC(spriteram) AM_SHARE("share3")
ADDRESS_MAP_END
@ -363,7 +363,7 @@ static const ay8910_interface shangkid_ay8910_interface =
};
static MACHINE_CONFIG_START( chinhero, driver_device )
static MACHINE_CONFIG_START( chinhero, shangkid_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) /* verified on pcb */
@ -436,7 +436,7 @@ MACHINE_CONFIG_END
static ADDRESS_MAP_START( dynamski_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE_GENERIC(videoram) /* tilemap */
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE_MEMBER(shangkid_state, videoram) /* tilemap */
AM_RANGE(0xc800, 0xcbff) AM_RAM
AM_RANGE(0xd000, 0xd3ff) AM_RAM
AM_RANGE(0xd800, 0xdbff) AM_RAM
@ -455,7 +455,7 @@ static ADDRESS_MAP_START( dynamski_portmap, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_data_address_w)
ADDRESS_MAP_END
static MACHINE_CONFIG_START( dynamski, driver_device )
static MACHINE_CONFIG_START( dynamski, shangkid_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 3000000) /* ? */

View File

@ -135,7 +135,9 @@ static MACHINE_RESET( sprint4 )
static READ8_HANDLER( sprint4_wram_r )
{
return space->machine->generic.videoram.u8[0x380 + offset];
sprint4_state *state = space->machine->driver_data<sprint4_state>();
UINT8 *videoram = state->videoram;
return videoram[0x380 + offset];
}
@ -161,7 +163,9 @@ static READ8_HANDLER( sprint4_options_r )
static WRITE8_HANDLER( sprint4_wram_w )
{
space->machine->generic.videoram.u8[0x380 + offset] = data;
sprint4_state *state = space->machine->driver_data<sprint4_state>();
UINT8 *videoram = state->videoram;
videoram[0x380 + offset] = data;
}
@ -234,7 +238,7 @@ static ADDRESS_MAP_START( sprint4_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x700) AM_READWRITE(sprint4_wram_r, sprint4_wram_w)
AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x400) AM_RAM_WRITE(sprint4_video_ram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x400) AM_RAM_WRITE(sprint4_video_ram_w) AM_BASE_MEMBER(sprint4_state, videoram)
AM_RANGE(0x0000, 0x0007) AM_MIRROR(0x718) AM_READ(sprint4_analog_r)
AM_RANGE(0x0020, 0x0027) AM_MIRROR(0x718) AM_READ(sprint4_coin_r)
@ -394,7 +398,7 @@ static GFXDECODE_START( sprint4 )
GFXDECODE_END
static MACHINE_CONFIG_START( sprint4, driver_device )
static MACHINE_CONFIG_START( sprint4, sprint4_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, PIXEL_CLOCK / 8)

View File

@ -75,6 +75,17 @@ quaquiz2 - no inputs, needs NVRAM
#include "video/tms9927.h"
#include "machine/nvram.h"
class statriv2_state : public driver_device
{
public:
statriv2_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
#define MASTER_CLOCK 12440000
@ -98,16 +109,20 @@ static UINT8 last_coin;
static TILE_GET_INFO( horizontal_tile_info )
{
int code = machine->generic.videoram.u8[0x400+tile_index];
int attr = machine->generic.videoram.u8[tile_index] & 0x3f;
statriv2_state *state = machine->driver_data<statriv2_state>();
UINT8 *videoram = state->videoram;
int code = videoram[0x400+tile_index];
int attr = videoram[tile_index] & 0x3f;
SET_TILE_INFO(0, code, attr, 0);
}
static TILE_GET_INFO( vertical_tile_info )
{
int code = machine->generic.videoram.u8[0x400+tile_index];
int attr = machine->generic.videoram.u8[tile_index] & 0x3f;
statriv2_state *state = machine->driver_data<statriv2_state>();
UINT8 *videoram = state->videoram;
int code = videoram[0x400+tile_index];
int attr = videoram[tile_index] & 0x3f;
SET_TILE_INFO(0, ((code & 0x7f) << 1) | ((code & 0x80) >> 7), attr, 0);
}
@ -151,7 +166,9 @@ static VIDEO_START( vertical )
static WRITE8_HANDLER( statriv2_videoram_w )
{
space->machine->generic.videoram.u8[offset] = data;
statriv2_state *state = space->machine->driver_data<statriv2_state>();
UINT8 *videoram = state->videoram;
videoram[offset] = data;
tilemap_mark_tile_dirty(statriv2_tilemap, offset & 0x3ff);
}
@ -273,7 +290,7 @@ static ADDRESS_MAP_START( statriv2_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x4800, 0x48ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(statriv2_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(statriv2_videoram_w) AM_BASE_MEMBER(statriv2_state, videoram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( statriv2_io_map, ADDRESS_SPACE_IO, 8 )
@ -568,7 +585,7 @@ static const tms9927_interface tms9927_intf =
*
*************************************/
static MACHINE_CONFIG_START( statriv2, driver_device )
static MACHINE_CONFIG_START( statriv2, statriv2_state )
/* basic machine hardware */
/* FIXME: The 8085A had a max clock of 6MHz, internally divided by 2! */
MDRV_CPU_ADD("maincpu", I8085A, MASTER_CLOCK)

View File

@ -82,7 +82,7 @@ static ADDRESS_MAP_START( strnskil_map1, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(strnskil_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(strnskil_videoram_w) AM_BASE_MEMBER(strnskil_state, videoram)
AM_RANGE(0xd800, 0xd800) AM_READ(strnskil_d800_r)
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSW1")
@ -315,7 +315,7 @@ static GFXDECODE_START( strnskil )
GFXDECODE_END
static MACHINE_CONFIG_START( strnskil, driver_device )
static MACHINE_CONFIG_START( strnskil, strnskil_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80,8000000/2) /* 4.000MHz */

View File

@ -65,7 +65,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x006e, 0x006f) AM_WRITE(subs_invert2_w)
AM_RANGE(0x0090, 0x009f) AM_BASE_GENERIC(spriteram)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0800, 0x0bff) AM_RAM AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0x0800, 0x0bff) AM_RAM AM_BASE_MEMBER(subs_state, videoram)
AM_RANGE(0x2000, 0x3fff) AM_ROM
ADDRESS_MAP_END
@ -175,7 +175,7 @@ GFXDECODE_END
*
*************************************/
static MACHINE_CONFIG_START( subs, driver_device )
static MACHINE_CONFIG_START( subs, subs_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502,12096000/16) /* clock input is the "4H" signal */

View File

@ -13,7 +13,6 @@ TODO:
#include "emu.h"
#include "deprecat.h"
#include "video/system1.h"
#include "cpu/z80/z80.h"
#include "machine/segacrpt.h"
#include "sound/sn76496.h"

View File

@ -188,7 +188,6 @@ Notes:
******************************************************************************/
#include "emu.h"
#include "video/system1.h"
#include "cpu/z80/z80.h"
#include "cpu/mcs51/mcs51.h"
#include "machine/z80pio.h"
@ -197,6 +196,7 @@ Notes:
#include "machine/segacrp2.h"
#include "machine/mc8123.h"
#include "sound/sn76496.h"
#include "includes/system1.h"
#define MASTER_CLOCK XTAL_20MHz

View File

@ -158,7 +158,7 @@ static ADDRESS_MAP_START( f3_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x4a0000, 0x4a001f) AM_READWRITE(f3_control_r, f3_control_w)
AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x610000, 0x61bfff) AM_RAM_WRITE(f3_pf_data_w) AM_BASE(&f3_pf_data)
AM_RANGE(0x61c000, 0x61dfff) AM_RAM_WRITE(f3_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x61c000, 0x61dfff) AM_RAM_WRITE(f3_videoram_w) AM_BASE_MEMBER(taito_f3_state, videoram)
AM_RANGE(0x61e000, 0x61ffff) AM_RAM_WRITE(f3_vram_w) AM_BASE(&f3_vram)
AM_RANGE(0x620000, 0x62ffff) AM_RAM_WRITE(f3_lineram_w) AM_BASE(&f3_line_ram)
AM_RANGE(0x630000, 0x63ffff) AM_RAM_WRITE(f3_pivot_w) AM_BASE(&f3_pivot_ram)
@ -389,7 +389,7 @@ static MACHINE_START(f3)
state_save_register_global_array(machine, coin_word);
}
static MACHINE_CONFIG_START( f3, driver_device )
static MACHINE_CONFIG_START( f3, taito_f3_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68EC020, XTAL_16MHz)
@ -485,7 +485,7 @@ static GFXDECODE_START( bubsympb )
GFXDECODE_ENTRY( NULL, 0x000000, pivotlayout, 0, 64 ) /* Dynamically modified */
GFXDECODE_END
static MACHINE_CONFIG_START( bubsympb, driver_device )
static MACHINE_CONFIG_START( bubsympb, taito_f3_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68EC020, XTAL_16MHz)
MDRV_CPU_PROGRAM_MAP(f3_map)

View File

@ -162,7 +162,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x000f) AM_RAM AM_BASE(&tankbatt_bulletsram) AM_SIZE(&tankbatt_bulletsram_size)
AM_RANGE(0x0010, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(tankbatt_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(tankbatt_videoram_w) AM_BASE_MEMBER(tankbatt_state, videoram)
AM_RANGE(0x0c00, 0x0c07) AM_READ(tankbatt_in0_r)
AM_RANGE(0x0c00, 0x0c01) AM_WRITE(tankbatt_led_w)
AM_RANGE(0x0c02, 0x0c02) AM_WRITE(tankbatt_coin_counter_w)
@ -289,7 +289,7 @@ static const samples_interface tankbatt_samples_interface =
static MACHINE_CONFIG_START( tankbatt, driver_device )
static MACHINE_CONFIG_START( tankbatt, tankbatt_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, 1000000) /* 1 MHz ???? */

View File

@ -197,7 +197,7 @@ static ADDRESS_MAP_START( apache3_v30_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x00000, 0x03fff) AM_RAM
AM_RANGE(0x04000, 0x07fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x08000, 0x08fff) AM_RAM_WRITE(apache3_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0c000, 0x0dfff) AM_RAM_WRITE(roundup5_text_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0c000, 0x0dfff) AM_RAM_WRITE(roundup5_text_w) AM_BASE_MEMBER(tatsumi_state, videoram)
AM_RANGE(0x0e800, 0x0e803) AM_WRITENOP // CRT
AM_RANGE(0x0f000, 0x0f001) AM_READ_PORT("DSW")
AM_RANGE(0x0f000, 0x0f001) AM_WRITENOP // todo
@ -238,7 +238,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( roundup5_v30_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x00000, 0x07fff) AM_RAM
AM_RANGE(0x08000, 0x0bfff) AM_RAM_WRITE(roundup5_text_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x08000, 0x0bfff) AM_RAM_WRITE(roundup5_text_w) AM_BASE_MEMBER(tatsumi_state, videoram)
AM_RANGE(0x0c000, 0x0c003) AM_WRITE(roundup5_crt_w)
AM_RANGE(0x0d000, 0x0d001) AM_READ_PORT("DSW")
AM_RANGE(0x0d400, 0x0d40f) AM_WRITEONLY AM_BASE(&roundup5_unknown0)
@ -856,7 +856,7 @@ static MACHINE_RESET( apache3 )
}
static MACHINE_CONFIG_START( apache3, driver_device )
static MACHINE_CONFIG_START( apache3, tatsumi_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", V30, CLOCK_1 / 2)
@ -902,7 +902,7 @@ static MACHINE_CONFIG_START( apache3, driver_device )
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( roundup5, driver_device )
static MACHINE_CONFIG_START( roundup5, tatsumi_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", V30, CLOCK_1 / 2)
@ -944,7 +944,7 @@ static MACHINE_CONFIG_START( roundup5, driver_device )
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( cyclwarr, driver_device )
static MACHINE_CONFIG_START( cyclwarr, tatsumi_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, CLOCK_2 / 4)
@ -987,7 +987,7 @@ static MACHINE_CONFIG_START( cyclwarr, driver_device )
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( bigfight, driver_device )
static MACHINE_CONFIG_START( bigfight, tatsumi_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, CLOCK_2 / 4)

View File

@ -211,7 +211,7 @@ static ADDRESS_MAP_START( terracre_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x026002, 0x026003) AM_WRITE(amazon_scrollx_w)
AM_RANGE(0x026004, 0x026005) AM_WRITE(amazon_scrolly_w)
AM_RANGE(0x02600c, 0x02600d) AM_WRITE(amazon_sound_w)
AM_RANGE(0x028000, 0x0287ff) AM_WRITE(amazon_foreground_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x028000, 0x0287ff) AM_WRITE(amazon_foreground_w) AM_BASE_MEMBER(terracre_state, videoram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( amazon_map, ADDRESS_SPACE_PROGRAM, 16 )
@ -227,7 +227,7 @@ static ADDRESS_MAP_START( amazon_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x046002, 0x046003) AM_WRITE(amazon_scrollx_w)
AM_RANGE(0x046004, 0x046005) AM_WRITE(amazon_scrolly_w)
AM_RANGE(0x04600c, 0x04600d) AM_WRITE(amazon_sound_w)
AM_RANGE(0x050000, 0x050fff) AM_WRITE(amazon_foreground_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x050000, 0x050fff) AM_WRITE(amazon_foreground_w) AM_BASE_MEMBER(terracre_state, videoram)
AM_RANGE(0x070000, 0x070003) AM_READWRITE(amazon_protection_r, amazon_protection_w)
ADDRESS_MAP_END
@ -529,7 +529,7 @@ static GFXDECODE_START( terracre )
GFXDECODE_ENTRY( "gfx3", 0, sprite_layout, 1*16+16*16, 256 )
GFXDECODE_END
static MACHINE_CONFIG_START( amazon, driver_device )
static MACHINE_CONFIG_START( amazon, terracre_state )
MDRV_CPU_ADD("maincpu", M68000, 8000000 )
MDRV_CPU_PROGRAM_MAP(amazon_map)
MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)
@ -568,7 +568,7 @@ static MACHINE_CONFIG_START( amazon, driver_device )
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( ym3526, driver_device )
static MACHINE_CONFIG_START( ym3526, terracre_state )
MDRV_CPU_ADD("maincpu", M68000, 8000000 )
MDRV_CPU_PROGRAM_MAP(terracre_map)
MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)
@ -605,7 +605,7 @@ static MACHINE_CONFIG_START( ym3526, driver_device )
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( ym2203, driver_device )
static MACHINE_CONFIG_START( ym2203, terracre_state )
MDRV_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz?? */
MDRV_CPU_PROGRAM_MAP(terracre_map)
MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)

View File

@ -174,7 +174,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xfe4002, 0xfe4003) AM_READ_PORT("SYSTEM")
/* AM_RANGE(0xfe4002, 0xfe4003) AM_WRITE(tigeroad_soundcmd_w) added by init_tigeroad() */
AM_RANGE(0xfe4004, 0xfe4005) AM_READ_PORT("DSW")
AM_RANGE(0xfec000, 0xfec7ff) AM_RAM_WRITE(tigeroad_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xfec000, 0xfec7ff) AM_RAM_WRITE(tigeroad_videoram_w) AM_BASE_MEMBER(tigeroad_state, videoram)
AM_RANGE(0xfe8000, 0xfe8003) AM_WRITE(tigeroad_scroll_w)
AM_RANGE(0xfe800e, 0xfe800f) AM_WRITEONLY /* fe800e = watchdog or IRQ acknowledge */
AM_RANGE(0xff8200, 0xff867f) AM_RAM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
@ -514,7 +514,7 @@ static const msm5205_interface msm5205_config =
};
static MACHINE_CONFIG_START( tigeroad, driver_device )
static MACHINE_CONFIG_START( tigeroad, tigeroad_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, XTAL_10MHz) /* verified on pcb */

View File

@ -45,7 +45,7 @@ static WRITE8_HANDLER( sound_reset_w )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* rom */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* ram */
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(timelimt_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram) /* video ram */
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(timelimt_videoram_w) AM_BASE_MEMBER(timelimt_state, videoram) /* video ram */
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(timelimt_bg_videoram_w) AM_BASE(&timelimt_bg_videoram) AM_SIZE(&timelimt_bg_videoram_size)/* background ram */
AM_RANGE(0x9800, 0x98ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* sprite ram */
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("INPUTS")
@ -228,7 +228,7 @@ static INTERRUPT_GEN( timelimt_irq ) {
/***************************************************************************/
static MACHINE_CONFIG_START( timelimt, driver_device )
static MACHINE_CONFIG_START( timelimt, timelimt_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 5000000) /* 5.000 MHz */

View File

@ -97,7 +97,7 @@ static ADDRESS_MAP_START( toki_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x06e000, 0x06e7ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x06e800, 0x06efff) AM_RAM_WRITE(toki_background1_videoram16_w) AM_BASE(&toki_background1_videoram16)
AM_RANGE(0x06f000, 0x06f7ff) AM_RAM_WRITE(toki_background2_videoram16_w) AM_BASE(&toki_background2_videoram16)
AM_RANGE(0x06f800, 0x06ffff) AM_RAM_WRITE(toki_foreground_videoram16_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x06f800, 0x06ffff) AM_RAM_WRITE(toki_foreground_videoram16_w) AM_BASE_MEMBER(toki_state, videoram)
AM_RANGE(0x080000, 0x08000d) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
AM_RANGE(0x0a0000, 0x0a005f) AM_WRITE(toki_control_w) AM_BASE(&toki_scrollram16)
AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("DSW")
@ -112,7 +112,7 @@ static ADDRESS_MAP_START( tokib_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x06e000, 0x06e7ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x06e800, 0x06efff) AM_RAM_WRITE(toki_background1_videoram16_w) AM_BASE(&toki_background1_videoram16)
AM_RANGE(0x06f000, 0x06f7ff) AM_RAM_WRITE(toki_background2_videoram16_w) AM_BASE(&toki_background2_videoram16)
AM_RANGE(0x06f800, 0x06ffff) AM_RAM_WRITE(toki_foreground_videoram16_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x06f800, 0x06ffff) AM_RAM_WRITE(toki_foreground_videoram16_w) AM_BASE_MEMBER(toki_state, videoram)
AM_RANGE(0x071000, 0x071001) AM_WRITENOP /* sprite related? seems another scroll register */
/* gets written the same value as 75000a (bg2 scrollx) */
AM_RANGE(0x071804, 0x071807) AM_WRITENOP /* sprite related, always 01be0100 */
@ -413,7 +413,7 @@ static const msm5205_interface msm5205_config =
};
static MACHINE_CONFIG_START( toki, driver_device ) /* KOYO 20.000MHz near the cpu */
static MACHINE_CONFIG_START( toki, toki_state ) /* KOYO 20.000MHz near the cpu */
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000,XTAL_20MHz /2) /* verified on pcb */
@ -445,7 +445,7 @@ static MACHINE_CONFIG_START( toki, driver_device ) /* KOYO 20.000MHz near the cp
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( tokib, driver_device )
static MACHINE_CONFIG_START( tokib, toki_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 10MHz causes bad slowdowns with monkey machine rd1 */

View File

@ -28,7 +28,7 @@ static UINT8 *battery_ram;
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x17ff) AM_RAM /* general purpose ram */
AM_RANGE(0x1800, 0x7bff) AM_RAM AM_BASE_GENERIC(videoram) /* video ram */
AM_RANGE(0x1800, 0x7bff) AM_RAM AM_BASE_MEMBER(truco_state, videoram) /* video ram */
AM_RANGE(0x7c00, 0x7fff) AM_RAM AM_BASE(&battery_ram) /* battery backed ram */
AM_RANGE(0x8000, 0x8000) AM_READ_PORT("P1") AM_WRITENOP /* controls (and irq ack?) */
AM_RANGE(0x8001, 0x8001) AM_NOP /* unknown */
@ -132,7 +132,7 @@ static INTERRUPT_GEN( truco_interrupt )
}
static MACHINE_CONFIG_START( truco, driver_device )
static MACHINE_CONFIG_START( truco, truco_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6809, 750000) /* ?? guess */

View File

@ -54,7 +54,7 @@ static WRITE8_HANDLER( tryout_bankswitch_w )
static ADDRESS_MAP_START( main_cpu, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x17ff) AM_RAM_WRITE(tryout_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x1000, 0x17ff) AM_RAM_WRITE(tryout_videoram_w) AM_BASE_MEMBER(tryout_state, videoram)
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0xbfff) AM_ROM
AM_RANGE(0xc800, 0xc87f) AM_RAM AM_BASE_GENERIC(spriteram)
@ -185,7 +185,7 @@ static GFXDECODE_START( tryout )
GFXDECODE_ENTRY( NULL, 0, vramlayout, 0, 4 )
GFXDECODE_END
static MACHINE_CONFIG_START( tryout, driver_device )
static MACHINE_CONFIG_START( tryout, tryout_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, 2000000) /* ? */
MDRV_CPU_PROGRAM_MAP(main_cpu)

View File

@ -84,12 +84,16 @@ int twin16_spriteram_process_enable( void )
static READ16_HANDLER( videoram16_r )
{
return space->machine->generic.videoram.u16[offset];
twin16_state *state = space->machine->driver_data<twin16_state>();
UINT16 *videoram = state->videoram;
return videoram[offset];
}
static WRITE16_HANDLER( videoram16_w )
{
COMBINE_DATA(space->machine->generic.videoram.u16 + offset);
twin16_state *state = space->machine->driver_data<twin16_state>();
UINT16 *videoram = state->videoram;
COMBINE_DATA(videoram + offset);
}
static READ16_HANDLER( extra_rom_r )
@ -255,7 +259,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0c000e, 0x0c000f) AM_READ(twin16_sprite_status_r)
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(twin16_text_ram_w) AM_BASE(&twin16_text_ram)
// AM_RANGE(0x104000, 0x105fff) AM_NOP // miaj
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE_MEMBER(twin16_state, videoram)
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_SHARE("share1") AM_BASE_SIZE_GENERIC(spriteram)
ADDRESS_MAP_END
@ -287,7 +291,7 @@ static ADDRESS_MAP_START( fround_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0c000e, 0x0c000f) AM_READ(twin16_sprite_status_r)
AM_RANGE(0x0e0000, 0x0e0001) AM_WRITE(fround_gfx_bank_w)
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(twin16_text_ram_w) AM_BASE(&twin16_text_ram)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE_MEMBER(twin16_state, videoram)
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x500000, 0x6fffff) AM_READ(twin16_gfx_rom1_r)
ADDRESS_MAP_END
@ -715,7 +719,7 @@ static MACHINE_START( twin16 )
state_save_register_global_array(machine, cuebrickj_nvram);
}
static MACHINE_CONFIG_START( twin16, driver_device )
static MACHINE_CONFIG_START( twin16, twin16_state )
// basic machine hardware
MDRV_CPU_ADD("maincpu", M68000, XTAL_18_432MHz/2)
MDRV_CPU_PROGRAM_MAP(main_map)
@ -773,7 +777,7 @@ static MACHINE_CONFIG_DERIVED( devilw, twin16 )
MDRV_QUANTUM_TIME(HZ(60000)) // watchdog reset otherwise
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( fround, driver_device )
static MACHINE_CONFIG_START( fround, twin16_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, 10000000)
MDRV_CPU_PROGRAM_MAP(fround_map)

View File

@ -70,7 +70,9 @@ static MACHINE_RESET( ultratnk )
static READ8_HANDLER( ultratnk_wram_r )
{
return space->machine->generic.videoram.u8[0x380 + offset];
ultratnk_state *state = space->machine->driver_data<ultratnk_state>();
UINT8 *videoram = state->videoram;
return videoram[0x380 + offset];
}
@ -96,7 +98,9 @@ static READ8_HANDLER( ultratnk_options_r )
static WRITE8_HANDLER( ultratnk_wram_w )
{
space->machine->generic.videoram.u8[0x380 + offset] = data;
ultratnk_state *state = space->machine->driver_data<ultratnk_state>();
UINT8 *videoram = state->videoram;
videoram[0x380 + offset] = data;
}
@ -152,7 +156,7 @@ static ADDRESS_MAP_START( ultratnk_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x700) AM_RAM
AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x700) AM_READWRITE(ultratnk_wram_r, ultratnk_wram_w)
AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x400) AM_RAM_WRITE(ultratnk_video_ram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x400) AM_RAM_WRITE(ultratnk_video_ram_w) AM_BASE_MEMBER(ultratnk_state, videoram)
AM_RANGE(0x1000, 0x17ff) AM_READ_PORT("IN0")
AM_RANGE(0x1800, 0x1fff) AM_READ_PORT("IN1")
@ -287,7 +291,7 @@ static GFXDECODE_START( ultratnk )
GFXDECODE_END
static MACHINE_CONFIG_START( ultratnk, driver_device )
static MACHINE_CONFIG_START( ultratnk, ultratnk_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, PIXEL_CLOCK / 8)

View File

@ -66,7 +66,7 @@ static ADDRESS_MAP_START( vigilant_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc020, 0xc0df) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(vigilant_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE_MEMBER(vigilant_state, videoram)
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
@ -87,7 +87,7 @@ static ADDRESS_MAP_START( kikcubic_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc0ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xc800, 0xcaff) AM_RAM_WRITE(vigilant_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE_MEMBER(vigilant_state, videoram)
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
@ -513,7 +513,7 @@ static const ym2203_interface ym2203_config =
};
static MACHINE_CONFIG_START( vigilant, driver_device )
static MACHINE_CONFIG_START( vigilant, vigilant_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 3579645) /* 3.579645 MHz */
@ -557,7 +557,7 @@ static MACHINE_CONFIG_START( vigilant, driver_device )
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( buccanrs, driver_device )
static MACHINE_CONFIG_START( buccanrs, vigilant_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 5688800) /* 5.688800 MHz */
@ -617,7 +617,7 @@ static MACHINE_CONFIG_START( buccanrs, driver_device )
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( kikcubic, driver_device )
static MACHINE_CONFIG_START( kikcubic, vigilant_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 3579645) /* 3.579645 MHz */

View File

@ -82,13 +82,27 @@ mm74c920J/mmc6551j-9 x2
#include "cpu/m6809/m6809.h"
#include "machine/6840ptm.h"
class vpoker_state : public driver_device
{
public:
vpoker_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
static VIDEO_START( vpoker )
{
machine->generic.videoram.u8 = auto_alloc_array(machine, UINT8, 0x200);
vpoker_state *state = machine->driver_data<vpoker_state>();
state->videoram = auto_alloc_array(machine, UINT8, 0x200);
}
static VIDEO_UPDATE( vpoker )
{
vpoker_state *state = screen->machine->driver_data<vpoker_state>();
UINT8 *videoram = state->videoram;
const gfx_element *gfx = screen->machine->gfx[0];
int count = 0x0000;
@ -98,7 +112,7 @@ static VIDEO_UPDATE( vpoker )
{
for (x=0;x<0x20;x++)
{
int tile = screen->machine->generic.videoram.u8[count];
int tile = videoram[count];
//int colour = tile>>12;
drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*16,y*16);
@ -119,6 +133,8 @@ static READ8_HANDLER( blitter_r )
static WRITE8_HANDLER( blitter_w )
{
vpoker_state *state = space->machine->driver_data<vpoker_state>();
UINT8 *videoram = state->videoram;
static UINT8 blit_ram[8];
blit_ram[offset] = data;
@ -129,7 +145,7 @@ static WRITE8_HANDLER( blitter_w )
blit_offs = (blit_ram[1] & 0x01)<<8|(blit_ram[2] & 0xff);
space->machine->generic.videoram.u8[blit_offs] = blit_ram[0];
videoram[blit_offs] = blit_ram[0];
// printf("%02x %02x %02x %02x %02x %02x %02x %02x\n",blit_ram[0],blit_ram[1],blit_ram[2],blit_ram[3],blit_ram[4],blit_ram[5],blit_ram[6],blit_ram[7]);
}
}
@ -394,7 +410,7 @@ static const ptm6840_interface ptm_intf =
DEVCB_LINE(ptm_irq)
};
static MACHINE_CONFIG_START( vpoker, driver_device )
static MACHINE_CONFIG_START( vpoker, vpoker_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu",M6809,XTAL_4MHz)

View File

@ -52,6 +52,17 @@ Thanks to HIGHWAYMAN for providing info on how to get to these epoxies
#include "video/resnet.h"
#include "sound/ay8910.h"
class wallc_state : public driver_device
{
public:
wallc_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
static tilemap_t *bg_tilemap;
/***************************************************************************
@ -117,13 +128,17 @@ static PALETTE_INIT( wallc )
static WRITE8_HANDLER( wallc_videoram_w )
{
space->machine->generic.videoram.u8[offset] = data;
wallc_state *state = space->machine->driver_data<wallc_state>();
UINT8 *videoram = state->videoram;
videoram[offset] = data;
tilemap_mark_tile_dirty(bg_tilemap, offset);
}
static TILE_GET_INFO( get_bg_tile_info )
{
SET_TILE_INFO(0, machine->generic.videoram.u8[tile_index] + 0x100, 1, 0);
wallc_state *state = machine->driver_data<wallc_state>();
UINT8 *videoram = state->videoram;
SET_TILE_INFO(0, videoram[tile_index] + 0x100, 1, 0);
}
static VIDEO_START( wallc )
@ -144,7 +159,7 @@ static WRITE8_HANDLER( wallc_coin_counter_w )
static ADDRESS_MAP_START( wallc_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(wallc_videoram_w) AM_MIRROR(0xc00) AM_BASE_GENERIC(videoram) /* 2114, 2114 */
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(wallc_videoram_w) AM_MIRROR(0xc00) AM_BASE_MEMBER(wallc_state, videoram) /* 2114, 2114 */
AM_RANGE(0xa000, 0xa3ff) AM_RAM /* 2114, 2114 */
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW1")
@ -275,7 +290,7 @@ static DRIVER_INIT( wallca )
static MACHINE_CONFIG_START( wallc, driver_device )
static MACHINE_CONFIG_START( wallc, wallc_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 12288000 / 4) /* 3.072 MHz ? */
MDRV_CPU_PROGRAM_MAP(wallc_map)

View File

@ -16,6 +16,17 @@
#include "sound/ay8910.h"
#include "machine/nvram.h"
class wink_state : public driver_device
{
public:
wink_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
static tilemap_t *bg_tilemap;
static UINT8 sound_flag;
static UINT8 tile_bank = 0;
@ -23,7 +34,9 @@ static UINT8 tile_bank = 0;
static TILE_GET_INFO( get_bg_tile_info )
{
int code = machine->generic.videoram.u8[tile_index];
wink_state *state = machine->driver_data<wink_state>();
UINT8 *videoram = state->videoram;
int code = videoram[tile_index];
code |= 0x200 * tile_bank;
// the 2 parts of the screen use different tile banking
@ -48,7 +61,9 @@ static VIDEO_UPDATE( wink )
static WRITE8_HANDLER( bgram_w )
{
space->machine->generic.videoram.u8[offset] = data;
wink_state *state = space->machine->driver_data<wink_state>();
UINT8 *videoram = state->videoram;
videoram[offset] = data;
tilemap_mark_tile_dirty(bg_tilemap, offset);
}
@ -90,7 +105,7 @@ static ADDRESS_MAP_START( wink_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x97ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(bgram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(bgram_w) AM_BASE_MEMBER(wink_state, videoram)
ADDRESS_MAP_END
@ -312,7 +327,7 @@ static MACHINE_RESET( wink )
sound_flag = 0;
}
static MACHINE_CONFIG_START( wink, driver_device )
static MACHINE_CONFIG_START( wink, wink_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 12000000 / 4)
MDRV_CPU_PROGRAM_MAP(wink_map)

View File

@ -222,7 +222,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd800, 0xd83f) AM_BASE(&wiz_attributesram2)
AM_RANGE(0xd840, 0xd85f) AM_BASE_GENERIC(spriteram2) AM_SIZE_GENERIC(spriteram)
AM_RANGE(0xd000, 0xd85f) AM_RAM
AM_RANGE(0xe000, 0xe3ff) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram) /* Fallthrough */
AM_RANGE(0xe000, 0xe3ff) AM_BASE_MEMBER(wiz_state, videoram) /* Fallthrough */
AM_RANGE(0xe400, 0xe7ff) AM_RAM
AM_RANGE(0xe800, 0xe83f) AM_BASE(&wiz_attributesram)
AM_RANGE(0xe840, 0xe85f) AM_BASE_GENERIC(spriteram)
@ -679,7 +679,7 @@ static MACHINE_RESET( wiz )
dsc0 = dsc1 = 1;
}
static MACHINE_CONFIG_START( wiz, driver_device )
static MACHINE_CONFIG_START( wiz, wiz_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz ??? */

View File

@ -77,7 +77,7 @@ static ADDRESS_MAP_START( xorworld_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xa00008, 0xa00009) AM_DEVWRITE("eeprom", eeprom_chip_select_w)
AM_RANGE(0xa0000a, 0xa0000b) AM_DEVWRITE("eeprom", eeprom_serial_clock_w)
AM_RANGE(0xa0000c, 0xa0000d) AM_DEVWRITE("eeprom", eeprom_data_w)
AM_RANGE(0xffc000, 0xffc7ff) AM_RAM_WRITE(xorworld_videoram16_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xffc000, 0xffc7ff) AM_RAM_WRITE(xorworld_videoram16_w) AM_BASE_MEMBER(xorworld_state, videoram)
AM_RANGE(0xffc800, 0xffc87f) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0xffc880, 0xffc881) AM_WRITENOP
AM_RANGE(0xffc882, 0xffc883) AM_WRITENOP
@ -173,7 +173,7 @@ static INTERRUPT_GEN( xorworld_interrupt )
}
static MACHINE_CONFIG_START( xorworld, driver_device )
static MACHINE_CONFIG_START( xorworld, xorworld_state )
// basic machine hardware
MDRV_CPU_ADD("maincpu", M68000, 10000000) // 10 MHz
MDRV_CPU_PROGRAM_MAP(xorworld_map)

View File

@ -19,7 +19,7 @@ static WRITE8_HANDLER( tinvader_sound_w );
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x17ff) AM_ROM
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(tinvader_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(tinvader_videoram_w) AM_BASE_MEMBER(zac2650_state, videoram)
AM_RANGE(0x1c00, 0x1cff) AM_RAM
AM_RANGE(0x1d00, 0x1dff) AM_RAM
AM_RANGE(0x1e80, 0x1e80) AM_READWRITE(tinvader_port_0_r, tinvader_sound_w)
@ -231,7 +231,7 @@ static GFXDECODE_START( tinvader )
GFXDECODE_SCALE( NULL, 0x1F00, s2636_character, 0, 2, 8, 6 ) /* dynamic */
GFXDECODE_END
static MACHINE_CONFIG_START( tinvader, driver_device )
static MACHINE_CONFIG_START( tinvader, zac2650_state )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", S2650, 3800000/4)

View File

@ -1,3 +1,13 @@
class ampoker2_state : public driver_device
{
public:
ampoker2_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in video/ampoker2.c -----------*/
WRITE8_HANDLER( ampoker2_videoram_w );

View File

@ -11,6 +11,16 @@
#define AC_STARS (0x04)
class astrocde_state : public driver_device
{
public:
astrocde_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in video/astrocde.c -----------*/
extern UINT8 astrocade_video_config;

View File

@ -12,6 +12,7 @@ public:
m_nvram(*this, "nvram") { }
required_shared_ptr<UINT8> m_nvram;
UINT8 *videoram;
};
/*----------- defined in video/atetris.c -----------*/

View File

@ -1,3 +1,13 @@
class beezer_state : public driver_device
{
public:
beezer_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in machine/beezer.c -----------*/
extern const via6522_interface b_via_0_interface;

View File

@ -4,6 +4,16 @@
*************************************************************************/
class centiped_state : public driver_device
{
public:
centiped_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in video/centiped.c -----------*/
extern UINT8 centiped_flipscreen, *bullsdrt_tiles_bankram;

View File

@ -4,6 +4,16 @@
*************************************************************************/
class cloak_state : public driver_device
{
public:
cloak_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in video/cloak.c -----------*/
WRITE8_HANDLER( cloak_videoram_w );

View File

@ -1,3 +1,13 @@
class darkmist_state : public driver_device
{
public:
darkmist_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in drivers/darkmist.c -----------*/
extern int darkmist_hw;

View File

@ -1,3 +1,13 @@
class deadang_state : public driver_device
{
public:
deadang_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT16 *videoram;
};
/*----------- defined in video/deadang.c -----------*/
extern UINT16 *deadang_video_data, *deadang_scroll_ram;

View File

@ -1,3 +1,13 @@
class dynduke_state : public driver_device
{
public:
dynduke_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT16 *videoram;
};
/*----------- defined in video/dynduke.c -----------*/
extern UINT16 *dynduke_back_data, *dynduke_fore_data, *dynduke_scroll_ram;

View File

@ -28,6 +28,16 @@
#define GAL_AUDIO "discrete"
class galaxian_state : public driver_device
{
public:
galaxian_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in video/galaxian.c -----------*/
extern UINT8 galaxian_frogger_adjust;

View File

@ -1,3 +1,13 @@
class gatron_state : public driver_device
{
public:
gatron_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in video/gatron.c -----------*/
WRITE8_HANDLER( gat_videoram_w );

View File

@ -13,6 +13,16 @@
#define GOTTLIEB_VIDEO_VBLANK 240
class gottlieb_state : public driver_device
{
public:
gottlieb_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in audio/gottlieb.c -----------*/
WRITE8_HANDLER( gottlieb_sh_w );

View File

@ -9,6 +9,16 @@
#include "devlegcy.h"
class gridlee_state : public driver_device
{
public:
gridlee_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in audio/gridlee.c -----------*/
WRITE8_HANDLER( gridlee_sound_w );

View File

@ -1,3 +1,13 @@
class gsword_state : public driver_device
{
public:
gsword_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in video/gsword.c -----------*/
extern size_t gsword_spritexy_size;

View File

@ -12,6 +12,7 @@ public:
m_nvram(*this, "nvram") { }
required_shared_ptr<UINT8> m_nvram;
UINT8 *videoram;
};
/*----------- defined in machine/irobot.c -----------*/

View File

@ -12,6 +12,16 @@
#define TMS_CLOCK XTAL_40MHz /* TMS320C31 clocks on drivedge */
class itech32_state : public driver_device
{
public:
itech32_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT16 *videoram;
};
/*----------- defined in drivers/itech32.c -----------*/
void itech32_update_interrupts(running_machine *machine, int vint, int xint, int qint);

View File

@ -1,3 +1,13 @@
class magmax_state : public driver_device
{
public:
magmax_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT16 *videoram;
};
/*----------- defined in video/magmax.c -----------*/
extern UINT16 *magmax_vreg;

View File

@ -8,26 +8,28 @@
#include "machine/z80ctc.h"
#include "machine/z80pio.h"
#include "machine/z80sio.h"
#include "machine/6821pia.h"
/* constants */
#define MAIN_OSC_MCR_I XTAL_19_968MHz
class mcr_state : public driver_device
{
public:
mcr_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in drivers/mcr.c -----------*/
WRITE8_DEVICE_HANDLER( mcr_ipu_sio_transmit );
/*----------- defined in drivers/mcr68.c -----------*/
READ8_DEVICE_HANDLER( zwackery_port_2_r );
/*----------- defined in machine/mcr.c -----------*/
extern attotime mcr68_timing_factor;
extern const z80_daisy_config mcr_daisy_chain[];
extern const z80_daisy_config mcr_ipu_daisy_chain[];
extern const z80ctc_interface mcr_ctc_intf;
@ -43,31 +45,17 @@ extern UINT32 mcr_cpu_board;
extern UINT32 mcr_sprite_board;
extern UINT32 mcr_ssio_board;
extern const pia6821_interface zwackery_pia0_intf;
extern const pia6821_interface zwackery_pia1_intf;
extern const pia6821_interface zwackery_pia2_intf;
MACHINE_START( mcr );
MACHINE_RESET( mcr );
MACHINE_START( nflfoot );
MACHINE_START( mcr68 );
MACHINE_RESET( mcr68 );
MACHINE_START( zwackery );
MACHINE_RESET( zwackery );
INTERRUPT_GEN( mcr_interrupt );
INTERRUPT_GEN( mcr_ipu_interrupt );
INTERRUPT_GEN( mcr68_interrupt );
WRITE8_HANDLER( mcr_control_port_w );
WRITE8_HANDLER( mcrmono_control_port_w );
WRITE8_HANDLER( mcr_scroll_value_w );
WRITE16_HANDLER( mcr68_6840_upper_w );
WRITE16_HANDLER( mcr68_6840_lower_w );
READ16_HANDLER( mcr68_6840_upper_r );
READ16_HANDLER( mcr68_6840_lower_r );
WRITE8_HANDLER( mcr_ipu_laserdisk_w );
READ8_HANDLER( mcr_ipu_watchdog_r );
WRITE8_HANDLER( mcr_ipu_watchdog_w );
@ -111,22 +99,3 @@ PALETTE_INIT( spyhunt );
VIDEO_UPDATE( mcr3 );
VIDEO_UPDATE( spyhunt );
/*----------- defined in video/mcr68.c -----------*/
extern UINT8 mcr68_sprite_clip;
extern INT8 mcr68_sprite_xoffset;
WRITE16_HANDLER( mcr68_paletteram_w );
WRITE16_HANDLER( mcr68_videoram_w );
VIDEO_START( mcr68 );
VIDEO_UPDATE( mcr68 );
WRITE16_HANDLER( zwackery_paletteram_w );
WRITE16_HANDLER( zwackery_videoram_w );
WRITE16_HANDLER( zwackery_spriteram_w );
VIDEO_START( zwackery );
VIDEO_UPDATE( zwackery );

56
src/mame/includes/mcr68.h Normal file
View File

@ -0,0 +1,56 @@
#include "machine/6821pia.h"
class mcr68_state : public driver_device
{
public:
mcr68_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT16 *videoram;
};
/*----------- defined in drivers/mcr68.c -----------*/
READ8_DEVICE_HANDLER( zwackery_port_2_r );
/*----------- defined in machine/mcr68.c -----------*/
extern attotime mcr68_timing_factor;
extern const pia6821_interface zwackery_pia0_intf;
extern const pia6821_interface zwackery_pia1_intf;
extern const pia6821_interface zwackery_pia2_intf;
MACHINE_START( mcr68 );
MACHINE_RESET( mcr68 );
MACHINE_START( zwackery );
MACHINE_RESET( zwackery );
WRITE16_HANDLER( mcr68_6840_upper_w );
WRITE16_HANDLER( mcr68_6840_lower_w );
READ16_HANDLER( mcr68_6840_upper_r );
READ16_HANDLER( mcr68_6840_lower_r );
INTERRUPT_GEN( mcr68_interrupt );
/*----------- defined in video/mcr68.c -----------*/
extern UINT8 mcr68_sprite_clip;
extern INT8 mcr68_sprite_xoffset;
WRITE16_HANDLER( mcr68_paletteram_w );
WRITE16_HANDLER( mcr68_videoram_w );
VIDEO_START( mcr68 );
VIDEO_UPDATE( mcr68 );
WRITE16_HANDLER( zwackery_paletteram_w );
WRITE16_HANDLER( zwackery_videoram_w );
WRITE16_HANDLER( zwackery_spriteram_w );
VIDEO_START( zwackery );
VIDEO_UPDATE( zwackery );

View File

@ -6,6 +6,16 @@
#include "sound/samples.h"
class meadows_state : public driver_device
{
public:
meadows_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in audio/meadows.c -----------*/
SAMPLES_START( meadows_sh_start );

View File

@ -1,3 +1,13 @@
class mustache_state : public driver_device
{
public:
mustache_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *videoram;
};
/*----------- defined in video/mustache.c -----------*/
WRITE8_HANDLER( mustache_videoram_w );

Some files were not shown because too many files have changed in this diff Show More