mirror of
https://github.com/holub/mame
synced 2025-07-07 19:03:29 +03:00
Cleanups and version bump.
This commit is contained in:
parent
e9fc65db48
commit
fb5091182e
@ -184,7 +184,7 @@ int cli_execute(cli_options &options, osd_interface &osd, int argc, char **argv)
|
||||
throw emu_fatalerror(MAMERR_INVALID_CONFIG, "%s", option_errors.trimspace().cstr());
|
||||
if (option_errors)
|
||||
printf("Error in command line:\n%s\n", option_errors.trimspace().cstr());
|
||||
|
||||
|
||||
// determine the base name of the EXE
|
||||
astring exename;
|
||||
core_filename_extract_base(&exename, argv[0], TRUE);
|
||||
@ -192,7 +192,7 @@ int cli_execute(cli_options &options, osd_interface &osd, int argc, char **argv)
|
||||
// if we have a command, execute that
|
||||
if (strlen(options.command()) != 0)
|
||||
execute_commands(options, exename);
|
||||
|
||||
|
||||
// otherwise, check for a valid system
|
||||
else
|
||||
{
|
||||
@ -200,19 +200,19 @@ int cli_execute(cli_options &options, osd_interface &osd, int argc, char **argv)
|
||||
const game_driver *system = options.system();
|
||||
if (system == NULL && strlen(options.system_name()) > 0)
|
||||
throw emu_fatalerror(MAMERR_NO_SUCH_GAME, "Unknown system '%s'", options.system_name());
|
||||
|
||||
|
||||
// otherwise just run the game
|
||||
result = mame_execute(options, osd);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// handle exceptions of various types
|
||||
catch (emu_fatalerror &fatal)
|
||||
{
|
||||
astring string(fatal.string());
|
||||
fprintf(stderr, "%s\n", string.trimspace().cstr());
|
||||
result = (fatal.exitcode() != 0) ? fatal.exitcode() : MAMERR_FATALERROR;
|
||||
|
||||
|
||||
// if a game was specified, wasn't a wildcard, and our error indicates this was the
|
||||
// reason for failure, offer some suggestions
|
||||
if (result == MAMERR_NO_SUCH_GAME && strlen(options.system_name()) > 0 && strchr(options.system_name(), '*') == NULL && options.system() == NULL)
|
||||
@ -228,7 +228,7 @@ int cli_execute(cli_options &options, osd_interface &osd, int argc, char **argv)
|
||||
fprintf(stderr, "Out of memory!\n");
|
||||
result = MAMERR_FATALERROR;
|
||||
}
|
||||
|
||||
|
||||
// handle any other exceptions
|
||||
catch (...)
|
||||
{
|
||||
@ -378,7 +378,7 @@ void cli_info_listxml(emu_options &options, const char *gamename)
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
cli_info_listfull - output the name and
|
||||
cli_info_listfull - output the name and
|
||||
description of one or more games
|
||||
-------------------------------------------------*/
|
||||
|
||||
|
@ -361,8 +361,8 @@ static const UINT8 cycles1[] =
|
||||
};
|
||||
|
||||
static void (*const m6809_main[0x100])(m68_state_t *) = {
|
||||
/* 0xX0, 0xX1, 0xX2, 0xX3, 0xX4, 0xX5, 0xX6, 0xX7,
|
||||
0xX8, 0xX9, 0xXA, 0xXB, 0xXC, 0xXD, 0xXE, 0xXF */
|
||||
/* 0xX0, 0xX1, 0xX2, 0xX3, 0xX4, 0xX5, 0xX6, 0xX7,
|
||||
0xX8, 0xX9, 0xXA, 0xXB, 0xXC, 0xXD, 0xXE, 0xXF */
|
||||
|
||||
/* 0x0X */ neg_di, neg_di, com_di, com_di, lsr_di, lsr_di, ror_di, asr_di,
|
||||
asl_di, rol_di, dec_di, dec_di, inc_di, tst_di, jmp_di, clr_di,
|
||||
|
@ -343,7 +343,7 @@ void devcb_resolve_write8(devcb_resolved_write8 *resolved, const devcb_write8 *c
|
||||
resolved->target = device->owner();
|
||||
else
|
||||
resolved->target = device->siblingdevice(config->tag);
|
||||
|
||||
|
||||
if (resolved->target == NULL)
|
||||
fatalerror("devcb_resolve_write8: unable to find device '%s' (requested by %s '%s')", config->tag, device->name(), device->tag());
|
||||
|
||||
|
@ -264,7 +264,7 @@ void emu_options::remove_device_options()
|
||||
{
|
||||
// pre-fetch the next entry in case we delete this one
|
||||
nextentry = curentry->next();
|
||||
|
||||
|
||||
// if this is a device option, nuke it
|
||||
if ((curentry->flags() & OPTION_FLAG_DEVICE) != 0)
|
||||
remove_entry(*curentry);
|
||||
@ -281,15 +281,15 @@ bool emu_options::parse_command_line(int argc, char *argv[], astring &error_stri
|
||||
{
|
||||
// remember the original system name
|
||||
astring old_system_name(system_name());
|
||||
|
||||
|
||||
// parse as normal
|
||||
bool result = core_options::parse_command_line(argc, argv, OPTION_PRIORITY_CMDLINE, error_string);
|
||||
|
||||
|
||||
// if the system name changed, fix up the device options
|
||||
if (old_system_name != system_name())
|
||||
{
|
||||
add_device_options();
|
||||
|
||||
|
||||
// if we failed the first time, try parsing again with the new options in place
|
||||
if (!result)
|
||||
result = core_options::parse_command_line(argc, argv, OPTION_PRIORITY_CMDLINE, error_string);
|
||||
@ -379,7 +379,7 @@ void emu_options::set_system_name(const char *name)
|
||||
{
|
||||
// remember the original system name
|
||||
astring old_system_name(system_name());
|
||||
|
||||
|
||||
// if the system name changed, fix up the device options
|
||||
if (old_system_name != name)
|
||||
{
|
||||
@ -395,7 +395,7 @@ void emu_options::set_system_name(const char *name)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_option - return the value of the
|
||||
// device_option - return the value of the
|
||||
// device-specific option
|
||||
//-------------------------------------------------
|
||||
|
||||
|
@ -54,7 +54,7 @@ enum
|
||||
{
|
||||
// command-line options are HIGH priority
|
||||
OPTION_PRIORITY_CMDLINE = OPTION_PRIORITY_HIGH,
|
||||
|
||||
|
||||
// INI-based options are NORMAL priority, in increasing order:
|
||||
OPTION_PRIORITY_INI = OPTION_PRIORITY_NORMAL,
|
||||
OPTION_PRIORITY_MAME_INI,
|
||||
@ -216,7 +216,7 @@ public:
|
||||
const char *system_name() const { return value(OPTION_SYSTEMNAME); }
|
||||
const game_driver *system() const;
|
||||
void set_system_name(const char *name);
|
||||
|
||||
|
||||
// core configuration options
|
||||
bool read_config() const { return bool_value(OPTION_READCONFIG); }
|
||||
bool write_config() const { return bool_value(OPTION_WRITECONFIG); }
|
||||
@ -334,7 +334,7 @@ public:
|
||||
bool skip_gameinfo() const { return bool_value(OPTION_SKIP_GAMEINFO); }
|
||||
const char *ui_font() const { return value(OPTION_UI_FONT); }
|
||||
const char *ram_size() const { return value(OPTION_RAMSIZE); }
|
||||
|
||||
|
||||
// device-specific options
|
||||
const char *device_option(device_image_interface &image);
|
||||
|
||||
@ -344,7 +344,7 @@ private:
|
||||
void remove_device_options();
|
||||
|
||||
// INI parsing helper
|
||||
bool parse_one_ini(const char *basename, int priority, astring *error_string = NULL);
|
||||
bool parse_one_ini(const char *basename, int priority, astring *error_string = NULL);
|
||||
|
||||
static const options_entry s_option_entries[];
|
||||
};
|
||||
|
@ -80,7 +80,7 @@ bool path_iterator::next(astring &buffer, const char *name)
|
||||
semi = m_current + strlen(m_current);
|
||||
buffer.cpy(m_current, semi - m_current);
|
||||
m_current = (*semi == 0) ? semi : semi + 1;
|
||||
|
||||
|
||||
// append the name if we have one
|
||||
if (name != NULL)
|
||||
{
|
||||
|
@ -156,7 +156,7 @@ static int write_config(emu_options &options, const char *filename, const game_d
|
||||
static void image_options_extract(running_machine *machine)
|
||||
{
|
||||
/* only extract the device options if we've added them */
|
||||
// if (machine->options().bool_value(OPTION_ADDED_DEVICE_OPTIONS))
|
||||
// if (machine->options().bool_value(OPTION_ADDED_DEVICE_OPTIONS))
|
||||
{
|
||||
int index = 0;
|
||||
device_image_interface *image = NULL;
|
||||
|
@ -1498,8 +1498,8 @@ const input_type_desc *input_type_list(running_machine *machine)
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
input_port_exists - return whether an input
|
||||
port exists
|
||||
input_port_exists - return whether an input
|
||||
port exists
|
||||
-------------------------------------------------*/
|
||||
|
||||
bool input_port_exists(running_machine *machine, const char *tag)
|
||||
@ -1509,9 +1509,9 @@ bool input_port_exists(running_machine *machine, const char *tag)
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
input_port_active - return a bitmask of which
|
||||
bits of an input port are active (i.e. not
|
||||
unused or unknown)
|
||||
input_port_active - return a bitmask of which
|
||||
bits of an input port are active (i.e. not
|
||||
unused or unknown)
|
||||
-------------------------------------------------*/
|
||||
|
||||
input_port_value input_port_active(running_machine *machine, const char *tag)
|
||||
@ -1524,10 +1524,10 @@ input_port_value input_port_active(running_machine *machine, const char *tag)
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
input_port_active_safe - return a bitmask of
|
||||
which bits of an input port are active (i.e.
|
||||
not unused or unknown), or a default value if
|
||||
the port does not exist
|
||||
input_port_active_safe - return a bitmask of
|
||||
which bits of an input port are active (i.e.
|
||||
not unused or unknown), or a default value if
|
||||
the port does not exist
|
||||
-------------------------------------------------*/
|
||||
|
||||
input_port_value input_port_active_safe(running_machine *machine, const char *tag, input_port_value defvalue)
|
||||
@ -2933,7 +2933,7 @@ static int frame_get_digital_field_state(const input_field_config *field, int mo
|
||||
|
||||
/*-------------------------------------------------
|
||||
port_default_value - updates default value
|
||||
of port settings according to device settings
|
||||
of port settings according to device settings
|
||||
-------------------------------------------------*/
|
||||
|
||||
static UINT32 port_default_value(const char *fulltag, UINT32 mask, UINT32 defval, device_config *owner)
|
||||
@ -3433,7 +3433,7 @@ static void port_config_detokenize(ioport_list &portlist, const input_port_token
|
||||
TOKEN_GET_UINT64_UNPACK2(ipt, mask, 32, defval, 32);
|
||||
if (curfield != NULL)
|
||||
field_config_insert(curfield, &maskbits, errorbuf, errorbuflen);
|
||||
defval = port_default_value(fulltag,mask,defval,owner);
|
||||
defval = port_default_value(fulltag,mask,defval,owner);
|
||||
curfield = field_config_alloc(curport, IPT_DIPSWITCH, defval, mask);
|
||||
cursetting = NULL;
|
||||
curfield->name = input_port_string_from_token(*ipt++);
|
||||
@ -3512,7 +3512,7 @@ static void port_config_detokenize(ioport_list &portlist, const input_port_token
|
||||
TOKEN_GET_UINT64_UNPACK2(ipt, mask, 32, defval, 32);
|
||||
if (curfield != NULL)
|
||||
field_config_insert(curfield, &maskbits, errorbuf, errorbuflen);
|
||||
defval = port_default_value(fulltag,mask,defval,owner);
|
||||
defval = port_default_value(fulltag,mask,defval,owner);
|
||||
curfield = field_config_alloc(curport, IPT_CONFIG, defval, mask);
|
||||
cursetting = NULL;
|
||||
curfield->name = input_port_string_from_token(*ipt++);
|
||||
|
@ -163,7 +163,7 @@ int mame_execute(emu_options &options, osd_interface &osd)
|
||||
}
|
||||
|
||||
// otherwise, perform validity checks before anything else
|
||||
else
|
||||
else
|
||||
validate_drivers(options, system);
|
||||
|
||||
firstgame = false;
|
||||
|
@ -101,7 +101,7 @@ core_options::entry::entry(const options_entry &entrylist)
|
||||
m_maximum.cpysubstr(namestr, dash + 1, rparen - (dash + 1)).trimspace();
|
||||
namestr.del(lparen, rparen + 1 - lparen);
|
||||
}
|
||||
|
||||
|
||||
// then chop up any semicolon-separated names
|
||||
int semi;
|
||||
int nameindex = 0;
|
||||
@ -110,12 +110,12 @@ core_options::entry::entry(const options_entry &entrylist)
|
||||
m_name[nameindex++].cpysubstr(namestr, 0, semi);
|
||||
namestr.del(0, semi + 1);
|
||||
}
|
||||
|
||||
|
||||
// finally add the last item
|
||||
if (nameindex < ARRAY_LENGTH(m_name))
|
||||
m_name[nameindex++] = namestr;
|
||||
}
|
||||
|
||||
|
||||
// set the default value
|
||||
if (entrylist.defvalue != NULL)
|
||||
m_defdata = entrylist.defvalue;
|
||||
@ -271,7 +271,7 @@ bool core_options::operator!=(const core_options &rhs)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// add_entries - add entries to the current
|
||||
// add_entries - add entries to the current
|
||||
// options sets
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -291,7 +291,7 @@ void core_options::add_entries(const options_entry *entrylist, bool override_exi
|
||||
// if we're overriding existing entries, then remove the old one
|
||||
if (override_existing)
|
||||
remove_entry(*existing);
|
||||
|
||||
|
||||
// otherwise, just override the default and current values and throw out the new entry
|
||||
else
|
||||
{
|
||||
@ -301,7 +301,7 @@ void core_options::add_entries(const options_entry *entrylist, bool override_exi
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// add us to the list and maps
|
||||
append_entry(*newentry);
|
||||
}
|
||||
@ -309,7 +309,7 @@ void core_options::add_entries(const options_entry *entrylist, bool override_exi
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// set_default_value - change the default value
|
||||
// set_default_value - change the default value
|
||||
// of an option
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -319,14 +319,14 @@ void core_options::set_default_value(const char *name, const char *defvalue)
|
||||
entry *curentry = m_entrymap.find(name);
|
||||
if (curentry == NULL)
|
||||
return;
|
||||
|
||||
|
||||
// update the data and default data
|
||||
curentry->set_default_value(defvalue);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// parse_command_line - parse a series of
|
||||
// parse_command_line - parse a series of
|
||||
// command line arguments
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -352,7 +352,7 @@ bool core_options::parse_command_line(int argc, char **argv, int priority, astri
|
||||
error_string.catprintf("Error: unknown option: %s\n", curarg);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// process commands first
|
||||
if (curentry->type() == OPTION_COMMAND)
|
||||
{
|
||||
@ -388,7 +388,7 @@ bool core_options::parse_command_line(int argc, char **argv, int priority, astri
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// parse_ini_file - parse a series of entries in
|
||||
// parse_ini_file - parse a series of entries in
|
||||
// an INI file
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -453,7 +453,7 @@ bool core_options::parse_ini_file(core_file &inifile, int priority, int ignore_p
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// revert - revert options at or below a certain
|
||||
// revert - revert options at or below a certain
|
||||
// priority back to their defaults
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -519,7 +519,7 @@ const char *core_options::output_help(astring &buffer)
|
||||
{
|
||||
// start empty
|
||||
buffer.reset();
|
||||
|
||||
|
||||
// loop over all items
|
||||
for (entry *curentry = m_entrylist; curentry != NULL; curentry = curentry->next())
|
||||
{
|
||||
@ -570,7 +570,7 @@ bool core_options::set_value(const char *name, const char *value, int priority,
|
||||
error_string.catprintf("Attempted to set unknown option %s\n", name);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// validate and set the item normally
|
||||
return validate_and_set_data(*curentry, value, priority, error_string);
|
||||
}
|
||||
@ -600,14 +600,14 @@ void core_options::reset()
|
||||
// remove all entries from the list
|
||||
while (m_entrylist != NULL)
|
||||
remove_entry(*m_entrylist);
|
||||
|
||||
|
||||
// reset the map
|
||||
m_entrymap.reset();
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// append_entry - append an entry to our list
|
||||
// append_entry - append an entry to our list
|
||||
// and index it in the map
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -623,7 +623,7 @@ void core_options::append_entry(core_options::entry &newentry)
|
||||
if (newentry.m_name[name])
|
||||
{
|
||||
m_entrymap.add(newentry.m_name[name], &newentry);
|
||||
|
||||
|
||||
// for boolean options add a "no" variant as well
|
||||
if (newentry.type() == OPTION_BOOLEAN)
|
||||
m_entrymap.add(tempstr.cpy("no").cat(newentry.m_name[name]), &newentry);
|
||||
@ -632,7 +632,7 @@ void core_options::append_entry(core_options::entry &newentry)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// remove_entry - remove an entry from our list
|
||||
// remove_entry - remove an entry from our list
|
||||
// and map
|
||||
//-------------------------------------------------
|
||||
|
||||
@ -648,7 +648,7 @@ void core_options::remove_entry(core_options::entry &delentry)
|
||||
preventry->m_next = delentry.m_next;
|
||||
else
|
||||
m_entrylist = delentry.m_next;
|
||||
|
||||
|
||||
// if we're the last item, update the next pointer
|
||||
if (delentry.m_next == NULL)
|
||||
{
|
||||
@ -675,7 +675,7 @@ void core_options::copyfrom(const core_options &src)
|
||||
{
|
||||
// reset ourselves first
|
||||
reset();
|
||||
|
||||
|
||||
// iterate through the src options and make our own
|
||||
for (entry *curentry = src.m_entrylist; curentry != NULL; curentry = curentry->next())
|
||||
append_entry(*new entry(*curentry));
|
||||
@ -693,14 +693,14 @@ bool core_options::validate_and_set_data(core_options::entry &curentry, const ch
|
||||
// trim any whitespace
|
||||
astring data(newdata);
|
||||
data.trimspace();
|
||||
|
||||
|
||||
// trim quotes
|
||||
if (data.chr(0, '"') == 0 && data.rchr(0, '"') == data.len() - 1)
|
||||
{
|
||||
data.del(0, 1);
|
||||
data.del(data.len() - 1, 1);
|
||||
}
|
||||
|
||||
|
||||
// validate the type of data and optionally the range
|
||||
float fval;
|
||||
int ival;
|
||||
@ -714,7 +714,7 @@ bool core_options::validate_and_set_data(core_options::entry &curentry, const ch
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
// integers must be integral
|
||||
case OPTION_INTEGER:
|
||||
if (sscanf(data, "%d", &ival) != 1)
|
||||
@ -728,7 +728,7 @@ bool core_options::validate_and_set_data(core_options::entry &curentry, const ch
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
// floating-point values must be numeric
|
||||
case OPTION_FLOAT:
|
||||
if (sscanf(data, "%f", &fval) != 1)
|
||||
@ -742,11 +742,11 @@ bool core_options::validate_and_set_data(core_options::entry &curentry, const ch
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
// strings can be anything
|
||||
case OPTION_STRING:
|
||||
break;
|
||||
|
||||
|
||||
// anything else is invalid
|
||||
case OPTION_INVALID:
|
||||
case OPTION_HEADER:
|
||||
@ -754,7 +754,7 @@ bool core_options::validate_and_set_data(core_options::entry &curentry, const ch
|
||||
error_string.catprintf("Attempted to set invalid option %s\n", curentry.name());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// set the data
|
||||
curentry.set_value(data, priority);
|
||||
return true;
|
||||
|
@ -96,7 +96,7 @@ public:
|
||||
class entry
|
||||
{
|
||||
friend class core_options;
|
||||
|
||||
|
||||
// construction/destruction
|
||||
entry(const options_entry &entry);
|
||||
|
||||
@ -143,16 +143,16 @@ public:
|
||||
core_options(const options_entry *entrylist1, const options_entry *entrylist2, const options_entry *entrylist3);
|
||||
core_options(const core_options &src);
|
||||
virtual ~core_options();
|
||||
|
||||
|
||||
// operators
|
||||
core_options &operator=(const core_options &rhs);
|
||||
bool operator==(const core_options &rhs);
|
||||
bool operator!=(const core_options &rhs);
|
||||
|
||||
|
||||
// getters
|
||||
entry *first() const { return m_entrylist; }
|
||||
const char *command() const { return m_command; }
|
||||
|
||||
|
||||
// configuration
|
||||
void add_entries(const options_entry *entrylist, bool override_existing = false);
|
||||
void set_default_value(const char *name, const char *defvalue);
|
||||
@ -181,7 +181,7 @@ public:
|
||||
bool set_value(const char *name, const char *value, int priority, astring &error_string);
|
||||
bool set_value(const char *name, int value, int priority, astring &error_string);
|
||||
bool set_value(const char *name, float value, int priority, astring &error_string);
|
||||
|
||||
|
||||
// misc
|
||||
static const char *unadorned(int x = 0) { return s_option_unadorned[MIN(x, MAX_UNADORNED_OPTIONS)]; }
|
||||
|
||||
@ -195,9 +195,9 @@ private:
|
||||
// internal state
|
||||
entry * m_entrylist; // head of list of entries
|
||||
entry ** m_entrylist_tailptr; // pointer to tail of entry list
|
||||
tagmap_t<entry *> m_entrymap; // map for fast lookup
|
||||
tagmap_t<entry *> m_entrymap; // map for fast lookup
|
||||
astring m_command; // command found
|
||||
static const char *const s_option_unadorned[]; // array of unadorned option "names"
|
||||
static const char *const s_option_unadorned[]; // array of unadorned option "names"
|
||||
};
|
||||
|
||||
|
||||
|
@ -131,5 +131,5 @@ DISCRETE_SOUND_END
|
||||
WRITE8_HANDLER( catch_audio_w )
|
||||
{
|
||||
/* Different from avalnche, it plays a sound (offset 0/1/2) on data bit 0 rising edge.
|
||||
There's no indication that the game silences sound, it's probably done automatically. */
|
||||
There's no indication that the game silences sound, it's probably done automatically. */
|
||||
}
|
||||
|
@ -5,44 +5,44 @@
|
||||
Platform: Aristocrat 540 Video ( MK 2.5 Video / MK IV )
|
||||
Driver by Palindrome & FraSher
|
||||
|
||||
***************** INITIALISATION *********************************************************************
|
||||
***************** INITIALISATION *********************************************************************
|
||||
|
||||
Method 1 :
|
||||
* Key in with the Jackpot Key followed by the Audit Key
|
||||
* Press PB4, PB5 and PB6 keys simultaneously (Z+X+C keys by default)
|
||||
* A value (displayed below) will appear next to RF/AMT on the right of the screen
|
||||
* Key out both the Jackpot and Audit Keys
|
||||
Method 1 :
|
||||
* Key in with the Jackpot Key followed by the Audit Key
|
||||
* Press PB4, PB5 and PB6 keys simultaneously (Z+X+C keys by default)
|
||||
* A value (displayed below) will appear next to RF/AMT on the right of the screen
|
||||
* Key out both the Jackpot and Audit Keys
|
||||
|
||||
This method works with the following games:
|
||||
3bagflnz 200
|
||||
3bagflvt 200
|
||||
autmoon 200
|
||||
blkrhino 200
|
||||
coralr2 200
|
||||
eforesta 200
|
||||
eforestb 200
|
||||
ffortune 200
|
||||
gldnpkr 400
|
||||
goldenc 200
|
||||
gtroppo 500
|
||||
kgbird 200
|
||||
kgbirda 200
|
||||
phantomp 200
|
||||
swtht2nz 200
|
||||
wildone 200
|
||||
wtigernz 200
|
||||
This method works with the following games:
|
||||
3bagflnz 200
|
||||
3bagflvt 200
|
||||
autmoon 200
|
||||
blkrhino 200
|
||||
coralr2 200
|
||||
eforesta 200
|
||||
eforestb 200
|
||||
ffortune 200
|
||||
gldnpkr 400
|
||||
goldenc 200
|
||||
gtroppo 500
|
||||
kgbird 200
|
||||
kgbirda 200
|
||||
phantomp 200
|
||||
swtht2nz 200
|
||||
wildone 200
|
||||
wtigernz 200
|
||||
|
||||
Method 2 :
|
||||
* Key in with the Jackpot Key followed by the Audit Key
|
||||
* Press PB4, PB5 and PB6 keys simultaneously (Z+X+C keys by default)
|
||||
* This will enter the cashcade screen and increment $100 to the maximum
|
||||
* Press PLAY 2 LINES [BET 2 is erroneously displayed on the screen] to increment the minimum cashcade value by $5
|
||||
(optionally, you can decrement with the PLAY 1 LINE [BET 1] button, but you must first increment the $5 to start with above or the game won't initialise)
|
||||
* A value (displayed below) will appear on the right as RF/AMT when you key in again (not visible until you key out and back in again with the Audit Key)
|
||||
* Key out both the Jackpot and Audit Keys
|
||||
Method 2 :
|
||||
* Key in with the Jackpot Key followed by the Audit Key
|
||||
* Press PB4, PB5 and PB6 keys simultaneously (Z+X+C keys by default)
|
||||
* This will enter the cashcade screen and increment $100 to the maximum
|
||||
* Press PLAY 2 LINES [BET 2 is erroneously displayed on the screen] to increment the minimum cashcade value by $5
|
||||
(optionally, you can decrement with the PLAY 1 LINE [BET 1] button, but you must first increment the $5 to start with above or the game won't initialise)
|
||||
* A value (displayed below) will appear on the right as RF/AMT when you key in again (not visible until you key out and back in again with the Audit Key)
|
||||
* Key out both the Jackpot and Audit Keys
|
||||
|
||||
This method works with the following games:
|
||||
topgear 500
|
||||
This method works with the following games:
|
||||
topgear 500
|
||||
|
||||
Technical Notes:
|
||||
|
||||
@ -143,9 +143,9 @@
|
||||
|
||||
9.When DIP SW7 is set to off/off, speed is dramatically reduced.
|
||||
|
||||
10. rewrite video emulation by using custom drawing code.
|
||||
10. rewrite video emulation by using custom drawing code.
|
||||
|
||||
11. check what type of mc6845 this HW uses on real PCB, and hook it up properly.
|
||||
11. check what type of mc6845 this HW uses on real PCB, and hook it up properly.
|
||||
|
||||
***************** POKER GAMES ************************************************************************
|
||||
|
||||
|
@ -890,7 +890,7 @@ static INPUT_PORTS_START( spacezap )
|
||||
|
||||
PORT_START("FAKE")
|
||||
/* Dedicated cabinets had a B/W monitor and color overlay,
|
||||
some (unofficial/repaired?) cabinets had a color monitor. */
|
||||
some (unofficial/repaired?) cabinets had a color monitor. */
|
||||
PORT_CONFNAME( 0x01, 0x00, "Monitor" ) PORT_CHANGED(spacezap_monitor, 0)
|
||||
PORT_CONFSETTING( 0x00, "B/W" )
|
||||
PORT_CONFSETTING( 0x01, "Color" )
|
||||
|
@ -37,7 +37,7 @@ REF. 020419
|
||||
| TL074C TL074C 385-1 |
|
||||
| TDA1387 TDA1387 14.31818MHz |
|
||||
| |
|
||||
|--------------------------------------------------------------|
|
||||
|--------------------------------------------------------------|
|
||||
Notes:
|
||||
SH4 - Hitachi HD6417750S SH4 CPU (BGA)
|
||||
K4S643232 - Samsung K4S643232E-TC70 64M x 32-bit SDRAM (TSSOP86)
|
||||
@ -53,7 +53,7 @@ Notes:
|
||||
CN1 - Multi-pin connector for filter board (input power & controls connectors etc)
|
||||
DB9 - Video output connector (for twin monitors)
|
||||
SW3 - Push button switch
|
||||
|
||||
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
|
@ -138,7 +138,7 @@ static ADDRESS_MAP_START( catch_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x2003, 0x2003) AM_MIRROR(0x0ffc) AM_READNOP
|
||||
AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x0fff) AM_WRITE(watchdog_reset_w)
|
||||
AM_RANGE(0x4000, 0x4000) AM_MIRROR(0x0ff8) AM_WRITE(avalance_credit_1_lamp_w)
|
||||
// AM_RANGE(0x4001, 0x4001) AM_MIRROR(0x0ff8) AM_DEVWRITE("discrete", avalnche_attract_enable_w) /* It is attract_enable just like avalnche, but not hooked up yet. */
|
||||
// AM_RANGE(0x4001, 0x4001) AM_MIRROR(0x0ff8) AM_DEVWRITE("discrete", avalnche_attract_enable_w) /* It is attract_enable just like avalnche, but not hooked up yet. */
|
||||
AM_RANGE(0x4002, 0x4002) AM_MIRROR(0x0ff8) AM_WRITE(avalance_video_invert_w)
|
||||
AM_RANGE(0x4003, 0x4003) AM_MIRROR(0x0ff8) AM_WRITE(avalance_credit_2_lamp_w)
|
||||
AM_RANGE(0x4004, 0x4006) AM_MIRROR(0x0ff8) AM_WRITE(catch_audio_w)
|
||||
@ -301,30 +301,30 @@ MACHINE_CONFIG_END
|
||||
|
||||
ROM_START( avalnche )
|
||||
ROM_REGION( 0x8000, "maincpu", 0 )
|
||||
ROM_LOAD_NIB_HIGH( "30612.d2", 0x6800, 0x0800, CRC(3f975171) SHA1(afe680865da97824f1ebade4c7a2ba5d7ee2cbab) )
|
||||
ROM_LOAD_NIB_LOW ( "30615.d3", 0x6800, 0x0800, CRC(3e1a86b4) SHA1(3ff4cffea5b7a32231c0996473158f24c3bbe107) )
|
||||
ROM_LOAD_NIB_HIGH( "30613.e2", 0x7000, 0x0800, CRC(47a224d3) SHA1(9feb7444a2e5a3d90a4fe78ae5d23c3a5039bfaa) )
|
||||
ROM_LOAD_NIB_LOW ( "30616.e3", 0x7000, 0x0800, CRC(f620f0f8) SHA1(7802b399b3469fc840796c3145b5f63781090956) )
|
||||
ROM_LOAD_NIB_HIGH( "30611.c2", 0x7800, 0x0800, CRC(0ad07f85) SHA1(5a1a873b14e63dbb69ee3686ba53f7ca831fe9d0) )
|
||||
ROM_LOAD_NIB_LOW ( "30614.c3", 0x7800, 0x0800, CRC(a12d5d64) SHA1(1647d7416bf9266d07f066d3797bda943e004d24) )
|
||||
ROM_LOAD_NIB_HIGH( "30612.d2", 0x6800, 0x0800, CRC(3f975171) SHA1(afe680865da97824f1ebade4c7a2ba5d7ee2cbab) )
|
||||
ROM_LOAD_NIB_LOW ( "30615.d3", 0x6800, 0x0800, CRC(3e1a86b4) SHA1(3ff4cffea5b7a32231c0996473158f24c3bbe107) )
|
||||
ROM_LOAD_NIB_HIGH( "30613.e2", 0x7000, 0x0800, CRC(47a224d3) SHA1(9feb7444a2e5a3d90a4fe78ae5d23c3a5039bfaa) )
|
||||
ROM_LOAD_NIB_LOW ( "30616.e3", 0x7000, 0x0800, CRC(f620f0f8) SHA1(7802b399b3469fc840796c3145b5f63781090956) )
|
||||
ROM_LOAD_NIB_HIGH( "30611.c2", 0x7800, 0x0800, CRC(0ad07f85) SHA1(5a1a873b14e63dbb69ee3686ba53f7ca831fe9d0) )
|
||||
ROM_LOAD_NIB_LOW ( "30614.c3", 0x7800, 0x0800, CRC(a12d5d64) SHA1(1647d7416bf9266d07f066d3797bda943e004d24) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( cascade )
|
||||
ROM_REGION( 0x8000, "maincpu", 0 )
|
||||
ROM_LOAD( "10005.1a", 0x6800, 0x0400, CRC(54774594) SHA1(03e013b563675fb8a30bd69836466a353db9bfc7) )
|
||||
ROM_LOAD( "10005.1b", 0x6c00, 0x0400, CRC(fd9575ad) SHA1(ed0a1343d3c0456d458561256d5ee966b6c213f4) )
|
||||
ROM_LOAD( "10005.2a", 0x7000, 0x0400, CRC(12857c75) SHA1(e42fdee70bd19d6f60e88f106a49dbbd68c591cd) )
|
||||
ROM_LOAD( "10005.2b", 0x7400, 0x0400, CRC(26361698) SHA1(587cc6f0dc068a74aac41c2cb3336d70d2dd91e5) )
|
||||
ROM_LOAD( "10005.3a", 0x7800, 0x0400, CRC(d1f422ff) SHA1(65ecbf0a22ba340d6a1768ed029030bac9c19e0f) )
|
||||
ROM_LOAD( "10005.3b", 0x7c00, 0x0400, CRC(bb243d96) SHA1(3a387a8c50cd9b0db37d12b94dc9e260892dbf21) )
|
||||
ROM_LOAD( "10005.1a", 0x6800, 0x0400, CRC(54774594) SHA1(03e013b563675fb8a30bd69836466a353db9bfc7) )
|
||||
ROM_LOAD( "10005.1b", 0x6c00, 0x0400, CRC(fd9575ad) SHA1(ed0a1343d3c0456d458561256d5ee966b6c213f4) )
|
||||
ROM_LOAD( "10005.2a", 0x7000, 0x0400, CRC(12857c75) SHA1(e42fdee70bd19d6f60e88f106a49dbbd68c591cd) )
|
||||
ROM_LOAD( "10005.2b", 0x7400, 0x0400, CRC(26361698) SHA1(587cc6f0dc068a74aac41c2cb3336d70d2dd91e5) )
|
||||
ROM_LOAD( "10005.3a", 0x7800, 0x0400, CRC(d1f422ff) SHA1(65ecbf0a22ba340d6a1768ed029030bac9c19e0f) )
|
||||
ROM_LOAD( "10005.3b", 0x7c00, 0x0400, CRC(bb243d96) SHA1(3a387a8c50cd9b0db37d12b94dc9e260892dbf21) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( catchp )
|
||||
ROM_REGION( 0x8000, "maincpu", 0 )
|
||||
ROM_LOAD_NIB_HIGH( "catch.e2", 0x7000, 0x0800, CRC(ce1911ef) SHA1(1237b3e2c69342d2cccc8a3a9303f1b39b66e927) ) // n82s185
|
||||
ROM_LOAD_NIB_LOW ( "catch.e3", 0x7000, 0x0800, CRC(32bf254a) SHA1(22920d43beb2f21c0862c3675a4ee3e230d889b2) ) // "
|
||||
ROM_LOAD_NIB_HIGH( "catch.d2", 0x7800, 0x0800, CRC(404a9551) SHA1(1e966ebb6e08e86e858146fe6c070e96b80171f8) ) // "
|
||||
ROM_LOAD_NIB_LOW ( "catch.d3", 0x7800, 0x0800, CRC(fde4dd73) SHA1(bc6fbfed8099865bef35b4c3061c7f5541bcec23) ) // "
|
||||
ROM_LOAD_NIB_HIGH( "catch.e2", 0x7000, 0x0800, CRC(ce1911ef) SHA1(1237b3e2c69342d2cccc8a3a9303f1b39b66e927) ) // n82s185
|
||||
ROM_LOAD_NIB_LOW ( "catch.e3", 0x7000, 0x0800, CRC(32bf254a) SHA1(22920d43beb2f21c0862c3675a4ee3e230d889b2) ) // "
|
||||
ROM_LOAD_NIB_HIGH( "catch.d2", 0x7800, 0x0800, CRC(404a9551) SHA1(1e966ebb6e08e86e858146fe6c070e96b80171f8) ) // "
|
||||
ROM_LOAD_NIB_LOW ( "catch.d3", 0x7800, 0x0800, CRC(fde4dd73) SHA1(bc6fbfed8099865bef35b4c3061c7f5541bcec23) ) // "
|
||||
|
||||
ROM_REGION( 0x0200, "user1", 0 ) // ?
|
||||
ROM_LOAD( "catch.k3", 0x0000, 0x0200, CRC(a0ffc6fc) SHA1(b5c1a170acbf490786ed6ecc582712c3d2a97f37) ) // n82s129
|
||||
|
@ -70,7 +70,7 @@ static VIDEO_START( backfire )
|
||||
|
||||
state->left = auto_bitmap_alloc(machine, 80*8, 32*8, BITMAP_FORMAT_INDEXED16);
|
||||
state->right = auto_bitmap_alloc(machine, 80*8, 32*8, BITMAP_FORMAT_INDEXED16);
|
||||
|
||||
|
||||
state->save_pointer(NAME(state->spriteram_1), 0x2000/2);
|
||||
state->save_pointer(NAME(state->spriteram_2), 0x2000/2);
|
||||
|
||||
|
@ -931,9 +931,9 @@ ROM_END
|
||||
static DRIVER_INIT( bagman )
|
||||
{
|
||||
bagman_state *state = machine->driver_data<bagman_state>();
|
||||
|
||||
|
||||
/* Unmap video enable register, not available on earlier hardware revision(s)
|
||||
Bagman is supposed to have glitches during screen transitions */
|
||||
Bagman is supposed to have glitches during screen transitions */
|
||||
memory_unmap_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xa003, 0xa003, 0, 0);
|
||||
*state->video_enable = 1;
|
||||
}
|
||||
|
@ -53,13 +53,13 @@ Notes:
|
||||
static ADDRESS_MAP_START( carjmbre_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
// AM_RANGE(0x8800, 0x8800) AM_READNOP // watchdog?
|
||||
// AM_RANGE(0x8800, 0x8800) AM_READNOP // watchdog?
|
||||
AM_RANGE(0x8803, 0x8803) AM_WRITE(interrupt_enable_w)
|
||||
AM_RANGE(0x8805, 0x8805) AM_WRITE(carjmbre_bgcolor_w) // guessed
|
||||
AM_RANGE(0x8806, 0x8806) AM_WRITE(carjmbre_8806_w) // video related?
|
||||
AM_RANGE(0x8807, 0x8807) AM_WRITE(carjmbre_flipscreen_w)
|
||||
// AM_RANGE(0x8fc1, 0x8fc1) AM_WRITENOP // overrun during initial screen clear
|
||||
// AM_RANGE(0x8fe1, 0x8fe1) AM_WRITENOP // overrun during initial screen clear
|
||||
// AM_RANGE(0x8fc1, 0x8fc1) AM_WRITENOP // overrun during initial screen clear
|
||||
// AM_RANGE(0x8fe1, 0x8fe1) AM_WRITENOP // overrun during initial screen clear
|
||||
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(carjmbre_videoram_w) AM_BASE_MEMBER(carjmbre_state, videoram)
|
||||
AM_RANGE(0x9800, 0x985f) AM_MIRROR(0x80) AM_WRITEONLY AM_BASE_SIZE_MEMBER(carjmbre_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1")
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
|
||||
|
||||
Chihiro is an Xbox-based arcade system from SEGA.
|
||||
|
||||
Games on this system include....
|
||||
@ -39,28 +39,28 @@ Games on this system include....
|
||||
* denotes these games are archived.
|
||||
If you can help with the undumped games or know of missing Chihiro games, please contact...
|
||||
http://guru.mameworld.info/ or http://www.mamedev.org
|
||||
|
||||
A Chihiro system consists of several boards.
|
||||
The system is in 2 separate metal boxes that fit together to form one box.
|
||||
|
||||
A Chihiro system consists of several boards.
|
||||
The system is in 2 separate metal boxes that fit together to form one box.
|
||||
In order from top to bottom they are....
|
||||
- Network board \
|
||||
- Media board / Together in the top box
|
||||
|
||||
|
||||
- Base board \
|
||||
- Xbox board / Together in the bottom box
|
||||
|
||||
The 2 boxes join together via the Base Board upper connector and Media Board lower connector.
|
||||
|
||||
The Microsoft-manufactured XBox board is the lowest board. It's mostly the same as the V1 XBox retail
|
||||
board with the exception that it has 128MB of RAM and a NVidia MCPX X2 chip. The retail XBox board has a
|
||||
board with the exception that it has 128MB of RAM and a NVidia MCPX X2 chip. The retail XBox board has a
|
||||
MCPX X3 chip. The board was probably released to Sega very early in development and the chip was updated
|
||||
in the mass-produced retail version.
|
||||
|
||||
The Sega-manufactured base board is connected to the XBox board via a 40 pin 80-wire flat cable and a 16
|
||||
pin 16-wire flat cable connects to the LPC header, plus a couple of thin multi-wire cables which join to the
|
||||
The Sega-manufactured base board is connected to the XBox board via a 40 pin 80-wire flat cable and a 16
|
||||
pin 16-wire flat cable connects to the LPC header, plus a couple of thin multi-wire cables which join to the
|
||||
XBox game controller ports (USB1.1) and front panel connector.
|
||||
On the reverse side of that board are the power output connectors going to the XBox board and a 100 pin
|
||||
connector where the media board plugs in. A CR2032 coin battery is also located there and next to it are 6
|
||||
On the reverse side of that board are the power output connectors going to the XBox board and a 100 pin
|
||||
connector where the media board plugs in. A CR2032 coin battery is also located there and next to it are 6
|
||||
jumpers....
|
||||
JP3S 2-3 \
|
||||
JP4S 1-2 |
|
||||
@ -68,12 +68,12 @@ JP5S 1-2 |
|
||||
JP6S 2-3 | These are connected to the USB chip on the other side of this board
|
||||
JP7S 1-2 |
|
||||
JP8S 2-3 /
|
||||
A long connector on one edge connects to the filter board (power supply input etc) and on another edge are
|
||||
connectors for VGA output, audio/video input (from a short cable coming from the A/V connector on the XBox board)
|
||||
A long connector on one edge connects to the filter board (power supply input etc) and on another edge are
|
||||
connectors for VGA output, audio/video input (from a short cable coming from the A/V connector on the XBox board)
|
||||
and a 14 pin connector which is unused. The base board handles JVS and video output.
|
||||
|
||||
The upper part contains a Sega-manufactured media board with a TSOP48 flash ROM containing an xbox .xbe loader
|
||||
(this is the Chihiro logo you see when you power the Chihiro) and there's a connector for a Sega network board.
|
||||
(this is the Chihiro logo you see when you power the Chihiro) and there's a connector for a Sega network board.
|
||||
The network board is 100% the same as the one in the Triforce v3 with the same firmware also.
|
||||
|
||||
The system requires one of the various Sega JVS I/O boards to operate.
|
||||
@ -89,12 +89,12 @@ Media Board : One ST 29W160ET 2M x8-bit TSOP48 Flash ROM stamped 'FPR24042' at
|
||||
Base Board : Two Microchip 24LC64 64k Serial EEPROMs at locations IC32 and IC10
|
||||
One Microchip 24LC24 2k Serial EEPROM at location IC11
|
||||
The chip at IC32 seems to be a backup of the base board firmware without region or serial.
|
||||
The chip at IC11 has an unknown purpose. It contains some strings. The interesting thing is that it
|
||||
The chip at IC11 has an unknown purpose. It contains some strings. The interesting thing is that it
|
||||
contains the string SBJE. If you go to the system info menu and press the service button 16 times in a row
|
||||
a message will be displayed: GAME ID SBJE
|
||||
The chip at IC10 contains the firmware of the Base Board, serial number and REGION of the whole system.
|
||||
The region is located at offset 0x00001F10. 01 is JAPAN, 02 is USA, 03 is EXPORT. If you want to change
|
||||
the region of your Chihiro unit just change this byte.
|
||||
The region is located at offset 0x00001F10. 01 is JAPAN, 02 is USA, 03 is EXPORT. If you want to change
|
||||
the region of your Chihiro unit just change this byte.
|
||||
Alternatively, if you have a netboot PIC, plug that in and power up with it.
|
||||
1) Enter the test menu (push the test button)
|
||||
2) Go to the System Information menu.
|
||||
@ -103,7 +103,7 @@ Base Board : Two Microchip 24LC64 64k Serial EEPROMs at locations IC32 and IC
|
||||
power on again.
|
||||
Xbox Board : One Macronix 29F040TC-90 512k x8-bit TSOP32 Flash ROM at location U7D1
|
||||
|
||||
|
||||
|
||||
Board Layouts
|
||||
=============
|
||||
|
||||
@ -173,7 +173,7 @@ Sticker: 837-14280-92
|
||||
| 3771 CN5|
|
||||
|-------------------------| CN15 |-----------------|
|
||||
|--------------------|
|
||||
Notes:
|
||||
Notes:
|
||||
(* these parts on other side of the PCB)
|
||||
RV5C386A - I2C Bus Serial Interface Real-Time Clock IC with Voltage Monitoring Function (SSOP10)
|
||||
24LC64 - Microchip 24LC64 64K I2C Serial EEPROM (SOIC8)
|
||||
@ -283,13 +283,13 @@ Notes:
|
||||
SW1/2 - test/service buttons
|
||||
DIN1 - 96-pin connector joining to Base Board
|
||||
DIPSW - 8-position DIP switch. On this game (Wangan Midnight Maximum Tune 2 Ver.B) DIPs 3, 4, 6, 7 & 8 are set ON. The others are OFF.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
Dump info:
|
||||
|
||||
/*
|
||||
|
||||
Dump info:
|
||||
|
||||
Network Board Dump : Ver1305.bin
|
||||
Media Board dump : FPR21042_M29W160ET.bin
|
||||
Base Board Dumps : ic10_g24lc64.bin ic11_24lc024.bin pc20_g24lc64.bin
|
||||
|
@ -72,11 +72,11 @@
|
||||
1x AY-3-8910 @ 2 MHz? (need clk confirmation).
|
||||
1x empty socket (maybe an AY replacement?)
|
||||
wih the following pinouts:
|
||||
(28 pins)
|
||||
Vcc +5v @ Pin 19
|
||||
GND @ pins 6 & 16
|
||||
Analog Channels @ Pins 1 y 5
|
||||
Clock @ pin 15
|
||||
(28 pins)
|
||||
Vcc +5v @ Pin 19
|
||||
GND @ pins 6 & 16
|
||||
Analog Channels @ Pins 1 y 5
|
||||
Clock @ pin 15
|
||||
|
||||
16x 8116 (16K x 1bit). DRAM Video (should be set as 32 KB).
|
||||
1x 6116 (NVRAM)
|
||||
@ -382,9 +382,9 @@ static READ8_HANDLER( blitter_status_r )
|
||||
/* code checks bit 6 and/or bit 7 */
|
||||
//return space->machine->rand() & 0xc0;
|
||||
/*
|
||||
x--- ---- blitter busy
|
||||
-x-- ---- vblank
|
||||
*/
|
||||
x--- ---- blitter busy
|
||||
-x-- ---- vblank
|
||||
*/
|
||||
|
||||
return 0x80 | ((space->machine->primary_screen->vblank() & 1) << 6);
|
||||
}
|
||||
@ -518,7 +518,7 @@ static WRITE8_HANDLER( mux_port_w )
|
||||
coin_counter_w(space->machine, 0, (data ^ 0xff) & 0x40); /* Credits In (mechanical meters) */
|
||||
coin_counter_w(space->machine, 1, (data ^ 0xff) & 0x80); /* Credits Out (mechanical meters) */
|
||||
|
||||
// logerror("muxsel: %02x \n", input_selector);
|
||||
// logerror("muxsel: %02x \n", input_selector);
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( wc_meters_w )
|
||||
@ -538,7 +538,7 @@ static WRITE8_HANDLER( wc_meters_w )
|
||||
coin_counter_w(space->machine, 1, (data ^ 0xff) & 0x02); /* Credits In (through Coin 3) */
|
||||
coin_counter_w(space->machine, 2, (data ^ 0xff) & 0x04); /* Credits Out */
|
||||
|
||||
// popmessage("meters: %02x", (data ^ 0xff));
|
||||
// popmessage("meters: %02x", (data ^ 0xff));
|
||||
}
|
||||
|
||||
static WRITE8_DEVICE_HANDLER(ay_port_a_out)
|
||||
@ -569,9 +569,9 @@ static WRITE8_DEVICE_HANDLER(ay_port_b_out)
|
||||
|
||||
Writes: (begin) EF/D8 (00)
|
||||
71 (FF/00)
|
||||
DF (01)
|
||||
DF (01)
|
||||
71 (FF/00)
|
||||
D8 (00....) --> snd_latch?
|
||||
D8 (00....) --> snd_latch?
|
||||
EF: meters.
|
||||
|
||||
Reads: E8/E9....EA/EB/EC/ED/EE
|
||||
@ -625,14 +625,14 @@ ADDRESS_MAP_END
|
||||
|
||||
Reads:
|
||||
F8 ---> DIP switches bank 1.
|
||||
F9 ---> Controls for players A & B.
|
||||
FA ---> Credits for players A, B, C, D.
|
||||
FB ---> Single credits for players A, B, C, D, + fix bits 3, 4, 5, 6 in meters.
|
||||
FD ---> Controls for players C & D.
|
||||
FF ---> Unknown.
|
||||
F9 ---> Controls for players A & B.
|
||||
FA ---> Credits for players A, B, C, D.
|
||||
FB ---> Single credits for players A, B, C, D, + fix bits 3, 4, 5, 6 in meters.
|
||||
FD ---> Controls for players C & D.
|
||||
FF ---> Unknown.
|
||||
|
||||
Writes:
|
||||
FC ---> Meters.
|
||||
FC ---> Meters.
|
||||
FE ---> Sound Latch (writes 01, 02 and 03 during attract)...
|
||||
*/
|
||||
|
||||
@ -1622,10 +1622,10 @@ ROM_END
|
||||
|
||||
2x Z80 @ 2MHz.
|
||||
1x AY-3-8910 @ 2MHz.
|
||||
|
||||
|
||||
18x22 pins Corona hardware.
|
||||
Multiplexed inputs.
|
||||
|
||||
|
||||
******************************/
|
||||
|
||||
ROM_START(rcirulet)
|
||||
@ -1639,7 +1639,7 @@ ROM_START(rcirulet)
|
||||
|
||||
ROM_REGION( 0x0020, "proms", 0 ) /* color PROM */
|
||||
ROM_LOAD( "rci_82s123_ic19_1b92.bin", 0x0000, 0x0020, CRC(051e5edc) SHA1(2305c056fa1fc21432189af12afb7d54c6569484) )
|
||||
|
||||
|
||||
ROM_REGION( 0x0020, "proms2", 0 ) /* unknown from video */
|
||||
ROM_LOAD( "rci_82s123_ic04_1f95.bin", 0x0000, 0x0020, CRC(3a6684b3) SHA1(c9461565a78f1024c6bd4088e4555f1a8020013b) )
|
||||
ROM_END
|
||||
|
@ -707,7 +707,7 @@ static WRITE32_HANDLER( deco32_buffer_spriteram_w )
|
||||
{
|
||||
deco32_state *state = space->machine->driver_data<deco32_state>();
|
||||
memcpy(state->spriteram16_buffered, state->spriteram16, 0x1000);
|
||||
}
|
||||
}
|
||||
|
||||
static READ32_HANDLER( deco32_spriteram2_r )
|
||||
{
|
||||
@ -727,7 +727,7 @@ static WRITE32_HANDLER( deco32_buffer_spriteram2_w )
|
||||
{
|
||||
deco32_state *state = space->machine->driver_data<deco32_state>();
|
||||
memcpy(state->spriteram16_2_buffered, state->spriteram16_2, 0x1000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// tattass tests these as 32-bit ram, even if only 16-bits are hooked up to the tilemap chip - does it mirror parts of the dword?
|
||||
@ -745,7 +745,7 @@ static ADDRESS_MAP_START( captaven_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x108000, 0x108003) AM_WRITENOP /* ? */
|
||||
AM_RANGE(0x110000, 0x111fff) AM_READWRITE(deco32_spriteram_r, deco32_spriteram_w)
|
||||
AM_RANGE(0x120000, 0x127fff) AM_RAM AM_BASE_MEMBER(deco32_state, ram) /* Main RAM */
|
||||
|
||||
|
||||
AM_RANGE(0x128000, 0x128fff) AM_READ(captaven_prot_r)
|
||||
AM_RANGE(0x1280c8, 0x1280cb) AM_WRITE(deco32_sound_w)
|
||||
AM_RANGE(0x130000, 0x131fff) AM_RAM_WRITE(deco32_nonbuffered_palette_w) AM_BASE_GENERIC(paletteram) /* Palette RAM */
|
||||
@ -771,7 +771,7 @@ ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( fghthist_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
// AM_RANGE(0x000000, 0x001fff) AM_ROM AM_WRITE(deco32_pf1_data_w) // wtf??
|
||||
// AM_RANGE(0x000000, 0x001fff) AM_ROM AM_WRITE(deco32_pf1_data_w) // wtf??
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE_MEMBER(deco32_state, ram)
|
||||
AM_RANGE(0x120020, 0x12002f) AM_READ(fghthist_control_r)
|
||||
@ -2112,7 +2112,7 @@ static MACHINE_CONFIG_START( tattass, deco32_state )
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_RGB32)
|
||||
MCFG_SCREEN_SIZE(42*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
|
||||
|
||||
|
||||
MCFG_SCREEN_UPDATE(nslasher)
|
||||
|
||||
MCFG_DECO16IC_ADD("deco_custom", tattass_deco16ic_intf)
|
||||
@ -2122,7 +2122,7 @@ static MACHINE_CONFIG_START( tattass, deco32_state )
|
||||
|
||||
MCFG_DEVICE_ADD("spritegen2", decospr_, 0)
|
||||
decospr_device_config::set_gfx_region(device, 4);
|
||||
|
||||
|
||||
|
||||
MCFG_GFXDECODE(tattass)
|
||||
MCFG_PALETTE_LENGTH(2048)
|
||||
|
@ -227,7 +227,7 @@ static MACHINE_CONFIG_START( dietgo, dietgo_state )
|
||||
MCFG_DECO16IC_ADD("deco_custom", dietgo_deco16ic_intf)
|
||||
MCFG_DEVICE_ADD("spritegen", decospr_, 0)
|
||||
decospr_device_config::set_gfx_region(device, 2);
|
||||
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
|
@ -577,22 +577,22 @@ ROM_START( sgnascar )
|
||||
|
||||
/* ROM board using 128M TSOP48 MASKROMs */
|
||||
ROM_REGION( 0x10000000, "user2", ROMREGION_ERASE00)
|
||||
ROM_LOAD( "mpr-23469.ic19", 0x0000000, 0x1000000, CRC(89cbad8d) SHA1(e4f103b96a3a842a90182172ddcf3bc5dfe6cca8) )
|
||||
ROM_LOAD( "mpr-23473.ic20", 0x1000000, 0x1000000, CRC(977b87d6) SHA1(079eeebc6f9c60d0a016a46386bbe846d8a354da) )
|
||||
ROM_LOAD( "mpr-23470.ic21", 0x2000000, 0x1000000, CRC(faf4940f) SHA1(72fee9ea5b78da260ed99ebe80ca6300f62cdbd7) )
|
||||
ROM_LOAD( "mpr-23474.ic22", 0x3000000, 0x1000000, CRC(faf69ac5) SHA1(875c748151bf0e9cd73d86384665414b2f7b6f5a) )
|
||||
ROM_LOAD( "mpr-23471.ic23", 0x4000000, 0x1000000, CRC(a3aad8ac) SHA1(afc8f3d1546e50afab4f540d59c87fe27cfb2cdd) )
|
||||
ROM_LOAD( "mpr-23475.ic24", 0x5000000, 0x1000000, CRC(5f51597c) SHA1(02c0a5d463714082b7ebb2bec4d0f88aff186f82) )
|
||||
ROM_LOAD( "mpr-23472.ic25", 0x6000000, 0x1000000, CRC(2495f678) SHA1(94b3160aabaea0596855c38ab1b63b16b20f2bae) )
|
||||
ROM_LOAD( "mpr-23476.ic26", 0x7000000, 0x1000000, CRC(927cf31c) SHA1(7cab22a4113d92080a52e1d235bf075ce95f985f) )
|
||||
ROM_LOAD( "mpr-23477.ic27", 0x8000000, 0x1000000, CRC(b4b7c477) SHA1(bcbfe081d509f0b87c6685b9b6617ae146987fe7) )
|
||||
ROM_LOAD( "mpr-23481.ic28", 0x9000000, 0x1000000, CRC(27b8eb7d) SHA1(087b1ed13a3e2a0dbda82c454243214784429d24) )
|
||||
ROM_LOAD( "mpr-23478.ic29", 0xa000000, 0x1000000, CRC(1fac431c) SHA1(2e3903c8cfd55d414555a1d23ba3a97c335991b3) )
|
||||
ROM_LOAD( "mpr-23482.ic30", 0xb000000, 0x1000000, CRC(2e9a0420) SHA1(376d5f0b8274d741a702dc08da50ea5679991740) )
|
||||
ROM_LOAD( "mpr-23479.ic31", 0xc000000, 0x1000000, CRC(22e07a60) SHA1(22f50af81c0b457ed550fde696126f882a25b0a8) )
|
||||
ROM_LOAD( "mpr-23483.ic32", 0xd000000, 0x1000000, CRC(c37adebe) SHA1(e84f6d2cc364c743f7f3b73d8c8d0271952bb093) )
|
||||
ROM_LOAD( "mpr-23480.ic33", 0xe000000, 0x1000000, CRC(f517b8b3) SHA1(c04740adb612473c4c9f8186e7e93d2f73d1bb1a) )
|
||||
ROM_LOAD( "mpr-23484.ic34", 0xf000000, 0x1000000, CRC(2ebe1aa1) SHA1(16b39f7422da1a334dde27169c2949e1d95bddb3) )
|
||||
ROM_LOAD( "mpr-23469.ic19", 0x0000000, 0x1000000, CRC(89cbad8d) SHA1(e4f103b96a3a842a90182172ddcf3bc5dfe6cca8) )
|
||||
ROM_LOAD( "mpr-23473.ic20", 0x1000000, 0x1000000, CRC(977b87d6) SHA1(079eeebc6f9c60d0a016a46386bbe846d8a354da) )
|
||||
ROM_LOAD( "mpr-23470.ic21", 0x2000000, 0x1000000, CRC(faf4940f) SHA1(72fee9ea5b78da260ed99ebe80ca6300f62cdbd7) )
|
||||
ROM_LOAD( "mpr-23474.ic22", 0x3000000, 0x1000000, CRC(faf69ac5) SHA1(875c748151bf0e9cd73d86384665414b2f7b6f5a) )
|
||||
ROM_LOAD( "mpr-23471.ic23", 0x4000000, 0x1000000, CRC(a3aad8ac) SHA1(afc8f3d1546e50afab4f540d59c87fe27cfb2cdd) )
|
||||
ROM_LOAD( "mpr-23475.ic24", 0x5000000, 0x1000000, CRC(5f51597c) SHA1(02c0a5d463714082b7ebb2bec4d0f88aff186f82) )
|
||||
ROM_LOAD( "mpr-23472.ic25", 0x6000000, 0x1000000, CRC(2495f678) SHA1(94b3160aabaea0596855c38ab1b63b16b20f2bae) )
|
||||
ROM_LOAD( "mpr-23476.ic26", 0x7000000, 0x1000000, CRC(927cf31c) SHA1(7cab22a4113d92080a52e1d235bf075ce95f985f) )
|
||||
ROM_LOAD( "mpr-23477.ic27", 0x8000000, 0x1000000, CRC(b4b7c477) SHA1(bcbfe081d509f0b87c6685b9b6617ae146987fe7) )
|
||||
ROM_LOAD( "mpr-23481.ic28", 0x9000000, 0x1000000, CRC(27b8eb7d) SHA1(087b1ed13a3e2a0dbda82c454243214784429d24) )
|
||||
ROM_LOAD( "mpr-23478.ic29", 0xa000000, 0x1000000, CRC(1fac431c) SHA1(2e3903c8cfd55d414555a1d23ba3a97c335991b3) )
|
||||
ROM_LOAD( "mpr-23482.ic30", 0xb000000, 0x1000000, CRC(2e9a0420) SHA1(376d5f0b8274d741a702dc08da50ea5679991740) )
|
||||
ROM_LOAD( "mpr-23479.ic31", 0xc000000, 0x1000000, CRC(22e07a60) SHA1(22f50af81c0b457ed550fde696126f882a25b0a8) )
|
||||
ROM_LOAD( "mpr-23483.ic32", 0xd000000, 0x1000000, CRC(c37adebe) SHA1(e84f6d2cc364c743f7f3b73d8c8d0271952bb093) )
|
||||
ROM_LOAD( "mpr-23480.ic33", 0xe000000, 0x1000000, CRC(f517b8b3) SHA1(c04740adb612473c4c9f8186e7e93d2f73d1bb1a) )
|
||||
ROM_LOAD( "mpr-23484.ic34", 0xf000000, 0x1000000, CRC(2ebe1aa1) SHA1(16b39f7422da1a334dde27169c2949e1d95bddb3) )
|
||||
ROM_END
|
||||
|
||||
GAME( 2000, hikaru, 0, hikaru, hikaru, 0, ROT0, "Sega", "Hikaru Bios", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT )
|
||||
|
@ -79,7 +79,7 @@ static SCREEN_UPDATE( mirage )
|
||||
|
||||
flip_screen_set(screen->machine, BIT(flip, 7));
|
||||
|
||||
screen->machine->device<decospr_device>("spritegen")->draw_sprites(screen->machine, bitmap, cliprect, screen->machine->generic.buffered_spriteram.u16, 0x400);
|
||||
screen->machine->device<decospr_device>("spritegen")->draw_sprites(screen->machine, bitmap, cliprect, screen->machine->generic.buffered_spriteram.u16, 0x400);
|
||||
|
||||
deco16ic_pf12_update(state->deco16ic, state->pf1_rowscroll, state->pf2_rowscroll);
|
||||
|
||||
|
@ -32,7 +32,7 @@ This board uses a ~1.72 Mhz 6809B CPU, and a number of PIA6821 chips for multipl
|
||||
To some extent, the hardware feels like a revision of the MPU3 design, integrating into the base unit features that were
|
||||
previously added through expansion ports. However, there is no backwards compatibility, and the entire memory map has been
|
||||
reworked.
|
||||
|
||||
|
||||
Like MPU3, a 6840PTM is used for internal timing, and other miscellaneous control functions, including as a crude analogue sound device
|
||||
(a square wave from the PTM being used as the alarm sound generator). However, the main sound functionality is provided by
|
||||
dedicated hardware (an AY8913).
|
||||
@ -44,7 +44,7 @@ an anti-tampering device which helped to prevent the hacking of certain titles i
|
||||
Like MPU3, over the years developers have added more capabilities through the spare inputs and outputs provided. These provided
|
||||
support for more reels, lamps and LEDs through daughtercards.
|
||||
Several solutions were released depending on the manufacturer of the machine, all are emulated here.
|
||||
|
||||
|
||||
In later revisions of the main board (MOD4 onwards), the AY8913 was removed entirely, as two official alternatives for sound had been produced.
|
||||
In one, a YM2413 is built into the gameboard, and in the other an OKI MSM6376 is interfaced with a PIA and PTM to allow sophisticated
|
||||
sampled sound.
|
||||
@ -212,13 +212,13 @@ IRQ line connected to CPU
|
||||
|
||||
TODO: - Distinguish door switches using manual
|
||||
- Complete stubs for hoppers (needs slightly better 68681 emulation, and new 'hoppers' device emulation)
|
||||
- It seems that the MPU4 core program relies on some degree of persistence when switching strobes and handling
|
||||
writes to the various hardware ports. This explains the occasional lamping/LED blackout and switching bugs
|
||||
For now, we're ignoring any extra writes to strobes, as the alternative is to assign a timer to *everything*
|
||||
- It seems that the MPU4 core program relies on some degree of persistence when switching strobes and handling
|
||||
writes to the various hardware ports. This explains the occasional lamping/LED blackout and switching bugs
|
||||
For now, we're ignoring any extra writes to strobes, as the alternative is to assign a timer to *everything*
|
||||
- Flo's move in Great Escape gives spin alarms - need a different opto setting for reverse spin reels?
|
||||
- Fix BwB characteriser, need to be able to calculate stabiliser bytes. Anyone fancy reading 6809 source?
|
||||
- Fix MSM6376 - We're triggering 'contact MAMEDEV' since we need all features of the chip,
|
||||
including dynamic sample rate adjustment and BEEP.
|
||||
- Fix MSM6376 - We're triggering 'contact MAMEDEV' since we need all features of the chip,
|
||||
including dynamic sample rate adjustment and BEEP.
|
||||
***********************************************************************************************************/
|
||||
#include "emu.h"
|
||||
#include "machine/6821pia.h"
|
||||
@ -743,7 +743,7 @@ static WRITE8_DEVICE_HANDLER( pia_ic3_porta_w )
|
||||
LOG_IC3(("%s: IC3 PIA Port A Set to %2x (lamp strobes 1 - 9)\n", device->machine->describe_context(),data));
|
||||
|
||||
if(state->ic23_active)
|
||||
{
|
||||
{
|
||||
if (state->lamp_strobe != state->input_strobe)
|
||||
{
|
||||
// Because of the nature of the lamping circuit, there is an element of persistance
|
||||
@ -1119,15 +1119,15 @@ static WRITE8_DEVICE_HANDLER( pia_ic5_porta_w )
|
||||
if (mame_stricmp(device->machine->gamedrv->name, "m_gmball") == 0)
|
||||
{
|
||||
/* The 'Gamball' device is a unique piece of mechanical equipment, designed to
|
||||
provide a truly fair hi-lo gamble for an AWP machine. Functionally, it consists of
|
||||
a ping-pong ball or similar enclosed in the machine's backbox, on a platform with 12
|
||||
holes. When the low 4 bytes of AUX1 are triggered, this fires the ball out from the
|
||||
hole it's currently in, to land in another. Landing in the same hole cause the machine to
|
||||
refire the ball. The ball detection is done by the high 4 bytes of AUX1.
|
||||
Here we call the MAME RNG, clamping it to 16 values, with the unused
|
||||
values effectively asking the machine to 'roll again'. We then trigger the switches corresponding to
|
||||
the correct number. This appears to be the best way of making the game fair, short of simulating
|
||||
the physics of a bouncing ball ;)*/
|
||||
provide a truly fair hi-lo gamble for an AWP machine. Functionally, it consists of
|
||||
a ping-pong ball or similar enclosed in the machine's backbox, on a platform with 12
|
||||
holes. When the low 4 bytes of AUX1 are triggered, this fires the ball out from the
|
||||
hole it's currently in, to land in another. Landing in the same hole cause the machine to
|
||||
refire the ball. The ball detection is done by the high 4 bytes of AUX1.
|
||||
Here we call the MAME RNG, clamping it to 16 values, with the unused
|
||||
values effectively asking the machine to 'roll again'. We then trigger the switches corresponding to
|
||||
the correct number. This appears to be the best way of making the game fair, short of simulating
|
||||
the physics of a bouncing ball ;)*/
|
||||
if (data & 0x0f)
|
||||
{
|
||||
switch (device->machine->rand() & 0xf)
|
||||
@ -1200,7 +1200,7 @@ static WRITE8_DEVICE_HANDLER( pia_ic5_portb_w )
|
||||
{
|
||||
// led_write_latch(state, data & 0x07, pia_get_output_a(pia_ic4),state->input_strobe)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
static READ8_DEVICE_HANDLER( pia_ic5_portb_r )
|
||||
{
|
||||
@ -2284,7 +2284,7 @@ incorrect behaviour manifesting in ridiculously large payouts.
|
||||
|
||||
In fact, the software seems deliberately designed to mislead, but is (fortunately for
|
||||
us) prone to similar weaknesses that allow a per game solution.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
@ -2418,7 +2418,7 @@ static const mpu4_chr_table blsbys_data[72] = {
|
||||
|
||||
// set percentage and other options. 2e 20 0f
|
||||
// PAL Codes
|
||||
// 0 1 2 3 4 5 6 7 8
|
||||
// 0 1 2 3 4 5 6 7 8
|
||||
// 42 2E 20 0F 24 3C 36 27 09
|
||||
// 6 0 7 0 8 0 7 0 0 8
|
||||
//request 36 42 27 42 09 42 27 42 42 09
|
||||
@ -2593,7 +2593,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( mpu4_bwb_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
|
||||
|
||||
|
||||
AM_RANGE(0x0800, 0x083F) AM_READWRITE(bwb_characteriser_r,bwb_characteriser_w)// Game selects a random value within this range
|
||||
|
||||
AM_RANGE(0x0850, 0x0850) AM_WRITE(bankswitch_w) // write bank (rom page select)
|
||||
|
@ -2560,7 +2560,7 @@ incorrect behaviour manifesting in ridiculously large payouts.
|
||||
|
||||
In fact, the software seems deliberately designed to mislead, but is (fortunately for
|
||||
us) prone to similar weaknesses that allow a per game solution.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
@ -358,7 +358,7 @@ READ32_HANDLER( nand_data_r )
|
||||
{
|
||||
UINT32 data = nand_read2( nand_address * 2 );
|
||||
|
||||
/* printf( "data<-%08x (%08x)\n", data, nand_address ); */
|
||||
/* printf( "data<-%08x (%08x)\n", data, nand_address ); */
|
||||
nand_address++;
|
||||
|
||||
return data;
|
||||
@ -379,7 +379,7 @@ UINT32 block[ 0x1ff ];
|
||||
WRITE32_HANDLER( nand_block_w )
|
||||
{
|
||||
COMBINE_DATA( &block[ offset ] );
|
||||
/* printf( "block %d %08x\n", offset, data ); */
|
||||
/* printf( "block %d %08x\n", offset, data ); */
|
||||
}
|
||||
|
||||
READ32_HANDLER( nand_block_r )
|
||||
|
@ -53,7 +53,7 @@ PCB Layout
|
||||
837-13544-01
|
||||
171-7772F
|
||||
837-13707 (sticker)
|
||||
(C) SEGA 1999
|
||||
(C) SEGA 1999
|
||||
|---------------------------------------------------|
|
||||
| CN1 CN3 |
|
||||
|PC910 62256 EPF8452AQC160-3 |
|
||||
@ -335,13 +335,13 @@ Games known to use this PCB include....
|
||||
Game on cart IC11# # of SOP44 IC13S# IC1# Notes
|
||||
---------------------------------------------------------------------------------------------------------------------
|
||||
Giant Gram 2000 840-0039C 23377 20 (64Mb) present 317-0296-COM
|
||||
Kick '4' Cash 840-0140C 24212 16 (64Mb) present 317-0397-COM
|
||||
Kick '4' Cash 840-0140C 24212 16 (64Mb) present 317-0397-COM
|
||||
Marvel Vs. Capcom 2 (Rev A) 841-0007C 23085A 14 (64Mb) present 317-5058-COM +2x 32Mb (full cart #:841-0007C-03)
|
||||
Power Smash 2 / Virtua Tennis 2 (Rev A) 840-0084C 22327A 18 (64Mb) present 317-0320-COM
|
||||
Quiz Ah Megamisama 840-0030C 23227 16 (64Mb) present 317-0280-JPN
|
||||
Shootout Pool 840-0098C 23844 4 (64mb) present 317-0336-COM
|
||||
Shootout Pool - Shootout Pool Prize 840-0128C 24065 4 (64mb) present 317-0367-COM
|
||||
Shootout Pool Medal ? 24148 4 (64Mb) ? ?
|
||||
Shootout Pool Medal ? 24148 4 (64Mb) ? ?
|
||||
Virtua Fighter 4 Evolution 840-0106B 23934 20 (64Mb) present 317-0339-COM
|
||||
|
||||
|
||||
@ -432,10 +432,10 @@ Notes:
|
||||
CN4 - 6 legs connector for ISP programming
|
||||
|
||||
Games known to use this PCB include....
|
||||
Sticker EPROM FLASHROMs XC3S50 PIC16C621A XCF01S
|
||||
Sticker EPROM FLASHROMs XC3S50 PIC16C621A XCF01S
|
||||
Game on cart IC7# # of SOP56 IC2# IC3# IC4# Notes
|
||||
----------------------------------------------------------------------------------------------------------------------------
|
||||
Dynamite Deka EX / Asian Dynamite 840-0175C ? ? ? ? ?
|
||||
Dynamite Deka EX / Asian Dynamite 840-0175C ? ? ? ? ?
|
||||
Mamonoro 841-0060C not present 4 (512Mb) present 317-5132-JPN present IC2# is labeled "VER.2"
|
||||
Touch De Zunou (Rev A) 840-0166C not present 2 (512Mb) present 317-0435-JPN present IC4# is marked "18"
|
||||
|
||||
@ -7185,13 +7185,13 @@ ROM_END
|
||||
// 0041
|
||||
// 0042 NAOMI DIMM Firm Update for CF-BOX
|
||||
// 0042A NAOMI DIMM Firm Update for CF-BOX (Rev A)
|
||||
// 00?? Crackin' DJ Part 2
|
||||
// 00?? Dragon Treasure
|
||||
// 00?? Dragon Treasure II
|
||||
// 00?? Dragon Treasure III
|
||||
// 00?? Get Bass 2
|
||||
// 00?? KyoryuKing
|
||||
// 00?? World Club Champion Football Serie A 2001-2002
|
||||
// 00?? Crackin' DJ Part 2
|
||||
// 00?? Dragon Treasure
|
||||
// 00?? Dragon Treasure II
|
||||
// 00?? Dragon Treasure III
|
||||
// 00?? Get Bass 2
|
||||
// 00?? KyoryuKing
|
||||
// 00?? World Club Champion Football Serie A 2001-2002
|
||||
|
||||
/* GDL-xxxx ("licensed by Sega" GD-ROM games) */
|
||||
/* 0001 */ GAME( 2001, gundmgd, naomigd, naomigd, naomi, naomi, ROT0, "Capcom", "Mobile Suit Gundam: Federation VS Zeon (GDL-0001)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
|
||||
|
@ -1045,7 +1045,7 @@ static ADDRESS_MAP_START( dremshpr_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROM
|
||||
|
||||
/* vanvan: probably a leftover from development: the Sanritsu version writes
|
||||
the color lookup table here, while the Karateko version writes garbage. */
|
||||
the color lookup table here, while the Karateko version writes garbage. */
|
||||
AM_RANGE(0xb800, 0xb87f) AM_WRITENOP
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -1028,7 +1028,7 @@ static GFXDECODE_START( hrdtimes )
|
||||
GFXDECODE_END
|
||||
|
||||
static GFXDECODE_START( bigtwinb )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 0x300, 16 ) /* colors 0x300-0x3ff */
|
||||
GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 0x300, 16 ) /* colors 0x300-0x3ff */
|
||||
GFXDECODE_ENTRY( "gfx1", 0, hrdtimes_tilelayout, 0x000, 16 ) /* colors 0x000-0x0ff */
|
||||
GFXDECODE_ENTRY( "gfx1", 0, hrdtimes_charlayout, 0x200, 16 ) /* colors 0x200-0x2ff */
|
||||
GFXDECODE_END
|
||||
@ -1133,7 +1133,7 @@ static MACHINE_CONFIG_START( bigtwinb, playmark_state )
|
||||
|
||||
MCFG_GFXDECODE(bigtwinb)
|
||||
MCFG_PALETTE_LENGTH(1024)
|
||||
|
||||
|
||||
MCFG_VIDEO_START(bigtwinb)
|
||||
|
||||
/* sound hardware */
|
||||
|
@ -134,9 +134,9 @@ static INPUT_PORTS_START( rocnrope )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( No ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "DSW3:8" )
|
||||
// PORT_DIPNAME( 0x80, 0x00, "Unknown DSW 8" )
|
||||
// PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
// PORT_DIPNAME( 0x80, 0x00, "Unknown DSW 8" )
|
||||
// PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
@ -1113,7 +1113,7 @@ ROM_START( hustlerb2 )
|
||||
|
||||
ROM_REGION( 0x1000, "gfx1", 0 )
|
||||
ROM_LOAD( "b4.r2", 0x0000, 0x0800, CRC(0bdfad0e) SHA1(8e6f1737604f3801c03fa2e9a5e6a2778b54bae8) )
|
||||
ROM_LOAD( "b5", 0x0800, 0x0800, CRC(8e062177) SHA1(7e52a1669804b6c2f694cfc64b04abc8246bb0c2) ) // broken rom, assumed to be the same
|
||||
ROM_LOAD( "b5", 0x0800, 0x0800, CRC(8e062177) SHA1(7e52a1669804b6c2f694cfc64b04abc8246bb0c2) ) // broken rom, assumed to be the same
|
||||
|
||||
ROM_REGION( 0x0020, "proms", 0 )
|
||||
ROM_LOAD( "27s19.bin", 0x0000, 0x0020, CRC(aa1f7f5e) SHA1(311dd17aa11490a1173c76223e4ccccf8ea29850) )
|
||||
|
@ -1958,13 +1958,13 @@ static ADDRESS_MAP_START( zingzipbl_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_MEMBER(seta_state, workram) // RAM (pointer for zombraid crosshair hack)
|
||||
AM_RANGE(0x210000, 0x21ffff) AM_RAM // RAM (gundhara)
|
||||
AM_RANGE(0x300000, 0x30ffff) AM_RAM // RAM (wrofaero only?)
|
||||
// AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1
|
||||
// AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2
|
||||
// AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1
|
||||
// AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2
|
||||
AM_RANGE(0x400002, 0x400003) AM_READ(zingzipbl_unknown_r) // P2
|
||||
// AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins
|
||||
// AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins
|
||||
AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_BASE_MEMBER(seta_state, vregs) // (gundhara) Coin Lockout + Video Registers
|
||||
|
||||
//AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
//AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM // (rezon,jjsquawk)
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(seta_state, paletteram, paletteram_size) // Palette
|
||||
AM_RANGE(0x701000, 0x70ffff) AM_RAM //
|
||||
@ -2649,17 +2649,17 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( thunderlbl_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_ROM // ROM
|
||||
AM_RANGE(0xffc000, 0xffffff) AM_RAM // RAM
|
||||
// AM_RANGE(0x100000, 0x103fff) AM_DEVREADWRITE("x1snd", seta_sound_word_r,seta_sound_word_w) // Sound
|
||||
// AM_RANGE(0x100000, 0x103fff) AM_DEVREADWRITE("x1snd", seta_sound_word_r,seta_sound_word_w) // Sound
|
||||
AM_RANGE(0x200000, 0x200001) AM_WRITENOP // ?
|
||||
AM_RANGE(0x300000, 0x300001) AM_WRITENOP // ?
|
||||
// AM_RANGE(0x400000, 0x40ffff) AM_WRITE(thunderl_protection_w) // Protection (not in wits)
|
||||
// AM_RANGE(0x400000, 0x40ffff) AM_WRITE(thunderl_protection_w) // Protection (not in wits)
|
||||
AM_RANGE(0x500000, 0x500001) AM_RAM_WRITE(seta_vregs_w) AM_BASE_MEMBER(seta_state, vregs) // Coin Lockout
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_BASE_SIZE_MEMBER(seta_state, paletteram, paletteram_size) // Palette
|
||||
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1") // P1
|
||||
AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2") // P2
|
||||
AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("COINS") // Coins
|
||||
// AM_RANGE(0xb0000c, 0xb0000d) AM_READ(thunderl_protection_r ) // Protection (not in wits)
|
||||
// AM_RANGE(0xb0000c, 0xb0000d) AM_READ(thunderl_protection_r ) // Protection (not in wits)
|
||||
AM_RANGE(0xb00008, 0xb00009) AM_READ_PORT("P3") // P3 (wits)
|
||||
AM_RANGE(0xb0000a, 0xb0000b) AM_READ_PORT("P4") // P4 (wits)
|
||||
/**/AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000
|
||||
@ -6861,7 +6861,7 @@ static const gfx_layout layout_zzbl_6bpp =
|
||||
{
|
||||
0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16,
|
||||
8*16,9*16,10*16,11*16,12*16,13*16,14*16,15*16
|
||||
|
||||
|
||||
},
|
||||
16*16*2
|
||||
};
|
||||
@ -6870,8 +6870,8 @@ static const gfx_layout layout_zzbl_6bpp =
|
||||
|
||||
static GFXDECODE_START( zingzipbl )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, layout_zzbl, 16*32*0, 32 ) // [0] Sprites
|
||||
GFXDECODE_ENTRY( "gfx2", 0, layout_zzbl_6bpp, 16*32*2, 32 ) // [1] Layer 1
|
||||
GFXDECODE_ENTRY( "gfx3", 0, layout_zzbl, 16*32*1, 32 ) // [2] Layer 2
|
||||
GFXDECODE_ENTRY( "gfx2", 0, layout_zzbl_6bpp, 16*32*2, 32 ) // [1] Layer 1
|
||||
GFXDECODE_ENTRY( "gfx3", 0, layout_zzbl, 16*32*1, 32 ) // [2] Layer 2
|
||||
GFXDECODE_ENTRY( "gfx2", 0, layout_zzbl_6bpp, 16*32*2+64*32*1, 32 ) // [3] Layer 1
|
||||
GFXDECODE_END
|
||||
|
||||
@ -8434,7 +8434,7 @@ static MACHINE_CONFIG_DERIVED( zingzipbl, zingzip )
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_PROGRAM_MAP(zingzipbl_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) // irq3 isn't valid on the bootleg
|
||||
|
||||
|
||||
MCFG_DEVICE_REMOVE("x1snd")
|
||||
|
||||
MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH)
|
||||
|
@ -251,7 +251,7 @@ static WRITE32_HANDLER( simpl156_pf2_rowscroll_w )
|
||||
static ADDRESS_MAP_START( joemacr_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x107fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE_MEMBER(simpl156_state, mainram) // main ram
|
||||
AM_RANGE(0x110000, 0x111fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
|
||||
AM_RANGE(0x110000, 0x111fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
|
||||
AM_RANGE(0x120000, 0x120fff) AM_READWRITE(simpl156_palette_r, simpl156_palette_w)
|
||||
AM_RANGE(0x130000, 0x130003) AM_READWRITE(simpl156_system_r, simpl156_eeprom_w)
|
||||
AM_RANGE(0x140000, 0x14001f) AM_DEVREADWRITE("deco_custom", deco16ic_pf12_control_dword_r, deco16ic_pf12_control_dword_w)
|
||||
@ -275,7 +275,7 @@ static ADDRESS_MAP_START( chainrec_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE_MEMBER(simpl156_state, systemram) // work ram (32-bit)
|
||||
AM_RANGE(0x3c0000, 0x3c0003) AM_DEVREADWRITE8_MODERN("okimusic", okim6295_device, read, write, 0x000000ff)
|
||||
AM_RANGE(0x400000, 0x407fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE_MEMBER(simpl156_state, mainram) // main ram?
|
||||
AM_RANGE(0x410000, 0x411fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
|
||||
AM_RANGE(0x410000, 0x411fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
|
||||
AM_RANGE(0x420000, 0x420fff) AM_READWRITE(simpl156_palette_r,simpl156_palette_w)
|
||||
AM_RANGE(0x430000, 0x430003) AM_READWRITE(simpl156_system_r,simpl156_eeprom_w)
|
||||
AM_RANGE(0x440000, 0x44001f) AM_DEVREADWRITE("deco_custom", deco16ic_pf12_control_dword_r, deco16ic_pf12_control_dword_w)
|
||||
@ -296,7 +296,7 @@ static ADDRESS_MAP_START( magdrop_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE_MEMBER(simpl156_state, systemram) // work ram (32-bit)
|
||||
AM_RANGE(0x340000, 0x340003) AM_DEVREADWRITE8_MODERN("okimusic", okim6295_device, read, write, 0x000000ff)
|
||||
AM_RANGE(0x380000, 0x387fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE_MEMBER(simpl156_state, mainram) // main ram?
|
||||
AM_RANGE(0x390000, 0x391fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
|
||||
AM_RANGE(0x390000, 0x391fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
|
||||
AM_RANGE(0x3a0000, 0x3a0fff) AM_READWRITE(simpl156_palette_r,simpl156_palette_w)
|
||||
AM_RANGE(0x3b0000, 0x3b0003) AM_READWRITE(simpl156_system_r,simpl156_eeprom_w)
|
||||
AM_RANGE(0x3c0000, 0x3c001f) AM_DEVREADWRITE("deco_custom", deco16ic_pf12_control_dword_r, deco16ic_pf12_control_dword_w)
|
||||
@ -317,7 +317,7 @@ static ADDRESS_MAP_START( magdropp_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE_MEMBER(simpl156_state, systemram) // work ram (32-bit)
|
||||
AM_RANGE(0x4c0000, 0x4c0003) AM_DEVREADWRITE8_MODERN("okimusic", okim6295_device, read, write, 0x000000ff)
|
||||
AM_RANGE(0x680000, 0x687fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE_MEMBER(simpl156_state, mainram) // main ram?
|
||||
AM_RANGE(0x690000, 0x691fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
|
||||
AM_RANGE(0x690000, 0x691fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
|
||||
AM_RANGE(0x6a0000, 0x6a0fff) AM_READWRITE(simpl156_palette_r,simpl156_palette_w)
|
||||
AM_RANGE(0x6b0000, 0x6b0003) AM_READWRITE(simpl156_system_r,simpl156_eeprom_w)
|
||||
AM_RANGE(0x6c0000, 0x6c001f) AM_DEVREADWRITE("deco_custom", deco16ic_pf12_control_dword_r, deco16ic_pf12_control_dword_w)
|
||||
@ -337,7 +337,7 @@ static ADDRESS_MAP_START( mitchell156_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x100000, 0x100003) AM_DEVREADWRITE8_MODERN("okisfx", okim6295_device, read, write, 0x000000ff)
|
||||
AM_RANGE(0x140000, 0x140003) AM_DEVREADWRITE8_MODERN("okimusic", okim6295_device, read, write, 0x000000ff)
|
||||
AM_RANGE(0x180000, 0x187fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE_MEMBER(simpl156_state, mainram) // main ram
|
||||
AM_RANGE(0x190000, 0x191fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
|
||||
AM_RANGE(0x190000, 0x191fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
|
||||
AM_RANGE(0x1a0000, 0x1a0fff) AM_READWRITE(simpl156_palette_r,simpl156_palette_w)
|
||||
AM_RANGE(0x1b0000, 0x1b0003) AM_READWRITE(simpl156_system_r,simpl156_eeprom_w)
|
||||
AM_RANGE(0x1c0000, 0x1c001f) AM_DEVREADWRITE("deco_custom", deco16ic_pf12_control_dword_r, deco16ic_pf12_control_dword_w)
|
||||
|
@ -150,7 +150,7 @@ static void roldfrog_update_irq( running_machine *machine )
|
||||
{
|
||||
splash_state * state = machine->driver_data<splash_state>();
|
||||
int irq = (state->sound_irq ? 0x08 : 0) | ((state->vblank_irq) ? 0x18 : 0);
|
||||
cpu_set_input_line_and_vector(machine->device("audiocpu"), 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq);
|
||||
cpu_set_input_line_and_vector(machine->device("audiocpu"), 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq);
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( roldfrog_vblank_ack_w )
|
||||
@ -208,7 +208,7 @@ static ADDRESS_MAP_START( roldfrog_sound_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
AM_RANGE(0x31, 0x31) AM_WRITE(sound_bank_w)
|
||||
AM_RANGE(0x37, 0x37) AM_WRITE(roldfrog_vblank_ack_w )
|
||||
AM_RANGE(0x70, 0x70) AM_READ(soundlatch_r)
|
||||
|
||||
|
||||
AM_RANGE(0x0, 0xff) AM_READ(roldfrog_unk_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -454,12 +454,12 @@ static INPUT_PORTS_START( funystrp )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
|
||||
|
||||
|
||||
PORT_START("SYSTEM")
|
||||
PORT_DIPNAME( 0xffff, 0xffff, "Clear EEPROM" )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0xffff, DEF_STR( On ) )
|
||||
|
||||
|
||||
INPUT_PORTS_END
|
||||
|
||||
static const gfx_layout tilelayout8 =
|
||||
@ -654,7 +654,7 @@ static MACHINE_CONFIG_START( funystrp, splash_state )
|
||||
MCFG_CPU_ADD("audiocpu", Z80,30000000/8)
|
||||
MCFG_CPU_PROGRAM_MAP(funystrp_sound_map)
|
||||
MCFG_CPU_IO_MAP(funystrp_sound_io_map)
|
||||
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
@ -769,7 +769,7 @@ ROM_START( roldfroga )
|
||||
ROM_LOAD( "roldfrog.001", 0x00000, 0x08000, CRC(ba9eb1c6) SHA1(649d1103f3188554eaa3fc87a1f52c53233932b2) )
|
||||
ROM_CONTINUE( 0x10000, 0x10000 )
|
||||
ROM_CONTINUE( 0x38000, 0x08000 )
|
||||
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "roldfrog.010", 0x00000, 0x20000, CRC(51fd0e1a) SHA1(940c4231b21d16c62cad47c22fe735b18662af4a) )
|
||||
ROM_LOAD( "roldfrog.011", 0x20000, 0x20000, CRC(610bf6f3) SHA1(04a7efac2e83c6747d4bd480b1f3118eb44a1f76) )
|
||||
@ -1031,7 +1031,7 @@ static DRIVER_INIT( roldfrog )
|
||||
splash_state *state = machine->driver_data<splash_state>();
|
||||
UINT8 * ROM = (UINT8 *)machine->region("audiocpu")->base();
|
||||
memory_configure_bank(machine, "sound_bank", 0, 16, &ROM[0x10000], 0x8000);
|
||||
|
||||
|
||||
state->bitmap_type = 1;
|
||||
state->sprite_attr2_shift = 8;
|
||||
}
|
||||
@ -1075,7 +1075,7 @@ static DRIVER_INIT( funystrp )
|
||||
state->sprite_attr2_shift = 0;
|
||||
|
||||
// initial protection checks, just after boot
|
||||
|
||||
|
||||
ROM[0x04770/2] = 0x4e71;
|
||||
ROM[0x04772/2] = 0x4e71;
|
||||
|
||||
@ -1083,24 +1083,24 @@ static DRIVER_INIT( funystrp )
|
||||
// protection write -> read -> compare tests
|
||||
// not all of them should always pass ( especially the ones that compares data read with ram variable )
|
||||
// side effect of the above is broken (sometimes) sound
|
||||
// there's stil problem with (broken) gameplay = sometimes one (or more) dot is moved
|
||||
// there's stil problem with (broken) gameplay = sometimes one (or more) dot is moved
|
||||
// out of playfield (and placed on right part of screen ) and there's no way to complete the level
|
||||
// game reads sprite coords directly from sprite ram and checks distance between player and each(!) dot or
|
||||
// game object every frame
|
||||
// most of the patched protection checks are very similar. when test fails, dot counter is altered.
|
||||
// sometimes it's increased = level is impossible to complete, sometimes - cleared (and level ends
|
||||
// immediately).
|
||||
|
||||
// immediately).
|
||||
|
||||
ROM[0x07b30/2] = 0x7001;
|
||||
ROM[0x07ec6/2] = 0x7001;
|
||||
ROM[0x07fbe/2] = 0x7001;
|
||||
ROM[0x07fbe/2] = 0x7001;
|
||||
ROM[0x08060/2] = 0x7001;
|
||||
ROM[0x08576/2] = 0x7001;
|
||||
ROM[0x08948/2] = 0x7001;
|
||||
ROM[0x09e16/2] = 0x7001;
|
||||
ROM[0x0a994/2] = 0x7001;
|
||||
ROM[0x0c648/2] = 0x7001;
|
||||
ROM[0x0c852/2] = 0x7001;
|
||||
ROM[0x0c852/2] = 0x7001;
|
||||
ROM[0x0dc22/2] = 0x7001;
|
||||
ROM[0x0f780/2] = 0x7001;
|
||||
ROM[0x0f882/2] = 0x7001;
|
||||
@ -1109,7 +1109,7 @@ static DRIVER_INIT( funystrp )
|
||||
ROM[0x11f80/2] = 0x7001;
|
||||
|
||||
ROM = (UINT16 *)machine->region("audiocpu")->base();
|
||||
|
||||
|
||||
memory_configure_bank(machine, "sound_bank", 0, 16, &ROM[0x00000], 0x8000);
|
||||
|
||||
}
|
||||
|
@ -258,7 +258,7 @@ static SCREEN_UPDATE(ssfindo)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -380,12 +380,12 @@ static READ32_HANDLER(PS7500_IO_r)
|
||||
|
||||
case IOCR: //TODO: nINT1, OD[n] p.81
|
||||
if (ssfindo_speedup) ssfindo_speedup(space);
|
||||
|
||||
|
||||
if( state->iocr_hack)
|
||||
{
|
||||
return (input_port_read(space->machine, "PS7500") & 0x80) | 0x34 | (space->machine->rand()&3); //eeprom read ?
|
||||
}
|
||||
|
||||
|
||||
return (input_port_read(space->machine, "PS7500") & 0x80) | 0x37;
|
||||
|
||||
case VIDCR:
|
||||
@ -468,8 +468,8 @@ static WRITE32_HANDLER(PS7500_IO_w)
|
||||
case VIDINITA: //TODO: bit 30 (last bit) p.105
|
||||
COMBINE_DATA(&state->PS7500_IO[offset]);
|
||||
break;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -700,7 +700,7 @@ static INPUT_PORTS_START( tetfight )
|
||||
PORT_DIPNAME( 0x80, 0x80, "DSW 7" )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x01, 0x01, "Test Mode" )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
@ -876,7 +876,7 @@ static DRIVER_INIT(tetfight)
|
||||
{
|
||||
ssfindo_state *state = machine->driver_data<ssfindo_state>();
|
||||
DRIVER_INIT_CALL(common);
|
||||
state->flashType=0;
|
||||
state->flashType=0;
|
||||
state->iocr_hack=1;
|
||||
}
|
||||
|
||||
|
@ -155,7 +155,7 @@ WRITE16_HANDLER( paletteram16_xbgr_word_be_sprites_w )
|
||||
// is this related to the bootleg only, or does the original have this issue too?
|
||||
// maybe related to sprite DMA on the original, or the apparent lack of a 2nd sprite controller on the bootleg.
|
||||
paletteram16_xbgr_word_be_sprites2_w(space,offset,data,mem_mask);
|
||||
|
||||
|
||||
sshangha_state *state = space->machine->driver_data<sshangha_state>();
|
||||
COMBINE_DATA(&state->sprite_paletteram[offset]);
|
||||
set_color_888(space->machine, (offset/2)+0x000, 0, 8, 16, state->sprite_paletteram[(offset) | 1] | (state->sprite_paletteram[(offset) & ~1] << 16) );
|
||||
|
@ -1238,7 +1238,7 @@ static ADDRESS_MAP_START( pipibibi_bootleg_68k_mem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x083800, 0x087fff) AM_RAM // SpriteRAM (unused)
|
||||
AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x120000, 0x120fff) AM_RAM // Copy of SpriteRAM ?
|
||||
// AM_RANGE(0x13f000, 0x13f001) AM_WRITENOP // ???
|
||||
// AM_RANGE(0x13f000, 0x13f001) AM_WRITENOP // ???
|
||||
AM_RANGE(0x180000, 0x182fff) AM_DEVREADWRITE("gp9001vdp0", pipibibi_bootleg_videoram16_r, pipibibi_bootleg_videoram16_w) // TileRAM
|
||||
AM_RANGE(0x188000, 0x18800f) AM_DEVWRITE("gp9001vdp0", pipibibi_bootleg_scroll_w)
|
||||
AM_RANGE(0x190002, 0x190003) AM_READ(shared_ram_r) // Z80 ready ?
|
||||
@ -1371,7 +1371,7 @@ static ADDRESS_MAP_START( shippumd_68k_mem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x10ffff) AM_RAM
|
||||
AM_RANGE(0x218000, 0x21bfff) AM_READWRITE(shared_ram_r, shared_ram_w)
|
||||
// AM_RANGE(0x21c008, 0x21c009) AM_WRITENOP // ???
|
||||
// AM_RANGE(0x21c008, 0x21c009) AM_WRITENOP // ???
|
||||
AM_RANGE(0x21c01c, 0x21c01d) AM_WRITE(shippumd_coin_word_w) // Coin count/lock + oki bankswitch
|
||||
AM_RANGE(0x21c020, 0x21c021) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0x21c024, 0x21c025) AM_READ_PORT("IN2")
|
||||
@ -1893,7 +1893,7 @@ static INPUT_PORTS_START( dogyuuna )
|
||||
PORT_DIPSETTING( 0x00b0, "Taiwan" )
|
||||
PORT_DIPSETTING( 0x00c0, "Taiwan (??????? license)" )
|
||||
PORT_DIPSETTING( 0x00d0, "Southeast Asia (Charterfield license)" )
|
||||
// PORT_DIPSETTING( 0x00e0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00e0, DEF_STR( Unused ) )
|
||||
PORT_DIPSETTING( 0x00f0, "Japan (Taito Corp license)" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
@ -1918,10 +1918,10 @@ static INPUT_PORTS_START( dogyuunt )
|
||||
PORT_DIPSETTING( 0x0080, "Hong Kong (Honest Trading Co. license)" )
|
||||
PORT_DIPSETTING( 0x0090, "Korea (JC Trading Corp license)" )
|
||||
PORT_DIPSETTING( 0x00a0, "USA (Fabtek license)" )
|
||||
// PORT_DIPSETTING( 0x00b0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00c0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00d0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00e0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00b0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00c0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00d0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00e0, DEF_STR( Unused ) )
|
||||
PORT_DIPSETTING( 0x00f0, "Japan (Taito Corp license)" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
@ -1971,15 +1971,15 @@ static INPUT_PORTS_START( kbash )
|
||||
PORT_DIPSETTING( 0x0040, "Hong Kong" )
|
||||
PORT_DIPSETTING( 0x0050, "Taiwan" )
|
||||
PORT_DIPSETTING( 0x0060, "Southeast Asia" ) // Service Mode wrongly shows European coinage
|
||||
// PORT_DIPSETTING( 0x0070, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x0080, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x0070, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x0080, DEF_STR( Unused ) )
|
||||
PORT_DIPSETTING( 0x0090, DEF_STR( USA ) )
|
||||
PORT_DIPSETTING( 0x00a0, DEF_STR( Europe ) ) // European coinage
|
||||
// PORT_DIPSETTING( 0x00b0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00c0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00d0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00e0, DEF_STR( Unused ) ) // Service Mode wrongly shows European coinage
|
||||
// PORT_DIPSETTING( 0x00f0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00b0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00c0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00d0, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x00e0, DEF_STR( Unused ) ) // Service Mode wrongly shows European coinage
|
||||
// PORT_DIPSETTING( 0x00f0, DEF_STR( Unused ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -1993,21 +1993,21 @@ static INPUT_PORTS_START( kbash2 )
|
||||
PORT_MODIFY("JMPR")
|
||||
PORT_DIPNAME( 0x000f, 0x0006, DEF_STR( Region ) )
|
||||
PORT_DIPSETTING( 0x0000, "Japan (Taito Corp license)" )
|
||||
// PORT_DIPSETTING( 0x0001, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x0002, DEF_STR( Unused ) ) // European coinage
|
||||
// PORT_DIPSETTING( 0x0001, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x0002, DEF_STR( Unused ) ) // European coinage
|
||||
PORT_DIPSETTING( 0x0003, "Korea (Unite Trading license)" )
|
||||
PORT_DIPSETTING( 0x0004, "Hong Kong" )
|
||||
PORT_DIPSETTING( 0x0005, "Taiwan" )
|
||||
PORT_DIPSETTING( 0x0006, "Southeast Asia (Charterfield license)" ) // Service Mode wrongly shows European coinage
|
||||
// PORT_DIPSETTING( 0x0007, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x0007, DEF_STR( Unused ) )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( Japan ) )
|
||||
// PORT_DIPSETTING( 0x0009, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x000a, DEF_STR( Unused ) ) // European coinage
|
||||
// PORT_DIPSETTING( 0x0009, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x000a, DEF_STR( Unused ) ) // European coinage
|
||||
PORT_DIPSETTING( 0x000b, "Korea" )
|
||||
// PORT_DIPSETTING( 0x000c, "Hong Kong" )
|
||||
// PORT_DIPSETTING( 0x000d, "Taiwan" )
|
||||
// PORT_DIPSETTING( 0x000c, "Hong Kong" )
|
||||
// PORT_DIPSETTING( 0x000d, "Taiwan" )
|
||||
PORT_DIPSETTING( 0x000e, "Southeast Asia" ) // Service Mode wrongly shows European coinage
|
||||
// PORT_DIPSETTING( 0x000f, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x000f, DEF_STR( Unused ) )
|
||||
PORT_BIT( 0x00f0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
INPUT_PORTS_END
|
||||
|
||||
@ -2058,10 +2058,10 @@ static INPUT_PORTS_START( truxton2 )
|
||||
PORT_DIPSETTING( 0x0008, "Hong Kong (Honest Trading Co. license)" )
|
||||
PORT_DIPSETTING( 0x0009, "Korea (JC Trading Corp license)" )
|
||||
PORT_DIPSETTING( 0x000a, "USA (Fabtek license)" )
|
||||
// PORT_DIPSETTING( 0x000b, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x000c, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x000d, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x000e, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x000b, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x000c, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x000d, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x000e, DEF_STR( Unused ) )
|
||||
PORT_DIPSETTING( 0x000f, "Japan (Taito Corp license)" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
@ -2282,7 +2282,7 @@ static INPUT_PORTS_START( grindstm )
|
||||
// Code in many places in game tests if region is >= 0xC. Effects on gameplay?
|
||||
PORT_DIPNAME( 0x00f0, 0x0090, DEF_STR( Region ) )
|
||||
PORT_DIPSETTING( 0x0090, DEF_STR( Europe ) )
|
||||
// PORT_DIPSETTING( 0x0080, DEF_STR( Europe ) )
|
||||
// PORT_DIPSETTING( 0x0080, DEF_STR( Europe ) )
|
||||
PORT_DIPSETTING( 0x00b0, DEF_STR( USA ) )
|
||||
PORT_DIPSETTING( 0x00a0, "USA (American Sammy Corporation license)" )
|
||||
PORT_DIPSETTING( 0x0070, "Southeast Asia" )
|
||||
@ -2296,7 +2296,7 @@ static INPUT_PORTS_START( grindstm )
|
||||
PORT_DIPSETTING( 0x00d0, "USA; different?" )
|
||||
PORT_DIPSETTING( 0x00c0, "USA (American Sammy Corporation license); different?" )
|
||||
PORT_DIPSETTING( 0x00e0, "Korea; different?" )
|
||||
// PORT_DIPSETTING( 0x00f0, "Korea; different?" )
|
||||
// PORT_DIPSETTING( 0x00f0, "Korea; different?" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -2307,21 +2307,21 @@ static INPUT_PORTS_START( grindstma )
|
||||
// Code in many places in game tests if region is >= 0xC. Effects on gameplay?
|
||||
PORT_DIPNAME( 0x00f0, 0x0090, DEF_STR( Region ) )
|
||||
PORT_DIPSETTING( 0x0090, DEF_STR( Europe ) )
|
||||
// PORT_DIPSETTING( 0x0080, DEF_STR( Europe ) )
|
||||
// PORT_DIPSETTING( 0x0080, DEF_STR( Europe ) )
|
||||
PORT_DIPSETTING( 0x00b0, DEF_STR( USA ) )
|
||||
PORT_DIPSETTING( 0x00a0, "USA (Atari Games Corp license)" )
|
||||
PORT_DIPSETTING( 0x0070, "Southeast Asia" )
|
||||
PORT_DIPSETTING( 0x0060, "Southeast Asia (Charterfield license)" )
|
||||
PORT_DIPSETTING( 0x0050, "Taiwan" )
|
||||
// PORT_DIPSETTING( 0x0040, "Taiwan" )
|
||||
// PORT_DIPSETTING( 0x0040, "Taiwan" )
|
||||
PORT_DIPSETTING( 0x0030, "Hong Kong" )
|
||||
PORT_DIPSETTING( 0x0020, "Hong Kong (Charterfield license)" )
|
||||
PORT_DIPSETTING( 0x0010, "Korea" )
|
||||
PORT_DIPSETTING( 0x0000, "Korea (Unite Trading license)" )
|
||||
PORT_DIPSETTING( 0x00c0, "Korea; different?" )
|
||||
// PORT_DIPSETTING( 0x00d0, "Korea; different?" )
|
||||
// PORT_DIPSETTING( 0x00e0, "Korea; different?" )
|
||||
// PORT_DIPSETTING( 0x00f0, "Korea; different?" )
|
||||
// PORT_DIPSETTING( 0x00d0, "Korea; different?" )
|
||||
// PORT_DIPSETTING( 0x00e0, "Korea; different?" )
|
||||
// PORT_DIPSETTING( 0x00f0, "Korea; different?" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -2335,8 +2335,8 @@ static INPUT_PORTS_START( vfive )
|
||||
// Runs twice near end of stage 1, once when each of the two boss tanks appears. Effect?
|
||||
PORT_DIPNAME( 0x0070, 0x0000, "Copyright" )
|
||||
PORT_DIPSETTING( 0x0000, "All Rights Reserved" )
|
||||
// PORT_DIPSETTING( 0x0010, "All Rights Reserved" )
|
||||
// PORT_DIPSETTING( 0x0020, "All Rights Reserved" )
|
||||
// PORT_DIPSETTING( 0x0010, "All Rights Reserved" )
|
||||
// PORT_DIPSETTING( 0x0020, "All Rights Reserved" )
|
||||
PORT_DIPSETTING( 0x0030, "Licensed to Taito Corp" )
|
||||
PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
@ -2470,7 +2470,7 @@ static INPUT_PORTS_START( snowbro2 )
|
||||
PORT_DIPSETTING( 0x1000, "Hong Kong" )
|
||||
PORT_DIPSETTING( 0x1400, "Taiwan" )
|
||||
PORT_DIPSETTING( 0x1800, "Southeast Asia" )
|
||||
// PORT_DIPSETTING( 0x1c00, DEF_STR( Unused ) )
|
||||
// PORT_DIPSETTING( 0x1c00, DEF_STR( Unused ) )
|
||||
PORT_BIT( 0xc3ff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
INPUT_PORTS_END
|
||||
|
||||
@ -2560,7 +2560,7 @@ static INPUT_PORTS_START( kingdmgp )
|
||||
PORT_DIPNAME( 0x000e, 0x0004, DEF_STR( Region ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( Europe ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( USA ) )
|
||||
// PORT_DIPSETTING( 0x0000, DEF_STR( Japan ) ) // Corrupt title screen and text - use shippumd
|
||||
// PORT_DIPSETTING( 0x0000, DEF_STR( Japan ) ) // Corrupt title screen and text - use shippumd
|
||||
PORT_DIPSETTING( 0x0006, "Southeast Asia" )
|
||||
PORT_DIPSETTING( 0x0008, "China" )
|
||||
PORT_DIPSETTING( 0x000a, "Korea (Unite Trading license)" )
|
||||
|
@ -2293,7 +2293,7 @@ ROM_START(sopranog_300)
|
||||
ROM_END
|
||||
ROM_START(sopranog_107)
|
||||
ROM_REGION(0x80000, "user1", 0)
|
||||
ROM_LOAD( "sopcpug.107", 0x0000, 0x20000, CRC(e9c83725) SHA1(958155919cbb347b72784c7da112b188e06c908f))
|
||||
ROM_LOAD( "sopcpug.107", 0x0000, 0x20000, CRC(e9c83725) SHA1(958155919cbb347b72784c7da112b188e06c908f))
|
||||
ROM_RELOAD(0x20000, 0x20000)
|
||||
ROM_RELOAD(0x40000, 0x20000)
|
||||
ROM_RELOAD(0x60000, 0x20000)
|
||||
@ -2376,7 +2376,7 @@ ROM_START(sopranof_107)
|
||||
ROM_REGION(0x10000, "sound1", 0)
|
||||
ROM_LOAD("sopsndf.u7",0x0000,0x10000,CRC(57426738) SHA1(393e1d654ef09172580ad9a2722f696b6e44ec0f))
|
||||
ROM_REGION(0x400000, "sound2", 0)
|
||||
ROM_LOAD("sopsndf1.u17",0x000000, 0x100000, CRC(9e0dd4a8) SHA1(82b772eb7081f22f1203ed113ec7b05f2e26258c))
|
||||
ROM_LOAD("sopsndf1.u17",0x000000, 0x100000, CRC(9e0dd4a8) SHA1(82b772eb7081f22f1203ed113ec7b05f2e26258c))
|
||||
ROM_LOAD("sopsndf.u21", 0x100000, 0x100000, CRC(28726d20) SHA1(63c6bea953cc34b6a3c2c9688ab86641f94cd227))
|
||||
ROM_LOAD("sopsndf.u36", 0x200000, 0x100000, CRC(99549d4a) SHA1(15e3d35b9cefbc8825a7dee5309adc2526de3dec))
|
||||
ROM_LOAD("sopsndf.u37", 0x300000, 0x100000, CRC(2b4a9130) SHA1(eed9c84c932bb86954226b0d51461c5094ebe02e))
|
||||
@ -2428,7 +2428,7 @@ ROM_START(sopranol_300)
|
||||
ROM_END
|
||||
ROM_START(sopranol_107)
|
||||
ROM_REGION(0x80000, "user1", 0)
|
||||
ROM_LOAD( "sopcpul.107", 0x0000, 0x20000, CRC(a08311fe) SHA1(93e3ecc3e2c69f30d0fbb72c7426f3c2ba4b27b4))
|
||||
ROM_LOAD( "sopcpul.107", 0x0000, 0x20000, CRC(a08311fe) SHA1(93e3ecc3e2c69f30d0fbb72c7426f3c2ba4b27b4))
|
||||
ROM_RELOAD(0x20000, 0x20000)
|
||||
ROM_RELOAD(0x40000, 0x20000)
|
||||
ROM_RELOAD(0x60000, 0x20000)
|
||||
|
@ -2750,7 +2750,7 @@ ROM_START(simpprty_400)
|
||||
ROM_COPY( "user1", 0x18000, 0x8000, 0x8000)
|
||||
ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x80000, "gfx3", 0)
|
||||
ROM_LOAD( "sppdspa.400", 0x00000, 0x80000, CRC(cd5eaab7) SHA1(a06bef6fc0e7f3c0616439cb0e0431a3d52cdfa1))
|
||||
ROM_LOAD( "sppdspa.400", 0x00000, 0x80000, CRC(cd5eaab7) SHA1(a06bef6fc0e7f3c0616439cb0e0431a3d52cdfa1))
|
||||
ROM_REGION(0x010000, "cpu2", 0)
|
||||
ROM_LOAD("spp101.u7",0x0000,0x10000,CRC(32efcdf6) SHA1(1d437e8649408be91e0dd10598cc67336203077f))
|
||||
ROM_REGION(0x400000, "sound1", 0)
|
||||
@ -2829,7 +2829,7 @@ ROM_START(simpprtg_400)
|
||||
ROM_COPY( "user1", 0x18000, 0x8000, 0x8000)
|
||||
ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x80000, "gfx3", 0)
|
||||
ROM_LOAD( "sppdspg.400", 0x00000, 0x80000, CRC(3b408fe2) SHA1(ce8d7f0d58b5f8fb4df0b9811449e4dc0e1e6580))
|
||||
ROM_LOAD( "sppdspg.400", 0x00000, 0x80000, CRC(3b408fe2) SHA1(ce8d7f0d58b5f8fb4df0b9811449e4dc0e1e6580))
|
||||
ROM_REGION(0x010000, "cpu2", 0)
|
||||
ROM_LOAD("spp101.u7",0x0000,0x10000,CRC(32efcdf6) SHA1(1d437e8649408be91e0dd10598cc67336203077f))
|
||||
ROM_REGION(0x400000, "sound1", 0)
|
||||
@ -2867,7 +2867,7 @@ ROM_START(simpprtl_400)
|
||||
ROM_COPY( "user1", 0x18000, 0x8000, 0x8000)
|
||||
ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x80000, "gfx3", 0)
|
||||
ROM_LOAD( "sppdspl.400", 0x00000, 0x80000, CRC(a0bf567e) SHA1(ce6eb65da6bff15aeb787fd2cdac7cf6b4300108))
|
||||
ROM_LOAD( "sppdspl.400", 0x00000, 0x80000, CRC(a0bf567e) SHA1(ce6eb65da6bff15aeb787fd2cdac7cf6b4300108))
|
||||
ROM_REGION(0x010000, "cpu2", 0)
|
||||
ROM_LOAD("spp101.u7",0x0000,0x10000,CRC(32efcdf6) SHA1(1d437e8649408be91e0dd10598cc67336203077f))
|
||||
ROM_REGION(0x400000, "sound1", 0)
|
||||
@ -2924,7 +2924,7 @@ ROM_START(simpprtf_400)
|
||||
ROM_COPY( "user1", 0x18000, 0x8000, 0x8000)
|
||||
ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x80000, "gfx3", 0)
|
||||
ROM_LOAD( "sppdspf.400", 0x00000, 0x80000, CRC(6cc306e2) SHA1(bfe6ef0cd5d0cb5e3b29d85ade1700005e22d81b))
|
||||
ROM_LOAD( "sppdspf.400", 0x00000, 0x80000, CRC(6cc306e2) SHA1(bfe6ef0cd5d0cb5e3b29d85ade1700005e22d81b))
|
||||
ROM_REGION(0x010000, "cpu2", 0)
|
||||
ROM_LOAD("spp101.u7",0x0000,0x10000,CRC(32efcdf6) SHA1(1d437e8649408be91e0dd10598cc67336203077f))
|
||||
ROM_REGION(0x400000, "sound1", 0)
|
||||
@ -2935,7 +2935,7 @@ ROM_START(simpprtf_400)
|
||||
ROM_END
|
||||
ROM_START(simpprtf_204)
|
||||
ROM_REGION(0x80000, "user1", 0)
|
||||
ROM_LOAD("spp-cpu.204", 0x00000, 0x20000, CRC(5bc155f7) SHA1(78d793cecbc6561a891ff8007f33c63ec5515e9f))
|
||||
ROM_LOAD("spp-cpu.204", 0x00000, 0x20000, CRC(5bc155f7) SHA1(78d793cecbc6561a891ff8007f33c63ec5515e9f))
|
||||
ROM_RELOAD(0x20000, 0x20000)
|
||||
ROM_RELOAD(0x40000, 0x20000)
|
||||
ROM_RELOAD(0x60000, 0x20000)
|
||||
|
@ -22,7 +22,7 @@ public:
|
||||
int ace_ram_dirty;
|
||||
int has_ace_ram;
|
||||
UINT32 *ace_ram;
|
||||
|
||||
|
||||
UINT8 *dirty_palette;
|
||||
|
||||
int pri;
|
||||
@ -42,7 +42,7 @@ public:
|
||||
UINT32 *pf2_rowscroll32;
|
||||
UINT32 *pf3_rowscroll32;
|
||||
UINT32 *pf4_rowscroll32;
|
||||
|
||||
|
||||
device_t *deco16ic;
|
||||
};
|
||||
|
||||
|
@ -15,9 +15,9 @@ public:
|
||||
|
||||
int adpcm_data;
|
||||
int ret;
|
||||
|
||||
|
||||
int vblank_irq, sound_irq;
|
||||
|
||||
|
||||
int msm_data1, msm_data2;
|
||||
int msm_toggle1, msm_toggle2;
|
||||
int msm_source;
|
||||
|
@ -3992,7 +3992,7 @@ INLINE void write_pixel(running_machine* machine, UINT8 pix, int pixeloffset )
|
||||
segacd_dataram[offset] |= pix << shift;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 0x02: // overwrite, only write non-zero data
|
||||
if (pix)
|
||||
{
|
||||
@ -4660,7 +4660,7 @@ void CDC_Do_DMA(running_machine* machine, int rate)
|
||||
|
||||
dest[dstoffset+1] = data >>8;
|
||||
dest[dstoffset+0] = data&0xff;
|
||||
|
||||
|
||||
segacd_mark_tiles_dirty(space->machine, dstoffset/2);
|
||||
}
|
||||
else
|
||||
@ -4684,7 +4684,7 @@ void CDC_Do_DMA(running_machine* machine, int rate)
|
||||
dest[dstoffset+1] = data >>8;
|
||||
dest[dstoffset+0] = data&0xff;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -5067,7 +5067,7 @@ static WRITE16_HANDLER( scd_a12002_memory_mode_w )
|
||||
|
||||
if (ACCESSING_BITS_8_15)
|
||||
scd_a12002_memory_mode_w_8_15(space, 0, data>>8);
|
||||
|
||||
|
||||
if (ACCESSING_BITS_0_7)
|
||||
scd_a12002_memory_mode_w_0_7(space, 0, data&0xff);
|
||||
}
|
||||
@ -5150,7 +5150,7 @@ WRITE8_HANDLER( segacd_sub_memory_mode_w_0_7 )
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // == 0x0 - currently in 2 meg mode
|
||||
{ // == 0x0 - currently in 2 meg mode
|
||||
scd_mode_dmna_ret_flags &= 0xddff;
|
||||
}
|
||||
}
|
||||
@ -5163,7 +5163,7 @@ static WRITE16_HANDLER( segacd_sub_memory_mode_w )
|
||||
|
||||
if (ACCESSING_BITS_8_15)
|
||||
segacd_sub_memory_mode_w_8_15(space, 0, data>>8);
|
||||
|
||||
|
||||
if (ACCESSING_BITS_0_7)
|
||||
segacd_sub_memory_mode_w_0_7(space, 0, data&0xff);
|
||||
}
|
||||
@ -5441,7 +5441,7 @@ static WRITE16_HANDLER( segacd_main_dataram_part1_w )
|
||||
}
|
||||
else
|
||||
{
|
||||
// printf("Unspported: segacd_main_dataram_part1_w (Cell rearranged RAM) in mode 1 (illega?)\n"); // is this legal??
|
||||
// printf("Unspported: segacd_main_dataram_part1_w (Cell rearranged RAM) in mode 1 (illega?)\n"); // is this legal??
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -6005,8 +6005,8 @@ void segacd_init_main_cpu( running_machine* machine )
|
||||
|
||||
memory_unmap_readwrite (space, 0x020000,0x3fffff,0,0);
|
||||
|
||||
// memory_install_read_bank(space, 0x0020000, 0x003ffff, 0, 0, "scd_4m_prgbank");
|
||||
// memory_set_bankptr(space->machine, "scd_4m_prgbank", segacd_4meg_prgram + segacd_4meg_prgbank * 0x20000 );
|
||||
// memory_install_read_bank(space, 0x0020000, 0x003ffff, 0, 0, "scd_4m_prgbank");
|
||||
// memory_set_bankptr(space->machine, "scd_4m_prgbank", segacd_4meg_prgram + segacd_4meg_prgbank * 0x20000 );
|
||||
memory_install_read16_handler (space, 0x0020000, 0x003ffff, 0, 0, scd_4m_prgbank_ram_r );
|
||||
memory_install_write16_handler (space, 0x0020000, 0x003ffff, 0, 0, scd_4m_prgbank_ram_w );
|
||||
segacd_wordram_mapped = 1;
|
||||
@ -6138,7 +6138,7 @@ static MACHINE_RESET( segacd )
|
||||
// I'm not sure what the source of this timing problem is, it's not using IRQ3 or StopWatch at the
|
||||
// time. Changing the CDHock timer to 50hz from 75hz also stops the hang, but then the video is
|
||||
// too slow and has bad sound. -- Investigate!
|
||||
|
||||
|
||||
_segacd_68k_cpu->set_clock_scale(1.5000f);
|
||||
|
||||
}
|
||||
@ -6203,7 +6203,7 @@ static READ16_HANDLER( segacd_sub_dataram_part1_r )
|
||||
}
|
||||
else if ((scd_rammode&2)==RAM_MODE_1MEG)
|
||||
{
|
||||
// printf("Unspported: segacd_sub_dataram_part1_r in mode 1 (Word RAM Expander - 1 Byte Per Pixel)\n");
|
||||
// printf("Unspported: segacd_sub_dataram_part1_r in mode 1 (Word RAM Expander - 1 Byte Per Pixel)\n");
|
||||
UINT16 data;
|
||||
|
||||
if (scd_rammode&1)
|
||||
@ -6224,7 +6224,7 @@ static READ16_HANDLER( segacd_sub_dataram_part1_r )
|
||||
return ((data & 0xf000) >> 4) | ((data & 0x0f00) >> 8);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
return 0x0000;
|
||||
@ -6248,13 +6248,13 @@ static WRITE16_HANDLER( segacd_sub_dataram_part1_w )
|
||||
else if ((scd_rammode&2)==RAM_MODE_1MEG)
|
||||
{
|
||||
//if (mem_mask==0xffff)
|
||||
// printf("Unspported: segacd_sub_dataram_part1_w in mode 1 (Word RAM Expander - 1 Byte Per Pixel) %04x %04x\n", data, mem_mask);
|
||||
// printf("Unspported: segacd_sub_dataram_part1_w in mode 1 (Word RAM Expander - 1 Byte Per Pixel) %04x %04x\n", data, mem_mask);
|
||||
|
||||
data = (data & 0x000f) | (data & 0x0f00)>>4;
|
||||
mem_mask = (mem_mask & 0x000f) | (mem_mask & 0x0f00)>>4;
|
||||
|
||||
// data = ((data & 0x00f0) >>4) | (data & 0xf000)>>8;
|
||||
// mem_mask = ((mem_mask & 0x00f0)>>4) | ((mem_mask & 0xf000)>>8);
|
||||
// data = ((data & 0x00f0) >>4) | (data & 0xf000)>>8;
|
||||
// mem_mask = ((mem_mask & 0x00f0)>>4) | ((mem_mask & 0xf000)>>8);
|
||||
|
||||
|
||||
if (!(offset&1))
|
||||
@ -6272,7 +6272,7 @@ static WRITE16_HANDLER( segacd_sub_dataram_part1_w )
|
||||
segacd_1meg_mode_word_write(space->machine, offset/2+0x20000/2, data, mem_mask, 1);
|
||||
}
|
||||
|
||||
// printf("Unspported: segacd_sub_dataram_part1_w in mode 1 (Word RAM Expander - 1 Byte Per Pixel) %04x\n", data);
|
||||
// printf("Unspported: segacd_sub_dataram_part1_w in mode 1 (Word RAM Expander - 1 Byte Per Pixel) %04x\n", data);
|
||||
}
|
||||
}
|
||||
|
||||
@ -9337,7 +9337,7 @@ MACHINE_RESET( megadriv )
|
||||
if (genesis_other_hacks)
|
||||
{
|
||||
// set_refresh_rate(megadriv_framerate);
|
||||
// machine->device("maincpu")->set_clock_scale(0.9950f); /* Fatal Rewind is very fussy... (and doesn't work now anyway, so don't bother with this) */
|
||||
// machine->device("maincpu")->set_clock_scale(0.9950f); /* Fatal Rewind is very fussy... (and doesn't work now anyway, so don't bother with this) */
|
||||
|
||||
memset(megadrive_ram,0x00,0x10000);
|
||||
}
|
||||
|
@ -219,7 +219,7 @@ int stepper_update(int which, UINT8 pattern)
|
||||
step[which].phase = (step[which].step_pos % 8);
|
||||
step[which].pattern = pattern;
|
||||
|
||||
// index = (step[which].old_pattern << 4) | pattern;
|
||||
// index = (step[which].old_pattern << 4) | pattern;
|
||||
switch ( step[which].type )
|
||||
{
|
||||
default:
|
||||
|
@ -10241,6 +10241,7 @@ Other Sun games
|
||||
DRIVER( atworld ) /* (c) 2007 Amcoe - Around The World */
|
||||
DRIVER( atworldd1 ) /* (c) 2007 Amcoe */
|
||||
DRIVER( amclink ) /* (c) 200? Amcoe - Amcoe Link Control Box? */
|
||||
DRIVER( fbdeluxe ) /* (c) 200? Amcoe - Amcoe Link Control Box? */
|
||||
|
||||
DRIVER( act2000 ) /* (c) 1999 Amcoe - Action 2000 */
|
||||
DRIVER( act2000v1 ) /* (c) 1999 Amcoe */
|
||||
|
@ -54,7 +54,7 @@ SCREEN_UPDATE( twocrude )
|
||||
|
||||
flip_screen_set(screen->machine, !BIT(flip, 7));
|
||||
|
||||
screen->machine->device<decospr_device>("spritegen")->draw_sprites(screen->machine, bitmap, cliprect, state->spriteram16_buffer, 0x400);
|
||||
screen->machine->device<decospr_device>("spritegen")->draw_sprites(screen->machine, bitmap, cliprect, state->spriteram16_buffer, 0x400);
|
||||
|
||||
|
||||
deco16ic_pf12_update(state->deco16ic, state->pf1_rowscroll, state->pf2_rowscroll);
|
||||
|
@ -275,7 +275,7 @@ SCREEN_UPDATE( mutantf )
|
||||
deco16ic_tilemap_4_draw(state->deco16ic, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
|
||||
deco16ic_tilemap_2_draw(state->deco16ic, bitmap, cliprect, 0, 0);
|
||||
deco16ic_tilemap_3_draw(state->deco16ic, bitmap, cliprect, 0, 0);
|
||||
|
||||
|
||||
|
||||
if (priority & 1)
|
||||
{
|
||||
|
@ -523,7 +523,7 @@ static void custom_tilemap_draw(
|
||||
width_mask = src_bitmap0->width - 1;
|
||||
height_mask = src_bitmap0->height - 1;
|
||||
src_y = scrolly + starty;
|
||||
|
||||
|
||||
|
||||
for (y = starty; y < endy; y++)
|
||||
{
|
||||
@ -547,7 +547,7 @@ static void custom_tilemap_draw(
|
||||
|
||||
if (src_bitmap1)
|
||||
{
|
||||
p |= (*BITMAP_ADDR16(src_bitmap1, (src_y + column_offset) & height_mask, src_x) & combine_mask) << combine_shift;
|
||||
p |= (*BITMAP_ADDR16(src_bitmap1, (src_y + column_offset) & height_mask, src_x) & combine_mask) << combine_shift;
|
||||
}
|
||||
|
||||
src_x = (src_x + 1) & width_mask;
|
||||
@ -586,7 +586,7 @@ static void custom_tilemap_draw(
|
||||
{
|
||||
UINT16 p2 = *BITMAP_ADDR16(src_bitmap1, (src_y + column_offset) & height_mask, src_x);
|
||||
p = 0x200+( ((p&0x30)<<4) | (p&0x0f) | ((p2 & 0x0f)<<4));
|
||||
}
|
||||
}
|
||||
}
|
||||
src_x = (src_x + 1) & width_mask;
|
||||
|
||||
|
@ -548,7 +548,7 @@ VIDEO_START( dragngun )
|
||||
{
|
||||
dragngun_state *state = machine->driver_data<dragngun_state>();
|
||||
state->dirty_palette = auto_alloc_array(machine, UINT8, 4096);
|
||||
|
||||
|
||||
memset(state->dirty_palette,0,4096);
|
||||
|
||||
state_save_register_global(machine, state->dragngun_sprite_ctrl);
|
||||
@ -590,7 +590,7 @@ SCREEN_EOF( captaven )
|
||||
|
||||
SCREEN_EOF( dragngun )
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -627,7 +627,7 @@ SCREEN_UPDATE( captaven )
|
||||
deco16ic_tilemap_1_draw(state->deco16ic, bitmap, cliprect, 0, 4);
|
||||
|
||||
screen->machine->device<decospr_device>("spritegen")->set_alt_format(true);
|
||||
screen->machine->device<decospr_device>("spritegen")->draw_sprites(screen->machine, bitmap, cliprect, state->spriteram16_buffered, 0x400);
|
||||
screen->machine->device<decospr_device>("spritegen")->draw_sprites(screen->machine, bitmap, cliprect, state->spriteram16_buffered, 0x400);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -651,7 +651,7 @@ SCREEN_UPDATE( dragngun )
|
||||
// zooming sprite draw is very slow, and sprites are buffered.. however, one of the levels attempts to use
|
||||
// partial updates for every line, which causes things to be very slow... the sprites appear to support
|
||||
// multiple layers of alpha, so rendering to a buffer for layer isn't easy (maybe there are multiple sprite
|
||||
// chips at work?)
|
||||
// chips at work?)
|
||||
//
|
||||
// really, it needs optimizing .. the raster effects also need fixing properly, they're not correct using
|
||||
// partial updates right now but the old buffering of scroll values was a hack and doesn't work properly
|
||||
@ -686,7 +686,7 @@ SCREEN_UPDATE( fghthist )
|
||||
deco16ic_pf12_update(state->deco16ic, state->pf1_rowscroll, state->pf2_rowscroll);
|
||||
deco16ic_pf34_update(state->deco16ic, state->pf3_rowscroll, state->pf4_rowscroll);
|
||||
|
||||
screen->machine->device<decospr_device>("spritegen")->draw_sprites(screen->machine, bitmap, cliprect, state->spriteram16_buffered, 0x800, true);
|
||||
screen->machine->device<decospr_device>("spritegen")->draw_sprites(screen->machine, bitmap, cliprect, state->spriteram16_buffered, 0x800, true);
|
||||
|
||||
/* Draw screen */
|
||||
deco16ic_tilemap_4_draw(state->deco16ic, bitmap, cliprect, 0, 1);
|
||||
@ -730,7 +730,7 @@ static void mixDualAlphaSprites(bitmap_t *bitmap, const rectangle *cliprect, con
|
||||
bitmap_t* sprite0_mix_bitmap = machine->device<decospr_device>("spritegen1")->get_sprite_temp_bitmap();
|
||||
bitmap_t* sprite1_mix_bitmap = machine->device<decospr_device>("spritegen2")->get_sprite_temp_bitmap();
|
||||
|
||||
|
||||
|
||||
/* Mix sprites into main bitmap, based on priority & alpha */
|
||||
for (y=8; y<248; y++) {
|
||||
UINT8* tilemapPri=BITMAP_ADDR8(machine->priority_bitmap, y, 0);
|
||||
@ -875,10 +875,10 @@ SCREEN_UPDATE( nslasher )
|
||||
screen->machine->device<decospr_device>("spritegen1")->set_pix_raw_shift(8);
|
||||
screen->machine->device<decospr_device>("spritegen2")->set_pix_raw_shift(8);
|
||||
|
||||
screen->machine->device<decospr_device>("spritegen1")->draw_sprites(screen->machine, bitmap, cliprect, state->spriteram16_buffered, 0x800, true);
|
||||
screen->machine->device<decospr_device>("spritegen2")->draw_sprites(screen->machine, bitmap, cliprect, state->spriteram16_2_buffered, 0x800, true);
|
||||
screen->machine->device<decospr_device>("spritegen1")->draw_sprites(screen->machine, bitmap, cliprect, state->spriteram16_buffered, 0x800, true);
|
||||
screen->machine->device<decospr_device>("spritegen2")->draw_sprites(screen->machine, bitmap, cliprect, state->spriteram16_2_buffered, 0x800, true);
|
||||
|
||||
|
||||
|
||||
/* Render alpha-blended tilemap to seperate buffer for proper mixing */
|
||||
bitmap_fill(state->tilemap_alpha_bitmap,cliprect,0);
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
see m_sprite_bitmap... (note, if using that you must also use BITMAP_FORMAT_RGB32 in the machine config)
|
||||
|
||||
used by:
|
||||
|
||||
|
||||
dblewing.c
|
||||
tumblep.c
|
||||
dietgo.c
|
||||
@ -138,28 +138,28 @@ void decospr_device_config::set_gfx_region(device_config *device, int gfxregion)
|
||||
{
|
||||
decospr_device_config *dev = downcast<decospr_device_config *>(device);
|
||||
dev->m_gfxregion = gfxregion;
|
||||
// printf("decospr_device_config::set_gfx_region()\n");
|
||||
// printf("decospr_device_config::set_gfx_region()\n");
|
||||
}
|
||||
|
||||
void decospr_device_config::set_pri_callback(device_config *device, decospr_priority_callback_func callback)
|
||||
{
|
||||
decospr_device_config *dev = downcast<decospr_device_config *>(device);
|
||||
dev->m_pricallback = callback;
|
||||
// printf("decospr_device_config::set_pri_callback()\n");
|
||||
// printf("decospr_device_config::set_pri_callback()\n");
|
||||
}
|
||||
|
||||
decospr_device::decospr_device(running_machine &_machine, const decospr_device_config &config)
|
||||
: device_t(_machine, config),
|
||||
m_config(config),
|
||||
m_gfxregion(m_config.m_gfxregion),
|
||||
m_gfxregion(m_config.m_gfxregion),
|
||||
m_pricallback(m_config.m_pricallback)
|
||||
{
|
||||
}
|
||||
|
||||
void decospr_device::device_start()
|
||||
{
|
||||
// sprite_kludge_x = sprite_kludge_y = 0;
|
||||
// printf("decospr_device::device_start()\n");
|
||||
// sprite_kludge_x = sprite_kludge_y = 0;
|
||||
// printf("decospr_device::device_start()\n");
|
||||
m_sprite_bitmap = 0;
|
||||
m_alt_format = 0;
|
||||
m_pixmask = 0xf;
|
||||
@ -174,8 +174,8 @@ void decospr_device::device_reset()
|
||||
/*
|
||||
void decospr_device::decospr_sprite_kludge(int x, int y)
|
||||
{
|
||||
sprite_kludge_x = x;
|
||||
sprite_kludge_y = y;
|
||||
sprite_kludge_x = x;
|
||||
sprite_kludge_y = y;
|
||||
}
|
||||
*/
|
||||
|
||||
@ -227,7 +227,7 @@ void decospr_device::draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
while (offs!=end)
|
||||
{
|
||||
int x, y, sprite, colour, multi, mult2, fx, fy, inc, flash, mult, h, w, pri;
|
||||
|
||||
|
||||
if (!m_alt_format)
|
||||
{
|
||||
|
||||
@ -241,7 +241,7 @@ void decospr_device::draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
{
|
||||
|
||||
x = spriteram[offs + 2];
|
||||
|
||||
|
||||
if (!m_sprite_bitmap)
|
||||
colour = (x >> 9) & 0x1f;
|
||||
else
|
||||
@ -250,7 +250,7 @@ void decospr_device::draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
if (y&0x8000) colour |= 0x80; // fghthist uses this to mark priority
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (m_pricallback)
|
||||
pri = m_pricallback(x);
|
||||
else
|
||||
@ -317,10 +317,10 @@ void decospr_device::draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
if ((ypos<=cliprect->max_y) && (ypos>=(cliprect->min_y)-16))
|
||||
{
|
||||
if(!m_sprite_bitmap)
|
||||
{
|
||||
{
|
||||
if ((ypos<=cliprect->max_y) && (ypos>=(cliprect->min_y)-16))
|
||||
{
|
||||
if (m_pricallback)
|
||||
if (m_pricallback)
|
||||
pdrawgfx_transpen(bitmap,cliprect,machine->gfx[m_gfxregion],
|
||||
sprite - multi * inc,
|
||||
colour,
|
||||
@ -335,11 +335,11 @@ void decospr_device::draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
x,ypos,
|
||||
0);
|
||||
}
|
||||
|
||||
|
||||
// double wing uses this flag
|
||||
if (w)
|
||||
{
|
||||
if (m_pricallback)
|
||||
{
|
||||
if (m_pricallback)
|
||||
pdrawgfx_transpen(bitmap,cliprect,machine->gfx[m_gfxregion],
|
||||
(sprite - multi * inc)-mult2,
|
||||
colour,
|
||||
@ -356,7 +356,7 @@ void decospr_device::draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
// if we have a sprite bitmap draw raw data to it for manual mixing
|
||||
drawgfx_transpen_raw(m_sprite_bitmap,cliprect,machine->gfx[m_gfxregion],
|
||||
sprite - multi * inc,
|
||||
@ -365,7 +365,7 @@ void decospr_device::draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
x,ypos,
|
||||
0);
|
||||
if (w)
|
||||
{
|
||||
{
|
||||
drawgfx_transpen_raw(m_sprite_bitmap,cliprect,machine->gfx[m_gfxregion],
|
||||
(sprite - multi * inc)-mult2,
|
||||
colour<<m_raw_shift,
|
||||
@ -373,7 +373,7 @@ void decospr_device::draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
x-16,ypos,
|
||||
0);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -437,10 +437,10 @@ void decospr_device::draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
{
|
||||
for (int yy=0; yy<h; yy++)
|
||||
{
|
||||
|
||||
|
||||
if(!m_sprite_bitmap)
|
||||
{
|
||||
if (m_pricallback)
|
||||
if (m_pricallback)
|
||||
{
|
||||
ypos = y + mult2 * (h-yy);
|
||||
|
||||
@ -455,7 +455,7 @@ void decospr_device::draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
}
|
||||
|
||||
ypos -= 512; // wrap-around y
|
||||
|
||||
|
||||
if ((ypos<=cliprect->max_y) && (ypos>=(cliprect->min_y-16)))
|
||||
{
|
||||
pdrawgfx_transpen(bitmap,cliprect,machine->gfx[m_gfxregion],
|
||||
@ -480,9 +480,9 @@ void decospr_device::draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
x + mult * (w-xx),ypos,
|
||||
0);
|
||||
}
|
||||
|
||||
|
||||
ypos -= 512; // wrap-around y
|
||||
|
||||
|
||||
if ((ypos<=cliprect->max_y) && (ypos>=(cliprect->min_y-16)))
|
||||
{
|
||||
drawgfx_transpen(bitmap,cliprect,machine->gfx[m_gfxregion],
|
||||
@ -497,7 +497,7 @@ void decospr_device::draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
else
|
||||
{
|
||||
ypos = y + mult2 * (h-yy);
|
||||
|
||||
|
||||
if ((ypos<=cliprect->max_y) && (ypos>=(cliprect->min_y)-16))
|
||||
{
|
||||
drawgfx_transpen_raw(m_sprite_bitmap,cliprect,machine->gfx[m_gfxregion],
|
||||
@ -509,7 +509,7 @@ void decospr_device::draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
}
|
||||
|
||||
ypos -= 512; // wrap-around y
|
||||
|
||||
|
||||
if ((ypos<=cliprect->max_y) && (ypos>=(cliprect->min_y-16)))
|
||||
{
|
||||
drawgfx_transpen_raw(m_sprite_bitmap,cliprect,machine->gfx[m_gfxregion],
|
||||
@ -546,7 +546,7 @@ void decospr_device::inefficient_copy_sprite_bitmap(running_machine* machine, bi
|
||||
{
|
||||
srcline= BITMAP_ADDR16(m_sprite_bitmap, y, 0);
|
||||
dstline= BITMAP_ADDR32(bitmap, y, 0);
|
||||
|
||||
|
||||
if (alpha==0xff)
|
||||
{
|
||||
for (x=cliprect->min_x;x<=cliprect->max_x;x++)
|
||||
@ -558,7 +558,7 @@ void decospr_device::inefficient_copy_sprite_bitmap(running_machine* machine, bi
|
||||
if ((pix & priority_mask) ==pri )
|
||||
{
|
||||
dstline[x] = paldata[(pix&palmask) + colbase];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -575,9 +575,9 @@ void decospr_device::inefficient_copy_sprite_bitmap(running_machine* machine, bi
|
||||
UINT32 pal1 = paldata[(pix&palmask) + colbase];
|
||||
UINT32 pal2 = dstline[x];
|
||||
dstline[x] = alpha_blend_r32(pal2, pal1, alpha);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1145,7 +1145,7 @@ static void draw_model(running_machine *machine, UINT32 addr)
|
||||
float dot;
|
||||
int intensity;
|
||||
int polygon_transparency;
|
||||
|
||||
|
||||
//
|
||||
// Header bits:
|
||||
//
|
||||
@ -1167,7 +1167,7 @@ static void draw_model(running_machine *machine, UINT32 addr)
|
||||
//
|
||||
// 3:FFFFFF00 - polygon normal Z coordinate, 2.22
|
||||
// 3:00000038 - texture width, in tiles
|
||||
// 3:00000007 - texture height, in tiles
|
||||
// 3:00000007 - texture height, in tiles
|
||||
//
|
||||
// 4:FFFFFF00 - RGB lighting color
|
||||
// 4:00000040 - texture page
|
||||
|
@ -28,7 +28,7 @@ static void psychic5_change_palette(running_machine *machine, int color, int off
|
||||
psychic5_state *state = machine->driver_data<psychic5_state>();
|
||||
UINT8 lo = state->ps5_palette_ram[offset & ~1];
|
||||
UINT8 hi = state->ps5_palette_ram[offset | 1];
|
||||
jal_blend_set(color, hi & 0x0f);
|
||||
jal_blend_set(color, hi & 0x0f);
|
||||
palette_set_color_rgb(machine, color, pal4bit(lo >> 4), pal4bit(lo), pal4bit(hi >> 4));
|
||||
}
|
||||
|
||||
|
@ -4,11 +4,11 @@
|
||||
|
||||
- used by suprnova.c
|
||||
galpani3.c
|
||||
jchan.c
|
||||
jchan.c
|
||||
|
||||
- ToDo:
|
||||
Get rid of sprite position kludges
|
||||
Fix zooming precision/rounding (most noticable on jchan backgrounds)
|
||||
Fix zooming precision/rounding (most noticable on jchan backgrounds)
|
||||
|
||||
*/
|
||||
|
||||
|
@ -245,7 +245,7 @@ static void funystrp_draw_sprites(running_machine *machine, bitmap_t *bitmap,con
|
||||
int number = (state->spriteram[i] & 0xff) + (attr & 0xf)*256;
|
||||
|
||||
if (attr2 & 0x80) sx += 256;
|
||||
|
||||
|
||||
drawgfx_transpen(bitmap,cliprect,gfx,number,
|
||||
(attr2 & 0x7f),attr & 0x40,attr & 0x80,
|
||||
sx-8,sy,0);
|
||||
|
@ -645,7 +645,7 @@ SCREEN_UPDATE(skns)
|
||||
}
|
||||
|
||||
bitmap_fill(sprite_bitmap, cliprect, 0x0000);
|
||||
|
||||
|
||||
if (suprnova_alt_enable_sprites)
|
||||
state->spritegen->skns_draw_sprites(screen->machine, sprite_bitmap, cliprect, screen->machine->generic.spriteram.u32, screen->machine->generic.spriteram_size, screen->machine->region("gfx1")->base(), screen->machine->region ("gfx1")->bytes(), skns_spc_regs );
|
||||
|
||||
|
@ -1081,7 +1081,7 @@ static void sdlinput_register_keyboards(running_machine *machine)
|
||||
snprintf(defname, sizeof(defname)-1, "%s", key_trans_table[keynum].ui_name);
|
||||
|
||||
// add the item to the device
|
||||
// printf("Keynum %d => sdl key %d\n", keynum, OSD_SDL_INDEX(key_trans_table[keynum].sdl_key));
|
||||
// printf("Keynum %d => sdl key %d\n", keynum, OSD_SDL_INDEX(key_trans_table[keynum].sdl_key));
|
||||
input_device_item_add(devinfo->device, defname, &devinfo->keyboard.state[OSD_SDL_INDEX(key_trans_table[keynum].sdl_key)], itemid, generic_button_get_state);
|
||||
}
|
||||
|
||||
@ -1306,7 +1306,7 @@ void sdlinput_poll(running_machine *machine)
|
||||
switch(event.type) {
|
||||
case SDL_KEYDOWN:
|
||||
devinfo = generic_device_find_index( keyboard_list, keyboard_map.logical[event.key.which]);
|
||||
// printf("Key down %d %d %s => %d %s (scrlock keycode is %d)\n", event.key.which, event.key.keysym.scancode, devinfo->name, OSD_SDL_INDEX_KEYSYM(&event.key.keysym), sdl_key_trans_table[event.key.keysym.scancode].mame_key_name, KEYCODE_SCRLOCK);
|
||||
// printf("Key down %d %d %s => %d %s (scrlock keycode is %d)\n", event.key.which, event.key.keysym.scancode, devinfo->name, OSD_SDL_INDEX_KEYSYM(&event.key.keysym), sdl_key_trans_table[event.key.keysym.scancode].mame_key_name, KEYCODE_SCRLOCK);
|
||||
devinfo->keyboard.state[OSD_SDL_INDEX_KEYSYM(&event.key.keysym)] = 0x80;
|
||||
#if (!SDL_VERSION_ATLEAST(1,3,0))
|
||||
ui_input_push_char_event(machine, sdl_window_list->target, (unicode_char) event.key.keysym.unicode);
|
||||
@ -1611,8 +1611,8 @@ void sdl_osd_interface::customize_input_type_list(input_type_desc *typelist)
|
||||
#else
|
||||
mameid_code = lookup_mame_code("ITEM_ID_SCRLOCK");
|
||||
#endif
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
snprintf(fullmode, 63, "ITEM_ID_%s", uimode);
|
||||
mameid_code = lookup_mame_code(fullmode);
|
||||
|
@ -38,4 +38,4 @@
|
||||
***************************************************************************/
|
||||
|
||||
extern const char build_version[];
|
||||
const char build_version[] = "0.141u3 ("__DATE__")";
|
||||
const char build_version[] = "0.141u4 ("__DATE__")";
|
||||
|
Loading…
Reference in New Issue
Block a user