Convert scramble/galaxold to driver_device [Atari Ace]

This commit is contained in:
Scott Stone 2011-04-09 18:31:55 +00:00
parent a268a6e9c8
commit e488397757
15 changed files with 732 additions and 718 deletions

1
.gitattributes vendored
View File

@ -3141,6 +3141,7 @@ src/mame/includes/sauro.h svneol=native#text/plain
src/mame/includes/sbasketb.h svneol=native#text/plain
src/mame/includes/sbugger.h svneol=native#text/plain
src/mame/includes/scotrsht.h svneol=native#text/plain
src/mame/includes/scramble.h svneol=native#text/plain
src/mame/includes/sderby.h svneol=native#text/plain
src/mame/includes/segag80r.h svneol=native#text/plain
src/mame/includes/segag80v.h svneol=native#text/plain

View File

@ -199,9 +199,6 @@ enum {cjoy, cdoublejoy, cAD_stick, cdial, ctrackball, cpaddle, clightgun, cpedal
for (field = port->fieldlist; field != NULL; field = field->next)
{
// if(input_field_name(field) != NULL)
// fprintf(out, "=%s\n", xml_normalize_string(input_field_name(field)));
if (nplayer < field->player + 1)
nplayer = field->player + 1;

View File

@ -555,7 +555,7 @@ void video_manager::exit()
global_free(m_snap_bitmap);
// print a final result if we have at least 5 seconds' worth of data
if (m_overall_emutime.seconds >= 1)
if (m_overall_emutime.seconds >= 5)
{
osd_ticks_t tps = osd_ticks_per_second();
double final_real_time = (double)m_overall_real_seconds + (double)m_overall_real_ticks / (double)tps;
@ -1044,8 +1044,7 @@ void video_manager::recompute_speed(attotime emutime)
{
// create a final screenshot
emu_file file(m_machine.options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
file_error filerr = open_next(file, "png");
// file_error filerr = file.open(m_machine.basename(), PATH_SEPARATOR "final.png");
file_error filerr = file.open(m_machine.basename(), PATH_SEPARATOR "final.png");
if (filerr == FILERR_NONE)
save_snapshot(m_machine.primary_screen, file);
}

View File

@ -17,7 +17,7 @@
#include "sound/flt_rc.h"
#include "sound/tms5110.h"
#include "sound/ay8910.h"
#include "includes/galaxold.h"
#include "includes/scramble.h"
#define AD2083_TMS5110_CLOCK XTAL_640kHz

View File

@ -54,11 +54,11 @@ Stephh's notes (based on the games Z80 code and some tests) :
#include "machine/7474.h"
class dambustr_state : public driver_device
class dambustr_state : public galaxold_state
{
public:
dambustr_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
: galaxold_state(machine, config) { }
int m_noise_data;
};
@ -84,11 +84,11 @@ static ADDRESS_MAP_START( dambustr_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0xd400, 0xd7ff) AM_READ(galaxold_videoram_r)
AM_RANGE(0xd800, 0xd83f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0xd840, 0xd85f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0xd860, 0xd87f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0xd800, 0xd83f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0xd840, 0xd85f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0xd860, 0xd87f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0xd880, 0xd8ff) AM_RAM

View File

@ -410,11 +410,11 @@ static READ8_HANDLER( drivfrcg_port0_r )
static ADDRESS_MAP_START( galaxold_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x5000, 0x53ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x5000, 0x53ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x5400, 0x57ff) AM_READ(galaxold_videoram_r)
AM_RANGE(0x5800, 0x583f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5840, 0x585f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5860, 0x587f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x5800, 0x583f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x5840, 0x585f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x5860, 0x587f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x5880, 0x58ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0")
AM_RANGE(0x6000, 0x6001) AM_WRITE(galaxold_leds_w)
@ -440,11 +440,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mooncrst_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x9400, 0x97ff) AM_READ(galaxold_videoram_r)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x9880, 0x98ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa003, 0xa003) AM_WRITE(galaxold_coin_counter_w)
@ -465,18 +465,18 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( rockclim_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_READWRITE(rockclim_videoram_r, rockclim_videoram_w) AM_BASE(&rockclim_videoram)//4800 - 4803 = bg scroll ?
AM_RANGE(0x4000, 0x47ff) AM_READWRITE(rockclim_videoram_r, rockclim_videoram_w) AM_BASE_MEMBER(galaxold_state, m_rockclim_videoram)//4800 - 4803 = bg scroll ?
AM_RANGE(0x4800, 0x4803) AM_WRITE(rockclim_scroll_w)
AM_RANGE(0x5000, 0x53ff) AM_RAM //?
AM_RANGE(0x5800, 0x5800) AM_READ_PORT("IN2")
AM_RANGE(0x6000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8800) AM_READ_PORT("DSW1")
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x9400, 0x97ff) AM_READ(galaxold_videoram_r)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x9880, 0x98ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa000, 0xa002) AM_WRITE(galaxold_gfxbank_w)// a002 - sprite bank
@ -498,10 +498,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ckongg_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x9000, 0x93ff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x9880, 0x98ff) AM_RAM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc000, 0xc001) AM_WRITE(galaxold_leds_w)
@ -525,10 +525,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ckongmc_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x9000, 0x93ff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x9880, 0x98ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa001, 0xa002) AM_WRITE(galaxold_leds_w) /* GUESS */
@ -552,10 +552,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( scramblb_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x5080, 0x50ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0")
AM_RANGE(0x6000, 0x6001) AM_WRITENOP /* sound triggers */
@ -587,11 +587,11 @@ static READ8_HANDLER( scramb2_port2_r ) { return (input_port_read(space->machine
static ADDRESS_MAP_START( scramb2_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x4c00, 0x4fff) AM_WRITE(galaxold_videoram_w) // mirror
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x5080, 0x50ff) AM_RAM
AM_RANGE(0x5800, 0x5fff) AM_READ(scramb2_protection_r) // must return 0x25
AM_RANGE(0x6000, 0x6007) AM_READ(scramb2_port0_r) // reads from 8 addresses, 1 bit per address
@ -612,11 +612,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( _4in1_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1") /* banked game code */
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x5000, 0x53ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x5000, 0x53ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x5400, 0x57ff) AM_READ(galaxold_videoram_r)
AM_RANGE(0x5800, 0x583f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5840, 0x585f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5860, 0x587f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x5800, 0x583f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x5840, 0x585f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x5860, 0x587f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x5880, 0x58ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0")
AM_RANGE(0x6000, 0x6001) AM_WRITE(galaxold_leds_w)
@ -643,11 +643,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( bagmanmc_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x9400, 0x97ff) AM_READ(galaxold_videoram_r)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x9880, 0x98ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa003, 0xa003) AM_WRITE(galaxold_coin_counter_w)
@ -665,10 +665,10 @@ static ADDRESS_MAP_START( dkongjrm_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x7000, 0x7fff) AM_ROM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9800, 0x983f) AM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9840, 0x987f) AM_WRITEONLY AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x98c0, 0x98ff) AM_WRITEONLY AM_BASE(&galaxold_spriteram2) AM_SIZE(&galaxold_spriteram2_size)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x9800, 0x983f) AM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x9840, 0x987f) AM_WRITEONLY AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x98c0, 0x98ff) AM_WRITEONLY AM_BASE_MEMBER(galaxold_state, m_spriteram2) AM_SIZE_MEMBER(galaxold_state, m_spriteram2_size)
AM_RANGE(0xa000, 0xa0ff) AM_READ_PORT("IN0")
AM_RANGE(0xa003, 0xa003) AM_WRITE(galaxold_coin_counter_w)
//AM_RANGE(0xa004, 0xa007) AM_WRITE(galaxian_lfo_freq_w)
@ -691,11 +691,11 @@ static ADDRESS_MAP_START( tazzmang, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x7000, 0x7000) AM_READ_PORT("DSW0") /* mirror */
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x883f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x8840, 0x885f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x8860, 0x887f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x8800, 0x883f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x8840, 0x885f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x8860, 0x887f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x8880, 0x8bff) AM_WRITENOP
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x9800, 0x9800) AM_READ(watchdog_reset_r)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa7ff, 0xa7ff) AM_READ_PORT("IN0") /* mirror */
@ -716,11 +716,11 @@ static ADDRESS_MAP_START( bongo, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0x8400, 0x87ff) AM_WRITENOP // not used
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x9400, 0x97ff) AM_WRITENOP // not used
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN1")
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW0")
@ -742,10 +742,10 @@ static ADDRESS_MAP_START( ozon1_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x4000, 0x4200) AM_RAM
AM_RANGE(0x4300, 0x43ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x4800, 0x4bff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x4c00, 0x4fff) AM_WRITE(galaxold_videoram_w)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x6801, 0x6801) AM_WRITENOP //continuosly 0 and 1
AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_coin_counter_w)
AM_RANGE(0x6806, 0x6806) AM_WRITE(galaxold_flip_screen_x_w)
@ -766,16 +766,16 @@ static ADDRESS_MAP_START( harem_cpu1, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4fff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x4800, 0x4fff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x5000, 0x5000) AM_WRITENOP
AM_RANGE(0x5800, 0x5800) AM_READNOP AM_WRITE(interrupt_enable_w)
AM_RANGE(0x5801, 0x5807) AM_WRITENOP
AM_RANGE(0x6101, 0x6101) AM_READ_PORT("IN0")
AM_RANGE(0x6102, 0x6102) AM_READ_PORT("IN1")
AM_RANGE(0x6103, 0x6103) AM_WRITENOP
AM_RANGE(0x6200, 0x6203) AM_WRITENOP AM_BASE(&galaxold_attributesram)
AM_RANGE(0x6200, 0x6203) AM_WRITENOP AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x8000, 0x9fff) AM_ROM
AM_RANGE(0xffe6, 0xffff) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0xffe6, 0xffff) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
ADDRESS_MAP_END
static ADDRESS_MAP_START( harem_cpu2, AS_PROGRAM, 8 )
@ -797,8 +797,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hunchbkg, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1480, 0x14bf) AM_MIRROR(0x6000) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0x6000) AM_WRITEONLY AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x1480, 0x14bf) AM_MIRROR(0x6000) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0x6000) AM_WRITEONLY AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x6000) AM_READ_PORT("IN0")
AM_RANGE(0x1500, 0x1501) AM_MIRROR(0x6000) AM_WRITE(galaxold_leds_w) /* not connected ... */
AM_RANGE(0x1502, 0x1502) AM_MIRROR(0x6000) AM_WRITE(galaxold_coin_lockout_w) /* not connected ... */
@ -815,7 +815,7 @@ static ADDRESS_MAP_START( hunchbkg, AS_PROGRAM, 8 )
AM_RANGE(0x1606, 0x1606) AM_MIRROR(0x6000) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0x1607, 0x1607) AM_MIRROR(0x6000) AM_WRITE(galaxold_flip_screen_y_w)
AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x6000) AM_READ(watchdog_reset_r) AM_DEVWRITE(GAL_AUDIO, galaxian_pitch_w)
AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x2000, 0x2fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_ROM
@ -832,8 +832,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( drivfrcg, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1480, 0x14bf) AM_MIRROR(0x6000) AM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0x6000) AM_WRITEONLY AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x1480, 0x14bf) AM_MIRROR(0x6000) AM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0x6000) AM_WRITEONLY AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x6000) AM_READ_PORT("IN0")
AM_RANGE(0x1503, 0x1503) AM_MIRROR(0x6000) AM_WRITE(galaxold_coin_counter_w)
AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_READ_PORT("IN1")
@ -845,7 +845,7 @@ static ADDRESS_MAP_START( drivfrcg, AS_PROGRAM, 8 )
AM_RANGE(0x1700, 0x1700) AM_MIRROR(0x6000) AM_READ_PORT("DSW1") AM_WRITENOP
AM_RANGE(0x1701, 0x1701) AM_MIRROR(0x6000) AM_WRITENOP
AM_RANGE(0x1704, 0x1707) AM_MIRROR(0x6000) AM_DEVWRITE(GAL_AUDIO, galaxian_vol_w)
AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x2000, 0x2fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_ROM
@ -860,8 +860,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( racknrol, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1400, 0x143f) AM_MIRROR(0x6000) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x1440, 0x14bf) AM_MIRROR(0x6000) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x1400, 0x143f) AM_MIRROR(0x6000) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x1440, 0x14bf) AM_MIRROR(0x6000) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x6000) AM_READ_PORT("IN0")
AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_READ_PORT("IN1")
@ -872,7 +872,7 @@ static ADDRESS_MAP_START( racknrol, AS_PROGRAM, 8 )
AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x6000) AM_READNOP
// AM_RANGE(0x1700, 0x1700) AM_MIRROR(0x6000) AM_READ(trvchlng_question_r)
// AM_RANGE(0x1701, 0x1703) AM_MIRROR(0x6000) AM_READ(trvchlng_question_w)
AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x2000, 0x2fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_ROM
@ -883,7 +883,7 @@ static ADDRESS_MAP_START( racknrol_io, AS_IO, 8 )
AM_RANGE(0x1d, 0x1d) AM_DEVWRITE("sn1", sn76496_w)
AM_RANGE(0x1e, 0x1e) AM_DEVWRITE("sn2", sn76496_w)
AM_RANGE(0x1f, 0x1f) AM_DEVWRITE("sn3", sn76496_w)
AM_RANGE(0x20, 0x3f) AM_WRITE(racknrol_tiles_bank_w) AM_BASE(&racknrol_tiles_bank)
AM_RANGE(0x20, 0x3f) AM_WRITE(racknrol_tiles_bank_w) AM_BASE_MEMBER(galaxold_state, m_racknrol_tiles_bank)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
ADDRESS_MAP_END
@ -903,7 +903,7 @@ static READ8_HANDLER( hexpoola_data_port_r )
static ADDRESS_MAP_START( hexpoola_io, AS_IO, 8 )
AM_RANGE(0x00, 0x00) AM_READNOP
AM_RANGE(0x20, 0x3f) AM_WRITE(racknrol_tiles_bank_w) AM_BASE(&racknrol_tiles_bank)
AM_RANGE(0x20, 0x3f) AM_WRITE(racknrol_tiles_bank_w) AM_BASE_MEMBER(galaxold_state, m_racknrol_tiles_bank)
AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ(hexpoola_data_port_r) AM_DEVWRITE("snsnd", sn76496_w)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
ADDRESS_MAP_END
@ -2117,7 +2117,7 @@ static const ay8910_interface bongo_ay8910_interface =
};
static MACHINE_CONFIG_START( galaxold_base, driver_device )
static MACHINE_CONFIG_START( galaxold_base, galaxold_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, PIXEL_CLOCK/2) /* 3.072 MHz */
@ -2276,7 +2276,7 @@ static MACHINE_CONFIG_DERIVED( ozon1, galaxold_base )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( drivfrcg, driver_device )
static MACHINE_CONFIG_START( drivfrcg, galaxold_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", S2650, MASTER_CLOCK/6)
@ -2370,7 +2370,7 @@ static MACHINE_CONFIG_DERIVED( tazzmang, galaxian )
MCFG_CPU_PROGRAM_MAP(tazzmang)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( racknrol, driver_device )
static MACHINE_CONFIG_START( racknrol, galaxold_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", S2650, PIXEL_CLOCK/2)
@ -2426,7 +2426,7 @@ static MACHINE_CONFIG_DERIVED( ckongmc, galaxian )
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( hexpoola, driver_device )
static MACHINE_CONFIG_START( hexpoola, galaxold_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", S2650, PIXEL_CLOCK/2)

View File

@ -36,15 +36,15 @@ Notes/Tidbits:
#include "cpu/z80/z80.h"
#include "machine/8255ppi.h"
#include "machine/7474.h"
#include "includes/galaxold.h"
#include "sound/ay8910.h"
#include "includes/scramble.h"
class scobra_state : public driver_device
class scobra_state : public scramble_state
{
public:
scobra_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
: scramble_state(machine, config) { }
UINT8 *m_soundram;
};
@ -115,12 +115,12 @@ static WRITE8_DEVICE_HANDLER(hustler_ppi8255_w)
static ADDRESS_MAP_START( type1_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x8c00, 0x8fff) AM_RAM_WRITE(galaxold_videoram_w) /* mirror */
AM_RANGE(0x8c00, 0x8fff) AM_READ(galaxold_videoram_r) /* mirror */
AM_RANGE(0x9000, 0x903f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9040, 0x905f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9060, 0x907f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x9000, 0x903f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x9040, 0x905f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x9060, 0x907f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x9080, 0x90ff) AM_RAM
AM_RANGE(0x9800, 0x9803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w)
@ -135,11 +135,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( type2_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x883f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x8840, 0x885f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x8860, 0x887f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x8800, 0x883f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x8840, 0x885f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x8860, 0x887f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x8880, 0x88ff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x9400, 0x97ff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) /* mirror */
AM_RANGE(0x9800, 0x9800) AM_READ(watchdog_reset_r)
AM_RANGE(0xa000, 0xa00f) AM_DEVREADWRITE("ppi8255_0", scobra_type2_ppi8255_r, scobra_type2_ppi8255_w)
@ -155,10 +155,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hustler_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9000, 0x903f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9040, 0x905f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9060, 0x907f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x9000, 0x903f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x9040, 0x905f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x9060, 0x907f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x9080, 0x90ff) AM_RAM
AM_RANGE(0xa802, 0xa802) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0xa804, 0xa804) AM_WRITE(galaxold_nmi_enable_w)
@ -172,10 +172,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hustlerb_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9000, 0x903f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9040, 0x905f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9060, 0x907f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x9000, 0x903f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x9040, 0x905f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x9060, 0x907f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x9080, 0x90ff) AM_RAM
AM_RANGE(0xa801, 0xa801) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0xa802, 0xa802) AM_WRITENOP /* coin counters */
@ -189,11 +189,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mimonkey_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x8c00, 0x8fff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) /* mirror */
AM_RANGE(0x9000, 0x903f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9040, 0x905f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9060, 0x907f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x9000, 0x903f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x9040, 0x905f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x9060, 0x907f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x9080, 0x90ff) AM_RAM
AM_RANGE(0x9800, 0x9803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w)

