mirror of
https://github.com/holub/mame
synced 2025-05-14 18:08:13 +03:00
Cleanups and version bump.
This commit is contained in:
parent
dcd164adc7
commit
40bcc29e8a
292
src/emu/memory.c
292
src/emu/memory.c
@ -79,69 +79,69 @@
|
||||
value of 0x14000 would map the bucket at 0x00000, 0x04000, 0x10000,
|
||||
and 0x14000.
|
||||
|
||||
AM_ROM
|
||||
Specifies that this bucket contains ROM data by attaching an
|
||||
internal read handler. If this address space describes the first
|
||||
address space for a device, and if there is a region whose name
|
||||
matches the device's name, and if the bucket start/end range is
|
||||
within the bounds of that region, then this bucket will automatically
|
||||
map to the memory contained in that region.
|
||||
|
||||
AM_ROM
|
||||
Specifies that this bucket contains ROM data by attaching an
|
||||
internal read handler. If this address space describes the first
|
||||
address space for a device, and if there is a region whose name
|
||||
matches the device's name, and if the bucket start/end range is
|
||||
within the bounds of that region, then this bucket will automatically
|
||||
map to the memory contained in that region.
|
||||
|
||||
AM_RAM
|
||||
AM_READONLY
|
||||
AM_WRITEONLY
|
||||
Specifies that this bucket contains RAM data by attaching internal
|
||||
read and/or write handlers. Memory is automatically allocated to back
|
||||
this area. AM_RAM maps both reads and writes, while AM_READONLY only
|
||||
maps reads and AM_WRITEONLY only maps writes.
|
||||
Specifies that this bucket contains RAM data by attaching internal
|
||||
read and/or write handlers. Memory is automatically allocated to back
|
||||
this area. AM_RAM maps both reads and writes, while AM_READONLY only
|
||||
maps reads and AM_WRITEONLY only maps writes.
|
||||
|
||||
AM_NOP
|
||||
AM_READNOP
|
||||
AM_WRITENOP
|
||||
Specifies that reads and/or writes in this bucket are unmapped, but
|
||||
that accesses to them should not be logged. AM_NOP unmaps both reads
|
||||
and writes, while AM_READNOP only unmaps reads, and AM_WRITENOP only
|
||||
unmaps writes.
|
||||
|
||||
AM_UNMAP
|
||||
Specifies that both reads and writes in thus bucket are unmapeed,
|
||||
and that accesses to them should be logged. There is rarely a need
|
||||
for this, as the entire address space is initialized to behave this
|
||||
way by default.
|
||||
|
||||
AM_NOP
|
||||
AM_READNOP
|
||||
AM_WRITENOP
|
||||
Specifies that reads and/or writes in this bucket are unmapped, but
|
||||
that accesses to them should not be logged. AM_NOP unmaps both reads
|
||||
and writes, while AM_READNOP only unmaps reads, and AM_WRITENOP only
|
||||
unmaps writes.
|
||||
|
||||
AM_UNMAP
|
||||
Specifies that both reads and writes in thus bucket are unmapeed,
|
||||
and that accesses to them should be logged. There is rarely a need
|
||||
for this, as the entire address space is initialized to behave this
|
||||
way by default.
|
||||
|
||||
AM_READ_BANK(tag)
|
||||
AM_WRITE_BANK(tag)
|
||||
AM_READWRITE_BANK(tag)
|
||||
Specifies that reads and/or writes in this bucket map to a memory
|
||||
bank with the provided 'tag'. The actual memory this bank points to
|
||||
can be later controlled via the same tag.
|
||||
Specifies that reads and/or writes in this bucket map to a memory
|
||||
bank with the provided 'tag'. The actual memory this bank points to
|
||||
can be later controlled via the same tag.
|
||||
|
||||
AM_READ(read)
|
||||
AM_WRITE(write)
|
||||
AM_READWRITE(read, write)
|
||||
Specifies read and/or write handler callbacks for this bucket. All
|
||||
Specifies read and/or write handler callbacks for this bucket. All
|
||||
reads and writes in this bucket will trigger a call to the provided
|
||||
functions.
|
||||
|
||||
AM_DEVREAD(tag, read)
|
||||
AM_DEVWRITE(tag, read)
|
||||
AM_DEVREADWRITE(tag, read)
|
||||
Specifies a device-specific read and/or write handler for this
|
||||
bucket, automatically bound to the device specified by the provided
|
||||
'tag'.
|
||||
|
||||
AM_READ_PORT(tag)
|
||||
AM_WRITE_PORT(tag)
|
||||
AM_READWRITE_PORT(tag)
|
||||
Specifies that read and/or write accesses in this bucket will map
|
||||
to the I/O port with the provided 'tag'. An internal read/write
|
||||
handler is set up to handle this mapping.
|
||||
|
||||
|
||||
AM_DEVREAD(tag, read)
|
||||
AM_DEVWRITE(tag, read)
|
||||
AM_DEVREADWRITE(tag, read)
|
||||
Specifies a device-specific read and/or write handler for this
|
||||
bucket, automatically bound to the device specified by the provided
|
||||
'tag'.
|
||||
|
||||
AM_READ_PORT(tag)
|
||||
AM_WRITE_PORT(tag)
|
||||
AM_READWRITE_PORT(tag)
|
||||
Specifies that read and/or write accesses in this bucket will map
|
||||
to the I/O port with the provided 'tag'. An internal read/write
|
||||
handler is set up to handle this mapping.
|
||||
|
||||
AM_REGION(class, tag, offs)
|
||||
Only useful if used in conjunction with AM_ROM, AM_RAM, or
|
||||
AM_READ/WRITE_BANK. By default, memory is allocated to back each
|
||||
bucket. By specifying AM_REGION, you can tell the memory system to
|
||||
point the base of the memory backing this bucket to a given memory
|
||||
AM_READ/WRITE_BANK. By default, memory is allocated to back each
|
||||
bucket. By specifying AM_REGION, you can tell the memory system to
|
||||
point the base of the memory backing this bucket to a given memory
|
||||
'region' at the specified 'offs' instead of allocating it.
|
||||
|
||||
AM_SHARE(tag)
|
||||
@ -159,16 +159,16 @@
|
||||
with the size, in bytes, of the current bucket.
|
||||
|
||||
AM_BASE_MEMBER(struct, basefield)
|
||||
AM_SIZE_MEMBER(struct, sizefield)
|
||||
Specifies a field within a given struct as where to store the base
|
||||
or size of the current bucket. The struct is assumed to be hanging
|
||||
off of the machine->driver_data pointer.
|
||||
|
||||
AM_BASE_GENERIC(basefield)
|
||||
AM_SIZE_GENERIC(sizefield)
|
||||
Specifies a field within the global generic_pointers struct as
|
||||
where to store the base or size of the current bucket. The global
|
||||
generic_pointer struct lives in machine->generic.
|
||||
AM_SIZE_MEMBER(struct, sizefield)
|
||||
Specifies a field within a given struct as where to store the base
|
||||
or size of the current bucket. The struct is assumed to be hanging
|
||||
off of the machine->driver_data pointer.
|
||||
|
||||
AM_BASE_GENERIC(basefield)
|
||||
AM_SIZE_GENERIC(sizefield)
|
||||
Specifies a field within the global generic_pointers struct as
|
||||
where to store the base or size of the current bucket. The global
|
||||
generic_pointer struct lives in machine->generic.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
@ -342,7 +342,7 @@ struct _memory_private
|
||||
tagmap * bankmap; /* map for fast bank lookups */
|
||||
bank_info * banklist; /* data gathered for each bank */
|
||||
UINT8 banknext; /* next bank to allocate */
|
||||
|
||||
|
||||
tagmap * sharemap; /* map for share lookups */
|
||||
|
||||
UINT8 * wptable; /* watchpoint-fill table */
|
||||
@ -821,7 +821,7 @@ void memory_init(running_machine *machine)
|
||||
|
||||
/* dump the final memory configuration */
|
||||
mem_dump(machine);
|
||||
|
||||
|
||||
/* we are now initialized */
|
||||
memdata->initialized = TRUE;
|
||||
}
|
||||
@ -1104,7 +1104,7 @@ void memory_configure_bank(running_machine *machine, const char *tag, int starte
|
||||
memory_private *memdata = machine->memory_data;
|
||||
bank_info *bank = tagmap_find_hash_only(memdata->bankmap, tag);
|
||||
int entrynum;
|
||||
|
||||
|
||||
/* validation checks */
|
||||
if (bank == NULL)
|
||||
fatalerror("memory_configure_bank called for unknown bank '%s'", tag);
|
||||
@ -1504,22 +1504,22 @@ void *_memory_install_ram(const address_space *space, offs_t addrstart, offs_t a
|
||||
address_space *spacerw = (address_space *)space;
|
||||
FPTR bankindex;
|
||||
void *handler;
|
||||
|
||||
|
||||
/* map for read */
|
||||
if (install_read)
|
||||
{
|
||||
handler = bank_find_or_allocate(space, NULL, addrstart, addrend, addrmask, addrmirror, ROW_READ);
|
||||
space_map_range(spacerw, ROW_READ, space->dbits, 0, addrstart, addrend, addrmask, addrmirror, handler, spacerw, "ram");
|
||||
|
||||
|
||||
/* if we are provided a pointer, set it */
|
||||
bankindex = (FPTR)handler;
|
||||
if (baseptr != NULL)
|
||||
memdata->bank_ptr[bankindex] = baseptr;
|
||||
|
||||
/* if we don't have a bank pointer yet, try to find one */
|
||||
/* if we don't have a bank pointer yet, try to find one */
|
||||
if (memdata->bank_ptr[bankindex] == NULL)
|
||||
memdata->bank_ptr[bankindex] = (UINT8 *)space_find_backing_memory(space, addrstart, addrend);
|
||||
|
||||
|
||||
/* if we still don't have a pointer, and we're past the initialization phase, allocate a new block */
|
||||
if (memdata->bank_ptr[bankindex] == NULL && memdata->initialized)
|
||||
{
|
||||
@ -1540,10 +1540,10 @@ void *_memory_install_ram(const address_space *space, offs_t addrstart, offs_t a
|
||||
if (baseptr != NULL)
|
||||
memdata->bank_ptr[bankindex] = baseptr;
|
||||
|
||||
/* if we don't have a bank pointer yet, try to find one */
|
||||
/* if we don't have a bank pointer yet, try to find one */
|
||||
if (memdata->bank_ptr[bankindex] == NULL)
|
||||
memdata->bank_ptr[bankindex] = (UINT8 *)space_find_backing_memory(space, addrstart, addrend);
|
||||
|
||||
|
||||
/* if we still don't have a pointer, and we're past the initialization phase, allocate a new block */
|
||||
if (memdata->bank_ptr[bankindex] == NULL && memdata->initialized)
|
||||
{
|
||||
@ -1555,10 +1555,10 @@ void *_memory_install_ram(const address_space *space, offs_t addrstart, offs_t a
|
||||
|
||||
return (void *)space_find_backing_memory(spacerw, addrstart, addrend);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
_memory_unmap - unmap a section of address
|
||||
_memory_unmap - unmap a section of address
|
||||
space
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -1820,7 +1820,7 @@ static void memory_init_preflight(running_machine *machine)
|
||||
{
|
||||
memory_private *memdata = machine->memory_data;
|
||||
address_space *space;
|
||||
|
||||
|
||||
/* reset the banking state */
|
||||
memdata->banknext = STATIC_BANK1;
|
||||
|
||||
@ -1916,7 +1916,7 @@ static void memory_init_populate(running_machine *machine)
|
||||
/* find the entry before the last one we processed */
|
||||
for (entry = space->map->entrylist; entry->next != last_entry; entry = entry->next) ;
|
||||
last_entry = entry;
|
||||
|
||||
|
||||
/* map both read and write halves */
|
||||
memory_init_map_entry(space, entry, ROW_READ);
|
||||
memory_init_map_entry(space, entry, ROW_WRITE);
|
||||
@ -1941,22 +1941,22 @@ static void memory_init_map_entry(address_space *space, const address_map_entry
|
||||
{
|
||||
case AMH_NONE:
|
||||
return;
|
||||
|
||||
|
||||
case AMH_ROM:
|
||||
if (readorwrite == ROW_WRITE)
|
||||
return;
|
||||
/* fall through to the RAM case otherwise */
|
||||
|
||||
|
||||
case AMH_RAM:
|
||||
_memory_install_ram(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
_memory_install_ram(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
readorwrite == ROW_READ, readorwrite == ROW_WRITE, NULL);
|
||||
break;
|
||||
|
||||
|
||||
case AMH_NOP:
|
||||
_memory_unmap(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
readorwrite == ROW_READ, readorwrite == ROW_WRITE, TRUE);
|
||||
break;
|
||||
|
||||
|
||||
case AMH_UNMAP:
|
||||
_memory_unmap(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
readorwrite == ROW_READ, readorwrite == ROW_WRITE, FALSE);
|
||||
@ -1965,83 +1965,83 @@ static void memory_init_map_entry(address_space *space, const address_map_entry
|
||||
case AMH_HANDLER:
|
||||
switch ((handler->bits != 0) ? handler->bits : space->dbits)
|
||||
{
|
||||
case 8:
|
||||
_memory_install_handler8(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.shandler8 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.shandler8 : NULL, handler->name,
|
||||
handler->mask);
|
||||
case 8:
|
||||
_memory_install_handler8(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.shandler8 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.shandler8 : NULL, handler->name,
|
||||
handler->mask);
|
||||
break;
|
||||
|
||||
case 16:
|
||||
_memory_install_handler16(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.shandler16 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.shandler16 : NULL, handler->name,
|
||||
handler->mask);
|
||||
case 16:
|
||||
_memory_install_handler16(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.shandler16 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.shandler16 : NULL, handler->name,
|
||||
handler->mask);
|
||||
break;
|
||||
|
||||
case 32:
|
||||
_memory_install_handler32(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.shandler32 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.shandler32 : NULL, handler->name,
|
||||
handler->mask);
|
||||
case 32:
|
||||
_memory_install_handler32(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.shandler32 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.shandler32 : NULL, handler->name,
|
||||
handler->mask);
|
||||
break;
|
||||
|
||||
|
||||
case 64:
|
||||
_memory_install_handler64(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.shandler64 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.shandler64 : NULL, handler->name,
|
||||
handler->mask);
|
||||
_memory_install_handler64(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.shandler64 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.shandler64 : NULL, handler->name,
|
||||
handler->mask);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case AMH_DEVICE_HANDLER:
|
||||
device = devtag_get_device(space->machine, handler->tag);
|
||||
if (device == NULL)
|
||||
fatalerror("Attempted to map a non-existent device '%s' in space %s of device '%s'\n", handler->tag, space->name, (space->cpu != NULL) ? space->cpu->tag : "??");
|
||||
switch ((handler->bits != 0) ? handler->bits : space->dbits)
|
||||
{
|
||||
case 8:
|
||||
_memory_install_device_handler8(space, device, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.dhandler8 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.dhandler8 : NULL, handler->name,
|
||||
handler->mask);
|
||||
case 8:
|
||||
_memory_install_device_handler8(space, device, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.dhandler8 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.dhandler8 : NULL, handler->name,
|
||||
handler->mask);
|
||||
break;
|
||||
|
||||
case 16:
|
||||
_memory_install_device_handler16(space, device, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.dhandler16 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.dhandler16 : NULL, handler->name,
|
||||
handler->mask);
|
||||
case 16:
|
||||
_memory_install_device_handler16(space, device, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.dhandler16 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.dhandler16 : NULL, handler->name,
|
||||
handler->mask);
|
||||
break;
|
||||
|
||||
case 32:
|
||||
_memory_install_device_handler32(space, device, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.dhandler32 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.dhandler32 : NULL, handler->name,
|
||||
handler->mask);
|
||||
case 32:
|
||||
_memory_install_device_handler32(space, device, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.dhandler32 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.dhandler32 : NULL, handler->name,
|
||||
handler->mask);
|
||||
break;
|
||||
|
||||
|
||||
case 64:
|
||||
_memory_install_device_handler64(space, device, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.dhandler64 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.dhandler64 : NULL, handler->name,
|
||||
handler->mask);
|
||||
_memory_install_device_handler64(space, device, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->handler.read.dhandler64 : NULL, handler->name,
|
||||
(readorwrite == ROW_WRITE) ? handler->handler.write.dhandler64 : NULL, handler->name,
|
||||
handler->mask);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case AMH_PORT:
|
||||
_memory_install_port(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->tag : NULL,
|
||||
_memory_install_port(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->tag : NULL,
|
||||
(readorwrite == ROW_WRITE) ? handler->tag : NULL);
|
||||
break;
|
||||
|
||||
|
||||
case AMH_BANK:
|
||||
_memory_install_bank(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->tag : NULL,
|
||||
_memory_install_bank(space, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror,
|
||||
(readorwrite == ROW_READ) ? handler->tag : NULL,
|
||||
(readorwrite == ROW_WRITE) ? handler->tag : NULL);
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2205,12 +2205,12 @@ static void memory_exit(running_machine *machine)
|
||||
memdata->memory_block_list = block->next;
|
||||
free(block);
|
||||
}
|
||||
|
||||
|
||||
/* free banks */
|
||||
while (memdata->banklist != NULL)
|
||||
{
|
||||
bank_info *bank = memdata->banklist;
|
||||
|
||||
|
||||
/* free references within each bank */
|
||||
while (bank->reflist != NULL)
|
||||
{
|
||||
@ -2218,7 +2218,7 @@ static void memory_exit(running_machine *machine)
|
||||
bank->reflist = ref->next;
|
||||
free(ref);
|
||||
}
|
||||
|
||||
|
||||
memdata->banklist = bank->next;
|
||||
free(bank);
|
||||
}
|
||||
@ -2496,7 +2496,7 @@ static void map_detokenize(memory_private *memdata, address_map *map, const game
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* post-process to apply the global mask */
|
||||
if (map->globalmask != 0)
|
||||
for (entry = map->entrylist; entry != NULL; entry = entry->next)
|
||||
@ -2628,12 +2628,12 @@ static int space_needs_backing_store(const address_space *space, const address_m
|
||||
/* if we're writing to any sort of bank or RAM, then yes, we do need backing */
|
||||
if (entry->write.type == AMH_BANK || entry->write.type == AMH_RAM)
|
||||
return TRUE;
|
||||
|
||||
|
||||
/* if we're reading from RAM or from ROM outside of address space 0 or its region, then yes, we do need backing */
|
||||
if (entry->read.type == AMH_RAM ||
|
||||
if (entry->read.type == AMH_RAM ||
|
||||
(entry->read.type == AMH_ROM && (space->spacenum != ADDRESS_SPACE_0 || entry->addrstart >= memory_region_length(space->machine, space->cpu->tag))))
|
||||
return TRUE;
|
||||
|
||||
|
||||
/* all other cases don't need backing */
|
||||
return FALSE;
|
||||
}
|
||||
@ -2645,8 +2645,8 @@ static int space_needs_backing_store(const address_space *space, const address_m
|
||||
***************************************************************************/
|
||||
|
||||
/*-------------------------------------------------
|
||||
bank_find_or_allocate - allocate a new
|
||||
bank, or find an existing one, and return the
|
||||
bank_find_or_allocate - allocate a new
|
||||
bank, or find an existing one, and return the
|
||||
read/write handler
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -2660,14 +2660,14 @@ static void *bank_find_or_allocate(const address_space *space, const char *tag,
|
||||
bank_info *bank = NULL;
|
||||
char temptag[10];
|
||||
char name[30];
|
||||
|
||||
|
||||
/* adjust the addresses, handling mirrors and such */
|
||||
adjust_addresses(space, &bytestart, &byteend, &bytemask, &bytemirror);
|
||||
|
||||
|
||||
/* if this bank is named, look it up */
|
||||
if (tag != NULL)
|
||||
bank = tagmap_find_hash_only(memdata->bankmap, tag);
|
||||
|
||||
|
||||
/* else try to find an exact match */
|
||||
else
|
||||
{
|
||||
@ -2675,12 +2675,12 @@ static void *bank_find_or_allocate(const address_space *space, const char *tag,
|
||||
if (bank->tag[0] == '~' && bank->bytestart == bytestart && bank->byteend == byteend && bank->reflist != NULL && bank->reflist->space == space)
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/* if we don't have a bank yet, find a free one */
|
||||
if (bank == NULL)
|
||||
{
|
||||
int banknum = memdata->banknext++;
|
||||
|
||||
|
||||
/* handle failure */
|
||||
if (banknum > STATIC_BANKMAX)
|
||||
{
|
||||
@ -2689,7 +2689,7 @@ static void *bank_find_or_allocate(const address_space *space, const char *tag,
|
||||
else
|
||||
fatalerror("Unable to allocate bank for RAM/ROM area %X-%X\n", bytestart, byteend);
|
||||
}
|
||||
|
||||
|
||||
/* generate an internal tag if we don't have one */
|
||||
if (tag == NULL)
|
||||
{
|
||||
@ -2699,10 +2699,10 @@ static void *bank_find_or_allocate(const address_space *space, const char *tag,
|
||||
}
|
||||
else
|
||||
sprintf(name, "Bank '%s'", tag);
|
||||
|
||||
|
||||
/* allocate the bank */
|
||||
bank = (bank_info *)alloc_array_clear_or_die(UINT8, sizeof(bank_info) + strlen(tag) + 1 + strlen(name));
|
||||
|
||||
|
||||
/* populate it */
|
||||
bank->index = banknum;
|
||||
bank->handler = (void *)(FPTR)(STATIC_BANK1 + banknum - 1);
|
||||
@ -2712,11 +2712,11 @@ static void *bank_find_or_allocate(const address_space *space, const char *tag,
|
||||
strcpy(bank->tag, tag);
|
||||
bank->name = bank->tag + strlen(tag) + 1;
|
||||
strcpy(bank->name, name);
|
||||
|
||||
|
||||
/* add us to the list */
|
||||
bank->next = memdata->banklist;
|
||||
memdata->banklist = bank;
|
||||
|
||||
|
||||
/* for named banks, add to the map and register for save states */
|
||||
if (tag[0] != '~')
|
||||
{
|
||||
@ -2725,7 +2725,7 @@ static void *bank_find_or_allocate(const address_space *space, const char *tag,
|
||||
state_save_register_item(space->machine, "memory", bank->tag, 0, bank->curentry);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* update the read/write state for this bank */
|
||||
if (readorwrite == ROW_READ)
|
||||
bank->read = TRUE;
|
||||
@ -3761,7 +3761,7 @@ static const char *handler_to_string(const address_space *space, const address_t
|
||||
"bank 120", "bank 121", "bank 122", "ram",
|
||||
"rom", "nop", "unmapped", "watchpoint"
|
||||
};
|
||||
|
||||
|
||||
/* banks have names */
|
||||
if (entry >= STATIC_BANK1 && entry <= STATIC_BANKMAX)
|
||||
{
|
||||
@ -3770,7 +3770,7 @@ static const char *handler_to_string(const address_space *space, const address_t
|
||||
if (info->index == entry)
|
||||
return info->name;
|
||||
}
|
||||
|
||||
|
||||
/* constant strings for lower entries */
|
||||
if (entry < STATIC_COUNT)
|
||||
return strings[entry];
|
||||
|
@ -8,8 +8,8 @@
|
||||
|
||||
TODO:
|
||||
|
||||
- remove CDP1802 dependency
|
||||
- sound base frequencies are TPA/TPB
|
||||
- remove CDP1802 dependency
|
||||
- sound base frequencies are TPA/TPB
|
||||
- white noise
|
||||
- scanline based update
|
||||
- CMSEL output
|
||||
|
@ -1311,7 +1311,7 @@ static int validate_devices(int drivnum, const machine_config *config, const inp
|
||||
{
|
||||
UINT32 bytestart = SPACE_SHIFT(entry->addrstart);
|
||||
UINT32 byteend = SPACE_SHIFT_END(entry->addrend);
|
||||
|
||||
|
||||
/* look for overlapping entries */
|
||||
if (!detected_overlap)
|
||||
{
|
||||
@ -1401,7 +1401,7 @@ static int validate_devices(int drivnum, const machine_config *config, const inp
|
||||
error |= validate_tag(driver, "bank", entry->write.tag);
|
||||
if (entry->share != NULL)
|
||||
error |= validate_tag(driver, "share", entry->share);
|
||||
|
||||
|
||||
/* if there are base or size members, check that they are within bounds */
|
||||
if (entry->baseptroffs_plus1 != 0 && (entry->baseptroffs_plus1 - 1) >= config->driver_data_size)
|
||||
{
|
||||
|
@ -96,7 +96,7 @@ static const int sprite_offsets[4] = { 0x00, 0x10, 0x20, 0x40 };
|
||||
*************************************/
|
||||
|
||||
typedef struct _s2636_state s2636_state;
|
||||
struct _s2636_state
|
||||
struct _s2636_state
|
||||
{
|
||||
UINT8 *work_ram;
|
||||
int work_ram_size;
|
||||
|
@ -23,7 +23,7 @@ struct _s2636_interface
|
||||
{
|
||||
const char *screen;
|
||||
int work_ram_size;
|
||||
int y_offset;
|
||||
int y_offset;
|
||||
int x_offset;
|
||||
};
|
||||
|
||||
|
@ -18,7 +18,7 @@ static void update_sound_68k_interrupts(running_machine *machine);
|
||||
void cyberbal_sound_reset(running_machine *machine)
|
||||
{
|
||||
cyberbal_state *state = (cyberbal_state *)machine->driver_data;
|
||||
|
||||
|
||||
/* reset the sound system */
|
||||
state->bank_base = &memory_region(machine, "audiocpu")[0x10000];
|
||||
memory_set_bankptr(machine, "soundbank", &state->bank_base[0x0000]);
|
||||
|
@ -91,9 +91,9 @@ static void filter_w( const device_config *device, int data )
|
||||
{
|
||||
int C = 0;
|
||||
|
||||
if (data & 1)
|
||||
if (data & 1)
|
||||
C += 220000; /* 220000pF = 0.220uF */
|
||||
if (data & 2)
|
||||
if (data & 2)
|
||||
C += 47000; /* 47000pF = 0.047uF */
|
||||
|
||||
filter_rc_set_RC(device, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(C));
|
||||
|
@ -228,9 +228,9 @@ Notes - Has jumper setting for 122HZ or 61HZ)
|
||||
static TIMER_CALLBACK( nmi_callback )
|
||||
{
|
||||
buggychl_state *state = (buggychl_state *)machine->driver_data;
|
||||
if (state->sound_nmi_enable)
|
||||
if (state->sound_nmi_enable)
|
||||
cpu_set_input_line(state->audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
else
|
||||
else
|
||||
state->pending_nmi = 1;
|
||||
}
|
||||
|
||||
@ -1102,7 +1102,7 @@ static MACHINE_RESET( 40love )
|
||||
static MACHINE_RESET( undoukai )
|
||||
{
|
||||
buggychl_state *state = (buggychl_state *)machine->driver_data;
|
||||
int i;
|
||||
int i;
|
||||
|
||||
MACHINE_RESET_CALL(common);
|
||||
|
||||
|
@ -2494,7 +2494,7 @@ ROM_START( invasionrza )
|
||||
ROM_LOAD( "rz5-5.4k", 0x1400, 0x0400, CRC(8ec9eae2) SHA1(48d7a7dc61e0417ca4093e5c2a36efd96e359233) )
|
||||
// 2 reads of the bad rom
|
||||
ROM_LOAD( "rz6-6.3k", 0x1800, 0x0400, BAD_DUMP CRC(c48df3ca) SHA1(d92064d171e099a45821c944324b993e39d894f7) )
|
||||
ROM_LOAD( "rz6-6.3ka", 0x1800, 0x0400, BAD_DUMP CRC(aa51b2c3) SHA1(bb30f3827a66ec3cb8436566f6b865995d702f76) )
|
||||
ROM_LOAD( "rz6-6.3ka", 0x1800, 0x0400, BAD_DUMP CRC(aa51b2c3) SHA1(bb30f3827a66ec3cb8436566f6b865995d702f76) )
|
||||
ROM_LOAD( "rz7-7.2k", 0x1c00, 0x0400, CRC(27dbea48) SHA1(f0bf5d31424dc72ac2e6fa01c528365efff838d2) )
|
||||
ROM_END
|
||||
|
||||
|
@ -346,14 +346,14 @@ static READ16_HANDLER( kyros_alpha_trigger_r )
|
||||
alpha68k_state *state = (alpha68k_state *)space->machine->driver_data;
|
||||
int source = state->shared_ram[offset];
|
||||
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x22: /* Coin value */
|
||||
state->shared_ram[0x22] = (source & 0xff00) | (state->credits & 0x00ff);
|
||||
return 0;
|
||||
case 0x29: /* Query microcontroller for coin insert */
|
||||
state->trigstate++;
|
||||
if ((input_port_read(space->machine, "IN2") & 0x3) == 3)
|
||||
if ((input_port_read(space->machine, "IN2") & 0x3) == 3)
|
||||
state->latch = 0;
|
||||
if ((input_port_read(space->machine, "IN2") & 0x1) == 0 && !state->latch)
|
||||
{
|
||||
@ -439,7 +439,7 @@ static READ16_HANDLER( alpha_II_trigger_r )
|
||||
return 0;
|
||||
|
||||
case 0x29: /* Query microcontroller for coin insert */
|
||||
if ((input_port_read(space->machine, "IN2") & 0x3) == 3)
|
||||
if ((input_port_read(space->machine, "IN2") & 0x3) == 3)
|
||||
state->latch = 0;
|
||||
if ((input_port_read(space->machine, "IN2") & 0x1) == 0 && !state->latch)
|
||||
{
|
||||
@ -532,7 +532,7 @@ static READ16_HANDLER( alpha_V_trigger_r )
|
||||
state->shared_ram[0x22] = (source & 0xff00) | (state->credits & 0x00ff);
|
||||
return 0;
|
||||
case 0x29: /* Query microcontroller for coin insert */
|
||||
if ((input_port_read(space->machine, "IN2") & 0x3) == 3)
|
||||
if ((input_port_read(space->machine, "IN2") & 0x3) == 3)
|
||||
state->latch = 0;
|
||||
if ((input_port_read(space->machine, "IN2") & 0x1) == 0 && !state->latch)
|
||||
{
|
||||
@ -590,7 +590,7 @@ static READ16_HANDLER( alpha_V_trigger_r )
|
||||
state->shared_ram[0x1f00] = (source & 0xff00) | input_port_read(space->machine, "IN4");
|
||||
return 0;
|
||||
case 0x1f29: /* Query microcontroller for coin insert */
|
||||
if ((input_port_read(space->machine, "IN2") & 0x3) == 3)
|
||||
if ((input_port_read(space->machine, "IN2") & 0x3) == 3)
|
||||
state->latch = 0;
|
||||
if ((input_port_read(space->machine, "IN2") & 0x1) == 0 && !state->latch)
|
||||
{
|
||||
@ -3131,7 +3131,7 @@ static READ16_HANDLER( timesold_cycle_r )
|
||||
alpha68k_state *state = (alpha68k_state *)space->machine->driver_data;
|
||||
int ret = state->shared_ram[0x4];
|
||||
|
||||
if (cpu_get_pc(space->cpu) == 0x9ea2 && (ret & 0xff00) == 0)
|
||||
if (cpu_get_pc(space->cpu) == 0x9ea2 && (ret & 0xff00) == 0)
|
||||
{
|
||||
cpu_spinuntil_int(space->cpu);
|
||||
return 0x100 | (ret & 0xff);
|
||||
@ -3145,7 +3145,7 @@ static READ16_HANDLER( timesol1_cycle_r )
|
||||
alpha68k_state *state = (alpha68k_state *)space->machine->driver_data;
|
||||
int ret = state->shared_ram[0x4];
|
||||
|
||||
if (cpu_get_pc(space->cpu) == 0x9e20 && (ret & 0xff00) == 0)
|
||||
if (cpu_get_pc(space->cpu) == 0x9e20 && (ret & 0xff00) == 0)
|
||||
{
|
||||
cpu_spinuntil_int(space->cpu);
|
||||
return 0x100 | (ret & 0xff);
|
||||
@ -3159,7 +3159,7 @@ static READ16_HANDLER( btlfield_cycle_r )
|
||||
alpha68k_state *state = (alpha68k_state *)space->machine->driver_data;
|
||||
int ret = state->shared_ram[0x4];
|
||||
|
||||
if (cpu_get_pc(space->cpu) == 0x9e1c && (ret & 0xff00) == 0)
|
||||
if (cpu_get_pc(space->cpu) == 0x9e1c && (ret & 0xff00) == 0)
|
||||
{
|
||||
cpu_spinuntil_int(space->cpu);
|
||||
return 0x100 | (ret & 0xff);
|
||||
@ -3173,7 +3173,7 @@ static READ16_HANDLER( skysoldr_cycle_r )
|
||||
alpha68k_state *state = (alpha68k_state *)space->machine->driver_data;
|
||||
int ret = state->shared_ram[0x4];
|
||||
|
||||
if (cpu_get_pc(space->cpu) == 0x1f4e && (ret & 0xff00) == 0)
|
||||
if (cpu_get_pc(space->cpu) == 0x1f4e && (ret & 0xff00) == 0)
|
||||
{
|
||||
cpu_spinuntil_int(space->cpu);
|
||||
return 0x100 | (ret & 0xff);
|
||||
@ -3187,7 +3187,7 @@ static READ16_HANDLER( skyadvnt_cycle_r )
|
||||
alpha68k_state *state = (alpha68k_state *)space->machine->driver_data;
|
||||
int ret = state->shared_ram[0x4];
|
||||
|
||||
if (cpu_get_pc(space->cpu) == 0x1f78 && (ret & 0xff00) == 0)
|
||||
if (cpu_get_pc(space->cpu) == 0x1f78 && (ret & 0xff00) == 0)
|
||||
{
|
||||
cpu_spinuntil_int(space->cpu);
|
||||
return 0x100 | (ret & 0xff);
|
||||
@ -3201,7 +3201,7 @@ static READ16_HANDLER( gangwars_cycle_r )
|
||||
alpha68k_state *state = (alpha68k_state *)space->machine->driver_data;
|
||||
int ret = state->shared_ram[0x103];
|
||||
|
||||
if (cpu_get_pc(space->cpu) == 0xbbb6)
|
||||
if (cpu_get_pc(space->cpu) == 0xbbb6)
|
||||
{
|
||||
cpu_spinuntil_int(space->cpu);
|
||||
return (ret + 2) & 0xff;
|
||||
@ -3215,7 +3215,7 @@ static READ16_HANDLER( gangwarb_cycle_r )
|
||||
alpha68k_state *state = (alpha68k_state *)space->machine->driver_data;
|
||||
int ret = state->shared_ram[0x103];
|
||||
|
||||
if (cpu_get_pc(space->cpu) == 0xbbca)
|
||||
if (cpu_get_pc(space->cpu) == 0xbbca)
|
||||
{
|
||||
cpu_spinuntil_int(space->cpu);
|
||||
return (ret + 2) & 0xff;
|
||||
|
@ -42,9 +42,9 @@ static UINT8 amspdwy_wheel_r( running_machine *machine, int index )
|
||||
if (wheel != state->wheel_old[index])
|
||||
{
|
||||
wheel = (wheel & 0x7fff) - (wheel & 0x8000);
|
||||
if (wheel > state->wheel_old[index])
|
||||
if (wheel > state->wheel_old[index])
|
||||
state->wheel_return[index] = ((+wheel) & 0xf) | 0x00;
|
||||
else
|
||||
else
|
||||
state->wheel_return[index] = ((-wheel) & 0xf) | 0x10;
|
||||
|
||||
state->wheel_old[index] = wheel;
|
||||
|
@ -248,9 +248,9 @@ static void tomahawk_get_pens( running_machine *machine, pen_t *pens )
|
||||
|
||||
for (i = 0; i < TOMAHAWK_NUM_PENS; i++)
|
||||
{
|
||||
UINT8 data;
|
||||
UINT8 data;
|
||||
UINT8 pen;
|
||||
|
||||
|
||||
/* a common wire hack to the pcb causes the prom halves to be inverted */
|
||||
/* this results in e.g. astrof background being black */
|
||||
switch (config)
|
||||
@ -1269,7 +1269,7 @@ ROM_START( tomahawk )
|
||||
|
||||
ROM_REGION( 0x0020, "proms", 0 )
|
||||
ROM_LOAD( "t777.clr", 0x0000, 0x0020, CRC(d6a528fd) SHA1(5fc08252a2d7c5405f601efbfb7d84bec328d733) )
|
||||
|
||||
|
||||
// versions of this have also been seen using the standard Astro Fighter PROM, giving a blue submarine
|
||||
// in blue water, with pink / yellow borders. I think these are just unofficial conversions of Astro
|
||||
// Fighter without the PROM properly replaced tho.
|
||||
|
@ -1073,7 +1073,7 @@ ROM_END
|
||||
static void init_g1_common(running_machine *machine, offs_t slapstic_base, int slapstic, int is_pitfight)
|
||||
{
|
||||
atarig1_state *state = (atarig1_state *)machine->driver_data;
|
||||
|
||||
|
||||
state->atarigen.eeprom_default = NULL;
|
||||
if (slapstic == -1)
|
||||
{
|
||||
|
@ -1241,7 +1241,7 @@ static WRITE32_HANDLER( tmek_pf_w )
|
||||
static DRIVER_INIT( tmek )
|
||||
{
|
||||
atarigt_state *state = (atarigt_state *)machine->driver_data;
|
||||
|
||||
|
||||
state->atarigen.eeprom_default = NULL;
|
||||
state->is_primrage = 0;
|
||||
|
||||
|
@ -211,7 +211,7 @@ static void scanline_update(const device_config *screen, int scanline)
|
||||
static DIRECT_UPDATE_HANDLER( atarisy2_direct_handler )
|
||||
{
|
||||
atarisy2_state *state = (atarisy2_state *)space->machine->driver_data;
|
||||
|
||||
|
||||
/* make sure slapstic area looks like ROM */
|
||||
if (address >= 0x8000 && address < 0x8200)
|
||||
{
|
||||
|
@ -41,11 +41,11 @@ static WRITE8_HANDLER( bking_soundlatch_w )
|
||||
int i, code = 0;
|
||||
|
||||
for (i = 0;i < 8;i++)
|
||||
if (data & (1 << i))
|
||||
if (data & (1 << i))
|
||||
code |= 0x80 >> i;
|
||||
|
||||
soundlatch_w(space, offset, code);
|
||||
if (state->sound_nmi_enable)
|
||||
if (state->sound_nmi_enable)
|
||||
cpu_set_input_line(state->audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -395,7 +395,7 @@ GFXDECODE_END
|
||||
static WRITE8_DEVICE_HANDLER( port_b_w )
|
||||
{
|
||||
/* don't know what this is... could be a filter */
|
||||
if (data != 0x00)
|
||||
if (data != 0x00)
|
||||
logerror("port_b = %02x\n", data);
|
||||
}
|
||||
|
||||
|
@ -99,9 +99,9 @@ static TIMER_CALLBACK( nmi_callback )
|
||||
{
|
||||
buggychl_state *state = (buggychl_state *)machine->driver_data;
|
||||
|
||||
if (state->sound_nmi_enable)
|
||||
if (state->sound_nmi_enable)
|
||||
cpu_set_input_line(state->audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
else
|
||||
else
|
||||
state->pending_nmi = 1;
|
||||
}
|
||||
|
||||
|
@ -1,19 +1,19 @@
|
||||
/******************************************************************************************************
|
||||
|
||||
System H1 (c) 1994 Sega
|
||||
System H1 (c) 1994 Sega
|
||||
|
||||
preliminary driver by David Haywood, Angelo Salese and Tomasz Slanina
|
||||
special thanks to Guru for references and HW advices
|
||||
preliminary driver by David Haywood, Angelo Salese and Tomasz Slanina
|
||||
special thanks to Guru for references and HW advices
|
||||
|
||||
TODO:
|
||||
- DMA is still a bit of a mystery;
|
||||
- video emulation is pratically non-existant;
|
||||
- SCSP;
|
||||
- Many SH-1 ports needs investigations;
|
||||
- IRQ generation
|
||||
- Understand & remove the hacks at the bottom;
|
||||
- IC1/IC10 are currently unused, might contain sprite data / music data for the SCSP / chars for the
|
||||
text tilemap/blitter;
|
||||
TODO:
|
||||
- DMA is still a bit of a mystery;
|
||||
- video emulation is pratically non-existant;
|
||||
- SCSP;
|
||||
- Many SH-1 ports needs investigations;
|
||||
- IRQ generation
|
||||
- Understand & remove the hacks at the bottom;
|
||||
- IC1/IC10 are currently unused, might contain sprite data / music data for the SCSP / chars for the
|
||||
text tilemap/blitter;
|
||||
|
||||
=======================================================================================================
|
||||
|
||||
@ -339,7 +339,7 @@ static WRITE32_HANDLER(sysh1_ioga_w)
|
||||
}
|
||||
#endif
|
||||
/*
|
||||
CMD = 03f4 PARAM = 0230 | ¦
|
||||
CMD = 03f4 PARAM = 0230 | ?
|
||||
CMD = ac90 PARAM = 0001 DATA = 00000000
|
||||
CMD = ac90 PARAM = 0001 DATA = 00000059
|
||||
CMD = ac90 PARAM = 0001 DATA = 00000000
|
||||
@ -353,7 +353,7 @@ CMD = ac90 PARAM = 0001 DATA = 01200050
|
||||
CMD = ac90 PARAM = 0001 DATA = 00000000
|
||||
CMD = ac90 PARAM = 0001 DATA = 03f40230
|
||||
|
||||
CMD = 03f4 PARAM = 0170 | ¦
|
||||
CMD = 03f4 PARAM = 0170 | ?
|
||||
CMD = ac90 PARAM = 0001 DATA = 00000000
|
||||
CMD = ac90 PARAM = 0001 DATA = 00000059
|
||||
CMD = ac90 PARAM = 0001 DATA = 00000000
|
||||
@ -440,7 +440,7 @@ static WRITE32_HANDLER( sysh1_txt_blit_w )
|
||||
memory_write_dword(space,(clear_vram),0x00000000);
|
||||
}
|
||||
//else
|
||||
// printf("CMD = %04x PARAM = %04x DATA = %08x\n",cmd,param,data);
|
||||
// printf("CMD = %04x PARAM = %04x DATA = %08x\n",cmd,param,data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -654,7 +654,7 @@ static const gfx_layout test =
|
||||
#endif
|
||||
|
||||
static GFXDECODE_START( coolridr )
|
||||
// GFXDECODE_ENTRY( "maincpu_data", 0, tiles8x8_layout, 0, 16 )
|
||||
// GFXDECODE_ENTRY( "maincpu_data", 0, tiles8x8_layout, 0, 16 )
|
||||
GFXDECODE_ENTRY( "gfx_data", 0, tiles8x8_layout, 0, 16 )
|
||||
GFXDECODE_ENTRY( "gfx5", 0, tiles8x8_layout, 0, 16 )
|
||||
GFXDECODE_ENTRY( "ram_gfx", 0, tiles8x8_layout, 0, 16 )
|
||||
@ -1009,12 +1009,12 @@ INPUT_PORTS_END
|
||||
static INTERRUPT_GEN( system_h1 )
|
||||
{
|
||||
cpu_set_input_line(device, 4, HOLD_LINE);
|
||||
/* switch(cpu_getiloops(device))
|
||||
{
|
||||
case 0: break;
|
||||
/* switch(cpu_getiloops(device))
|
||||
{
|
||||
case 0: break;
|
||||
case 1:cpu_set_input_line(device, 6, HOLD_LINE); break;
|
||||
// case 2:cpu_set_input_line(device, 8, HOLD_LINE); break;
|
||||
}*/
|
||||
}*/
|
||||
}
|
||||
|
||||
//IRQs 10,12 and 14 are valid on SH-1 instead
|
||||
@ -1102,16 +1102,16 @@ ROM_START( coolridr )
|
||||
ROM_LOAD32_WORD_SWAP( "mp17644.5", 0x1000002, 0x0200000, CRC(be2763c5) SHA1(1044b0a73e334337b0b9ac958df59480aedfb942) )
|
||||
ROM_LOAD32_WORD_SWAP( "mp17649.10",0x1000000, 0x0200000, CRC(567fbc0a) SHA1(3999c99b26f13d97ac1c58de00a44049ee7775fd) )
|
||||
|
||||
/* ROMX_LOAD( "mp17640.1", 0x0000000, 0x0200000, CRC(5ecd98c7) SHA1(22027c1e9e6195d27f29a5779695d8597f68809e), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17641.2", 0x0000001, 0x0200000, CRC(a59b0605) SHA1(c93f84fd58f1942b40b7a55058e02a18a3dec3af), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17642.3", 0x0000002, 0x0200000, CRC(5f8a1827) SHA1(23179d751777436f2a4f652132001d5e425d8cd5), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17643.4", 0x0000003, 0x0200000, CRC(44a05dd0) SHA1(32aa86f8761ec6ffceb63979c44828603c244e7d), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17644.5", 0x0000004, 0x0200000, CRC(be2763c5) SHA1(1044b0a73e334337b0b9ac958df59480aedfb942), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17645.6", 0x0000005, 0x0200000, CRC(00954173) SHA1(863f32565296448ef10992dc3c0480411eb2b193), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17646.7", 0x0000006, 0x0200000, CRC(7ae4d92e) SHA1(8a0eaa5dce112289ac5d16ad5dc7f5895e71e87b), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17647.8", 0x0000007, 0x0200000, CRC(082faee8) SHA1(c047b8475517f96f481c09471a77aa0d103631d6), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17648.9", 0x0000008, 0x0200000, CRC(0791802f) SHA1(acad55bbd22c7e955a729c8abed9509fc6f10927), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17649.10",0x0000009, 0x0200000, CRC(567fbc0a) SHA1(3999c99b26f13d97ac1c58de00a44049ee7775fd), ROM_SKIP(9) )*/
|
||||
/* ROMX_LOAD( "mp17640.1", 0x0000000, 0x0200000, CRC(5ecd98c7) SHA1(22027c1e9e6195d27f29a5779695d8597f68809e), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17641.2", 0x0000001, 0x0200000, CRC(a59b0605) SHA1(c93f84fd58f1942b40b7a55058e02a18a3dec3af), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17642.3", 0x0000002, 0x0200000, CRC(5f8a1827) SHA1(23179d751777436f2a4f652132001d5e425d8cd5), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17643.4", 0x0000003, 0x0200000, CRC(44a05dd0) SHA1(32aa86f8761ec6ffceb63979c44828603c244e7d), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17644.5", 0x0000004, 0x0200000, CRC(be2763c5) SHA1(1044b0a73e334337b0b9ac958df59480aedfb942), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17645.6", 0x0000005, 0x0200000, CRC(00954173) SHA1(863f32565296448ef10992dc3c0480411eb2b193), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17646.7", 0x0000006, 0x0200000, CRC(7ae4d92e) SHA1(8a0eaa5dce112289ac5d16ad5dc7f5895e71e87b), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17647.8", 0x0000007, 0x0200000, CRC(082faee8) SHA1(c047b8475517f96f481c09471a77aa0d103631d6), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17648.9", 0x0000008, 0x0200000, CRC(0791802f) SHA1(acad55bbd22c7e955a729c8abed9509fc6f10927), ROM_SKIP(9) )
|
||||
ROMX_LOAD( "mp17649.10",0x0000009, 0x0200000, CRC(567fbc0a) SHA1(3999c99b26f13d97ac1c58de00a44049ee7775fd), ROM_SKIP(9) )*/
|
||||
ROM_END
|
||||
|
||||
/*TODO: there must be an irq line with custom vector located somewhere that writes to here...*/
|
||||
@ -1135,7 +1135,7 @@ static READ32_HANDLER( coolridr_hack2_r )
|
||||
|
||||
static DRIVER_INIT( coolridr )
|
||||
{
|
||||
// memory_install_read32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x60d88a4, 0x060d88a7, 0, 0, coolridr_hack1_r );
|
||||
// memory_install_read32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x60d88a4, 0x060d88a7, 0, 0, coolridr_hack1_r );
|
||||
memory_install_read32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x60d8894, 0x060d8897, 0, 0, coolridr_hack2_r );
|
||||
}
|
||||
|
||||
|
@ -2174,7 +2174,7 @@ ROM_START( ffantasybl )
|
||||
ROM_LOAD16_BYTE( "14.bin", 0x00000, 0x10000, CRC(bd42bc66) SHA1(d81a3d16ca282817f85372d1426470900a553b24) ) // 61.926270% ff-02-2.bin
|
||||
ROM_LOAD16_BYTE( "11.bin", 0x00001, 0x10000, CRC(4df38e4b) SHA1(e176afb7b63e2e1ac482662d152da2866884594e) ) // 55.798340% ff-01-2.bin
|
||||
ROM_LOAD16_BYTE( "13.bin", 0x20000, 0x10000, CRC(eecb6bed) SHA1(f5761bfc01ae207d3a321aa4ad510f6af8ad6094) ) // 86.532593% ew05
|
||||
ROM_LOAD16_BYTE( "10.bin", 0x20001, 0x10000, CRC(7cdcf418) SHA1(9653b6620dce70bd510fb63ba5c324dda581a412) ) // 85.887146% ew00
|
||||
ROM_LOAD16_BYTE( "10.bin", 0x20001, 0x10000, CRC(7cdcf418) SHA1(9653b6620dce70bd510fb63ba5c324dda581a412) ) // 85.887146% ew00
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 6502 sound */
|
||||
ROM_LOAD( "15.bin", 0x8000, 0x8000, CRC(9871b98d) SHA1(2b6c46bc2b10a28946d6ad8251e1a156a0b99947) )
|
||||
@ -2185,7 +2185,7 @@ ROM_START( ffantasybl )
|
||||
ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
|
||||
ROM_LOAD( "22.bin", 0x00000, 0x10000, CRC(686f72c1) SHA1(41d4fc1208d779f3428990a96586f6a555c28562) )
|
||||
ROM_LOAD( "23.bin", 0x10000, 0x10000, CRC(28e69371) SHA1(32d57aabf948388825757ab0cfe87b6550a07a9d) ) // 94.793701% ev13
|
||||
|
||||
|
||||
ROM_REGION( 0x20000, "gfx2", 0 ) /* tiles */
|
||||
ROM_LOAD( "25.bin", 0x00000, 0x08000, CRC(6b80d7a3) SHA1(323162e7e0ce16f6244d8d98fdb2396ffef87e82) )
|
||||
ROM_LOAD( "27.bin", 0x08000, 0x08000, CRC(78d3d764) SHA1(e8f77a23bd4f4d268bec7c0153fb957acd07cdee) )
|
||||
@ -2213,7 +2213,7 @@ ROM_START( ffantasybl )
|
||||
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "30.bin", 0x0000, 0x10000, CRC(b606924d) SHA1(b759fcec10b333465cf5cd1b30987bf2d62186b2) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
ROM_START( slyspy )
|
||||
ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
|
||||
|
@ -28,10 +28,10 @@
|
||||
|
||||
It's funny to see that this game, as 'arkanoid', does NOT allow you
|
||||
to enter "SEX" as initials (which will be replaced by "H !") ;)
|
||||
|
||||
|
||||
PCB Layout:
|
||||
|
||||
|
||||
|
||||
|
||||
|--------------------------------------|
|
||||
|UPC1241 U114 2016 |
|
||||
|DSW(8) VOL U113 |
|
||||
|
@ -649,7 +649,7 @@ ROM_END
|
||||
|
||||
ROM_START( galsnewk ) /* EXPRO-02 PCB */
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 code */
|
||||
ROM_LOAD16_BYTE( "pm110k.u87", 0x000000, 0x20000, CRC(babe6a71) SHA1(91a5fc5e93affd01f8c6d5a4851233edcf8746f0) )
|
||||
ROM_LOAD16_BYTE( "pm110k.u87", 0x000000, 0x20000, CRC(babe6a71) SHA1(91a5fc5e93affd01f8c6d5a4851233edcf8746f0) )
|
||||
ROM_LOAD16_BYTE( "pm109k.u88", 0x000001, 0x20000, CRC(e486d98f) SHA1(9923f1dc69bd2746c06da6a5e518211391052259) )
|
||||
|
||||
ROM_REGION16_BE( 0x300000, "user1", 0 ) /* 68000 data */
|
||||
|
@ -59,7 +59,7 @@ static READ16_HANDLER( fromanc2_keymatrix_r )
|
||||
fromanc2_state *state = (fromanc2_state *)space->machine->driver_data;
|
||||
UINT16 ret;
|
||||
|
||||
switch (state->portselect)
|
||||
switch (state->portselect)
|
||||
{
|
||||
case 0x01: ret = input_port_read(space->machine, "KEY0"); break;
|
||||
case 0x02: ret = input_port_read(space->machine, "KEY1"); break;
|
||||
@ -99,7 +99,7 @@ static WRITE16_HANDLER( fromanc2_eeprom_w )
|
||||
|
||||
static WRITE16_HANDLER( fromancr_eeprom_w )
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
fromancr_gfxbank_w(space->machine, data & 0xfff8);
|
||||
input_port_write(space->machine, "EEPROMOUT", data, 0xff);
|
||||
|
@ -82,9 +82,9 @@ static READ8_HANDLER( fromance_busycheck_main_r )
|
||||
/* set a timer to force synchronization after the read */
|
||||
timer_call_after_resynch(space->machine, NULL, 0, NULL);
|
||||
|
||||
if (!state->directionflag)
|
||||
if (!state->directionflag)
|
||||
return 0x00; // standby
|
||||
else
|
||||
else
|
||||
return 0xff; // busy
|
||||
}
|
||||
|
||||
@ -93,9 +93,9 @@ static READ8_HANDLER( fromance_busycheck_sub_r )
|
||||
{
|
||||
fromance_state *state = (fromance_state *)space->machine->driver_data;
|
||||
|
||||
if (state->directionflag)
|
||||
if (state->directionflag)
|
||||
return 0xff; // standby
|
||||
else
|
||||
else
|
||||
return 0x00; // busy
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,7 @@ static VIDEO_UPDATE( galaxia )
|
||||
bitmap_t *s2636_0_bitmap;
|
||||
bitmap_t *s2636_1_bitmap;
|
||||
bitmap_t *s2636_2_bitmap;
|
||||
|
||||
|
||||
const device_config *s2636_0 = devtag_get_device(screen->machine, "s2636_0");
|
||||
const device_config *s2636_1 = devtag_get_device(screen->machine, "s2636_1");
|
||||
const device_config *s2636_2 = devtag_get_device(screen->machine, "s2636_2");
|
||||
|
@ -3014,13 +3014,13 @@ The CPU has 'VIDEO STARS - V.S PRO - TEL: 03045 61541' on a sticky label on it.
|
||||
|
||||
the cpu daughterboard is etched 'competitive video'.
|
||||
|
||||
The rom daughtercard may not have come from this precise pcb,
|
||||
i think it was on a fullsize pcb according to the spacing of the riser pins.
|
||||
The rom daughtercard may not have come from this precise pcb,
|
||||
i think it was on a fullsize pcb according to the spacing of the riser pins.
|
||||
This daughterboard is also etched competitive video, and uses 4 2716's and 3 2732's.
|
||||
|
||||
there are 8 rom sockets on this daughterboard, 7 are roms, and the final socket is actually a 6116 ram.
|
||||
|
||||
there is a small prom in the midle of the pcb inbetween the risers,
|
||||
there is a small prom in the midle of the pcb inbetween the risers,
|
||||
with a circular red labelled saying 'k'. This might be a decryption prom or somethign? i dunno.
|
||||
|
||||
there is a TBP18s03 PROM installed at 6L which i guess is the colour prom :)
|
||||
|
@ -221,7 +221,7 @@ static void gcp_adpcm_int( const device_config *device )
|
||||
state->adpcm_data = ((state->adpcm_trigger ? (ROM[state->adpcm_start] & 0x0f) : (ROM[state->adpcm_start] & 0xf0) >> 4));
|
||||
msm5205_data_w(device, state->adpcm_data & 0xf);
|
||||
state->adpcm_trigger ^= 1;
|
||||
if (state->adpcm_trigger == 0)
|
||||
if (state->adpcm_trigger == 0)
|
||||
state->adpcm_start++;
|
||||
}
|
||||
}
|
||||
|
@ -308,7 +308,7 @@ static MACHINE_START( ginganin )
|
||||
|
||||
state->audiocpu = devtag_get_device(machine, "audiocpu");
|
||||
|
||||
state_save_register_global(machine, state->layers_ctrl);
|
||||
state_save_register_global(machine, state->layers_ctrl);
|
||||
state_save_register_global(machine, state->flipscreen);
|
||||
state_save_register_global(machine, state->MC6840_index0);
|
||||
state_save_register_global(machine, state->MC6840_register0);
|
||||
@ -324,7 +324,7 @@ static MACHINE_RESET( ginganin )
|
||||
{
|
||||
ginganin_state *state = (ginganin_state *)machine->driver_data;
|
||||
|
||||
state->layers_ctrl = 0;
|
||||
state->layers_ctrl = 0;
|
||||
state->flipscreen = 0;
|
||||
state->MC6840_index0 = 0;
|
||||
state->MC6840_register0 = 0;
|
||||
|
@ -40,7 +40,7 @@ struct _go2000_state
|
||||
/* memory pointers */
|
||||
UINT16 * videoram;
|
||||
UINT16 * videoram2;
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
|
||||
/* devices */
|
||||
const device_config *soundcpu;
|
||||
@ -230,29 +230,29 @@ static VIDEO_UPDATE(go2000)
|
||||
case 0xc: dimx = 4; dimy = 32; y0 = 0x120; break;
|
||||
}
|
||||
|
||||
if (dimx == 4)
|
||||
{
|
||||
flipx = srcx & 2;
|
||||
srcx &= ~2;
|
||||
if (dimx == 4)
|
||||
{
|
||||
flipx = srcx & 2;
|
||||
srcx &= ~2;
|
||||
}
|
||||
else
|
||||
else
|
||||
flipx = 0;
|
||||
|
||||
x = (x & 0xff) - (x & 0x100);
|
||||
y = (y0 - (y & 0xff) - dimy * 8) & 0xff;
|
||||
|
||||
if (flipx)
|
||||
{
|
||||
tile_xstart = dimx - 1;
|
||||
tile_xinc = -1;
|
||||
if (flipx)
|
||||
{
|
||||
tile_xstart = dimx - 1;
|
||||
tile_xinc = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
tile_xstart = 0;
|
||||
tile_xinc = +1;
|
||||
{
|
||||
tile_xstart = 0;
|
||||
tile_xinc = +1;
|
||||
}
|
||||
|
||||
tile_y = 0;
|
||||
tile_y = 0;
|
||||
tile_yinc = +1;
|
||||
|
||||
for (dy = 0; dy < dimy * 8; dy += 8)
|
||||
@ -271,7 +271,7 @@ static VIDEO_UPDATE(go2000)
|
||||
int tile_flipx = tile & 0x4000;
|
||||
int tile_flipy = tile & 0x8000;
|
||||
|
||||
if (flipx)
|
||||
if (flipx)
|
||||
tile_flipx = !tile_flipx;
|
||||
|
||||
if (flip_screen_get(screen->machine))
|
||||
|
@ -42,7 +42,7 @@ struct _good_state
|
||||
UINT16 * bg_tilemapram;
|
||||
UINT16 * fg_tilemapram;
|
||||
UINT16 * sprites;
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
|
||||
/* video-related */
|
||||
tilemap *bg_tilemap,*fg_tilemap;
|
||||
|
@ -133,7 +133,7 @@ struct _gstream_state
|
||||
UINT32 * vram;
|
||||
UINT32 * workram;
|
||||
UINT32 * paletteram;
|
||||
// UINT32 * nvram; // currently this uses generic nvram handling
|
||||
// UINT32 * nvram; // currently this uses generic nvram handling
|
||||
|
||||
/* video-related */
|
||||
tilemap *tilemap1, *tilemap2, *tilemap3;
|
||||
@ -216,40 +216,40 @@ static WRITE32_HANDLER( gstream_vram_w )
|
||||
}
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( gstream_tilemap1_scrollx_w )
|
||||
{
|
||||
gstream_state *state = (gstream_state *)space->machine->driver_data;
|
||||
state->tmap1_scrollx = data;
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( gstream_tilemap1_scrolly_w )
|
||||
{
|
||||
gstream_state *state = (gstream_state *)space->machine->driver_data;
|
||||
state->tmap1_scrolly = data;
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( gstream_tilemap2_scrollx_w )
|
||||
static WRITE32_HANDLER( gstream_tilemap1_scrollx_w )
|
||||
{
|
||||
gstream_state *state = (gstream_state *)space->machine->driver_data;
|
||||
state->tmap2_scrollx = data;
|
||||
state->tmap1_scrollx = data;
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( gstream_tilemap2_scrolly_w )
|
||||
{
|
||||
static WRITE32_HANDLER( gstream_tilemap1_scrolly_w )
|
||||
{
|
||||
gstream_state *state = (gstream_state *)space->machine->driver_data;
|
||||
state->tmap2_scrolly = data;
|
||||
state->tmap1_scrolly = data;
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( gstream_tilemap3_scrollx_w )
|
||||
{
|
||||
static WRITE32_HANDLER( gstream_tilemap2_scrollx_w )
|
||||
{
|
||||
gstream_state *state = (gstream_state *)space->machine->driver_data;
|
||||
state->tmap3_scrollx = data;
|
||||
state->tmap2_scrollx = data;
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( gstream_tilemap3_scrolly_w )
|
||||
{
|
||||
static WRITE32_HANDLER( gstream_tilemap2_scrolly_w )
|
||||
{
|
||||
gstream_state *state = (gstream_state *)space->machine->driver_data;
|
||||
state->tmap3_scrolly = data;
|
||||
state->tmap2_scrolly = data;
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( gstream_tilemap3_scrollx_w )
|
||||
{
|
||||
gstream_state *state = (gstream_state *)space->machine->driver_data;
|
||||
state->tmap3_scrollx = data;
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( gstream_tilemap3_scrolly_w )
|
||||
{
|
||||
gstream_state *state = (gstream_state *)space->machine->driver_data;
|
||||
state->tmap3_scrolly = data;
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( gstream_32bit_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
@ -482,11 +482,11 @@ static VIDEO_UPDATE(gstream)
|
||||
//popmessage("(1) %08x %08x (2) %08x %08x (3) %08x %08x", state->tmap1_scrollx, state->tmap1_scrolly, state->tmap2_scrollx, state->tmap2_scrolly, state->tmap3_scrollx, state->tmap3_scrolly );
|
||||
|
||||
tilemap_set_scrollx(state->tilemap3, 0, state->tmap3_scrollx >> 16);
|
||||
tilemap_set_scrolly(state->tilemap3, 0, state->tmap3_scrolly >> 16);
|
||||
tilemap_set_scrolly(state->tilemap3, 0, state->tmap3_scrolly >> 16);
|
||||
|
||||
tilemap_set_scrollx(state->tilemap1, 0, state->tmap1_scrollx >> 16);
|
||||
tilemap_set_scrolly(state->tilemap1, 0, state->tmap1_scrolly >> 16);
|
||||
|
||||
|
||||
tilemap_set_scrollx(state->tilemap2, 0, state->tmap2_scrollx >> 16);
|
||||
tilemap_set_scrolly(state->tilemap2, 0, state->tmap2_scrolly >> 16);
|
||||
|
||||
|
@ -48,7 +48,7 @@ static READ8_HANDLER( keyboard_0_r )
|
||||
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
if (~state->keyb & (1 << i))
|
||||
if (~state->keyb & (1 << i))
|
||||
res &= input_port_read(space->machine, keynames[i]);
|
||||
}
|
||||
|
||||
|
@ -1088,10 +1088,10 @@ static ADDRESS_MAP_START( hng_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x60200000, 0x603fffff) AM_READWRITE(hng64_soundram_r, hng64_soundram_w) // uploads the v53 sound program here, elsewhere on ss64-2
|
||||
|
||||
// These are sound ports of some sort
|
||||
// AM_RANGE(0x68000000, 0x68000003) AM_WRITENOP // ??
|
||||
// AM_RANGE(0x68000004, 0x68000007) AM_READNOP // ??
|
||||
// AM_RANGE(0x68000008, 0x6800000b) AM_WRITENOP // ??
|
||||
// AM_RANGE(0x6f000000, 0x6f000003) AM_WRITENOP // halt / reset line for the sound CPU
|
||||
// AM_RANGE(0x68000000, 0x68000003) AM_WRITENOP // ??
|
||||
// AM_RANGE(0x68000004, 0x68000007) AM_READNOP // ??
|
||||
// AM_RANGE(0x68000008, 0x6800000b) AM_WRITENOP // ??
|
||||
// AM_RANGE(0x6f000000, 0x6f000003) AM_WRITENOP // halt / reset line for the sound CPU
|
||||
|
||||
// Communications
|
||||
AM_RANGE(0xc0000000, 0xc0000fff) AM_READWRITE(hng64_com_r, hng64_com_w) AM_BASE(&hng64_com_ram)
|
||||
|
@ -272,7 +272,7 @@ static READ8_HANDLER( mrokumei_keyboard_r )
|
||||
*/
|
||||
res |= state->visible_page << 7;
|
||||
|
||||
if (state->vblank)
|
||||
if (state->vblank)
|
||||
res |= 0x40;
|
||||
|
||||
state->vblank = 0;
|
||||
@ -384,7 +384,7 @@ static READ8_HANDLER( reikaids_io_r )
|
||||
|
||||
res |= BIT(state->upd7807_portc, 2) * 0x01; // bit 0 = upd7807 status
|
||||
res |= BIT(state->upd7807_portc, 6) * 0x02; // bit 1 = upd7807 data
|
||||
if (state->vblank)
|
||||
if (state->vblank)
|
||||
res |= 0x04; // bit 2 = vblank
|
||||
res |= state->visible_page * 0x08; // bit 3 = visible page
|
||||
|
||||
@ -442,7 +442,7 @@ static READ8_HANDLER( pteacher_io_r )
|
||||
|
||||
int res = (state->visible_page ^ 1) << 7;
|
||||
|
||||
if (!state->vblank)
|
||||
if (!state->vblank)
|
||||
res |= 0x40;
|
||||
|
||||
state->vblank = 0;
|
||||
|
@ -154,7 +154,7 @@ static VIDEO_UPDATE(hotblock)
|
||||
{
|
||||
for(x = 0; x < xxx; x++)
|
||||
{
|
||||
if (state->port0 & 0x40)
|
||||
if (state->port0 & 0x40)
|
||||
*BITMAP_ADDR16(bitmap, y, x) = state->vram[count];
|
||||
count++;
|
||||
}
|
||||
|
@ -72,8 +72,8 @@ static INTERRUPT_GEN( hyprduel_interrupt )
|
||||
cpu_set_input_line(device, 2, HOLD_LINE);
|
||||
/* the duration is a guess */
|
||||
timer_set(device->machine, ATTOTIME_IN_USEC(2500), NULL, 0x20, vblank_end_callback);
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
state->requested_int |= 0x12; /* hsync */
|
||||
|
||||
update_irq_state(device->machine);
|
||||
@ -215,9 +215,9 @@ static READ16_HANDLER( hyprduel_bankedrom_r )
|
||||
|
||||
offset = offset * 2 + 0x10000 * (*state->rombank);
|
||||
|
||||
if (offset < len)
|
||||
if (offset < len)
|
||||
return ((ROM[offset + 0] << 8) + ROM[offset + 1]);
|
||||
else
|
||||
else
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
|
@ -150,7 +150,7 @@ static READ8_HANDLER( receive_data_r )
|
||||
#endif
|
||||
|
||||
static void initialize_colors( running_machine *machine )
|
||||
{
|
||||
{
|
||||
/* optional runtime remapping of colors */
|
||||
static const UINT8 color[0x10][3] =
|
||||
{ /* wrong! need color-accurate screenshots to fix */
|
||||
|
@ -84,10 +84,10 @@ TODO:
|
||||
static WRITE16_HANDLER( inufuku_soundcommand_w )
|
||||
{
|
||||
inufuku_state *state = (inufuku_state *)space->machine->driver_data;
|
||||
if (ACCESSING_BITS_0_7)
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
/* hack... sound doesn't work otherwise */
|
||||
if (data == 0x08)
|
||||
if (data == 0x08)
|
||||
return;
|
||||
|
||||
state->pending_command = 1;
|
||||
|
@ -121,7 +121,7 @@ WRITE8_HANDLER( jackal_rambank_w )
|
||||
jackal_state *state = (jackal_state *)space->machine->driver_data;
|
||||
UINT8 *rgn = memory_region(space->machine, "master");
|
||||
|
||||
if (data & 0x04)
|
||||
if (data & 0x04)
|
||||
popmessage("jackal_rambank_w %02x", data);
|
||||
|
||||
coin_counter_w(space->machine, 0, data & 0x01);
|
||||
|
@ -118,12 +118,12 @@ static INTERRUPT_GEN( jb_interrupt_nmi )
|
||||
}
|
||||
|
||||
|
||||
static READ8_DEVICE_HANDLER( jailbrek_speech_r )
|
||||
static READ8_DEVICE_HANDLER( jailbrek_speech_r )
|
||||
{
|
||||
return (vlm5030_bsy(device) ? 1 : 0);
|
||||
}
|
||||
|
||||
static WRITE8_DEVICE_HANDLER( jailbrek_speech_w )
|
||||
static WRITE8_DEVICE_HANDLER( jailbrek_speech_w )
|
||||
{
|
||||
/* bit 0 could be latch direction like in yiear */
|
||||
vlm5030_st(device, (data >> 1) & 1);
|
||||
|
@ -161,9 +161,9 @@ static UINT8 jangou_gfx_nibble( running_machine *machine, UINT16 niboffset )
|
||||
static void plot_jangou_gfx_pixel( running_machine *machine, UINT8 pix, int x, int y )
|
||||
{
|
||||
jangou_state *state = (jangou_state *)machine->driver_data;
|
||||
if (y < 0 || y >= 512)
|
||||
if (y < 0 || y >= 512)
|
||||
return;
|
||||
if (x < 0 || x >= 512)
|
||||
if (x < 0 || x >= 512)
|
||||
return;
|
||||
|
||||
if (x & 1)
|
||||
@ -184,7 +184,7 @@ static WRITE8_HANDLER( blitter_process_w )
|
||||
int xcount, ycount;
|
||||
|
||||
/* printf("%02x %02x %02x %02x %02x %02x\n", state->blit_data[0], state->blit_data[1], state->blit_data[2],
|
||||
state->blit_data[3], state->blit_data[4], state->blit_data[5]); */
|
||||
state->blit_data[3], state->blit_data[4], state->blit_data[5]); */
|
||||
w = (state->blit_data[4] & 0xff) + 1;
|
||||
h = (state->blit_data[5] & 0xff) + 1;
|
||||
src = ((state->blit_data[1] << 8)|(state->blit_data[0] << 0));
|
||||
@ -194,9 +194,9 @@ static WRITE8_HANDLER( blitter_process_w )
|
||||
// lowest bit of src controls flipping / draw direction?
|
||||
flipx = (state->blit_data[0] & 1);
|
||||
|
||||
if (!flipx)
|
||||
if (!flipx)
|
||||
src += (w * h) - 1;
|
||||
else
|
||||
else
|
||||
src -= (w * h) - 1;
|
||||
|
||||
for (ycount = 0; ycount < h; ycount++)
|
||||
@ -214,9 +214,9 @@ static WRITE8_HANDLER( blitter_process_w )
|
||||
if ((dat & 0xff) != 0)
|
||||
plot_jangou_gfx_pixel(space->machine, dat, drawx, drawy);
|
||||
|
||||
if (!flipx)
|
||||
if (!flipx)
|
||||
count--;
|
||||
else
|
||||
else
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
@ -396,7 +396,7 @@ static VIDEO_UPDATE( jollyjgr )
|
||||
else
|
||||
sy = 240 - sy;
|
||||
|
||||
if (offs < 3 * 4)
|
||||
if (offs < 3 * 4)
|
||||
sy++;
|
||||
|
||||
drawgfx_transpen(bitmap,cliprect,screen->machine->gfx[1],
|
||||
|
@ -416,7 +416,7 @@ INPUT_PORTS_END
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Palette initialization and
|
||||
* Palette initialization and
|
||||
* graphics definitions
|
||||
*
|
||||
*************************************/
|
||||
|
@ -122,9 +122,9 @@ static WRITE8_DEVICE_HANDLER( junofrst_portB_w )
|
||||
{
|
||||
int C = 0;
|
||||
|
||||
if (data & 1)
|
||||
if (data & 1)
|
||||
C += 47000; /* 47000pF = 0.047uF */
|
||||
if (data & 2)
|
||||
if (data & 2)
|
||||
C += 220000; /* 220000pF = 0.22uF */
|
||||
|
||||
data >>= 2;
|
||||
|
@ -69,9 +69,9 @@ static void karnov_i8751_w( running_machine *machine, int data )
|
||||
state->i8751_return = 0x56a;
|
||||
|
||||
if (data == 0x100 && state->microcontroller_id == KARNOV) /* USA version */
|
||||
state->i8751_return = 0x56b;
|
||||
state->i8751_return = 0x56b;
|
||||
|
||||
if ((data & 0xf00) == 0x300)
|
||||
if ((data & 0xf00) == 0x300)
|
||||
state->i8751_return = (data & 0xff) * 0x12; /* Player sprite mapping */
|
||||
|
||||
/* I'm not sure the ones marked ^ appear in the right order */
|
||||
@ -182,7 +182,7 @@ static void chelnov_i8751_w( running_machine *machine, int data )
|
||||
if (data == 0x100 && state->microcontroller_id == CHELNOVW) /* World version */
|
||||
state->i8751_return = 0x71c;
|
||||
|
||||
if (data >= 0x6000 && data < 0x8000)
|
||||
if (data >= 0x6000 && data < 0x8000)
|
||||
state->i8751_return = 1; /* patched */
|
||||
|
||||
if ((data & 0xf000) == 0x1000) state->i8751_level = 1; /* Level 1 */
|
||||
@ -205,7 +205,7 @@ static void chelnov_i8751_w( running_machine *machine, int data )
|
||||
else state->i8751_return = 5;
|
||||
}
|
||||
else /* Japan, World */
|
||||
{
|
||||
{
|
||||
if (b < 3) state->i8751_return = 0;
|
||||
else if (b < 8) state->i8751_return = 1;
|
||||
else if (b < 0xc) state->i8751_return = 2;
|
||||
@ -332,11 +332,11 @@ static WRITE16_HANDLER( karnov_control_w )
|
||||
break;
|
||||
|
||||
case 6: /* SECREQ (Interrupt & Data to i8751) */
|
||||
if (state->microcontroller_id == KARNOV || state->microcontroller_id == KARNOVJ)
|
||||
if (state->microcontroller_id == KARNOV || state->microcontroller_id == KARNOVJ)
|
||||
karnov_i8751_w(space->machine, data);
|
||||
if (state->microcontroller_id == CHELNOV || state->microcontroller_id == CHELNOVJ || state->microcontroller_id == CHELNOVW)
|
||||
if (state->microcontroller_id == CHELNOV || state->microcontroller_id == CHELNOVJ || state->microcontroller_id == CHELNOVW)
|
||||
chelnov_i8751_w(space->machine, data);
|
||||
if (state->microcontroller_id == WNDRPLNT)
|
||||
if (state->microcontroller_id == WNDRPLNT)
|
||||
wndrplnt_i8751_w(space->machine, data);
|
||||
break;
|
||||
|
||||
@ -720,7 +720,7 @@ static INTERRUPT_GEN( karnov_interrupt )
|
||||
karnov_state *state = (karnov_state *)device->machine->driver_data;
|
||||
|
||||
/* Coin input to the i8751 generates an interrupt to the main cpu */
|
||||
if (input_port_read(device->machine, "FAKE") == state->coin_mask)
|
||||
if (input_port_read(device->machine, "FAKE") == state->coin_mask)
|
||||
state->latch = 1;
|
||||
|
||||
if (input_port_read(device->machine, "FAKE") != state->coin_mask && state->latch)
|
||||
@ -790,7 +790,7 @@ static MACHINE_RESET( karnov )
|
||||
state->i8751_coin_pending = 0;
|
||||
state->i8751_command_queue = 0;
|
||||
state->i8751_level = 0;
|
||||
// state->latch = 0;
|
||||
// state->latch = 0;
|
||||
|
||||
state->flipscreen = 0;
|
||||
state->scroll[0] = 0;
|
||||
|
@ -207,7 +207,7 @@ static WRITE16_DEVICE_HANDLER( actionhw_snd_w )
|
||||
kickgoal_state *state = (kickgoal_state *)device->machine->driver_data;
|
||||
logerror("%s: Writing %04x to Sound CPU - mask %04x\n",cpuexec_describe_context(device->machine),data,mem_mask);
|
||||
|
||||
if (!ACCESSING_BITS_0_7)
|
||||
if (!ACCESSING_BITS_0_7)
|
||||
data >>= 8;
|
||||
|
||||
switch (data)
|
||||
@ -216,11 +216,11 @@ static WRITE16_DEVICE_HANDLER( actionhw_snd_w )
|
||||
case 0xfd: okim6295_set_bank_base(device, (2 * 0x40000)); break;
|
||||
case 0xfe: okim6295_set_bank_base(device, (1 * 0x40000)); break;
|
||||
case 0xff: okim6295_set_bank_base(device, (3 * 0x40000)); break;
|
||||
case 0x78:
|
||||
case 0x78:
|
||||
okim6295_w(device, 0, data);
|
||||
state->snd_sam[0] = 00; state->snd_sam[1]= 00; state->snd_sam[2] = 00; state->snd_sam[3] = 00;
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
if (state->snd_new) /* Play new sample */
|
||||
{
|
||||
if ((data & 0x80) && (state->snd_sam[3] != state->snd_new))
|
||||
@ -333,14 +333,14 @@ static INTERRUPT_GEN( kickgoal_interrupt )
|
||||
{
|
||||
state->m6295_bank += 0x01;
|
||||
state->m6295_bank &= 0x03;
|
||||
if (state->m6295_bank == 0x03)
|
||||
if (state->m6295_bank == 0x03)
|
||||
state->m6295_bank = 0x00;
|
||||
popmessage("Changing Bank to %02x", state->m6295_bank);
|
||||
okim6295_set_bank_base(state->adpcm, ((state->m6295_bank) * 0x40000));
|
||||
|
||||
if (state->m6295_key_delay == 0xffff)
|
||||
if (state->m6295_key_delay == 0xffff)
|
||||
state->m6295_key_delay = 0x00;
|
||||
else
|
||||
else
|
||||
state->m6295_key_delay = (0x30 * oki_time_base);
|
||||
}
|
||||
else
|
||||
@ -352,14 +352,14 @@ static INTERRUPT_GEN( kickgoal_interrupt )
|
||||
{
|
||||
state->m6295_bank -= 0x01;
|
||||
state->m6295_bank &= 0x03;
|
||||
if (state->m6295_bank == 0x03)
|
||||
if (state->m6295_bank == 0x03)
|
||||
state->m6295_bank = 0x02;
|
||||
popmessage("Changing Bank to %02x", state->m6295_bank);
|
||||
okim6295_set_bank_base(state->adpcm, ((state->m6295_bank) * 0x40000));
|
||||
|
||||
if (state->m6295_key_delay == 0xffff)
|
||||
if (state->m6295_key_delay == 0xffff)
|
||||
state->m6295_key_delay = 0x00;
|
||||
else
|
||||
else
|
||||
state->m6295_key_delay = (0x30 * oki_time_base);
|
||||
}
|
||||
else
|
||||
@ -378,9 +378,9 @@ static INTERRUPT_GEN( kickgoal_interrupt )
|
||||
if (state->m6295_comm == 0x70) { okim6295_set_bank_base(state->adpcm, (1 * 0x40000)); state->m6295_bank = 1; }
|
||||
popmessage("Sound test command %02x on Bank %02x", state->m6295_comm, state->m6295_bank);
|
||||
|
||||
if (state->m6295_key_delay == 0xffff)
|
||||
if (state->m6295_key_delay == 0xffff)
|
||||
state->m6295_key_delay = 0x00;
|
||||
else
|
||||
else
|
||||
state->m6295_key_delay = (0x5d * oki_time_base);
|
||||
}
|
||||
else
|
||||
@ -399,9 +399,9 @@ static INTERRUPT_GEN( kickgoal_interrupt )
|
||||
if (state->m6295_comm == 0x76) { okim6295_set_bank_base(state->adpcm, (1 * 0x40000)); state->m6295_bank = 1; }
|
||||
popmessage("Sound test command %02x on Bank %02x", state->m6295_comm, state->m6295_bank);
|
||||
|
||||
if (state->m6295_key_delay == 0xffff)
|
||||
if (state->m6295_key_delay == 0xffff)
|
||||
state->m6295_key_delay = 0x00;
|
||||
else
|
||||
else
|
||||
state->m6295_key_delay = (0x5d * oki_time_base);
|
||||
}
|
||||
else
|
||||
@ -417,16 +417,16 @@ static INTERRUPT_GEN( kickgoal_interrupt )
|
||||
|
||||
popmessage("Playing sound %02x on Bank %02x", state->m6295_comm, state->m6295_bank);
|
||||
|
||||
if (state->m6295_key_delay == 0xffff)
|
||||
if (state->m6295_key_delay == 0xffff)
|
||||
state->m6295_key_delay = 0x00;
|
||||
else
|
||||
else
|
||||
state->m6295_key_delay = (0x60 * oki_time_base);
|
||||
}
|
||||
else
|
||||
state->m6295_key_delay += (0x01 * oki_time_base);
|
||||
// logerror("Sending %02x to the sound CPU\n", state->m6295_comm);
|
||||
}
|
||||
else
|
||||
else
|
||||
state->m6295_key_delay = 0xffff;
|
||||
}
|
||||
|
||||
|
@ -139,10 +139,10 @@ static READ8_DEVICE_HANDLER( input_r )
|
||||
|
||||
if (key)
|
||||
{
|
||||
while (!(key & 1))
|
||||
{
|
||||
key >>= 1;
|
||||
keyval++;
|
||||
while (!(key & 1))
|
||||
{
|
||||
key >>= 1;
|
||||
keyval++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -173,17 +173,17 @@ INPUT_PORTS_END
|
||||
|
||||
static WRITE8_DEVICE_HANDLER(dummy1_w)
|
||||
{
|
||||
// printf("%02x 1\n", data);
|
||||
// printf("%02x 1\n", data);
|
||||
}
|
||||
|
||||
static WRITE8_DEVICE_HANDLER(dummy2_w)
|
||||
{
|
||||
// printf("%02x 2\n", data);
|
||||
// printf("%02x 2\n", data);
|
||||
}
|
||||
|
||||
static WRITE8_DEVICE_HANDLER(dummy3_w)
|
||||
{
|
||||
// printf("%02x 3\n", data);
|
||||
// printf("%02x 3\n", data);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1192,7 +1192,7 @@ on main PCB (CR208):
|
||||
on roms PCB (CR207):
|
||||
7x M27256 (5,6,7,8,9,10,11)
|
||||
3x PROM N82S129N
|
||||
2x PROM DM74S288N (one is blank!)
|
||||
2x PROM DM74S288N (one is blank!)
|
||||
|
||||
the only real difference seems to be that you get less lives.
|
||||
|
||||
@ -1247,7 +1247,7 @@ ROM_START( skywolf3 )
|
||||
//ROM_LOAD( "82s129-3.bin", 0x0200, 0x0100, CRC(6b0980bf) SHA1(6314f9e593f2d2a2f014f6eb82295cb3aa70cbd1)) ) /* blue (bad) - high bit of colour fixed to 0 */
|
||||
ROM_LOAD( "82s129-2.bin", 0x0100, 0x0100, CRC(ec0923d3) SHA1(26f9eda4260a8b767893b8dea42819f192ef0b20) ) /* green */
|
||||
ROM_LOAD( "82s129-3.bin", 0x0200, 0x0100, CRC(ade97052) SHA1(cc1b4cd57d7bc55ce44de6b89a322ff08eabb1a0) ) /* blue */
|
||||
ROM_LOAD( "74s288-2.bin", 0x0300, 0x0020, CRC(190a55ad) SHA1(de8a847bff8c343d69b853a215e6ee775ef2ef96) ) /* blank lookup prom */
|
||||
ROM_LOAD( "74s288-2.bin", 0x0300, 0x0020, CRC(190a55ad) SHA1(de8a847bff8c343d69b853a215e6ee775ef2ef96) ) /* blank lookup prom */
|
||||
ROM_LOAD( "74s288-1.bin", 0x0320, 0x0020, CRC(5ddb2d15) SHA1(422663566ebc7ea8cbc3089d806b0868e006fe0c) ) /* timing? not used */
|
||||
ROM_END
|
||||
|
||||
|
@ -78,9 +78,9 @@ static TIMER_CALLBACK( nmi_callback )
|
||||
{
|
||||
ladyfrog_state *state = (ladyfrog_state *)machine->driver_data;
|
||||
|
||||
if (state->sound_nmi_enable)
|
||||
if (state->sound_nmi_enable)
|
||||
cpu_set_input_line(state->audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
else
|
||||
else
|
||||
state->pending_nmi = 1;
|
||||
}
|
||||
|
||||
@ -405,4 +405,4 @@ ROM_END
|
||||
GAME( 1990, ladyfrog, 0, ladyfrog, ladyfrog, 0, ORIENTATION_SWAP_XY, "Mondial Games", "Lady Frog", GAME_SUPPORTS_SAVE )
|
||||
|
||||
// toucheme art style is similar to ladyfrog, so it's probably the same manufacturer
|
||||
GAME( 19??, toucheme, 0, toucheme, toucheme, 0, ORIENTATION_SWAP_XY, "<unknown>", "Touche Me", GAME_SUPPORTS_SAVE )
|
||||
GAME( 19??, toucheme, 0, toucheme, toucheme, 0, ORIENTATION_SWAP_XY, "<unknown>", "Touche Me", GAME_SUPPORTS_SAVE )
|
||||
|
@ -584,16 +584,16 @@ static const sn76477_interface laserbat_sn76477_interface =
|
||||
|
||||
/* Cat'N Mouse sound ***********************************/
|
||||
|
||||
static WRITE_LINE_DEVICE_HANDLER( zaccaria_irq0a )
|
||||
{
|
||||
static WRITE_LINE_DEVICE_HANDLER( zaccaria_irq0a )
|
||||
{
|
||||
laserbat_state *laserbat = (laserbat_state *)device->machine->driver_data;
|
||||
cpu_set_input_line(laserbat->audiocpu, INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
cpu_set_input_line(laserbat->audiocpu, INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
static WRITE_LINE_DEVICE_HANDLER( zaccaria_irq0b )
|
||||
{
|
||||
static WRITE_LINE_DEVICE_HANDLER( zaccaria_irq0b )
|
||||
{
|
||||
laserbat_state *laserbat = (laserbat_state *)device->machine->driver_data;
|
||||
cpu_set_input_line(laserbat->audiocpu, 0, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
cpu_set_input_line(laserbat->audiocpu, 0, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
static READ8_DEVICE_HANDLER( zaccaria_port0a_r )
|
||||
|
@ -71,7 +71,7 @@ struct _lastfght_state
|
||||
{
|
||||
/* memory pointers */
|
||||
UINT8 * colorram;
|
||||
// UINT8 * nvram; // currently this uses generic nvram handling
|
||||
// UINT8 * nvram; // currently this uses generic nvram handling
|
||||
|
||||
/* video-related */
|
||||
bitmap_t *bitmap[2];
|
||||
@ -179,7 +179,7 @@ static WRITE16_HANDLER( lastfght_hi_w )
|
||||
{
|
||||
lastfght_state *state = (lastfght_state *)space->machine->driver_data;
|
||||
|
||||
if (ACCESSING_BITS_8_15)
|
||||
if (ACCESSING_BITS_8_15)
|
||||
logerror("%06x: 600000.b = %02x\n", cpu_get_pc(space->cpu), data >> 8);
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
@ -229,7 +229,7 @@ static WRITE16_HANDLER( lastfght_h_w )
|
||||
state->h = state->hi | (data >> 8);
|
||||
//logerror("%06x: lastfght_h = %02x\n", cpu_get_pc(space->cpu), data >> 8);
|
||||
}
|
||||
if (ACCESSING_BITS_0_7)
|
||||
if (ACCESSING_BITS_0_7)
|
||||
logerror("%06x: 80000d.b = %02x\n", cpu_get_pc(space->cpu), data);
|
||||
}
|
||||
|
||||
@ -336,7 +336,7 @@ static WRITE16_HANDLER( lastfght_blit_w )
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ACCESSING_BITS_0_7)
|
||||
if (ACCESSING_BITS_0_7)
|
||||
logerror("%06x: 600007.b = %02x\n", cpu_get_pc(space->cpu), data);
|
||||
}
|
||||
|
||||
@ -345,7 +345,7 @@ static WRITE16_HANDLER( lastfght_dest_w )
|
||||
{
|
||||
lastfght_state *state = (lastfght_state *)space->machine->driver_data;
|
||||
|
||||
if (ACCESSING_BITS_0_7)
|
||||
if (ACCESSING_BITS_0_7)
|
||||
state->dest ^= 1;
|
||||
}
|
||||
|
||||
@ -394,7 +394,7 @@ static READ16_HANDLER( lastfght_sound_r )
|
||||
|
||||
static WRITE16_HANDLER( lastfght_sound_w )
|
||||
{
|
||||
if (ACCESSING_BITS_8_15)
|
||||
if (ACCESSING_BITS_8_15)
|
||||
logerror("%06x: sound_w msb = %02x\n", cpu_get_pc(space->cpu), data >> 8);
|
||||
if (ACCESSING_BITS_0_7)
|
||||
logerror("%06x: sound_w lsb = %02x\n", cpu_get_pc(space->cpu), data);
|
||||
|
@ -241,7 +241,7 @@ static INTERRUPT_GEN( lazercmd_timer )
|
||||
{
|
||||
lazercmd_state *state = (lazercmd_state *)device->machine->driver_data;
|
||||
|
||||
if (++state->timer_count >= 64 * 128)
|
||||
if (++state->timer_count >= 64 * 128)
|
||||
{
|
||||
state->timer_count = 0;
|
||||
state->sense_state ^= 1;
|
||||
@ -379,7 +379,7 @@ static READ8_HANDLER( lazercmd_hardware_r )
|
||||
data = input_port_read(space->machine, "IN2");
|
||||
break;
|
||||
case 4: /* vertical scan counter */
|
||||
data = ((state->timer_count & 0x10) >> 1) | ((state->timer_count & 0x20) >> 3)
|
||||
data = ((state->timer_count & 0x10) >> 1) | ((state->timer_count & 0x20) >> 3)
|
||||
| ((state->timer_count & 0x40) >> 5) | ((state->timer_count & 0x80) >> 7);
|
||||
break;
|
||||
case 5: /* vertical scan counter */
|
||||
@ -631,10 +631,10 @@ static MACHINE_DRIVER_START( lazercmd )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", S2650,MASTER_CLOCK/12) /* 672 kHz? */
|
||||
/* Main Clock is 8MHz divided by 12
|
||||
but memory and IO access is only possible
|
||||
within the line and frame blanking period
|
||||
thus requiring an extra loading of approx 3-5 */
|
||||
/* Main Clock is 8MHz divided by 12
|
||||
but memory and IO access is only possible
|
||||
within the line and frame blanking period
|
||||
thus requiring an extra loading of approx 3-5 */
|
||||
MDRV_CPU_PROGRAM_MAP(lazercmd_map)
|
||||
MDRV_CPU_IO_MAP(lazercmd_portmap)
|
||||
MDRV_CPU_VBLANK_INT_HACK(lazercmd_timer, 128) /* 7680 Hz */
|
||||
@ -672,10 +672,10 @@ static MACHINE_DRIVER_START( medlanes )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", S2650,MASTER_CLOCK/12) /* 666 kHz */
|
||||
/* Main Clock is 8MHz divided by 12
|
||||
but memory and IO access is only possible
|
||||
within the line and frame blanking period
|
||||
thus requiring an extra loading of approx 3-5 */
|
||||
/* Main Clock is 8MHz divided by 12
|
||||
but memory and IO access is only possible
|
||||
within the line and frame blanking period
|
||||
thus requiring an extra loading of approx 3-5 */
|
||||
MDRV_CPU_PROGRAM_MAP(medlanes_map)
|
||||
MDRV_CPU_IO_MAP(lazercmd_portmap)
|
||||
MDRV_CPU_VBLANK_INT_HACK(lazercmd_timer, 128) /* 7680 Hz */
|
||||
@ -713,10 +713,10 @@ static MACHINE_DRIVER_START( bbonk )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", S2650,MASTER_CLOCK/12) /* 666 kHz */
|
||||
/* Main Clock is 8MHz divided by 12
|
||||
but memory and IO access is only possible
|
||||
within the line and frame blanking period
|
||||
thus requiring an extra loading of approx 3-5 */
|
||||
/* Main Clock is 8MHz divided by 12
|
||||
but memory and IO access is only possible
|
||||
within the line and frame blanking period
|
||||
thus requiring an extra loading of approx 3-5 */
|
||||
MDRV_CPU_PROGRAM_MAP(bbonk_map)
|
||||
MDRV_CPU_IO_MAP(lazercmd_portmap)
|
||||
MDRV_CPU_VBLANK_INT_HACK(bbonk_timer, 128) /* 7680 Hz */
|
||||
|
@ -27,14 +27,14 @@ static WRITE16_HANDLER( lemmings_control_w )
|
||||
lemmings_state *state = (lemmings_state *)space->machine->driver_data;
|
||||
|
||||
/* Offset==0 Pixel layer X scroll */
|
||||
if (offset == 4)
|
||||
if (offset == 4)
|
||||
return; /* Watchdog or IRQ ack */
|
||||
COMBINE_DATA(&state->control_data[offset]);
|
||||
}
|
||||
|
||||
static READ16_HANDLER( lemmings_trackball_r )
|
||||
{
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0: return input_port_read(space->machine, "AN0");
|
||||
case 1: return input_port_read(space->machine, "AN1");
|
||||
@ -47,7 +47,7 @@ static READ16_HANDLER( lemmings_trackball_r )
|
||||
/* Same as Robocop 2 protection chip */
|
||||
static READ16_HANDLER( lemmings_prot_r )
|
||||
{
|
||||
switch (offset << 1)
|
||||
switch (offset << 1)
|
||||
{
|
||||
case 0x41a:
|
||||
return input_port_read(space->machine, "BUTTONS");
|
||||
@ -68,7 +68,7 @@ static WRITE16_HANDLER( lemmings_palette_24bit_w )
|
||||
int r, g, b;
|
||||
|
||||
COMBINE_DATA(&state->paletteram[offset]);
|
||||
if (offset & 1)
|
||||
if (offset & 1)
|
||||
offset--;
|
||||
|
||||
b = (state->paletteram[offset] >> 0) & 0xff;
|
||||
|
@ -204,19 +204,19 @@ static int avengers_fetch_paldata( running_machine *machine )
|
||||
int digit1 = pal_data[page * 256 * 2 + (30 - row * 2) * 16 + col];
|
||||
int result;
|
||||
|
||||
if (digit0 >= 'A')
|
||||
digit0 += 10 - 'A';
|
||||
else
|
||||
if (digit0 >= 'A')
|
||||
digit0 += 10 - 'A';
|
||||
else
|
||||
digit0 -= '0';
|
||||
|
||||
if (digit1 >= 'A')
|
||||
digit1 += 10 - 'A';
|
||||
else
|
||||
if (digit1 >= 'A')
|
||||
digit1 += 10 - 'A';
|
||||
else
|
||||
digit1 -= '0';
|
||||
|
||||
result = digit0 * 16 + digit1;
|
||||
|
||||
if ((state->palette_pen & 0x3f) != 0x3f)
|
||||
if ((state->palette_pen & 0x3f) != 0x3f)
|
||||
state->palette_pen++;
|
||||
|
||||
return result;
|
||||
|
@ -963,10 +963,10 @@ static INPUT_PORTS_START( tron3 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
|
||||
// PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
|
||||
// PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
|
||||
// PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
|
||||
// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
|
||||
// PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
|
||||
// PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
|
||||
// PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
|
||||
// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
|
||||
|
||||
PORT_START("SSIO.IP3") /* DIPSW @ B3 */
|
||||
PORT_DIPNAME( 0x01, 0x00, "Coin Meters" ) PORT_DIPLOCATION("SW1:1")
|
||||
@ -982,14 +982,14 @@ static INPUT_PORTS_START( tron3 )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x10, 0x00, "SW1:5" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x20, 0x00, "SW1:6" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x40, 0x00, "SW1:7" )
|
||||
// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||
// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||
|
||||
// According to the manual, SW1 is a bank of *10* switches (9 is unused and 10 is freeze)
|
||||
// Where are the values for the other two bits read?
|
||||
|
||||
PORT_START("SSIO.IP4") /* J6 1-8 */
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
// PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_COCKTAIL
|
||||
// PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_COCKTAIL
|
||||
|
||||
PORT_START("SSIO.DIP")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
@ -24,9 +24,9 @@ TO DO:
|
||||
static TIMER_CALLBACK( nmi_callback )
|
||||
{
|
||||
buggychl_state *state = (buggychl_state *)machine->driver_data;
|
||||
if (state->sound_nmi_enable)
|
||||
if (state->sound_nmi_enable)
|
||||
cpu_set_input_line(state->audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
else
|
||||
else
|
||||
state->pending_nmi = 1;
|
||||
}
|
||||
|
||||
|
@ -635,7 +635,7 @@ static WRITE8_DEVICE_HANDLER( mainlamps_w )
|
||||
output_set_lamp_value(6, (data >> 6) & 1); /* HOLD 5 lamp */
|
||||
output_set_lamp_value(7, (data >> 7) & 1); /* CANCEL lamp */
|
||||
|
||||
// popmessage("lamps: %02x", data);
|
||||
// popmessage("lamps: %02x", data);
|
||||
}
|
||||
|
||||
static WRITE8_DEVICE_HANDLER( soundlamps_w )
|
||||
@ -1581,17 +1581,17 @@ ROM_END
|
||||
|
||||
|
||||
- CPU: 1x Z084004PSC (Frequency measured 2.3025MHz.)
|
||||
- RAM: 4x 2114
|
||||
- RAM: 4x 2114
|
||||
- I/O: 3x 8255 Peripeheral Interface Adapter.
|
||||
- Prg ROM: 2x 2732, U11,U16
|
||||
- Gfx ROM: 1x 2716 U27 Eprom
|
||||
- Gfx ROM: 1x 2716 U27 Eprom
|
||||
- Sound: Discrete.
|
||||
- Crystal: 1x 18.432 MHz
|
||||
|
||||
|
||||
NOTE: PIN NO 5 LIFTED FROM CPU SOCKET (A15)
|
||||
PCB DOES NOT BOOT IF PIN IS PUT BACK IN SOCKET.
|
||||
|
||||
|
||||
PCB silksceened:
|
||||
PROLOGIC MADE IN (IRL) - 131191
|
||||
|
||||
@ -1968,12 +1968,12 @@ ROM_END
|
||||
|| | | 6116 | |
|
||||
|| Z084004PS | | | |
|
||||
*| | | | |
|
||||
*|____________________| | | |
|
||||
*|____________________| | | |
|
||||
* J2 |______| |
|
||||
|__________________________________|
|
||||
|
||||
|
||||
Discrete audio circuitry: SAME AS KIMBLE DIAGRAM
|
||||
Discrete audio circuitry: SAME AS KIMBLE DIAGRAM
|
||||
EXCEPT FOR :R1 = 120 K ; Tolerance +/- 5%
|
||||
|
||||
*/
|
||||
@ -2132,7 +2132,7 @@ ROM_END
|
||||
|
||||
2) Press HOLD1 to reset meters, HOLD2 for readout,
|
||||
or follow the next steps to adjust percentage.
|
||||
Press DEAL to exit.
|
||||
Press DEAL to exit.
|
||||
|
||||
2) Keep pressed HI & LO buttons.
|
||||
3) Press HOLD5 (readout) button.
|
||||
@ -2157,33 +2157,33 @@ ROM_END
|
||||
-------------------------
|
||||
|
||||
Hardware Layout:
|
||||
|
||||
- CPU: 1x Z8400AB1: ON CPU ADDON BOARD
|
||||
|
||||
- CPU: 1x Z8400AB1: ON CPU ADDON BOARD
|
||||
- RAM: 2x 2114 VIDEO
|
||||
- RAM: 1x 6264 PROG: ON EXPANSION BOARD
|
||||
- I/O: 3x 8255 Peripeheral Interface Adapter.
|
||||
- Prg ROM: 1x 27C256: ON EXPANSION BOARD
|
||||
- Prg ROM: 1x 27C128: ON EXPANSION BOARD
|
||||
- Gfx ROM: 1x 2716 U27 Eprom
|
||||
- Prg ROM: 1x 27C128: ON EXPANSION BOARD
|
||||
- Gfx ROM: 1x 2716 U27 Eprom
|
||||
- Sound: Discrete.
|
||||
- Crystal: 1x 18.432 MHz.ON CPU ADDON BOARD
|
||||
- Crystal: 1x 18.432 MHz.ON CPU ADDON BOARD
|
||||
1X PAL16R8 ON EXPANSION BOARD
|
||||
|
||||
|
||||
PCB silksceened:
|
||||
SCT 18-88
|
||||
KIMBLE DOUBLE HI-LO
|
||||
CARD GAME
|
||||
|
||||
|
||||
PCB MARKED:SZY044
|
||||
|
||||
|
||||
CHAR EPROM LABELED: "QUIZ CHAR II"
|
||||
PROG EPROM (256) LABELED: "M.B POKER ALT 1 2P/10P I"
|
||||
PROG EPROM (128) LABELED: "M.B POKER ALT 1 2P/10P II"
|
||||
|
||||
|
||||
|
||||
|
||||
Frequency measured 2.3025MHz.
|
||||
|
||||
|
||||
|
||||
|
||||
PCB Layout (Kimble Double HI-LO Z80): Edge Connector 36x2
|
||||
______________________________________________________________________________________________
|
||||
| _________ _________ _____ ......... _________ |
|
||||
@ -2233,9 +2233,9 @@ ROM_END
|
||||
| |____________________| U5 U4 U3 U2 U1 |
|
||||
| 1 U6 |
|
||||
|______________________________________________________________________________________________|
|
||||
|
||||
|
||||
PCB Layout EXPANSION BOARD (Kimble Double HI-LO 8080):
|
||||
|
||||
PCB Layout EXPANSION BOARD (Kimble Double HI-LO 8080):
|
||||
|
||||
EXPANSION BOARD Silksceened:SCT 34-88
|
||||
__________________________________________________________________
|
||||
@ -2318,8 +2318,8 @@ ROM_END
|
||||
|
||||
C1 = 10nK 63v
|
||||
C2 = 223J
|
||||
C3 = 47nK 63v
|
||||
|
||||
C3 = 47nK 63v
|
||||
|
||||
C4 = 10nK 63v
|
||||
C5 = 10nK 63v
|
||||
C6 = 100nK 100v
|
||||
@ -2725,31 +2725,31 @@ ROM_END
|
||||
|
||||
|
||||
Hardware Layout (Kimble Double HI-LO 8080):
|
||||
|
||||
- CPU: 1x INTEL P8080A
|
||||
|
||||
- CPU: 1x INTEL P8080A
|
||||
- RAM: 2x 2114 VIDEO
|
||||
- RAM: 1x 6264 PROG: ON EXPANSION BOARD
|
||||
- I/O: 3x 8255 Peripeheral Interface Adapter.
|
||||
- Prg ROM: 1x 27C256: ON EXPANSION BOARD
|
||||
- Gfx ROM: 1x 2716 U27 Eprom
|
||||
- Gfx ROM: 1x 2716 U27 Eprom
|
||||
- Sound: Discrete.
|
||||
- Crystal: 1x 18.432 MHz.
|
||||
1X PAL16R8 ON EXPANSION BOARD
|
||||
|
||||
|
||||
PCB silksceened:
|
||||
"SCT 41-88"
|
||||
"KIMBLE DOUBLE HI-LO"
|
||||
"CARD GAME"
|
||||
|
||||
|
||||
PCB MARKED:"VZY07"
|
||||
|
||||
|
||||
CHAR EPROM LABELED: "QUIZ CHAR II"
|
||||
PROG EPROM LABELED: "JPCS25611"
|
||||
|
||||
|
||||
|
||||
|
||||
Frequency measured = 2.040 MHz.
|
||||
|
||||
|
||||
|
||||
|
||||
PCB Layout (Kimble Double HI-LO 8080): Edge Connector 36x2
|
||||
______________________________________________________________________________________________
|
||||
| _________ _________ _____ ......... _________ |
|
||||
@ -2799,7 +2799,7 @@ ROM_END
|
||||
| |____________________| U5 U4 U3 U2 U1 |
|
||||
| U6 |
|
||||
|______________________________________________________________________________________________|
|
||||
|
||||
|
||||
|
||||
PCB Layout EXPANSION BOARD (Kimble Double HI-LO 8080):
|
||||
|
||||
@ -3223,8 +3223,8 @@ ROM_END
|
||||
|
||||
Unknown DPHL rev 1.
|
||||
|
||||
No extra info inside the zip. Just ROM dumps...
|
||||
Maybe from SMS Manufacturing, since there are GFX tiles with the SMS logo.
|
||||
No extra info inside the zip. Just ROM dumps...
|
||||
Maybe from SMS Manufacturing, since there are GFX tiles with the SMS logo.
|
||||
|
||||
*/
|
||||
|
||||
@ -3245,8 +3245,8 @@ ROM_END
|
||||
|
||||
Unknown DPHL rev 2.
|
||||
|
||||
No extra info inside the zip. Just ROM dumps...
|
||||
Maybe from SMS Manufacturing, since there are GFX tiles with the SMS logo.
|
||||
No extra info inside the zip. Just ROM dumps...
|
||||
Maybe from SMS Manufacturing, since there are GFX tiles with the SMS logo.
|
||||
|
||||
*/
|
||||
|
||||
|
@ -407,7 +407,7 @@ static ADDRESS_MAP_START( psikyo_bootleg_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
// AM_RANGE(0xc00010, 0xc00013) AM_WRITE(psikyo_soundlatch_w) // Depends on board, see DRIVER_INIT
|
||||
|
||||
AM_RANGE(0xC00018, 0xC0001b) AM_DEVREADWRITE("oki", s1945bl_oki_r, s1945bl_oki_w)
|
||||
|
||||
|
||||
AM_RANGE(0xfe0000, 0xffffff) AM_RAM // RAM
|
||||
|
||||
ADDRESS_MAP_END
|
||||
@ -1768,7 +1768,7 @@ ROM_START( s1945bl )
|
||||
|
||||
ROM_REGION( 0x040000, "spritelut", 0 ) /* */
|
||||
ROM_LOAD16_BYTE( "27c010-b", 0x000000, 0x020000, CRC(e38d5ab7) SHA1(73a708ebc305cb6297efd3296da23c87898e805e) ) // u1.bin [even] IDENTICAL
|
||||
ROM_LOAD16_BYTE( "27c010-a", 0x000001, 0x020000, CRC(cb8c65ec) SHA1(a55c5c5067b50a1243e7ba60fa1f9569bfed5de8) ) // u1.bin [odd] 99.999237%
|
||||
ROM_LOAD16_BYTE( "27c010-a", 0x000001, 0x020000, CRC(cb8c65ec) SHA1(a55c5c5067b50a1243e7ba60fa1f9569bfed5de8) ) // u1.bin [odd] 99.999237%
|
||||
|
||||
ROM_REGION( 0x080000, "unknown", 0 ) /* unknown - matches Semicom's Dream World */
|
||||
ROM_LOAD( "27c512", 0x000000, 0x010000, CRC(0da8db45) SHA1(7d5bd71c5b0b28ff74c732edd7c662f46f2ab25b) )
|
||||
|
@ -2766,7 +2766,7 @@ PCB Layout
|
||||
Notes:
|
||||
Z80 - clock 6.802725MHz [27.2109/4]
|
||||
YM2203 - clocks 3.4013625 [27/2109/8] & 1.1337875 [27.2109/24]
|
||||
VSync - 55.8268Hz \ possibly sync/PCB fault, had to adjust
|
||||
VSync - 55.8268Hz \ possibly sync/PCB fault, had to adjust
|
||||
HSync - 14.7739kHz / h/v syncs on monitor to get a stable picture
|
||||
|
||||
*/
|
||||
|
@ -1,7 +1,7 @@
|
||||
/***************************************************************************
|
||||
|
||||
Raster Elite Tickee Tickats hardware
|
||||
+ variations
|
||||
+ variations
|
||||
|
||||
driver by Aaron Giles
|
||||
|
||||
@ -64,7 +64,7 @@ static TIMER_CALLBACK( trigger_gun_interrupt )
|
||||
{
|
||||
int which = param & 1;
|
||||
int beamx = (video_screen_get_hpos(machine->primary_screen)/2)-58;
|
||||
|
||||
|
||||
/* once we're ready to fire, set the X coordinate and assert the line */
|
||||
gunx[which] = beamx;
|
||||
|
||||
@ -294,7 +294,7 @@ static WRITE16_HANDLER( tickee_control_w )
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Unknowns
|
||||
* Unknowns
|
||||
*
|
||||
*************************************/
|
||||
|
||||
@ -329,7 +329,7 @@ static WRITE16_HANDLER( rapidfir_control_w )
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Sound
|
||||
* Sound
|
||||
*
|
||||
*************************************/
|
||||
|
||||
@ -340,19 +340,19 @@ static WRITE16_DEVICE_HANDLER( sound_bank_w )
|
||||
case 0x2c:
|
||||
okim6295_set_bank_base(device, 0x00000);
|
||||
break;
|
||||
|
||||
|
||||
case 0x2d:
|
||||
okim6295_set_bank_base(device, 0x50000);
|
||||
break;
|
||||
|
||||
|
||||
case 0x1c:
|
||||
okim6295_set_bank_base(device, 0x80000);
|
||||
break;
|
||||
|
||||
|
||||
case 0x1d:
|
||||
okim6295_set_bank_base(device, 0xc0000);
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
logerror("sound_bank_w %04X %04X\n", data, mem_mask);
|
||||
break;
|
||||
@ -567,27 +567,27 @@ static INPUT_PORTS_START( rapidfir )
|
||||
PORT_BIT( 0xffe0, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("DSW0")
|
||||
PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ))
|
||||
PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ))
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ))
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( On ))
|
||||
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ))
|
||||
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ))
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ))
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( On ))
|
||||
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ))
|
||||
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ))
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ))
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( On ))
|
||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ))
|
||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ))
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ))
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( On ))
|
||||
PORT_BIT( 0x0070, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ))
|
||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ))
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ))
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( On ))
|
||||
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("DSW1")
|
||||
PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_DIPNAME( 0x0040, 0x0000, "Reset NVRAM" )
|
||||
PORT_DIPNAME( 0x0040, 0x0000, "Reset NVRAM" )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( No ))
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( Yes ))
|
||||
PORT_BIT( 0xff80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
@ -717,7 +717,7 @@ static MACHINE_DRIVER_START( rapidfir )
|
||||
MDRV_CPU_ADD("maincpu", TMS34010, XTAL_50MHz)
|
||||
MDRV_CPU_CONFIG(rapidfir_tms_config)
|
||||
MDRV_CPU_PROGRAM_MAP(rapidfir_map)
|
||||
|
||||
|
||||
MDRV_MACHINE_RESET(rapidfir)
|
||||
MDRV_NVRAM_HANDLER(generic_1fill)
|
||||
|
||||
@ -728,7 +728,7 @@ static MACHINE_DRIVER_START( rapidfir )
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32)
|
||||
MDRV_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200)
|
||||
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
@ -878,7 +878,7 @@ BE 1V-0 VER3
|
||||
|
||||
PCB No: BE 1V-0 VER3: 7/30/98 (Sticker says PVG/SEMCO)
|
||||
CPU : TMS34010FNL-50
|
||||
SND : BS901 + CA5102 (YM2151 + YM3012), AD-65 (OKI M6295)
|
||||
SND : BS901 + CA5102 (YM2151 + YM3012), AD-65 (OKI M6295)
|
||||
OSC : 50.000MHz, 3.5795MHz, 8.000MHz, 18.000MHz
|
||||
RAM : Toshiba TC528267J-70 (x 4, surface mounted)
|
||||
DIPs : 8 position (x2)
|
||||
@ -898,7 +898,7 @@ ROMs : RF11.U2 27C040 \
|
||||
RF10.U7 " |
|
||||
RF11.U8 " |
|
||||
RF11.U9 " |
|
||||
DS1220Y.U504 *1 /
|
||||
DS1220Y.U504 *1 /
|
||||
|
||||
RF11.U507 27C040 \
|
||||
RF11.U510 " / Grouped together, SND/OKI SAMPLES
|
||||
@ -917,7 +917,7 @@ ROM_START( rapidfir ) /* Version 1.1, test menu shows "Build 239" */
|
||||
ROM_LOAD16_BYTE( "rf10.u5", 0x200001, 0x80000, CRC(593b3df2) SHA1(301fa06031eff54fb2d9e08f80fc3c26e5c51da9) )
|
||||
ROM_LOAD16_BYTE( "rf11.u2", 0x300000, 0x80000, CRC(ffa0c695) SHA1(bccdefe7cee15999c416fdcb16a65b1bc6e12d13) )
|
||||
ROM_LOAD16_BYTE( "rf11.u3", 0x300001, 0x80000, CRC(ac63b863) SHA1(c9160aec6179d1f550279b80fd4c2a14ce94fdab) )
|
||||
|
||||
|
||||
ROM_REGION( 0x100000, "oki", 0 )
|
||||
ROM_LOAD( "rf11.507", 0x000000, 0x80000, CRC(899d1e15) SHA1(ca22b4ad714a5212bc9347eb3a5b660c02bad7e5) )
|
||||
ROM_LOAD( "rf11.510", 0x080000, 0x80000, CRC(6209c8fe) SHA1(bfbd63445b4ac2d4253c4b5354e1058070290084) )
|
||||
@ -934,7 +934,7 @@ ROM_START( rapidfire ) /* Version 1.0, test menu shows "Build 236" */
|
||||
ROM_LOAD16_BYTE( "rf10.u5", 0x200001, 0x80000, CRC(593b3df2) SHA1(301fa06031eff54fb2d9e08f80fc3c26e5c51da9) )
|
||||
ROM_LOAD16_BYTE( "rf10.u2", 0x300000, 0x80000, CRC(5ef404dd) SHA1(cf060567822c4c02baf4b1948d6e50b480bfb7da) )
|
||||
ROM_LOAD16_BYTE( "rf10.u3", 0x300001, 0x80000, CRC(d8d664db) SHA1(cd63fdc6fe4beb68ced57a2547f8302c1d2544dc) )
|
||||
|
||||
|
||||
ROM_REGION( 0x100000, "oki", 0 )
|
||||
ROM_LOAD( "rf10.507", 0x000000, 0x80000, CRC(7eab2af4) SHA1(bbb4b2b9f96add56c26f334a7242cdc81a64ce2d) )
|
||||
ROM_LOAD( "rf10.510", 0x080000, 0x80000, CRC(ecd70be6) SHA1(5a26703e822776fecb3f6d729bf91e76db7a7141) )
|
||||
|
@ -1913,7 +1913,7 @@ ROM_START( suprmriobl )
|
||||
ROM_REGION( 0x4000,"gfx1", 0 ) /* PPU memory */
|
||||
ROM_LOAD( "2.bin", 0x0000, 0x2000, CRC(42418d40) SHA1(22ab61589742cfa4cc6856f7205d7b4b8310bc4d) )
|
||||
ROM_LOAD( "5.bin", 0x2000, 0x2000, CRC(15506b86) SHA1(69ecf7a3cc8bf719c1581ec7c0d68798817d416f) )
|
||||
|
||||
|
||||
/* this set has some extra files compared to the above one, they probably exist on that pcb too tho */
|
||||
ROM_REGION( 0x200,"proms", 0 )
|
||||
ROM_LOAD( "prom6301.1", 0x000, 0x100, CRC(a31dc330) SHA1(b652003f7e252bac3bdb19412839c2f03af7f8b8) )
|
||||
|
@ -121,11 +121,11 @@ static WRITE8_HANDLER( prot_w )
|
||||
static ADDRESS_MAP_START( wink_io, ADDRESS_SPACE_IO, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x1f) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_le_w) AM_BASE_GENERIC(paletteram) //0x10-0x1f is likely to be something else
|
||||
// AM_RANGE(0x20, 0x20) AM_WRITENOP //??? seems unused..
|
||||
// AM_RANGE(0x20, 0x20) AM_WRITENOP //??? seems unused..
|
||||
AM_RANGE(0x21, 0x21) AM_WRITE(player_mux_w) //??? no mux on the pcb.
|
||||
AM_RANGE(0x22, 0x22) AM_WRITE(tile_banking_w)
|
||||
// AM_RANGE(0x23, 0x23) AM_WRITENOP //?
|
||||
// AM_RANGE(0x24, 0x24) AM_WRITENOP //cab Knocker like in q-bert!
|
||||
// AM_RANGE(0x23, 0x23) AM_WRITENOP //?
|
||||
// AM_RANGE(0x24, 0x24) AM_WRITENOP //cab Knocker like in q-bert!
|
||||
AM_RANGE(0x25, 0x27) AM_WRITE(wink_coin_counter_w)
|
||||
AM_RANGE(0x40, 0x40) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0x60, 0x60) AM_WRITE(sound_irq_w)
|
||||
@ -133,7 +133,7 @@ static ADDRESS_MAP_START( wink_io, ADDRESS_SPACE_IO, 8 )
|
||||
AM_RANGE(0xa0, 0xa0) AM_READ(player_inputs_r)
|
||||
AM_RANGE(0xa4, 0xa4) AM_READ_PORT("DSW1") //dipswitch bank2
|
||||
AM_RANGE(0xa8, 0xa8) AM_READ_PORT("DSW2") //dipswitch bank1
|
||||
// AM_RANGE(0xac, 0xac) AM_WRITENOP //protection - loads video xor unit (written only once at startup)
|
||||
// AM_RANGE(0xac, 0xac) AM_WRITENOP //protection - loads video xor unit (written only once at startup)
|
||||
AM_RANGE(0xb0, 0xb0) AM_READ_PORT("DSW3") //unused inputs
|
||||
AM_RANGE(0xb4, 0xb4) AM_READ_PORT("DSW4") //dipswitch bank3
|
||||
AM_RANGE(0xc0, 0xdf) AM_WRITE(prot_w) //load load protection-buffer from upper address bus
|
||||
|
@ -57,9 +57,9 @@ The 6809 NMI is used for sound timing.
|
||||
|
||||
static READ8_DEVICE_HANDLER( yiear_speech_r )
|
||||
{
|
||||
if (vlm5030_bsy(device))
|
||||
if (vlm5030_bsy(device))
|
||||
return 1;
|
||||
else
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -75,7 +75,7 @@ static INTERRUPT_GEN( yiear_nmi_interrupt )
|
||||
trackfld_state *state = (trackfld_state *)device->machine->driver_data;
|
||||
|
||||
/* can't use nmi_line_pulse() because interrupt_enable_w() effects it */
|
||||
if (state->yiear_nmi_enable)
|
||||
if (state->yiear_nmi_enable)
|
||||
cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
|
@ -52,7 +52,7 @@ static WRITE8_HANDLER( yunsung8_bankswitch_w )
|
||||
|
||||
memory_set_bank(space->machine, "bank1", data & 0x07);
|
||||
|
||||
if (data & ~0x37)
|
||||
if (data & ~0x37)
|
||||
logerror("CPU #0 - PC %04X: Bank %02X\n", cpu_get_pc(space->cpu), data);
|
||||
}
|
||||
|
||||
@ -101,7 +101,7 @@ static WRITE8_DEVICE_HANDLER( yunsung8_sound_bankswitch_w )
|
||||
|
||||
memory_set_bank(device->machine, "bank2", data & 0x07);
|
||||
|
||||
if (data != (data & (~0x27)))
|
||||
if (data != (data & (~0x27)))
|
||||
logerror("%s: Bank %02X\n", cpuexec_describe_context(device->machine), data);
|
||||
}
|
||||
|
||||
|
@ -11,7 +11,7 @@ struct _aerofgt_state
|
||||
UINT16 * spriteram2;
|
||||
UINT16 * spriteram3;
|
||||
UINT16 * tx_tilemap_ram;
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
size_t spriteram1_size;
|
||||
size_t spriteram2_size;
|
||||
size_t spriteram3_size;
|
||||
|
@ -11,7 +11,7 @@ struct _amspdwy_state
|
||||
UINT8 * videoram;
|
||||
UINT8 * spriteram;
|
||||
UINT8 * colorram;
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
size_t spriteram_size;
|
||||
|
||||
/* video-related */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
buggychl mcu emulation is also used by
|
||||
buggychl mcu emulation is also used by
|
||||
40love.c, bking.c and msisaac.c
|
||||
*/
|
||||
|
||||
@ -17,7 +17,7 @@ struct _buggychl_state
|
||||
UINT8 * scrollh; // buggychl
|
||||
UINT8 * charram; // buggychl
|
||||
UINT8 * video_ctrl; // 40love
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling (buggychl & msisaac)
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling (buggychl & msisaac)
|
||||
UINT8 * mcu_ram; // 40love (undokai)
|
||||
UINT8 * playfield_ram; // bking
|
||||
size_t videoram_size;
|
||||
|
@ -10,7 +10,7 @@ typedef struct _cyberbal_state cyberbal_state;
|
||||
struct _cyberbal_state
|
||||
{
|
||||
atarigen_state atarigen;
|
||||
|
||||
|
||||
UINT16 * paletteram_0;
|
||||
UINT16 * paletteram_1;
|
||||
UINT16 current_slip[2];
|
||||
|
@ -13,7 +13,7 @@ struct _fromance_state
|
||||
/* memory pointers (used by pipedrm) */
|
||||
UINT8 * videoram;
|
||||
UINT8 * spriteram;
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
size_t videoram_size;
|
||||
size_t spriteram_size;
|
||||
|
||||
|
@ -12,7 +12,7 @@ struct _gaelco_state
|
||||
UINT16 * spriteram;
|
||||
UINT16 * vregs;
|
||||
UINT16 * screen;
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
|
||||
/* video-related */
|
||||
tilemap *tilemap[2];
|
||||
|
@ -14,7 +14,7 @@ struct _galspnbl_state
|
||||
UINT16 * colorram;
|
||||
UINT16 * scroll;
|
||||
UINT16 * spriteram;
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
size_t spriteram_size;
|
||||
|
||||
/* devices */
|
||||
|
@ -6,7 +6,7 @@ struct _gcpinbal_state
|
||||
UINT16 * tilemapram;
|
||||
UINT16 * ioc_ram;
|
||||
UINT16 * spriteram;
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
size_t spriteram_size;
|
||||
|
||||
/* video-related */
|
||||
|
@ -12,7 +12,7 @@ struct _ginganin_state
|
||||
UINT16 * txtram;
|
||||
UINT16 * vregs;
|
||||
UINT16 * spriteram;
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
size_t spriteram_size;
|
||||
|
||||
/* video-related */
|
||||
|
@ -11,7 +11,7 @@ struct _glass_state
|
||||
UINT16 * videoram;
|
||||
UINT16 * vregs;
|
||||
UINT16 * spriteram;
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
|
||||
/* video-related */
|
||||
tilemap *pant[2];
|
||||
|
@ -10,9 +10,9 @@ struct _gng_state
|
||||
/* memory pointers */
|
||||
UINT8 * bgvideoram;
|
||||
UINT8 * fgvideoram;
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
// UINT8 * paletteram2; // currently this uses generic palette handling
|
||||
// UINT8 * spriteram; // currently this uses generic buffered spriteram
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
// UINT8 * paletteram2; // currently this uses generic palette handling
|
||||
// UINT8 * spriteram; // currently this uses generic buffered spriteram
|
||||
|
||||
/* video-related */
|
||||
tilemap *bg_tilemap, *fg_tilemap;
|
||||
|
@ -12,8 +12,8 @@ struct _goal92_state
|
||||
UINT16 * fg_data;
|
||||
UINT16 * tx_data;
|
||||
UINT16 * scrollram;
|
||||
// UINT16 * paletteram; // this currently use generic palette handling
|
||||
// UINT16 * spriteram; // this currently use generic buffered spriteram
|
||||
// UINT16 * paletteram; // this currently use generic palette handling
|
||||
// UINT16 * spriteram; // this currently use generic buffered spriteram
|
||||
|
||||
/* video-related */
|
||||
tilemap *bg_layer, *fg_layer, *tx_layer;
|
||||
|
@ -11,7 +11,7 @@ struct _gotcha_state
|
||||
UINT16 * fgvideoram;
|
||||
UINT16 * bgvideoram;
|
||||
UINT16 * spriteram;
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
size_t spriteram_size;
|
||||
|
||||
/* video-related */
|
||||
|
@ -10,7 +10,7 @@ struct _gumbo_state
|
||||
/* memory pointers */
|
||||
UINT16 * bg_videoram;
|
||||
UINT16 * fg_videoram;
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
|
||||
/* video-related */
|
||||
tilemap *bg_tilemap;
|
||||
|
@ -10,7 +10,7 @@ struct _himesiki_state
|
||||
/* memory pointers */
|
||||
UINT8 * bg_ram;
|
||||
UINT8 * spriteram;
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
|
||||
/* video-related */
|
||||
tilemap *bg_tilemap;
|
||||
|
@ -8,7 +8,7 @@ struct _inufuku_state
|
||||
UINT16 * tx_videoram;
|
||||
UINT16 * spriteram1;
|
||||
UINT16 * spriteram2;
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
size_t spriteram1_size;
|
||||
|
||||
/* video-related */
|
||||
|
@ -11,7 +11,7 @@ struct _jack_state
|
||||
UINT8 * videoram;
|
||||
UINT8 * colorram;
|
||||
UINT8 * spriteram;
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
size_t spriteram_size;
|
||||
|
||||
/* video-related */
|
||||
|
@ -1,6 +1,6 @@
|
||||
/***************************************************************************
|
||||
|
||||
Jailbreak
|
||||
Jailbreak
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
@ -11,7 +11,7 @@ struct _karnov_state
|
||||
UINT16 * videoram;
|
||||
UINT16 * ram;
|
||||
UINT16 * pf_data;
|
||||
// UINT16 * spriteram; // currently this uses generic buffered spriteram
|
||||
// UINT16 * spriteram; // currently this uses generic buffered spriteram
|
||||
|
||||
/* video-related */
|
||||
bitmap_t *bitmap_f;
|
||||
@ -30,13 +30,13 @@ struct _karnov_state
|
||||
const device_config *audiocpu;
|
||||
};
|
||||
|
||||
enum {
|
||||
KARNOV = 0,
|
||||
KARNOVJ,
|
||||
CHELNOV,
|
||||
CHELNOVJ,
|
||||
CHELNOVW,
|
||||
WNDRPLNT
|
||||
enum {
|
||||
KARNOV = 0,
|
||||
KARNOVJ,
|
||||
CHELNOV,
|
||||
CHELNOVJ,
|
||||
CHELNOVW,
|
||||
WNDRPLNT
|
||||
};
|
||||
|
||||
|
||||
|
@ -13,7 +13,7 @@ struct _kickgoal_state
|
||||
UINT16 * bg2ram;
|
||||
UINT16 * scrram;
|
||||
UINT16 * spriteram;
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||
size_t spriteram_size;
|
||||
|
||||
/* video-related */
|
||||
|
@ -11,8 +11,8 @@ struct _ladyfrog_state
|
||||
UINT8 * videoram;
|
||||
UINT8 * spriteram;
|
||||
UINT8 * scrlram;
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
// UINT8 * paletteram2; // currently this uses generic palette handling
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
// UINT8 * paletteram2; // currently this uses generic palette handling
|
||||
size_t videoram_size;
|
||||
|
||||
/* video-related */
|
||||
|
@ -11,7 +11,7 @@ struct _lastduel_state
|
||||
UINT16 * vram;
|
||||
UINT16 * scroll1;
|
||||
UINT16 * scroll2;
|
||||
// UINT16 * spriteram; // this currently uses generic buffered spriteram
|
||||
// UINT16 * spriteram; // this currently uses generic buffered spriteram
|
||||
UINT16 * paletteram;
|
||||
|
||||
/* video-related */
|
||||
|
@ -8,8 +8,8 @@ struct _lemmings_state
|
||||
UINT16 * vram_data;
|
||||
UINT16 * control_data;
|
||||
UINT16 * paletteram;
|
||||
// UINT16 * spriteram; // this currently uses generic buffered spriteram
|
||||
// UINT16 * spriteram2; // this currently uses generic buffered spriteram
|
||||
// UINT16 * spriteram; // this currently uses generic buffered spriteram
|
||||
// UINT16 * spriteram2; // this currently uses generic buffered spriteram
|
||||
|
||||
/* video-related */
|
||||
bitmap_t *bitmap0;
|
||||
|
@ -6,9 +6,9 @@ struct _lwings_state
|
||||
UINT8 * fgvideoram;
|
||||
UINT8 * bg1videoram;
|
||||
UINT8 * soundlatch2;
|
||||
// UINT8 * spriteram; // currently this uses generic buffered spriteram
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
// UINT8 * paletteram2; // currently this uses generic palette handling
|
||||
// UINT8 * spriteram; // currently this uses generic buffered spriteram
|
||||
// UINT8 * paletteram; // currently this uses generic palette handling
|
||||
// UINT8 * paletteram2; // currently this uses generic palette handling
|
||||
|
||||
/* video-related */
|
||||
tilemap *fg_tilemap, *bg1_tilemap, *bg2_tilemap;
|
||||
|
@ -32,7 +32,7 @@ struct _timeplt_state
|
||||
UINT8 * radarattr; // jungler
|
||||
UINT8 * radarx; // jungler
|
||||
UINT8 * radary; // jungler
|
||||
// UINT8 * namco_soundregs; // rallyx - these are dealt with in emu/sound/namco.c
|
||||
// UINT8 * namco_soundregs; // rallyx - these are dealt with in emu/sound/namco.c
|
||||
size_t videoram_size; // tutankham, junofrst
|
||||
size_t spriteram_size; // rocnrope
|
||||
|
||||
|
@ -18,7 +18,7 @@ struct _trackfld_state
|
||||
UINT8 * scroll2; // trackfld
|
||||
UINT8 * spriteram;
|
||||
UINT8 * spriteram2;
|
||||
// UINT8 * nvram; // currently this uses generic nvram handling (trackfld & hyperspt)
|
||||
// UINT8 * nvram; // currently this uses generic nvram handling (trackfld & hyperspt)
|
||||
size_t spriteram_size;
|
||||
UINT8 * palettebank; // sbasketb
|
||||
UINT8 * spriteram_select; // sbasketb
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*************************************************************************
|
||||
|
||||
Yun Sung 8 Bit Games
|
||||
Yun Sung 8 Bit Games
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
|
@ -66,7 +66,7 @@ WRITE8_HANDLER( buggychl_68705_port_b_w )
|
||||
if ((state->ddr_b & 0x02) && (~data & 0x02) && (state->port_b_out & 0x02))
|
||||
{
|
||||
state->port_a_in = state->from_main;
|
||||
if (state->main_sent)
|
||||
if (state->main_sent)
|
||||
cpu_set_input_line(state->mcu, 0, CLEAR_LINE);
|
||||
state->main_sent = 0;
|
||||
logerror("read command %02x from main cpu\n", state->port_a_in);
|
||||
@ -101,9 +101,9 @@ READ8_HANDLER( buggychl_68705_port_c_r )
|
||||
{
|
||||
buggychl_state *state = (buggychl_state *)space->machine->driver_data;
|
||||
state->port_c_in = 0;
|
||||
if (state->main_sent)
|
||||
if (state->main_sent)
|
||||
state->port_c_in |= 0x01;
|
||||
if (!state->mcu_sent)
|
||||
if (!state->mcu_sent)
|
||||
state->port_c_in |= 0x02;
|
||||
logerror("%04x: 68705 port C read %02x\n", cpu_get_pc(space->cpu), state->port_c_in);
|
||||
return (state->port_c_out & state->ddr_c) | (state->port_c_in & ~state->ddr_c);
|
||||
@ -148,9 +148,9 @@ READ8_HANDLER( buggychl_mcu_status_r )
|
||||
/* bit 0 = when 1, mcu is ready to receive data from main cpu */
|
||||
/* bit 1 = when 1, mcu has sent data to the main cpu */
|
||||
//logerror("%04x: mcu_status_r\n",cpu_get_pc(space->cpu));
|
||||
if (!state->main_sent)
|
||||
if (!state->main_sent)
|
||||
res |= 0x01;
|
||||
if (state->mcu_sent)
|
||||
if (state->mcu_sent)
|
||||
res |= 0x02;
|
||||
|
||||
return res;
|
||||
|
@ -282,7 +282,7 @@ MACHINE_RESET( vsdual )
|
||||
MACHINE_START( vsnes )
|
||||
{
|
||||
const address_space *ppu1_space = cpu_get_address_space(cputag_get_cpu(machine, "ppu1"), ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
|
||||
/* establish nametable ram */
|
||||
nt_ram[0] = auto_alloc_array(machine, UINT8, 0x1000);
|
||||
/* set mirroring */
|
||||
|
@ -371,18 +371,18 @@ static void aerofgt_draw_sprites( running_machine *machine, bitmap_t *bitmap, co
|
||||
{
|
||||
int sx, sy;
|
||||
|
||||
if (flipy)
|
||||
if (flipy)
|
||||
sy = ((oy + zoomy * (ysize - y)/2 + 16) & 0x1ff) - 16;
|
||||
else
|
||||
else
|
||||
sy = ((oy + zoomy * y / 2 + 16) & 0x1ff) - 16;
|
||||
|
||||
for (x = 0; x <= xsize; x++)
|
||||
{
|
||||
int code;
|
||||
|
||||
if (flipx)
|
||||
if (flipx)
|
||||
sx = ((ox + zoomx * (xsize - x) / 2 + 16) & 0x1ff) - 16;
|
||||
else
|
||||
else
|
||||
sx = ((ox + zoomx * x / 2 + 16) & 0x1ff) - 16;
|
||||
|
||||
if (map_start < 0x2000)
|
||||
@ -418,15 +418,15 @@ static void turbofrc_draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
// some other drivers still use this wrong table, they have to be upgraded
|
||||
// int zoomtable[16] = { 0,7,14,20,25,30,34,38,42,46,49,52,54,57,59,61 };
|
||||
|
||||
if (!(state->spriteram3[attr_start + 2] & 0x0080))
|
||||
if (!(state->spriteram3[attr_start + 2] & 0x0080))
|
||||
continue;
|
||||
|
||||
pri = state->spriteram3[attr_start + 2] & 0x0010;
|
||||
|
||||
if ( chip_disabled_pri & !pri)
|
||||
if ( chip_disabled_pri & !pri)
|
||||
continue;
|
||||
|
||||
if ((!chip_disabled_pri) & (pri >> 4))
|
||||
if ((!chip_disabled_pri) & (pri >> 4))
|
||||
continue;
|
||||
|
||||
ox = state->spriteram3[attr_start + 1] & 0x01ff;
|
||||
@ -452,18 +452,18 @@ static void turbofrc_draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
{
|
||||
int sx, sy;
|
||||
|
||||
if (flipy)
|
||||
if (flipy)
|
||||
sy = ((oy + zoomy * (ysize - y)/2 + 16) & 0x1ff) - 16;
|
||||
else
|
||||
else
|
||||
sy = ((oy + zoomy * y / 2 + 16) & 0x1ff) - 16;
|
||||
|
||||
for (x = 0; x <= xsize; x++)
|
||||
{
|
||||
int code;
|
||||
|
||||
if (flipx)
|
||||
if (flipx)
|
||||
sx = ((ox + zoomx * (xsize - x) / 2 + 16) & 0x1ff) - 16;
|
||||
else
|
||||
else
|
||||
sx = ((ox + zoomx * x / 2 + 16) & 0x1ff) - 16;
|
||||
|
||||
if (chip == 0)
|
||||
@ -503,14 +503,14 @@ static void spinlbrk_draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
// some other drivers still use this wrong table, they have to be upgraded
|
||||
// int zoomtable[16] = { 0,7,14,20,25,30,34,38,42,46,49,52,54,57,59,61 };
|
||||
|
||||
if (!(state->spriteram3[attr_start + 2] & 0x0080))
|
||||
if (!(state->spriteram3[attr_start + 2] & 0x0080))
|
||||
continue;
|
||||
|
||||
pri = state->spriteram3[attr_start + 2] & 0x0010;
|
||||
|
||||
if ( chip_disabled_pri & !pri)
|
||||
if ( chip_disabled_pri & !pri)
|
||||
continue;
|
||||
if ((!chip_disabled_pri) & (pri >> 4))
|
||||
if ((!chip_disabled_pri) & (pri >> 4))
|
||||
continue;
|
||||
|
||||
ox = state->spriteram3[attr_start + 1] & 0x01ff;
|
||||
@ -536,18 +536,18 @@ static void spinlbrk_draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
{
|
||||
int sx, sy;
|
||||
|
||||
if (flipy)
|
||||
if (flipy)
|
||||
sy = ((oy + zoomy * (ysize - y)/2 + 16) & 0x1ff) - 16;
|
||||
else
|
||||
else
|
||||
sy = ((oy + zoomy * y / 2 + 16) & 0x1ff) - 16;
|
||||
|
||||
for (x = 0; x <= xsize; x++)
|
||||
{
|
||||
int code;
|
||||
|
||||
if (flipx)
|
||||
if (flipx)
|
||||
sx = ((ox + zoomx * (xsize - x) / 2 + 16) & 0x1ff) - 16;
|
||||
else
|
||||
else
|
||||
sx = ((ox + zoomx * x / 2 + 16) & 0x1ff) - 16;
|
||||
|
||||
if (chip == 0)
|
||||
@ -589,14 +589,14 @@ static void aerfboo2_draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
// some other drivers still use this wrong table, they have to be upgraded
|
||||
// int zoomtable[16] = { 0,7,14,20,25,30,34,38,42,46,49,52,54,57,59,61 };
|
||||
|
||||
if (!(state->spriteram3[attr_start + 2] & 0x0080))
|
||||
if (!(state->spriteram3[attr_start + 2] & 0x0080))
|
||||
continue;
|
||||
|
||||
pri = state->spriteram3[attr_start + 2] & 0x0010;
|
||||
|
||||
if ( chip_disabled_pri & !pri)
|
||||
if ( chip_disabled_pri & !pri)
|
||||
continue;
|
||||
if ((!chip_disabled_pri) & (pri >> 4))
|
||||
if ((!chip_disabled_pri) & (pri >> 4))
|
||||
continue;
|
||||
ox = state->spriteram3[attr_start + 1] & 0x01ff;
|
||||
xsize = (state->spriteram3[attr_start + 2] & 0x0700) >> 8;
|
||||
@ -621,18 +621,18 @@ static void aerfboo2_draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
{
|
||||
int sx, sy;
|
||||
|
||||
if (flipy)
|
||||
if (flipy)
|
||||
sy = ((oy + zoomy * (ysize - y)/2 + 16) & 0x1ff) - 16;
|
||||
else
|
||||
else
|
||||
sy = ((oy + zoomy * y / 2 + 16) & 0x1ff) - 16;
|
||||
|
||||
for (x = 0; x <= xsize; x++)
|
||||
{
|
||||
int code;
|
||||
|
||||
if (flipx)
|
||||
if (flipx)
|
||||
sx = ((ox + zoomx * (xsize - x) / 2 + 16) & 0x1ff) - 16;
|
||||
else
|
||||
else
|
||||
sx = ((ox + zoomx * x / 2 + 16) & 0x1ff) - 16;
|
||||
|
||||
if (chip == 0)
|
||||
@ -667,7 +667,7 @@ static void pspikesb_draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
{
|
||||
int xpos, ypos, color, flipx, flipy, code;
|
||||
|
||||
if (state->spriteram3[i + 3 - 4] & 0x8000)
|
||||
if (state->spriteram3[i + 3 - 4] & 0x8000)
|
||||
break;
|
||||
|
||||
xpos = (state->spriteram3[i + 2] & 0x1ff) - 34;
|
||||
@ -707,7 +707,7 @@ static void spikes91_draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
|
||||
code = state->spriteram3[i + 0] & 0x1fff;
|
||||
|
||||
if (!code)
|
||||
if (!code)
|
||||
continue;
|
||||
|
||||
xpos = (state->spriteram3[i + 2] & 0x01ff) - 16;
|
||||
@ -758,7 +758,7 @@ static void aerfboot_draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
pri = state->spriteram3[attr_start + 2] & 0x0010;
|
||||
code = state->spriteram3[attr_start + 3] & 0x1fff;
|
||||
|
||||
if (!(state->spriteram3[attr_start + 2] & 0x0040))
|
||||
if (!(state->spriteram3[attr_start + 2] & 0x0040))
|
||||
code |= 0x2000;
|
||||
|
||||
zoomx = 32 + zoomx;
|
||||
@ -796,7 +796,7 @@ static void aerfboot_draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
pri = state->spriteram3[attr_start + 2] & 0x0010;
|
||||
code = state->spriteram3[attr_start + 3] & 0x1fff;
|
||||
|
||||
if (!(state->spriteram3[attr_start + 2] & 0x0040))
|
||||
if (!(state->spriteram3[attr_start + 2] & 0x0040))
|
||||
code |= 0x2000;
|
||||
|
||||
zoomx = 32 + zoomx;
|
||||
|
@ -87,16 +87,16 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
||||
mx = spriteram[offs + 2 + (j << 1)] << 1 | my >> 15;
|
||||
my = -my & 0x1ff;
|
||||
mx = ((mx + 0x100) & 0x1ff) - 0x100;
|
||||
if (j == 0 && s == 0x7c0)
|
||||
if (j == 0 && s == 0x7c0)
|
||||
my++;
|
||||
//ZT
|
||||
if (state->flipscreen)
|
||||
if (state->flipscreen)
|
||||
{
|
||||
mx = 240 - mx;
|
||||
my = 240 - my;
|
||||
}
|
||||
|
||||
for (i = 0; i < 0x40; i += 2)
|
||||
for (i = 0; i < 0x40; i += 2)
|
||||
{
|
||||
tile = spriteram[offs + 1 + i + (0x800 * j) + 0x800];
|
||||
color = spriteram[offs + i + (0x800 * j) + 0x800] & 0x7f;
|
||||
@ -105,7 +105,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
||||
fx = tile & 0x4000;
|
||||
tile &= 0x3fff;
|
||||
|
||||
if (state->flipscreen)
|
||||
if (state->flipscreen)
|
||||
{
|
||||
if (fx) fx = 0; else fx = 1;
|
||||
if (fy) fy = 0; else fy = 1;
|
||||
@ -172,7 +172,7 @@ VIDEO_UPDATE( alpha68k_II )
|
||||
WRITE16_HANDLER( alpha68k_II_video_bank_w )
|
||||
{
|
||||
alpha68k_state *state = (alpha68k_state *)space->machine->driver_data;
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x10: /* Reset */
|
||||
state->bank_base = state->buffer_28 = state->buffer_60 = state->buffer_68 = 0;
|
||||
@ -211,7 +211,7 @@ WRITE16_HANDLER( alpha68k_II_video_bank_w )
|
||||
|
||||
WRITE16_HANDLER( alpha68k_V_video_control_w )
|
||||
{
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x08: /* Graphics flags? Not related to fix chars anyway */
|
||||
case 0x0c:
|
||||
@ -234,16 +234,16 @@ static void draw_sprites_V( running_machine *machine, bitmap_t *bitmap, const re
|
||||
mx = spriteram[offs + 2 + (j << 1)] << 1 | my >> 15;
|
||||
my = -my & 0x1ff;
|
||||
mx = ((mx + 0x100) & 0x1ff) - 0x100;
|
||||
if (j == 0 && s == 0x7c0)
|
||||
if (j == 0 && s == 0x7c0)
|
||||
my++;
|
||||
//ZT
|
||||
if (state->flipscreen)
|
||||
if (state->flipscreen)
|
||||
{
|
||||
mx = 240 - mx;
|
||||
my = 240 - my;
|
||||
}
|
||||
|
||||
for (i = 0; i < 0x40; i += 2)
|
||||
for (i = 0; i < 0x40; i += 2)
|
||||
{
|
||||
tile = spriteram[offs + 1 + i + (0x800 * j) + 0x800];
|
||||
color = spriteram[offs + i + (0x800 * j) + 0x800] & 0xff;
|
||||
@ -251,10 +251,10 @@ static void draw_sprites_V( running_machine *machine, bitmap_t *bitmap, const re
|
||||
fx = tile & fx_mask;
|
||||
fy = tile & fy_mask;
|
||||
tile = tile & sprite_mask;
|
||||
if (tile > 0x4fff)
|
||||
if (tile > 0x4fff)
|
||||
continue;
|
||||
|
||||
if (state->flipscreen)
|
||||
if (state->flipscreen)
|
||||
{
|
||||
if (fx) fx = 0; else fx = 1;
|
||||
if (fy) fy = 0; else fy = 1;
|
||||
@ -294,11 +294,11 @@ VIDEO_UPDATE( alpha68k_V )
|
||||
draw_sprites_V(screen->machine, bitmap, cliprect, 0, 0x07c0, 0x0800, 0, 0x8000, 0x7fff);
|
||||
draw_sprites_V(screen->machine, bitmap, cliprect, 1, 0x0000, 0x0800, 0, 0x8000, 0x7fff);
|
||||
//AT: *KLUDGE* fixes priest priority in level 1(could be a game bug)
|
||||
if (spriteram[0x1bde] == 0x24 && (spriteram[0x1bdf] >> 8) == 0x3b)
|
||||
if (spriteram[0x1bde] == 0x24 && (spriteram[0x1bdf] >> 8) == 0x3b)
|
||||
{
|
||||
draw_sprites_V(screen->machine, bitmap, cliprect, 2, 0x03c0, 0x0800, 0, 0x8000, 0x7fff);
|
||||
draw_sprites_V(screen->machine, bitmap, cliprect, 2, 0x0000, 0x03c0, 0, 0x8000, 0x7fff);
|
||||
}
|
||||
}
|
||||
else
|
||||
draw_sprites_V(screen->machine, bitmap, cliprect, 2, 0x0000, 0x0800, 0, 0x8000, 0x7fff);
|
||||
|
||||
@ -463,7 +463,7 @@ static void kyros_draw_sprites( running_machine *machine, bitmap_t *bitmap, cons
|
||||
my = -(mx >> 8) & 0xff;
|
||||
mx &= 0xff;
|
||||
|
||||
if (state->flipscreen)
|
||||
if (state->flipscreen)
|
||||
my = 249 - my;
|
||||
|
||||
for (i = 0; i < 0x20; i++)
|
||||
@ -527,10 +527,10 @@ static void sstingry_draw_sprites( running_machine *machine, bitmap_t *bitmap, c
|
||||
mx = spriteram[offs + c];
|
||||
my = -(mx >> 8) & 0xff;
|
||||
mx &= 0xff;
|
||||
if (mx > 0xf8)
|
||||
if (mx > 0xf8)
|
||||
mx -= 0x100;
|
||||
|
||||
if (state->flipscreen)
|
||||
if (state->flipscreen)
|
||||
my = 249 - my;
|
||||
|
||||
for (i = 0; i < 0x20; i++)
|
||||
|
@ -122,9 +122,9 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
||||
|
||||
if (flip_screen_get(machine))
|
||||
{
|
||||
x = max_x - x - 8;
|
||||
x = max_x - x - 8;
|
||||
y = max_y - y - 8;
|
||||
flipx = !flipx;
|
||||
flipx = !flipx;
|
||||
flipy = !flipy;
|
||||
}
|
||||
|
||||
|
@ -129,7 +129,7 @@ VIDEO_START( atarig42 )
|
||||
WRITE16_HANDLER( atarig42_mo_control_w )
|
||||
{
|
||||
atarig42_state *state = (atarig42_state *)space->machine->driver_data;
|
||||
|
||||
|
||||
logerror("MOCONT = %d (scan = %d)\n", data, video_screen_get_vpos(space->machine->primary_screen));
|
||||
|
||||
/* set the control value */
|
||||
|
@ -103,9 +103,9 @@ static void draw_bg( running_machine *machine, bitmap_t *bitmap, const rectangle
|
||||
int sx = offs % 32;
|
||||
int sy = offs / 32;
|
||||
|
||||
if (flip_screen_x_get(machine))
|
||||
if (flip_screen_x_get(machine))
|
||||
sx = 31 - sx;
|
||||
if (flip_screen_y_get(machine))
|
||||
if (flip_screen_y_get(machine))
|
||||
sy = 31 - sy;
|
||||
|
||||
drawgfx_opaque(state->tmp_bitmap1, NULL, machine->gfx[0],
|
||||
@ -145,9 +145,9 @@ static void draw_fg( running_machine *machine, bitmap_t *bitmap, const rectangle
|
||||
|
||||
int code = state->videoram[offs];
|
||||
|
||||
if (flipx)
|
||||
if (flipx)
|
||||
sx = 31 - sx;
|
||||
if (flipy)
|
||||
if (flipy)
|
||||
sy = 31 - sy;
|
||||
|
||||
drawgfx_transpen(bitmap,cliprect,machine->gfx[0],
|
||||
@ -195,7 +195,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
||||
|
||||
charline = zoomy_rom[y] & 0x07;
|
||||
base_pos = zoomy_rom[y] & 0x38;
|
||||
if (flipy)
|
||||
if (flipy)
|
||||
base_pos ^= 0x38;
|
||||
|
||||
px = 0;
|
||||
|
@ -189,7 +189,7 @@ WRITE16_HANDLER( fromanc2_videoram_3_w ) { fromanc2_dispvram_w(space->machine, o
|
||||
WRITE16_HANDLER( fromanc2_gfxreg_0_w )
|
||||
{
|
||||
fromanc2_state *state = (fromanc2_state *)space->machine->driver_data;
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00: state->scrollx[0][0] = -(data - 0x000); break;
|
||||
case 0x01: state->scrolly[0][0] = -(data - 0x000); break;
|
||||
@ -203,7 +203,7 @@ WRITE16_HANDLER( fromanc2_gfxreg_0_w )
|
||||
WRITE16_HANDLER( fromanc2_gfxreg_1_w )
|
||||
{
|
||||
fromanc2_state *state = (fromanc2_state *)space->machine->driver_data;
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00: state->scrollx[1][0] = -(data - 0x1be); break;
|
||||
case 0x01: state->scrolly[1][0] = -(data - 0x1ef); break;
|
||||
@ -217,7 +217,7 @@ WRITE16_HANDLER( fromanc2_gfxreg_1_w )
|
||||
WRITE16_HANDLER( fromanc2_gfxreg_2_w )
|
||||
{
|
||||
fromanc2_state *state = (fromanc2_state *)space->machine->driver_data;
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00: state->scrollx[0][2] = -(data - 0x1c0); break;
|
||||
case 0x01: state->scrolly[0][2] = -(data - 0x1ef); break;
|
||||
@ -231,7 +231,7 @@ WRITE16_HANDLER( fromanc2_gfxreg_2_w )
|
||||
WRITE16_HANDLER( fromanc2_gfxreg_3_w )
|
||||
{
|
||||
fromanc2_state *state = (fromanc2_state *)space->machine->driver_data;
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00: state->scrollx[1][2] = -(data - 0x1bf); break;
|
||||
case 0x01: state->scrolly[1][2] = -(data - 0x1ef); break;
|
||||
@ -285,7 +285,7 @@ WRITE16_HANDLER( fromancr_videoram_2_w ) { fromancr_vram_w(space->machine, offse
|
||||
WRITE16_HANDLER( fromancr_gfxreg_0_w )
|
||||
{
|
||||
fromanc2_state *state = (fromanc2_state *)space->machine->driver_data;
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00: state->scrollx[0][0] = -(data - 0x1bf); break;
|
||||
case 0x01: state->scrolly[0][0] = -(data - 0x1ef); break;
|
||||
@ -299,7 +299,7 @@ WRITE16_HANDLER( fromancr_gfxreg_0_w )
|
||||
WRITE16_HANDLER( fromancr_gfxreg_1_w )
|
||||
{
|
||||
fromanc2_state *state = (fromanc2_state *)space->machine->driver_data;
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00: state->scrollx[0][1] = -(data - 0x000); break;
|
||||
case 0x01: state->scrolly[0][1] = -(data - 0x000); break;
|
||||
@ -341,7 +341,7 @@ WRITE16_HANDLER( fromanc4_videoram_2_w ) { fromanc4_vram_w(space->machine, offse
|
||||
WRITE16_HANDLER( fromanc4_gfxreg_0_w )
|
||||
{
|
||||
fromanc2_state *state = (fromanc2_state *)space->machine->driver_data;
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00: state->scrollx[0][2] = -(data - 0xfbb); break;
|
||||
case 0x01: state->scrolly[0][2] = -(data - 0x1e4); break;
|
||||
@ -360,7 +360,7 @@ WRITE16_HANDLER( fromanc4_gfxreg_0_w )
|
||||
WRITE16_HANDLER( fromanc4_gfxreg_1_w )
|
||||
{
|
||||
fromanc2_state *state = (fromanc2_state *)space->machine->driver_data;
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00: state->scrollx[0][1] = -(data - 0xfba); break;
|
||||
case 0x01: state->scrolly[0][1] = -(data - 0x1e4); break;
|
||||
@ -379,7 +379,7 @@ WRITE16_HANDLER( fromanc4_gfxreg_1_w )
|
||||
WRITE16_HANDLER( fromanc4_gfxreg_2_w )
|
||||
{
|
||||
fromanc2_state *state = (fromanc2_state *)space->machine->driver_data;
|
||||
switch (offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00: state->scrollx[0][0] = -(data - 0xfbb); break;
|
||||
case 0x01: state->scrolly[0][0] = -(data - 0x1e4); break;
|
||||
|
@ -341,9 +341,9 @@ static void draw_sprites( const device_config *screen, bitmap_t *bitmap, const r
|
||||
yzoom = 16 - zoomtable[yzoom] / 8;
|
||||
|
||||
/* wrap around */
|
||||
if (x > visarea->max_x)
|
||||
if (x > visarea->max_x)
|
||||
x -= 0x200;
|
||||
if (y > visarea->max_y)
|
||||
if (y > visarea->max_y)
|
||||
y -= 0x200;
|
||||
|
||||
/* flip ? */
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user