View File

@ -33,18 +33,18 @@ Notes:
#include "sound/flt_rc.h"
#include "machine/7474.h"
#include "machine/8255ppi.h"
#include "includes/galaxold.h"
#include "includes/scramble.h"
static ADDRESS_MAP_START( scramble_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x4c00, 0x4fff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) /* mirror address */
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x5080, 0x50ff) AM_RAM
AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_coin_counter_w)
@ -62,11 +62,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( turpins_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x9400, 0x97ff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x9880, 0x98ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
@ -94,10 +94,10 @@ static ADDRESS_MAP_START( ckongs_map, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0x6bff) AM_RAM
AM_RANGE(0x7000, 0x7003) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
AM_RANGE(0x7800, 0x7803) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x9880, 0x98ff) AM_RAM
AM_RANGE(0xa801, 0xa801) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0xa802, 0xa802) AM_WRITE(galaxold_coin_counter_w)
@ -121,11 +121,11 @@ static WRITE8_DEVICE_HANDLER(mars_ppi8255_w)
static ADDRESS_MAP_START( mars_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x4c00, 0x4fff) AM_READ(galaxold_videoram_r)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x5080, 0x50ff) AM_RAM
AM_RANGE(0x6800, 0x6800) AM_WRITE(galaxold_coin_counter_1_w)
AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_stars_enable_w)
@ -143,11 +143,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( newsin7_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x4c00, 0x4fff) AM_READ(galaxold_videoram_r)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x5080, 0x50ff) AM_RAM
AM_RANGE(0x6800, 0x6800) AM_WRITE(galaxold_coin_counter_1_w)
AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_stars_enable_w)
@ -165,11 +165,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mrkougar_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x4c00, 0x4fff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x5080, 0x50ff) AM_RAM
AM_RANGE(0x6800, 0x6800) AM_WRITE(galaxold_coin_counter_1_w)
AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_nmi_enable_w)
@ -185,11 +185,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hotshock_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x4c00, 0x4fff) AM_READ(galaxold_videoram_r)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x5080, 0x50ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_WRITE(galaxold_coin_counter_2_w)
AM_RANGE(0x6002, 0x6002) AM_WRITE(galaxold_coin_counter_1_w)
@ -209,16 +209,16 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hunchbks_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1210, 0x1213) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w)
AM_RANGE(0x1400, 0x143f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x1440, 0x145f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x1460, 0x147f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x1400, 0x143f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x1440, 0x145f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x1460, 0x147f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x1480, 0x14ff) AM_RAM
AM_RANGE(0x1500, 0x1503) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
AM_RANGE(0x1606, 0x1606) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0x1607, 0x1607) AM_WRITE(galaxold_flip_screen_y_w)
AM_RANGE(0x1680, 0x1680) AM_READ(watchdog_reset_r)
AM_RANGE(0x1780, 0x1780) AM_READ(watchdog_reset_r)
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x1c00, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2fff) AM_ROM
AM_RANGE(0x3000, 0x3fff) AM_READWRITE(hunchbks_mirror_r, hunchbks_mirror_w)
@ -233,10 +233,10 @@ static ADDRESS_MAP_START( mimonscr_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) /* mirror address?, probably not */
AM_RANGE(0x4400, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x5080, 0x50ff) AM_RAM
AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0x6800, 0x6802) AM_WRITE(galaxold_gfxbank_w)
@ -252,10 +252,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ad2083_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x4800, 0x4bff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE_MEMBER(galaxold_state, m_bulletsram) AM_SIZE_MEMBER(galaxold_state, m_bulletsram_size)
AM_RANGE(0x6004, 0x6004) AM_WRITE(hotshock_flip_screen_w)
AM_RANGE(0x6800, 0x6800) AM_WRITE(galaxold_coin_counter_2_w)
AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_nmi_enable_w)
@ -1206,22 +1206,23 @@ static GFXDECODE_START( scramble )
GFXDECODE_END
static UINT8 *scramble_soundram;
static READ8_HANDLER(scramble_soundram_r)
{
return scramble_soundram[offset & 0x03ff];
scramble_state *state = space->machine().driver_data<scramble_state>();
return state->m_soundram[offset & 0x03ff];
}
static WRITE8_HANDLER(scramble_soundram_w)
{
scramble_soundram[offset & 0x03ff] = data;
scramble_state *state = space->machine().driver_data<scramble_state>();
state->m_soundram[offset & 0x03ff] = data;
}
static ADDRESS_MAP_START( scramble_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_READWRITE(scramble_soundram_r, scramble_soundram_w)
AM_RANGE(0x8000, 0x83ff) AM_WRITENOP AM_BASE(&scramble_soundram) /* only here to initialize pointer */
AM_RANGE(0x8000, 0x83ff) AM_WRITENOP AM_BASE_MEMBER(scramble_state, m_soundram) /* only here to initialize pointer */
AM_RANGE(0x9000, 0x9fff) AM_WRITE(scramble_filter_w)
ADDRESS_MAP_END
@ -1233,7 +1234,7 @@ static ADDRESS_MAP_START( scramble_sound_io_map, AS_IO, 8 )
AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("8910.2", ay8910_r, ay8910_data_w)
ADDRESS_MAP_END
static MACHINE_CONFIG_START( scramble, driver_device )
static MACHINE_CONFIG_START( scramble, scramble_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */
@ -1313,7 +1314,7 @@ static MACHINE_CONFIG_DERIVED( newsin7, scramble )
MCFG_GFXDECODE(newsin7)
MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
MCFG_PALETTE_INIT(galaxold)
MCFG_VIDEO_START(newsin7)
MCFG_VIDEO_START(scrambold)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mrkougar, scramble )
@ -1463,7 +1464,7 @@ static MACHINE_CONFIG_DERIVED( hncholms, hunchbks )
MCFG_VIDEO_START(scorpion)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( ad2083, driver_device )
static MACHINE_CONFIG_START( ad2083, scramble_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(ad2083_map)

View File

@ -5,11 +5,13 @@
***************************************************************************/
class fastfred_state : public driver_device
#include "includes/galaxold.h"
class fastfred_state : public galaxold_state
{
public:
fastfred_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
: galaxold_state(machine, config) { }
UINT8 m_imago_sprites[0x800*3];
UINT16 m_imago_sprites_address;

View File

@ -1,35 +1,90 @@
/***************************************************************************
Galaxian hardware family
Galaxian hardware family (old)
This include file is used by the following drivers:
- galaxian.c
- dambustr.c
- galaxold.c
- scramble.c
- scobra.c
- frogger.c
- amidar.c
- dambustr.c
***************************************************************************/
#include "machine/8255ppi.h"
#ifndef __GALAXOLD_H__
#define __GALAXOLD_H__
/* star circuit */
#define STAR_COUNT 252
struct star
{
int x, y, color;
};
class galaxold_state : public driver_device
{
public:
galaxold_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT8 *m_videoram;
UINT8 *m_spriteram;
UINT8 *m_spriteram2;
UINT8 *m_attributesram;
UINT8 *m_bulletsram;
UINT8 *m_rockclim_videoram;
UINT8 *m_racknrol_tiles_bank;
size_t m_spriteram_size;
size_t m_spriteram2_size;
size_t m_bulletsram_size;
int m_irq_line;
UINT8 m__4in1_bank;
tilemap_t *m_bg_tilemap;
tilemap_t *m_rockclim_tilemap;
int m_mooncrst_gfxextend;
int m_spriteram2_present;
UINT8 m_gfxbank[5];
UINT8 m_flipscreen_x;
UINT8 m_flipscreen_y;
UINT8 m_color_mask;
tilemap_t *m_dambustr_tilemap2;
UINT8 *m_dambustr_videoram2;
void (*m_modify_charcode)(running_machine &machine, UINT16 *code, UINT8 x); /* function to call to do character banking */
void (*m_modify_spritecode)(running_machine &machine, UINT8 *spriteram, int*, int*, int*, int); /* function to call to do sprite banking */
void (*m_modify_color)(UINT8 *color); /* function to call to do modify how the color codes map to the PROM */
void (*m_modify_ypos)(UINT8*); /* function to call to do modify how vertical positioning bits are connected */
void (*m_tilemap_set_scroll)( tilemap_t *, int col, int value );
UINT8 m_timer_adjusted;
UINT8 m_darkplnt_bullet_color;
void (*m_draw_bullets)(running_machine &,bitmap_t *,const rectangle *, int, int, int); /* function to call to draw a bullet */
UINT8 m_background_enable;
UINT8 m_background_red;
UINT8 m_background_green;
UINT8 m_background_blue;
void (*m_draw_background)(running_machine &machine, bitmap_t *bitmap, const rectangle *cliprect); /* function to call to draw the background */
UINT16 m_rockclim_v;
UINT16 m_rockclim_h;
int m_dambustr_bg_split_line;
int m_dambustr_bg_color_1;
int m_dambustr_bg_color_2;
int m_dambustr_bg_priority;
int m_dambustr_char_bank;
bitmap_t *m_dambustr_tmpbitmap;
void (*m_draw_stars)(running_machine &machine, bitmap_t *, const rectangle *); /* function to call to draw the star layer */
int m_stars_colors_start;
INT32 m_stars_scrollpos;
UINT8 m_stars_on;
UINT8 m_stars_blink_state;
emu_timer *m_stars_blink_timer;
emu_timer *m_stars_scroll_timer;
struct star m_stars[STAR_COUNT];
};
/*----------- defined in video/galaxold.c -----------*/
extern UINT8 *galaxold_videoram;
extern UINT8 *galaxold_spriteram;
extern UINT8 *galaxold_spriteram2;
extern UINT8 *galaxold_attributesram;
extern UINT8 *galaxold_bulletsram;
extern UINT8 *rockclim_videoram;
extern UINT8 *racknrol_tiles_bank;
extern size_t galaxold_spriteram_size;
extern size_t galaxold_spriteram2_size;
extern size_t galaxold_bulletsram_size;
extern UINT8 galaxold_stars_on;
PALETTE_INIT( galaxold );
PALETTE_INIT( scrambold );
PALETTE_INIT( darkplnt );
@ -77,7 +132,6 @@ VIDEO_START( stratgyx );
VIDEO_START( mimonkey );
VIDEO_START( mariner );
VIDEO_START( ckongs );
VIDEO_START( newsin7 );
VIDEO_START( rockclim );
VIDEO_START( drivfrcg );
VIDEO_START( bongo );
@ -127,66 +181,4 @@ CUSTOM_INPUT( _4in1_fake_port_r );
INTERRUPT_GEN( hunchbks_vh_interrupt );
/*----------- defined in machine/scramble.c -----------*/
extern const ppi8255_interface scramble_ppi_0_intf;
extern const ppi8255_interface scramble_ppi_1_intf;
extern const ppi8255_interface stratgyx_ppi_1_intf;
extern const ppi8255_interface scramble_protection_ppi_1_intf;
extern const ppi8255_interface mrkougar_ppi_1_intf;
DRIVER_INIT( scramble_ppi );
DRIVER_INIT( stratgyx );
DRIVER_INIT( tazmani2 );
DRIVER_INIT( ckongs );
DRIVER_INIT( mariner );
DRIVER_INIT( devilfsh );
DRIVER_INIT( mars );
DRIVER_INIT( hotshock );
DRIVER_INIT( cavelon );
DRIVER_INIT( darkplnt );
DRIVER_INIT( mimonkey );
DRIVER_INIT( mimonsco );
DRIVER_INIT( mimonscr );
DRIVER_INIT( rescue );
DRIVER_INIT( minefld );
DRIVER_INIT( hustler );
DRIVER_INIT( hustlerd );
DRIVER_INIT( billiard );
DRIVER_INIT( mrkougar );
DRIVER_INIT( mrkougb );
DRIVER_INIT( ad2083 );
MACHINE_RESET( scramble );
MACHINE_RESET( explorer );
READ8_HANDLER( triplep_pip_r );
READ8_HANDLER( triplep_pap_r );
READ8_HANDLER( hunchbks_mirror_r );
WRITE8_HANDLER( hunchbks_mirror_w );
CUSTOM_INPUT( darkplnt_custom_r );
/*----------- defined in audio/scramble.c -----------*/
void scramble_sh_init(running_machine &machine);
WRITE_LINE_DEVICE_HANDLER( scramble_sh_7474_q_callback );
WRITE8_HANDLER( scramble_filter_w );
WRITE8_HANDLER( frogger_filter_w );
READ8_DEVICE_HANDLER( scramble_portB_r );
READ8_DEVICE_HANDLER( frogger_portB_r );
READ8_DEVICE_HANDLER( hotshock_soundlatch_r );
WRITE8_DEVICE_HANDLER( scramble_sh_irqtrigger_w );
WRITE8_DEVICE_HANDLER( mrkougar_sh_irqtrigger_w );
WRITE8_HANDLER( hotshock_sh_irqtrigger_w );
MACHINE_CONFIG_EXTERN( ad2083_audio );
#endif

View File

@ -0,0 +1,78 @@
#include "machine/8255ppi.h"
#include "includes/galaxold.h"
class scramble_state : public galaxold_state
{
public:
scramble_state(running_machine &machine, const driver_device_config_base &config)
: galaxold_state(machine, config) { }
UINT8 *m_soundram;
UINT8 m_cavelon_bank;
UINT8 m_security_2B_counter;
UINT8 m_xb;
};
/*----------- defined in machine/scramble.c -----------*/
extern const ppi8255_interface scramble_ppi_0_intf;
extern const ppi8255_interface scramble_ppi_1_intf;
extern const ppi8255_interface stratgyx_ppi_1_intf;
extern const ppi8255_interface scramble_protection_ppi_1_intf;
extern const ppi8255_interface mrkougar_ppi_1_intf;
DRIVER_INIT( scramble_ppi );
DRIVER_INIT( stratgyx );
DRIVER_INIT( tazmani2 );
DRIVER_INIT( ckongs );
DRIVER_INIT( mariner );
DRIVER_INIT( devilfsh );
DRIVER_INIT( mars );
DRIVER_INIT( hotshock );
DRIVER_INIT( cavelon );
DRIVER_INIT( darkplnt );
DRIVER_INIT( mimonkey );
DRIVER_INIT( mimonsco );
DRIVER_INIT( mimonscr );
DRIVER_INIT( rescue );
DRIVER_INIT( minefld );
DRIVER_INIT( hustler );
DRIVER_INIT( hustlerd );
DRIVER_INIT( billiard );
DRIVER_INIT( mrkougar );
DRIVER_INIT( mrkougb );
DRIVER_INIT( ad2083 );
MACHINE_RESET( scramble );
MACHINE_RESET( explorer );
READ8_HANDLER( triplep_pip_r );
READ8_HANDLER( triplep_pap_r );
READ8_HANDLER( hunchbks_mirror_r );
WRITE8_HANDLER( hunchbks_mirror_w );
CUSTOM_INPUT( darkplnt_custom_r );
/*----------- defined in audio/scramble.c -----------*/
void scramble_sh_init(running_machine &machine);
WRITE_LINE_DEVICE_HANDLER( scramble_sh_7474_q_callback );
WRITE8_HANDLER( scramble_filter_w );
WRITE8_HANDLER( frogger_filter_w );
READ8_DEVICE_HANDLER( scramble_portB_r );
READ8_DEVICE_HANDLER( frogger_portB_r );
READ8_DEVICE_HANDLER( hotshock_soundlatch_r );
WRITE8_DEVICE_HANDLER( scramble_sh_irqtrigger_w );
WRITE8_DEVICE_HANDLER( mrkougar_sh_irqtrigger_w );
WRITE8_HANDLER( hotshock_sh_irqtrigger_w );
MACHINE_CONFIG_EXTERN( ad2083_audio );

View File

@ -11,12 +11,10 @@
#include "machine/7474.h"
#include "includes/galaxold.h"
static int irq_line;
static UINT8 _4in1_bank;
static IRQ_CALLBACK(hunchbkg_irq_callback)
{
//galaxold_state *state = device->machine().driver_data<galaxold_state>();
/* for some reason a call to cputag_set_input_line
* is significantly delayed ....
*
@ -25,7 +23,7 @@ static IRQ_CALLBACK(hunchbkg_irq_callback)
* Therefore we reset the line without any detour ....
*/
device_set_input_line(device->machine().firstcpu, 0, CLEAR_LINE);
//cpu_set_info(device->machine().firstcpu, CPUINFO_INT_INPUT_STATE + irq_line, CLEAR_LINE);
//cpu_set_info(device->machine().firstcpu, CPUINFO_INT_INPUT_STATE + state->m_irq_line, CLEAR_LINE);
return 0x03;
}
@ -39,8 +37,9 @@ WRITE_LINE_DEVICE_HANDLER( galaxold_7474_9m_2_q_callback )
WRITE_LINE_DEVICE_HANDLER( galaxold_7474_9m_1_callback )
{
galaxold_state *drvstate = device->machine().driver_data<galaxold_state>();
/* Q goes to the NMI line */
cputag_set_input_line(device->machine(), "maincpu", irq_line, state ? CLEAR_LINE : ASSERT_LINE);
cputag_set_input_line(device->machine(), "maincpu", drvstate->m_irq_line, state ? CLEAR_LINE : ASSERT_LINE);
}
WRITE8_HANDLER( galaxold_nmi_enable_w )
@ -68,9 +67,10 @@ TIMER_DEVICE_CALLBACK( galaxold_interrupt_timer )
static void machine_reset_common(running_machine &machine, int line)
{
galaxold_state *state = machine.driver_data<galaxold_state>();
device_t *ttl7474_9m_1 = machine.device("7474_9m_1");
device_t *ttl7474_9m_2 = machine.device("7474_9m_2");
irq_line = line;
state->m_irq_line = line;
/* initalize main CPU interrupt generator flip-flops */
ttl7474_preset_w(ttl7474_9m_2, 1);
@ -249,17 +249,19 @@ READ8_HANDLER( scramblb_protection_2_r )
WRITE8_HANDLER( _4in1_bank_w )
{
_4in1_bank = data & 0x03;
galaxold_gfxbank_w(space, 0, _4in1_bank);
memory_set_bank(space->machine(), "bank1", _4in1_bank);
galaxold_state *state = space->machine().driver_data<galaxold_state>();
state->m__4in1_bank = data & 0x03;
galaxold_gfxbank_w(space, 0, state->m__4in1_bank);
memory_set_bank(space->machine(), "bank1", state->m__4in1_bank);
}
CUSTOM_INPUT( _4in1_fake_port_r )
{
galaxold_state *state = field->port->machine().driver_data<galaxold_state>();
static const char *const portnames[] = { "FAKE1", "FAKE2", "FAKE3", "FAKE4" };
int bit_mask = (FPTR)param;
return (input_port_read(field->port->machine(), portnames[_4in1_bank]) & bit_mask) ? 0x01 : 0x00;
return (input_port_read(field->port->machine(), portnames[state->m__4in1_bank]) & bit_mask) ? 0x01 : 0x00;
}
#ifdef UNUSED_FUNCTION
@ -397,6 +399,7 @@ Pin layout is such that links can replace the PAL if encryption is not used.
DRIVER_INIT( 4in1 )
{
galaxold_state *state = machine.driver_data<galaxold_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
offs_t i, len = machine.region("maincpu")->bytes();
UINT8 *RAM = machine.region("maincpu")->base();
@ -410,7 +413,7 @@ DRIVER_INIT( 4in1 )
_4in1_bank_w(space, 0, 0); /* set the initial CPU bank */
state_save_register_global(machine, _4in1_bank);
state_save_register_global(machine, state->m__4in1_bank);
}
INTERRUPT_GEN( hunchbks_vh_interrupt )

View File

@ -10,20 +10,18 @@
#include "emu.h"
#include "cpu/z80/z80.h"
#include "machine/8255ppi.h"
#include "includes/galaxold.h"
#include "includes/scramble.h"
static UINT8 cavelon_bank;
static UINT8 security_2B_counter;
MACHINE_RESET( scramble )
{
scramble_state *state = machine.driver_data<scramble_state>();
MACHINE_RESET_CALL(galaxold);
if (machine.device("audiocpu") != NULL)
scramble_sh_init(machine);
security_2B_counter = 0;
state->m_security_2B_counter = 0;
}
MACHINE_RESET( explorer )
@ -51,11 +49,11 @@ CUSTOM_INPUT( darkplnt_custom_r )
}
/* state of the security PAL (6J) */
static UINT8 xb;
static WRITE8_DEVICE_HANDLER( scramble_protection_w )
{
xb = data;
scramble_state *state = device->machine().driver_data<scramble_state>();
state->m_xb = data;
}
static READ8_DEVICE_HANDLER( scramble_protection_r )
@ -107,12 +105,13 @@ READ8_HANDLER( triplep_pap_r )
static void cavelon_banksw(running_machine &machine)
{
scramble_state *state = machine.driver_data<scramble_state>();
/* any read/write access in the 0x8000-0xffff region causes a bank switch.
Only the lower 0x2000 is switched but we switch the whole region
to keep the CPU core happy at the boundaries */
cavelon_bank = !cavelon_bank;
memory_set_bank(machine, "bank1", cavelon_bank);
state->m_cavelon_bank = !state->m_cavelon_bank;
memory_set_bank(machine, "bank1", state->m_cavelon_bank);
}
static READ8_HANDLER( cavelon_banksw_r )
@ -325,6 +324,7 @@ DRIVER_INIT( hotshock )
DRIVER_INIT( cavelon )
{
scramble_state *state = machine.driver_data<scramble_state>();
UINT8 *ROM = machine.region("maincpu")->base();
/* banked ROM */
@ -338,7 +338,7 @@ DRIVER_INIT( cavelon )
machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_write(0x2000, 0x2000); /* ??? */
machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_write(0x3800, 0x3801); /* looks suspicously like
an AY8910, but not sure */
state_save_register_global(machine, cavelon_bank);
state_save_register_global(machine, state->m_cavelon_bank);
}
@ -395,7 +395,7 @@ DRIVER_INIT( mimonscr )
}
static int bit(int i,int n)
INLINE int bit(int i,int n)
{
return ((i >> n) & 1);
}

View File

@ -9,14 +9,13 @@
#include "emu.h"
#include "video/resnet.h"
#include "includes/fastfred.h"
#include "includes/galaxold.h"
static const rectangle spritevisiblearea =
{
2*8, 32*8-1,
2*8, 30*8-1
2*8, 32*8-1,
2*8, 30*8-1
};
static const rectangle spritevisibleareaflipx =
@ -371,7 +370,7 @@ VIDEO_START( imago )
/* the game has a galaxian starfield */
galaxold_init_stars(machine, 256);
galaxold_stars_on = 1;
state->m_stars_on = 1;
/* web colors */
palette_set_color(machine,256+64+0,MAKE_RGB(0x50,0x00,0x00));

File diff suppressed because it is too large Load Diff