mirror of
https://github.com/holub/mame
synced 2025-06-23 12:58:37 +03:00
Cleanups and version bump.
This commit is contained in:
parent
f6c832ea90
commit
aebc07a897
@ -195,7 +195,7 @@ error:
|
|||||||
/* free our options and exit */
|
/* free our options and exit */
|
||||||
if (options != NULL)
|
if (options != NULL)
|
||||||
options_free(options);
|
options_free(options);
|
||||||
|
|
||||||
/* report any unfreed memory */
|
/* report any unfreed memory */
|
||||||
dump_unfreed_mem();
|
dump_unfreed_mem();
|
||||||
return result;
|
return result;
|
||||||
|
@ -665,7 +665,7 @@
|
|||||||
P |= F_T | F_B; \
|
P |= F_T | F_B; \
|
||||||
if( (cpustate->irq_state != CLEAR_LINE) && !(P & F_I) ) \
|
if( (cpustate->irq_state != CLEAR_LINE) && !(P & F_I) ) \
|
||||||
{ \
|
{ \
|
||||||
LOG(("M6502 '%s' RTI sets after_cli\n",cpustate->device->tag.cstr())); \
|
LOG(("M6502 '%s' RTI sets after_cli\n",cpustate->device->tag.cstr())); \
|
||||||
cpustate->after_cli = 1; \
|
cpustate->after_cli = 1; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1977,7 +1977,7 @@ static void cfunc_rsp_stv(void *param)
|
|||||||
|
|
||||||
static int generate_swc2(rsp_state *rsp, drcuml_block *block, compiler_state *compiler, const opcode_desc *desc)
|
static int generate_swc2(rsp_state *rsp, drcuml_block *block, compiler_state *compiler, const opcode_desc *desc)
|
||||||
{
|
{
|
||||||
// int loopdest;
|
// int loopdest;
|
||||||
UINT32 op = desc->opptr.l[0];
|
UINT32 op = desc->opptr.l[0];
|
||||||
int dest = (op >> 16) & 0x1f;
|
int dest = (op >> 16) & 0x1f;
|
||||||
//int base = (op >> 21) & 0x1f;
|
//int base = (op >> 21) & 0x1f;
|
||||||
|
@ -827,11 +827,11 @@ static CPU_SET_INFO( unsp )
|
|||||||
unsp_set_irq_line(unsp, state - CPUINFO_INT_INPUT_STATE, (int)info->i);
|
unsp_set_irq_line(unsp, state - CPUINFO_INT_INPUT_STATE, (int)info->i);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CPUINFO_INT_REGISTER + UNSP_SP: UNSP_REG(SP) = info->i; break;
|
case CPUINFO_INT_REGISTER + UNSP_SP: UNSP_REG(SP) = info->i; break;
|
||||||
case CPUINFO_INT_REGISTER + UNSP_R1: UNSP_REG(R1) = info->i; break;
|
case CPUINFO_INT_REGISTER + UNSP_R1: UNSP_REG(R1) = info->i; break;
|
||||||
case CPUINFO_INT_REGISTER + UNSP_R2: UNSP_REG(R2) = info->i; break;
|
case CPUINFO_INT_REGISTER + UNSP_R2: UNSP_REG(R2) = info->i; break;
|
||||||
case CPUINFO_INT_REGISTER + UNSP_R3: UNSP_REG(R3) = info->i; break;
|
case CPUINFO_INT_REGISTER + UNSP_R3: UNSP_REG(R3) = info->i; break;
|
||||||
case CPUINFO_INT_REGISTER + UNSP_R4: UNSP_REG(R4) = info->i; break;
|
case CPUINFO_INT_REGISTER + UNSP_R4: UNSP_REG(R4) = info->i; break;
|
||||||
case CPUINFO_INT_REGISTER + UNSP_BP: UNSP_REG(BP) = info->i; break;
|
case CPUINFO_INT_REGISTER + UNSP_BP: UNSP_REG(BP) = info->i; break;
|
||||||
case CPUINFO_INT_REGISTER + UNSP_SR: UNSP_REG(SR) = info->i; break;
|
case CPUINFO_INT_REGISTER + UNSP_SR: UNSP_REG(SR) = info->i; break;
|
||||||
case CPUINFO_INT_PC: /* Intentional fallthrough */
|
case CPUINFO_INT_PC: /* Intentional fallthrough */
|
||||||
@ -841,7 +841,7 @@ static CPU_SET_INFO( unsp )
|
|||||||
break;
|
break;
|
||||||
case CPUINFO_INT_REGISTER + UNSP_IRQ: unsp->irq = info->i; break;
|
case CPUINFO_INT_REGISTER + UNSP_IRQ: unsp->irq = info->i; break;
|
||||||
case CPUINFO_INT_REGISTER + UNSP_FIQ: unsp->fiq = info->i; break;
|
case CPUINFO_INT_REGISTER + UNSP_FIQ: unsp->fiq = info->i; break;
|
||||||
case CPUINFO_INT_REGISTER + UNSP_SB: unsp->sb = info->i; break;
|
case CPUINFO_INT_REGISTER + UNSP_SB: unsp->sb = info->i; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -854,7 +854,7 @@ CPU_GET_INFO( unsp )
|
|||||||
case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(unsp_state); break;
|
case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(unsp_state); break;
|
||||||
case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
|
case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
|
||||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||||
case DEVINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
|
case DEVINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
|
||||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||||
@ -895,11 +895,11 @@ CPU_GET_INFO( unsp )
|
|||||||
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &unsp->icount; break;
|
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &unsp->icount; break;
|
||||||
|
|
||||||
/* --- the following bits of info are returned as NULL-terminated strings --- */
|
/* --- the following bits of info are returned as NULL-terminated strings --- */
|
||||||
case DEVINFO_STR_NAME: strcpy(info->s, "u'nSP"); break;
|
case DEVINFO_STR_NAME: strcpy(info->s, "u'nSP"); break;
|
||||||
case DEVINFO_STR_FAMILY: strcpy(info->s, "u'nSP"); break;
|
case DEVINFO_STR_FAMILY: strcpy(info->s, "u'nSP"); break;
|
||||||
case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
|
case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
|
||||||
case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
|
case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
|
||||||
case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
|
case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
|
||||||
|
|
||||||
case CPUINFO_STR_FLAGS: strcpy(info->s, " "); break;
|
case CPUINFO_STR_FLAGS: strcpy(info->s, " "); break;
|
||||||
|
|
||||||
|
@ -1978,7 +1978,7 @@ int symtable_add(symbol_table *table, const char *name, const symbol_entry *entr
|
|||||||
int strindex;
|
int strindex;
|
||||||
int all_digits, i;
|
int all_digits, i;
|
||||||
|
|
||||||
// assert_always(entry->table == table, "Mismatched symbol tables");
|
// assert_always(entry->table == table, "Mismatched symbol tables");
|
||||||
|
|
||||||
/* we cannot add numeric symbols */
|
/* we cannot add numeric symbols */
|
||||||
all_digits = TRUE;
|
all_digits = TRUE;
|
||||||
@ -1990,7 +1990,7 @@ int symtable_add(symbol_table *table, const char *name, const symbol_entry *entr
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// assert_always(!all_digits, "All-digit symbols are not allowed");
|
// assert_always(!all_digits, "All-digit symbols are not allowed");
|
||||||
|
|
||||||
/* see if we already have an entry and just overwrite it if we do */
|
/* see if we already have an entry and just overwrite it if we do */
|
||||||
oldentry = (symbol_entry *)symtable_find(table, name);
|
oldentry = (symbol_entry *)symtable_find(table, name);
|
||||||
|
@ -99,7 +99,7 @@ const region_info *device_config::subregion(const char *_tag) const
|
|||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
subdevice - return a pointer to the given
|
subdevice - return a pointer to the given
|
||||||
device that is owned by us
|
device that is owned by us
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -311,7 +311,7 @@ class device_config
|
|||||||
{
|
{
|
||||||
DISABLE_COPYING(device_config);
|
DISABLE_COPYING(device_config);
|
||||||
|
|
||||||
public: // private eventually
|
public: // private eventually
|
||||||
const address_space * addrspace[ADDRESS_SPACES]; /* auto-discovered address spaces */
|
const address_space * addrspace[ADDRESS_SPACES]; /* auto-discovered address spaces */
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -320,7 +320,7 @@ public:
|
|||||||
|
|
||||||
inline const address_space *space(int index = 0) const;
|
inline const address_space *space(int index = 0) const;
|
||||||
inline const address_space *space(device_space index) const;
|
inline const address_space *space(device_space index) const;
|
||||||
|
|
||||||
const region_info *subregion(const char *tag) const;
|
const region_info *subregion(const char *tag) const;
|
||||||
const device_config *subdevice(const char *tag) const;
|
const device_config *subdevice(const char *tag) const;
|
||||||
|
|
||||||
@ -357,7 +357,7 @@ public:
|
|||||||
struct device_list
|
struct device_list
|
||||||
{
|
{
|
||||||
device_config * head; /* head of the list */
|
device_config * head; /* head of the list */
|
||||||
tagmap_t<device_config *> map; /* map for fast lookups */
|
tagmap_t<device_config *> map; /* map for fast lookups */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
emu.h
|
emu.h
|
||||||
|
|
||||||
Core header file to be included by most files.
|
Core header file to be included by most files.
|
||||||
|
|
||||||
NOTE: The contents of this file are designed to meet the needs of
|
NOTE: The contents of this file are designed to meet the needs of
|
||||||
drivers and devices. In addition to this file, you will also need
|
drivers and devices. In addition to this file, you will also need
|
||||||
to include the headers of any CPUs or other devices that are required.
|
to include the headers of any CPUs or other devices that are required.
|
||||||
|
|
||||||
If you find yourself needing something outside of this file in a
|
If you find yourself needing something outside of this file in a
|
||||||
driver or device, think carefully about what you are doing.
|
driver or device, think carefully about what you are doing.
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ public:
|
|||||||
static bool lock_alloc; // set to true temporarily during lock allocation
|
static bool lock_alloc; // set to true temporarily during lock allocation
|
||||||
static memory_entry *hash[hash_prime];// hash table based on pointer
|
static memory_entry *hash[hash_prime];// hash table based on pointer
|
||||||
static memory_entry *freehead; // pointer to the head of the free list
|
static memory_entry *freehead; // pointer to the head of the free list
|
||||||
|
|
||||||
static memory_entry *allocate(size_t size, void *base, const char *file, int line);
|
static memory_entry *allocate(size_t size, void *base, const char *file, int line);
|
||||||
static memory_entry *find(void *ptr);
|
static memory_entry *find(void *ptr);
|
||||||
static void release(memory_entry *entry);
|
static void release(memory_entry *entry);
|
||||||
@ -133,7 +133,7 @@ void *malloc_file_line(size_t size, const char *file, int line)
|
|||||||
void *result = osd_malloc(size);
|
void *result = osd_malloc(size);
|
||||||
if (result == NULL)
|
if (result == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
#ifdef MAME_DEBUG
|
#ifdef MAME_DEBUG
|
||||||
// add a new entry
|
// add a new entry
|
||||||
memory_entry::allocate(size, result, file, line);
|
memory_entry::allocate(size, result, file, line);
|
||||||
@ -156,7 +156,7 @@ void free_file_line(void *memory, const char *file, int line)
|
|||||||
#ifdef MAME_DEBUG
|
#ifdef MAME_DEBUG
|
||||||
// find the memory entry
|
// find the memory entry
|
||||||
memory_entry *entry = memory_entry::find(memory);
|
memory_entry *entry = memory_entry::find(memory);
|
||||||
|
|
||||||
// warn about untracked frees
|
// warn about untracked frees
|
||||||
if (entry == NULL)
|
if (entry == NULL)
|
||||||
{
|
{
|
||||||
@ -164,7 +164,7 @@ void free_file_line(void *memory, const char *file, int line)
|
|||||||
osd_break_into_debugger("Error: attempt to free untracked memory");
|
osd_break_into_debugger("Error: attempt to free untracked memory");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// free the entry and the memory
|
// free the entry and the memory
|
||||||
if (entry != NULL)
|
if (entry != NULL)
|
||||||
memory_entry::release(entry);
|
memory_entry::release(entry);
|
||||||
@ -175,8 +175,8 @@ void free_file_line(void *memory, const char *file, int line)
|
|||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
dump_unfreed_mem - called from the exit path
|
dump_unfreed_mem - called from the exit path
|
||||||
of any code that wants to check for unfreed
|
of any code that wants to check for unfreed
|
||||||
memory
|
memory
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
@ -227,7 +227,7 @@ resource_pool::~resource_pool()
|
|||||||
void resource_pool::add(resource_pool_item &item)
|
void resource_pool::add(resource_pool_item &item)
|
||||||
{
|
{
|
||||||
osd_lock_acquire(listlock);
|
osd_lock_acquire(listlock);
|
||||||
|
|
||||||
// insert into hash table
|
// insert into hash table
|
||||||
int hashval = reinterpret_cast<FPTR>(item.ptr) % hash_prime;
|
int hashval = reinterpret_cast<FPTR>(item.ptr) % hash_prime;
|
||||||
item.next = hash[hashval];
|
item.next = hash[hashval];
|
||||||
@ -244,7 +244,7 @@ void resource_pool::add(resource_pool_item &item)
|
|||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
remove - remove a specific item from the
|
remove - remove a specific item from the
|
||||||
resource pool
|
resource pool
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
@ -253,7 +253,7 @@ void resource_pool::remove(void *ptr)
|
|||||||
// ignore NULLs
|
// ignore NULLs
|
||||||
if (ptr == NULL)
|
if (ptr == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// search for the item
|
// search for the item
|
||||||
osd_lock_acquire(listlock);
|
osd_lock_acquire(listlock);
|
||||||
|
|
||||||
@ -266,7 +266,7 @@ void resource_pool::remove(void *ptr)
|
|||||||
// remove from hash table
|
// remove from hash table
|
||||||
resource_pool_item *deleteme = *scanptr;
|
resource_pool_item *deleteme = *scanptr;
|
||||||
*scanptr = deleteme->next;
|
*scanptr = deleteme->next;
|
||||||
|
|
||||||
// remove from ordered list
|
// remove from ordered list
|
||||||
if (deleteme->ordered_prev != NULL)
|
if (deleteme->ordered_prev != NULL)
|
||||||
deleteme->ordered_prev->ordered_next = deleteme->ordered_next;
|
deleteme->ordered_prev->ordered_next = deleteme->ordered_next;
|
||||||
@ -274,7 +274,7 @@ void resource_pool::remove(void *ptr)
|
|||||||
ordered_head = deleteme->ordered_next;
|
ordered_head = deleteme->ordered_next;
|
||||||
if (deleteme->ordered_next != NULL)
|
if (deleteme->ordered_next != NULL)
|
||||||
deleteme->ordered_next->ordered_prev = deleteme->ordered_prev;
|
deleteme->ordered_next->ordered_prev = deleteme->ordered_prev;
|
||||||
|
|
||||||
// delete the object and break
|
// delete the object and break
|
||||||
delete deleteme;
|
delete deleteme;
|
||||||
break;
|
break;
|
||||||
@ -282,10 +282,10 @@ void resource_pool::remove(void *ptr)
|
|||||||
|
|
||||||
osd_lock_release(listlock);
|
osd_lock_release(listlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
find - find a specific item in the resource
|
find - find a specific item in the resource
|
||||||
pool
|
pool
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
@ -293,7 +293,7 @@ resource_pool_item *resource_pool::find(void *ptr)
|
|||||||
{
|
{
|
||||||
// search for the item
|
// search for the item
|
||||||
osd_lock_acquire(listlock);
|
osd_lock_acquire(listlock);
|
||||||
|
|
||||||
int hashval = reinterpret_cast<FPTR>(ptr) % hash_prime;
|
int hashval = reinterpret_cast<FPTR>(ptr) % hash_prime;
|
||||||
resource_pool_item *item;
|
resource_pool_item *item;
|
||||||
for (item = hash[hashval]; item != NULL; item = item->next)
|
for (item = hash[hashval]; item != NULL; item = item->next)
|
||||||
@ -310,7 +310,7 @@ resource_pool_item *resource_pool::find(void *ptr)
|
|||||||
contains - return true if given ptr is
|
contains - return true if given ptr is
|
||||||
contained by one of the objects in the pool
|
contained by one of the objects in the pool
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
bool resource_pool::contains(void *_ptrstart, void *_ptrend)
|
bool resource_pool::contains(void *_ptrstart, void *_ptrend)
|
||||||
{
|
{
|
||||||
UINT8 *ptrstart = reinterpret_cast<UINT8 *>(_ptrstart);
|
UINT8 *ptrstart = reinterpret_cast<UINT8 *>(_ptrstart);
|
||||||
@ -342,7 +342,7 @@ found:
|
|||||||
void resource_pool::clear()
|
void resource_pool::clear()
|
||||||
{
|
{
|
||||||
osd_lock_acquire(listlock);
|
osd_lock_acquire(listlock);
|
||||||
|
|
||||||
// important: delete in reverse order of adding
|
// important: delete in reverse order of adding
|
||||||
while (ordered_head != NULL)
|
while (ordered_head != NULL)
|
||||||
remove(ordered_head->ptr);
|
remove(ordered_head->ptr);
|
||||||
@ -395,7 +395,7 @@ memory_entry *memory_entry::allocate(size_t size, void *base, const char *file,
|
|||||||
{
|
{
|
||||||
acquire_lock();
|
acquire_lock();
|
||||||
|
|
||||||
// if we're out of free entries, allocate a new chunk
|
// if we're out of free entries, allocate a new chunk
|
||||||
if (freehead == NULL)
|
if (freehead == NULL)
|
||||||
{
|
{
|
||||||
// create a new chunk, and fail if we can't
|
// create a new chunk, and fail if we can't
|
||||||
@ -413,18 +413,18 @@ memory_entry *memory_entry::allocate(size_t size, void *base, const char *file,
|
|||||||
freehead = entry++;
|
freehead = entry++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// grab a free entry
|
// grab a free entry
|
||||||
memory_entry *entry = freehead;
|
memory_entry *entry = freehead;
|
||||||
freehead = entry->next;
|
freehead = entry->next;
|
||||||
|
|
||||||
// populate it
|
// populate it
|
||||||
entry->size = size;
|
entry->size = size;
|
||||||
entry->base = base;
|
entry->base = base;
|
||||||
entry->file = file;
|
entry->file = file;
|
||||||
entry->line = line;
|
entry->line = line;
|
||||||
entry->id = curid++;
|
entry->id = curid++;
|
||||||
|
|
||||||
// add it to the alloc list
|
// add it to the alloc list
|
||||||
int hashval = reinterpret_cast<FPTR>(base) % hash_prime;
|
int hashval = reinterpret_cast<FPTR>(base) % hash_prime;
|
||||||
entry->next = hash[hashval];
|
entry->next = hash[hashval];
|
||||||
@ -432,7 +432,7 @@ memory_entry *memory_entry::allocate(size_t size, void *base, const char *file,
|
|||||||
entry->next->prev = entry;
|
entry->next->prev = entry;
|
||||||
entry->prev = NULL;
|
entry->prev = NULL;
|
||||||
hash[hashval] = entry;
|
hash[hashval] = entry;
|
||||||
|
|
||||||
release_lock();
|
release_lock();
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
@ -447,10 +447,10 @@ memory_entry *memory_entry::find(void *ptr)
|
|||||||
// NULL maps to nothing
|
// NULL maps to nothing
|
||||||
if (ptr == NULL)
|
if (ptr == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
// scan the list under the lock
|
// scan the list under the lock
|
||||||
acquire_lock();
|
acquire_lock();
|
||||||
|
|
||||||
int hashval = reinterpret_cast<FPTR>(ptr) % hash_prime;
|
int hashval = reinterpret_cast<FPTR>(ptr) % hash_prime;
|
||||||
memory_entry *entry;
|
memory_entry *entry;
|
||||||
for (entry = hash[hashval]; entry != NULL; entry = entry->next)
|
for (entry = hash[hashval]; entry != NULL; entry = entry->next)
|
||||||
|
@ -60,7 +60,7 @@ class resource_pool_item
|
|||||||
private:
|
private:
|
||||||
resource_pool_item(const resource_pool_item &);
|
resource_pool_item(const resource_pool_item &);
|
||||||
resource_pool_item &operator=(const resource_pool_item &);
|
resource_pool_item &operator=(const resource_pool_item &);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
resource_pool_item(void *_ptr, size_t _size)
|
resource_pool_item(void *_ptr, size_t _size)
|
||||||
: next(NULL),
|
: next(NULL),
|
||||||
@ -69,14 +69,14 @@ public:
|
|||||||
ptr(_ptr),
|
ptr(_ptr),
|
||||||
size(_size) { }
|
size(_size) { }
|
||||||
virtual ~resource_pool_item() { }
|
virtual ~resource_pool_item() { }
|
||||||
|
|
||||||
resource_pool_item * next;
|
resource_pool_item * next;
|
||||||
resource_pool_item * ordered_next;
|
resource_pool_item * ordered_next;
|
||||||
resource_pool_item * ordered_prev;
|
resource_pool_item * ordered_prev;
|
||||||
void * ptr;
|
void * ptr;
|
||||||
size_t size;
|
size_t size;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// a resource_pool_object is a simple object wrapper for the templatized type
|
// a resource_pool_object is a simple object wrapper for the templatized type
|
||||||
template<class T> class resource_pool_object : public resource_pool_item
|
template<class T> class resource_pool_object : public resource_pool_item
|
||||||
@ -84,28 +84,28 @@ template<class T> class resource_pool_object : public resource_pool_item
|
|||||||
private:
|
private:
|
||||||
resource_pool_object<T>(const resource_pool_object<T> &);
|
resource_pool_object<T>(const resource_pool_object<T> &);
|
||||||
resource_pool_object<T> &operator=(const resource_pool_object<T> &);
|
resource_pool_object<T> &operator=(const resource_pool_object<T> &);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
resource_pool_object(T *_object)
|
resource_pool_object(T *_object)
|
||||||
: resource_pool_item(reinterpret_cast<void *>(_object), sizeof(T)),
|
: resource_pool_item(reinterpret_cast<void *>(_object), sizeof(T)),
|
||||||
object(_object) { }
|
object(_object) { }
|
||||||
virtual ~resource_pool_object() { delete object; }
|
virtual ~resource_pool_object() { delete object; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
T *object;
|
T *object;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// a resource_pool_array is a simple object wrapper for an allocated array of
|
// a resource_pool_array is a simple object wrapper for an allocated array of
|
||||||
// the templatized type
|
// the templatized type
|
||||||
template<class T> class resource_pool_array : public resource_pool_item
|
template<class T> class resource_pool_array : public resource_pool_item
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
resource_pool_array<T>(const resource_pool_array<T> &);
|
resource_pool_array<T>(const resource_pool_array<T> &);
|
||||||
resource_pool_array<T> &operator=(const resource_pool_array<T> &);
|
resource_pool_array<T> &operator=(const resource_pool_array<T> &);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
resource_pool_array(T *_array, int _count)
|
resource_pool_array(T *_array, int _count)
|
||||||
: resource_pool_item(reinterpret_cast<void *>(_array), sizeof(T) * _count),
|
: resource_pool_item(reinterpret_cast<void *>(_array), sizeof(T) * _count),
|
||||||
array(_array),
|
array(_array),
|
||||||
count(_count) { }
|
count(_count) { }
|
||||||
@ -123,11 +123,11 @@ class resource_pool
|
|||||||
private:
|
private:
|
||||||
resource_pool(const resource_pool &);
|
resource_pool(const resource_pool &);
|
||||||
resource_pool &operator=(const resource_pool &);
|
resource_pool &operator=(const resource_pool &);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
resource_pool();
|
resource_pool();
|
||||||
~resource_pool();
|
~resource_pool();
|
||||||
|
|
||||||
void add(resource_pool_item &item);
|
void add(resource_pool_item &item);
|
||||||
void remove(resource_pool_item &item) { remove(item.ptr); }
|
void remove(resource_pool_item &item) { remove(item.ptr); }
|
||||||
void remove(void *ptr);
|
void remove(void *ptr);
|
||||||
@ -135,13 +135,13 @@ public:
|
|||||||
resource_pool_item *find(void *ptr);
|
resource_pool_item *find(void *ptr);
|
||||||
bool contains(void *ptrstart, void *ptrend);
|
bool contains(void *ptrstart, void *ptrend);
|
||||||
void clear();
|
void clear();
|
||||||
|
|
||||||
template<class T> T *add_object(T* object) { add(*new(__FILE__, __LINE__) resource_pool_object<T>(object)); return object; }
|
template<class T> T *add_object(T* object) { add(*new(__FILE__, __LINE__) resource_pool_object<T>(object)); return object; }
|
||||||
template<class T> T *add_array(T* array, int count) { add(*new(__FILE__, __LINE__) resource_pool_array<T>(array, count)); return array; }
|
template<class T> T *add_array(T* array, int count) { add(*new(__FILE__, __LINE__) resource_pool_array<T>(array, count)); return array; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const int hash_prime = 193;
|
static const int hash_prime = 193;
|
||||||
|
|
||||||
osd_lock * listlock;
|
osd_lock * listlock;
|
||||||
resource_pool_item * hash[hash_prime];
|
resource_pool_item * hash[hash_prime];
|
||||||
resource_pool_item * ordered_head;
|
resource_pool_item * ordered_head;
|
||||||
@ -168,7 +168,7 @@ private:
|
|||||||
#define pool_alloc(_pool, _type) (_pool).add_object(new(__FILE__, __LINE__) _type)
|
#define pool_alloc(_pool, _type) (_pool).add_object(new(__FILE__, __LINE__) _type)
|
||||||
#define pool_alloc_clear(_pool, _type) (_pool).add_object(new(__FILE__, __LINE__, zeromem) _type)
|
#define pool_alloc_clear(_pool, _type) (_pool).add_object(new(__FILE__, __LINE__, zeromem) _type)
|
||||||
#define pool_alloc_array(_pool, _type, _num) (_pool).add_array(new(__FILE__, __LINE__) _type[_num], (_num))
|
#define pool_alloc_array(_pool, _type, _num) (_pool).add_array(new(__FILE__, __LINE__) _type[_num], (_num))
|
||||||
#define pool_alloc_array_clear(_pool, _type, _num) (_pool).add_array(new(__FILE__, __LINE__, zeromem) _type[_num], (_num))
|
#define pool_alloc_array_clear(_pool, _type, _num) (_pool).add_array(new(__FILE__, __LINE__, zeromem) _type[_num], (_num))
|
||||||
#define pool_free(_pool, v) (_pool).remove(v)
|
#define pool_free(_pool, v) (_pool).remove(v)
|
||||||
|
|
||||||
// global allocation helpers
|
// global allocation helpers
|
||||||
|
@ -280,21 +280,21 @@ public:
|
|||||||
va_end(ap);
|
va_end(ap);
|
||||||
osd_break_into_debugger(text);
|
osd_break_into_debugger(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
emu_fatalerror(const char *format, va_list ap)
|
emu_fatalerror(const char *format, va_list ap)
|
||||||
: code(0)
|
: code(0)
|
||||||
{
|
{
|
||||||
vsprintf(text, format, ap);
|
vsprintf(text, format, ap);
|
||||||
osd_break_into_debugger(text);
|
osd_break_into_debugger(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
emu_fatalerror(int _exitcode, const char *format, va_list ap)
|
emu_fatalerror(int _exitcode, const char *format, va_list ap)
|
||||||
: code(_exitcode)
|
: code(_exitcode)
|
||||||
{
|
{
|
||||||
vsprintf(text, format, ap);
|
vsprintf(text, format, ap);
|
||||||
osd_break_into_debugger(text);
|
osd_break_into_debugger(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *string() const { return text; }
|
const char *string() const { return text; }
|
||||||
int exitcode() const { return code; }
|
int exitcode() const { return code; }
|
||||||
|
|
||||||
|
@ -1407,9 +1407,9 @@ static void init_video(const device_config *device)
|
|||||||
fillbitmap_yuy16(frame->bitmap, 40, 109, 240);
|
fillbitmap_yuy16(frame->bitmap, 40, 109, 240);
|
||||||
|
|
||||||
/* make a copy of the bitmap that clips out the VBI and horizontal blanking areas */
|
/* make a copy of the bitmap that clips out the VBI and horizontal blanking areas */
|
||||||
frame->visbitmap = auto_alloc(device->machine, bitmap_t(BITMAP_ADDR16(frame->bitmap, 44, frame->bitmap->width * 8 / 720),
|
frame->visbitmap = auto_alloc(device->machine, bitmap_t(BITMAP_ADDR16(frame->bitmap, 44, frame->bitmap->width * 8 / 720),
|
||||||
frame->bitmap->width - 2 * frame->bitmap->width * 8 / 720,
|
frame->bitmap->width - 2 * frame->bitmap->width * 8 / 720,
|
||||||
frame->bitmap->height - 44,
|
frame->bitmap->height - 44,
|
||||||
frame->bitmap->rowpixels, frame->bitmap->format));
|
frame->bitmap->rowpixels, frame->bitmap->format));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -551,7 +551,7 @@ static void simulate2(const device_config *device, struct pit8253_timer *timer,
|
|||||||
|
|
||||||
if (timer->gate == 0 && mode == 4)
|
if (timer->gate == 0 && mode == 4)
|
||||||
{
|
{
|
||||||
cycles_to_output = CYCLES_NEVER;
|
cycles_to_output = CYCLES_NEVER;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -825,7 +825,7 @@ void memory_region_free(running_machine *machine, const char *name)
|
|||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
memory_region_info - return a pointer to the
|
memory_region_info - return a pointer to the
|
||||||
information struct for a given memory region
|
information struct for a given memory region
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -159,13 +159,13 @@ typedef void (*output_callback_func)(void *param, const char *format, va_list ar
|
|||||||
class region_info
|
class region_info
|
||||||
{
|
{
|
||||||
DISABLE_COPYING(region_info);
|
DISABLE_COPYING(region_info);
|
||||||
|
|
||||||
running_machine * machine;
|
running_machine * machine;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
region_info(running_machine *machine, const char *_name, UINT32 _length, UINT32 _flags);
|
region_info(running_machine *machine, const char *_name, UINT32 _length, UINT32 _flags);
|
||||||
~region_info();
|
~region_info();
|
||||||
|
|
||||||
operator void *() const { return (this != NULL) ? base.v : NULL; }
|
operator void *() const { return (this != NULL) ? base.v : NULL; }
|
||||||
operator INT8 *() const { return (this != NULL) ? base.i8 : NULL; }
|
operator INT8 *() const { return (this != NULL) ? base.i8 : NULL; }
|
||||||
operator UINT8 *() const { return (this != NULL) ? base.u8 : NULL; }
|
operator UINT8 *() const { return (this != NULL) ? base.u8 : NULL; }
|
||||||
@ -175,9 +175,9 @@ public:
|
|||||||
operator UINT32 *() const { return (this != NULL) ? base.u32 : NULL; }
|
operator UINT32 *() const { return (this != NULL) ? base.u32 : NULL; }
|
||||||
operator INT64 *() const { return (this != NULL) ? base.i64 : NULL; }
|
operator INT64 *() const { return (this != NULL) ? base.i64 : NULL; }
|
||||||
operator UINT64 *() const { return (this != NULL) ? base.u64 : NULL; }
|
operator UINT64 *() const { return (this != NULL) ? base.u64 : NULL; }
|
||||||
|
|
||||||
UINT32 bytes() const { return (this != NULL) ? length : 0; }
|
UINT32 bytes() const { return (this != NULL) ? length : 0; }
|
||||||
|
|
||||||
region_info * next;
|
region_info * next;
|
||||||
astring name;
|
astring name;
|
||||||
generic_ptr base;
|
generic_ptr base;
|
||||||
@ -214,7 +214,7 @@ class running_machine
|
|||||||
public:
|
public:
|
||||||
running_machine(const game_driver *driver);
|
running_machine(const game_driver *driver);
|
||||||
~running_machine();
|
~running_machine();
|
||||||
|
|
||||||
inline const device_config *device(const char *tag);
|
inline const device_config *device(const char *tag);
|
||||||
inline const input_port_config *port(const char *tag);
|
inline const input_port_config *port(const char *tag);
|
||||||
inline const region_info *region(const char *tag);
|
inline const region_info *region(const char *tag);
|
||||||
@ -474,7 +474,7 @@ void mame_get_current_datetime(running_machine *machine, mame_system_time *systi
|
|||||||
|
|
||||||
inline const device_config *running_machine::device(const char *tag)
|
inline const device_config *running_machine::device(const char *tag)
|
||||||
{
|
{
|
||||||
return device_list_find_by_tag(&config->devicelist, tag);
|
return device_list_find_by_tag(&config->devicelist, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline const input_port_config *running_machine::port(const char *tag)
|
inline const input_port_config *running_machine::port(const char *tag)
|
||||||
|
@ -339,7 +339,7 @@ struct _memory_private
|
|||||||
|
|
||||||
memory_block * memory_block_list; /* head of the list of memory blocks */
|
memory_block * memory_block_list; /* head of the list of memory blocks */
|
||||||
|
|
||||||
tagmap_t<bank_info *> bankmap; /* map for fast bank lookups */
|
tagmap_t<bank_info *> bankmap; /* map for fast bank lookups */
|
||||||
bank_info * banklist; /* data gathered for each bank */
|
bank_info * banklist; /* data gathered for each bank */
|
||||||
UINT8 banknext; /* next bank to allocate */
|
UINT8 banknext; /* next bank to allocate */
|
||||||
|
|
||||||
@ -1204,8 +1204,8 @@ void memory_set_bankptr(running_machine *machine, const char *tag, void *base)
|
|||||||
fatalerror("memory_set_bankptr called for unknown bank '%s'", tag);
|
fatalerror("memory_set_bankptr called for unknown bank '%s'", tag);
|
||||||
if (base == NULL)
|
if (base == NULL)
|
||||||
fatalerror("memory_set_bankptr called NULL base");
|
fatalerror("memory_set_bankptr called NULL base");
|
||||||
// if (ALLOW_ONLY_AUTO_MALLOC_BANKS)
|
// if (ALLOW_ONLY_AUTO_MALLOC_BANKS)
|
||||||
// validate_auto_malloc_memory(base, bank->byteend - bank->bytestart + 1);
|
// validate_auto_malloc_memory(base, bank->byteend - bank->bytestart + 1);
|
||||||
|
|
||||||
/* set the base */
|
/* set the base */
|
||||||
memdata->bank_ptr[bank->index] = (UINT8 *)base;
|
memdata->bank_ptr[bank->index] = (UINT8 *)base;
|
||||||
|
@ -600,7 +600,7 @@ static int render_font_load_bdf(render_font *font)
|
|||||||
mame_printf_warning("Loading BDF font... (%d characters loaded)\n", charcount);
|
mame_printf_warning("Loading BDF font... (%d characters loaded)\n", charcount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* make sure all the numbers are the same width */
|
/* make sure all the numbers are the same width */
|
||||||
if (font->chars[0] != NULL)
|
if (font->chars[0] != NULL)
|
||||||
{
|
{
|
||||||
@ -611,7 +611,7 @@ static int render_font_load_bdf(render_font *font)
|
|||||||
for (int ch = '0'; ch <= '9'; ch++)
|
for (int ch = '0'; ch <= '9'; ch++)
|
||||||
font->chars[0][ch].width = maxwidth;
|
font->chars[0][ch].width = maxwidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -218,9 +218,9 @@ static DEVICE_START( k053260 )
|
|||||||
ic->intf = (device->static_config != NULL) ? (const k053260_interface *)device->static_config : &defintrf;
|
ic->intf = (device->static_config != NULL) ? (const k053260_interface *)device->static_config : &defintrf;
|
||||||
|
|
||||||
ic->mode = 0;
|
ic->mode = 0;
|
||||||
|
|
||||||
const region_info *region = (ic->intf->rgnoverride != NULL) ? device->machine->region(ic->intf->rgnoverride) : device->region;
|
const region_info *region = (ic->intf->rgnoverride != NULL) ? device->machine->region(ic->intf->rgnoverride) : device->region;
|
||||||
|
|
||||||
ic->rom = *region;
|
ic->rom = *region;
|
||||||
ic->rom_size = region->bytes();
|
ic->rom_size = region->bytes();
|
||||||
|
|
||||||
|
@ -182,7 +182,7 @@ void state_init(running_machine *machine)
|
|||||||
double test_double;
|
double test_double;
|
||||||
test_enum_type test_enum;
|
test_enum_type test_enum;
|
||||||
test_class_type test_class;
|
test_class_type test_class;
|
||||||
|
|
||||||
assert_always(IS_VALID_SAVE_TYPE(test_bool), "bool is not a valid type for save");
|
assert_always(IS_VALID_SAVE_TYPE(test_bool), "bool is not a valid type for save");
|
||||||
assert_always(IS_VALID_SAVE_TYPE(test_INT8), "INT8 is not a valid type for save");
|
assert_always(IS_VALID_SAVE_TYPE(test_INT8), "INT8 is not a valid type for save");
|
||||||
assert_always(IS_VALID_SAVE_TYPE(test_UINT8), "UINT8 is not a valid type for save");
|
assert_always(IS_VALID_SAVE_TYPE(test_UINT8), "UINT8 is not a valid type for save");
|
||||||
|
@ -51,7 +51,7 @@ class region_entry
|
|||||||
public:
|
public:
|
||||||
region_entry()
|
region_entry()
|
||||||
: length(0) { }
|
: length(0) { }
|
||||||
|
|
||||||
astring tag;
|
astring tag;
|
||||||
UINT32 length;
|
UINT32 length;
|
||||||
};
|
};
|
||||||
|
@ -299,7 +299,7 @@ class astring : public astring_base
|
|||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
astring &init();
|
astring &init();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
astring() { init(); }
|
astring() { init(); }
|
||||||
~astring();
|
~astring();
|
||||||
@ -315,11 +315,11 @@ public:
|
|||||||
astring &operator=(const astring &string) { return cpy(string); }
|
astring &operator=(const astring &string) { return cpy(string); }
|
||||||
|
|
||||||
astring &reset() { return cpy(""); }
|
astring &reset() { return cpy(""); }
|
||||||
|
|
||||||
operator const char *() const { return astring_c(this); }
|
operator const char *() const { return astring_c(this); }
|
||||||
const char *cstr() const { return astring_c(this); }
|
const char *cstr() const { return astring_c(this); }
|
||||||
int len() const { return astring_len(this); }
|
int len() const { return astring_len(this); }
|
||||||
|
|
||||||
astring &cpy(const astring &src) { return *astring_cpy(this, &src); }
|
astring &cpy(const astring &src) { return *astring_cpy(this, &src); }
|
||||||
astring &cpy(const char *src) { return *astring_cpyc(this, src); }
|
astring &cpy(const char *src) { return *astring_cpyc(this, src); }
|
||||||
astring &cpy(const char *src, int count) { return *astring_cpych(this, src, count); }
|
astring &cpy(const char *src, int count) { return *astring_cpych(this, src, count); }
|
||||||
|
@ -308,8 +308,8 @@ void bitmap_free(bitmap_t *bitmap)
|
|||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
bitmap_clone_existing -- clone an existing
|
bitmap_clone_existing -- clone an existing
|
||||||
bitmap by copying its fields; the target
|
bitmap by copying its fields; the target
|
||||||
bitmap does not own the memory
|
bitmap does not own the memory
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
@ -318,7 +318,7 @@ void bitmap_clone_existing(bitmap_t *bitmap, const bitmap_t *srcbitmap)
|
|||||||
if (bitmap->alloc != NULL)
|
if (bitmap->alloc != NULL)
|
||||||
free(bitmap->alloc);
|
free(bitmap->alloc);
|
||||||
bitmap->alloc = NULL;
|
bitmap->alloc = NULL;
|
||||||
|
|
||||||
bitmap->base = srcbitmap->base;
|
bitmap->base = srcbitmap->base;
|
||||||
bitmap->rowpixels = srcbitmap->rowpixels;
|
bitmap->rowpixels = srcbitmap->rowpixels;
|
||||||
bitmap->width = srcbitmap->width;
|
bitmap->width = srcbitmap->width;
|
||||||
|
@ -130,17 +130,17 @@ template<class T> class tagmap_t : public tagmap
|
|||||||
private:
|
private:
|
||||||
tagmap_t(const tagmap &);
|
tagmap_t(const tagmap &);
|
||||||
tagmap_t &operator=(const tagmap &);
|
tagmap_t &operator=(const tagmap &);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
tagmap_t() { memset(table, 0, sizeof(table)); }
|
tagmap_t() { memset(table, 0, sizeof(table)); }
|
||||||
~tagmap_t() { reset(); }
|
~tagmap_t() { reset(); }
|
||||||
|
|
||||||
void reset() { tagmap_reset(this); }
|
void reset() { tagmap_reset(this); }
|
||||||
|
|
||||||
tagmap_error add(const char *tag, T object, bool replace_if_duplicate = false) { return tagmap_add(this, tag, (void *)object, replace_if_duplicate); }
|
tagmap_error add(const char *tag, T object, bool replace_if_duplicate = false) { return tagmap_add(this, tag, (void *)object, replace_if_duplicate); }
|
||||||
tagmap_error add_unique_hash(const char *tag, T object, bool replace_if_duplicate = false) { return tagmap_add_unique_hash(this, tag, (void *)object, replace_if_duplicate); }
|
tagmap_error add_unique_hash(const char *tag, T object, bool replace_if_duplicate = false) { return tagmap_add_unique_hash(this, tag, (void *)object, replace_if_duplicate); }
|
||||||
void remove(const char *tag) { tagmap_remove(this, tag); }
|
void remove(const char *tag) { tagmap_remove(this, tag); }
|
||||||
|
|
||||||
T find(const char *tag) const { return reinterpret_cast<T>(tagmap_find(this, tag)); }
|
T find(const char *tag) const { return reinterpret_cast<T>(tagmap_find(this, tag)); }
|
||||||
T find(const char *tag, UINT32 hash) const { return reinterpret_cast<T>(tagmap_find_prehashed(this, tag, hash)); }
|
T find(const char *tag, UINT32 hash) const { return reinterpret_cast<T>(tagmap_find_prehashed(this, tag, hash)); }
|
||||||
T find_hash_only(const char *tag) const { return reinterpret_cast<T>(tagmap_find_hash_only(this, tag)); }
|
T find_hash_only(const char *tag) const { return reinterpret_cast<T>(tagmap_find_hash_only(this, tag)); }
|
||||||
|
@ -553,7 +553,7 @@ static KONAMI_SETLINES_CALLBACK( aliens_banking )
|
|||||||
{
|
{
|
||||||
int bank = 4;
|
int bank = 4;
|
||||||
|
|
||||||
if (lines & 0x10)
|
if (lines & 0x10)
|
||||||
bank -= 4;
|
bank -= 4;
|
||||||
|
|
||||||
bank += (lines & 0x0f);
|
bank += (lines & 0x0f);
|
||||||
|
@ -60,7 +60,7 @@ static INTERRUPT_GEN( asterix_interrupt )
|
|||||||
asterix_state *state = (asterix_state *)device->machine->driver_data;
|
asterix_state *state = (asterix_state *)device->machine->driver_data;
|
||||||
|
|
||||||
// global interrupt masking
|
// global interrupt masking
|
||||||
if (!k056832_is_irq_enabled(state->k056832, 0))
|
if (!k056832_is_irq_enabled(state->k056832, 0))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
cpu_set_input_line(device, 5, HOLD_LINE); /* ??? All irqs have the same vector, and the mask used is 0 or 7 */
|
cpu_set_input_line(device, 5, HOLD_LINE); /* ??? All irqs have the same vector, and the mask used is 0 or 7 */
|
||||||
|
@ -343,7 +343,7 @@ static KONAMI_SETLINES_CALLBACK( blockhl_banking )
|
|||||||
|
|
||||||
/* other bits unknown */
|
/* other bits unknown */
|
||||||
|
|
||||||
if ((lines & 0x84) != 0x80)
|
if ((lines & 0x84) != 0x80)
|
||||||
logerror("%04x: setlines %02x\n", cpu_get_pc(device), lines);
|
logerror("%04x: setlines %02x\n", cpu_get_pc(device), lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,14 +156,14 @@ static READ16_HANDLER( cave_irq_cause_r )
|
|||||||
cave_state *state = (cave_state *)space->machine->driver_data;
|
cave_state *state = (cave_state *)space->machine->driver_data;
|
||||||
int result = 0x0003;
|
int result = 0x0003;
|
||||||
|
|
||||||
if (state->vblank_irq)
|
if (state->vblank_irq)
|
||||||
result ^= 0x01;
|
result ^= 0x01;
|
||||||
if (state->unknown_irq)
|
if (state->unknown_irq)
|
||||||
result ^= 0x02;
|
result ^= 0x02;
|
||||||
|
|
||||||
if (offset == 4/2)
|
if (offset == 4/2)
|
||||||
state->vblank_irq = 0;
|
state->vblank_irq = 0;
|
||||||
if (offset == 6/2)
|
if (offset == 6/2)
|
||||||
state->unknown_irq = 0;
|
state->unknown_irq = 0;
|
||||||
|
|
||||||
update_irq_state(space->machine);
|
update_irq_state(space->machine);
|
||||||
@ -917,7 +917,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static WRITE8_HANDLER( hotdogst_rombank_w )
|
static WRITE8_HANDLER( hotdogst_rombank_w )
|
||||||
{
|
{
|
||||||
if (data & ~0x0f)
|
if (data & ~0x0f)
|
||||||
logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(space->cpu), data);
|
logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(space->cpu), data);
|
||||||
|
|
||||||
memory_set_bank(space->machine, "bank2", data & 0x0f);
|
memory_set_bank(space->machine, "bank2", data & 0x0f);
|
||||||
@ -955,7 +955,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static WRITE8_HANDLER( mazinger_rombank_w )
|
static WRITE8_HANDLER( mazinger_rombank_w )
|
||||||
{
|
{
|
||||||
if (data & ~0x07)
|
if (data & ~0x07)
|
||||||
logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(space->cpu), data);
|
logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(space->cpu), data);
|
||||||
|
|
||||||
memory_set_bank(space->machine, "bank2", data & 0x07);
|
memory_set_bank(space->machine, "bank2", data & 0x07);
|
||||||
@ -986,7 +986,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static WRITE8_HANDLER( metmqstr_rombank_w )
|
static WRITE8_HANDLER( metmqstr_rombank_w )
|
||||||
{
|
{
|
||||||
if (data & ~0x0f)
|
if (data & ~0x0f)
|
||||||
logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(space->cpu), data);
|
logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(space->cpu), data);
|
||||||
|
|
||||||
memory_set_bank(space->machine, "bank1", data & 0x0f);
|
memory_set_bank(space->machine, "bank1", data & 0x0f);
|
||||||
@ -1036,7 +1036,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static WRITE8_HANDLER( pwrinst2_rombank_w )
|
static WRITE8_HANDLER( pwrinst2_rombank_w )
|
||||||
{
|
{
|
||||||
if (data & ~0x07)
|
if (data & ~0x07)
|
||||||
logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(space->cpu), data);
|
logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(space->cpu), data);
|
||||||
|
|
||||||
memory_set_bank(space->machine, "bank1", data & 0x07);
|
memory_set_bank(space->machine, "bank1", data & 0x07);
|
||||||
@ -1080,7 +1080,7 @@ static WRITE8_HANDLER( mirror_ram_w )
|
|||||||
|
|
||||||
static WRITE8_HANDLER( sailormn_rombank_w )
|
static WRITE8_HANDLER( sailormn_rombank_w )
|
||||||
{
|
{
|
||||||
if (data & ~0x1f)
|
if (data & ~0x1f)
|
||||||
logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(space->cpu), data);
|
logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(space->cpu), data);
|
||||||
|
|
||||||
memory_set_bank(space->machine, "bank1", data & 0x1f);
|
memory_set_bank(space->machine, "bank1", data & 0x1f);
|
||||||
|
@ -126,7 +126,7 @@ e0033 45 01 mov al,1
|
|||||||
e0035 49 d3 06 mov [6d3],al
|
e0035 49 d3 06 mov [6d3],al
|
||||||
|
|
||||||
0089 call 2a9d e0038 call e30a2
|
0089 call 2a9d e0038 call e30a2
|
||||||
2a9d ld hl,d0b3 e30a2 premov bw,[04a6] (1e -> bb)
|
2a9d ld hl,d0b3 e30a2 premov bw,[04a6] (1e -> bb)
|
||||||
2aa0 inc (hl) e30a5 inc b ptr[bw]
|
2aa0 inc (hl) e30a5 inc b ptr[bw]
|
||||||
2aa1 inc hl e30a8 inc bw
|
2aa1 inc hl e30a8 inc bw
|
||||||
2aa2 inc (hl) e30a9 inc b ptr[bw]
|
2aa2 inc (hl) e30a9 inc b ptr[bw]
|
||||||
@ -138,14 +138,14 @@ e0035 49 d3 06 mov [6d3],al
|
|||||||
0c52 or a,a e003e and al,al
|
0c52 or a,a e003e and al,al
|
||||||
0c53 ret nz e0040 be e0083
|
0c53 ret nz e0040 be e0083
|
||||||
0c54 ld hl,d461 .
|
0c54 ld hl,d461 .
|
||||||
0c57 ld a,(d476) e0042 mov aw,[4b9] (68 -> a1)
|
0c57 ld a,(d476) e0042 mov aw,[4b9] (68 -> a1)
|
||||||
0c5a or a e0045 and aw,aw
|
0c5a or a e0045 and aw,aw
|
||||||
0c5b jr nz,0c6d e0047 be e0083
|
0c5b jr nz,0c6d e0047 be e0083
|
||||||
0c5d ld a,(hl) .
|
0c5d ld a,(hl) .
|
||||||
0c5e or a e0049 and al,al
|
0c5e or a e0049 and al,al
|
||||||
0c5f jr nz,0c71 e004b be e0054
|
0c5f jr nz,0c71 e004b be e0054
|
||||||
0c61 inc hl e004d dec al
|
0c61 inc hl e004d dec al
|
||||||
0c62 inc (hl) e004f mov [4b9],aw (4c -> a3)
|
0c62 inc (hl) e004f mov [4b9],aw (4c -> a3)
|
||||||
0c63 ld a,(hl) .
|
0c63 ld a,(hl) .
|
||||||
. e0052 br e0083
|
. e0052 br e0083
|
||||||
. e0054 and ah,ah
|
. e0054 and ah,ah
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
Chequered Flag / Checkered Flag (GX717) (c) Konami 1988
|
Chequered Flag / Checkered Flag (GX717) (c) Konami 1988
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
- Position counter doesn't behave correctly because of the K051733
|
- Position counter doesn't behave correctly because of the K051733
|
||||||
protection.
|
protection.
|
||||||
- 007232 volume & panning control is almost certainly wrong.
|
- 007232 volume & panning control is almost certainly wrong.
|
||||||
|
|
||||||
|
@ -535,7 +535,7 @@ static WRITE16_HANDLER( io_w )
|
|||||||
// This seems to only be written after each irq1 and irq2, irq ack?
|
// This seems to only be written after each irq1 and irq2, irq ack?
|
||||||
//logerror("irq wrote %04x\n", data);
|
//logerror("irq wrote %04x\n", data);
|
||||||
//else
|
//else
|
||||||
// LOG_UNKNOWN_WRITE
|
// LOG_UNKNOWN_WRITE
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xd4/2:
|
case 0xd4/2:
|
||||||
|
@ -171,7 +171,7 @@ static ADDRESS_MAP_START( begas_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0x1002, 0x1002) AM_READ(test_r)
|
AM_RANGE(0x1002, 0x1002) AM_READ(test_r)
|
||||||
AM_RANGE(0x1003, 0x1003) AM_READ(test_r)
|
AM_RANGE(0x1003, 0x1003) AM_READ(test_r)
|
||||||
AM_RANGE(0x1001, 0x1001) AM_WRITENOP //???
|
AM_RANGE(0x1001, 0x1001) AM_WRITENOP //???
|
||||||
// AM_RANGE(0x1003, 0x1003) AM_READ_PORT("IN0")
|
// AM_RANGE(0x1003, 0x1003) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x1003, 0x1003) AM_WRITE(rblaster_vram_bank_w) //might be 1001
|
AM_RANGE(0x1003, 0x1003) AM_WRITE(rblaster_vram_bank_w) //might be 1001
|
||||||
AM_RANGE(0x1006, 0x1006) AM_NOP //ld status / command
|
AM_RANGE(0x1006, 0x1006) AM_NOP //ld status / command
|
||||||
AM_RANGE(0x1007, 0x1007) AM_READWRITE(laserdisc_r,laserdisc_w) // ld data
|
AM_RANGE(0x1007, 0x1007) AM_READWRITE(laserdisc_r,laserdisc_w) // ld data
|
||||||
|
@ -154,16 +154,16 @@ Dumped by Grull Osgo
|
|||||||
|
|
||||||
Location Device File ID Checksum
|
Location Device File ID Checksum
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
CPU 10A 27C128 a1.bin 9f26 [ CPU ROM ]
|
CPU 10A 27C128 a1.bin 9f26 [ CPU ROM ]
|
||||||
|
|
||||||
CPU 6H 27C128 a2.bin 7ccc [ Character ]
|
CPU 6H 27C128 a2.bin 7ccc [ Character ]
|
||||||
CPU 6K 27C128 a3.bin ba34 [ Character ]
|
CPU 6K 27C128 a3.bin ba34 [ Character ]
|
||||||
|
|
||||||
LDP O7 27c128 a4.bin 2120 [ LDP Ctrl ] (Add-On Board "7-50A" on O7-O9-010 IC Sockets)
|
LDP O7 27c128 a4.bin 2120 [ LDP Ctrl ] (Add-On Board "7-50A" on O7-O9-010 IC Sockets)
|
||||||
|
|
||||||
|
|
||||||
Notes: CPU - Main Board includes NTSC decoder, video Switch & Audio control.
|
Notes: CPU - Main Board includes NTSC decoder, video Switch & Audio control.
|
||||||
No Model or Serial number on PCB.
|
No Model or Serial number on PCB.
|
||||||
Uses a Pioneer LD-V2000 Laserdisc player.
|
Uses a Pioneer LD-V2000 Laserdisc player.
|
||||||
The laserdisc player is modified - has a custom communication & audio cable (10 Wires Flat Cable).
|
The laserdisc player is modified - has a custom communication & audio cable (10 Wires Flat Cable).
|
||||||
|
|
||||||
@ -191,18 +191,18 @@ Disk 1
|
|||||||
------
|
------
|
||||||
Sticker:
|
Sticker:
|
||||||
|
|
||||||
09-251 A
|
09-251 A
|
||||||
|
|
||||||
HORSE RACE I
|
HORSE RACE I
|
||||||
|
|
||||||
QUARTER HORSE
|
QUARTER HORSE
|
||||||
|
|
||||||
(C) 1981 DALE FRANK RODESCH
|
(C) 1981 DALE FRANK RODESCH
|
||||||
SAN DIEGO, CA USA
|
SAN DIEGO, CA USA
|
||||||
|
|
||||||
Stamp on disk:
|
Stamp on disk:
|
||||||
|
|
||||||
09-251A1-15
|
09-251A1-15
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -211,37 +211,37 @@ Disk 2
|
|||||||
Sticker:
|
Sticker:
|
||||||
|
|
||||||
|
|
||||||
09251 1
|
09251 1
|
||||||
|
|
||||||
QUARTER HORSE
|
QUARTER HORSE
|
||||||
|
|
||||||
VIDEO DISK
|
VIDEO DISK
|
||||||
|
|
||||||
(C) 1981 DALE FRANK RODESCH
|
(C) 1981 DALE FRANK RODESCH
|
||||||
|
|
||||||
|
|
||||||
Stamp on disk:
|
Stamp on disk:
|
||||||
|
|
||||||
09-251A1-01
|
09-251A1-01
|
||||||
|
|
||||||
09-251 A
|
09-251 A
|
||||||
|
|
||||||
|
|
||||||
Disk 1
|
Disk 1
|
||||||
------
|
------
|
||||||
Sticker:
|
Sticker:
|
||||||
|
|
||||||
09-251 A
|
09-251 A
|
||||||
|
|
||||||
HORSE RACE I
|
HORSE RACE I
|
||||||
|
|
||||||
QUARTER HORSE
|
QUARTER HORSE
|
||||||
|
|
||||||
(C) 1981 DALE FRANK RODESCH
|
(C) 1981 DALE FRANK RODESCH
|
||||||
|
|
||||||
Stamp on disk:
|
Stamp on disk:
|
||||||
|
|
||||||
09-251A1-06
|
09-251A1-06
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1061,7 +1061,7 @@ ROM_START( quarterhb )
|
|||||||
/* ??? colors */
|
/* ??? colors */
|
||||||
ROM_LOAD( "3a_50-1381_63s080n.bin",0x00, 0x20, CRC(451d0a72) SHA1(9ff6e2c5bd2b57bd607cb33e60e7ed25bea164b3) )
|
ROM_LOAD( "3a_50-1381_63s080n.bin",0x00, 0x20, CRC(451d0a72) SHA1(9ff6e2c5bd2b57bd607cb33e60e7ed25bea164b3) )
|
||||||
/* memory map */
|
/* memory map */
|
||||||
// ROM_LOAD( "7h_7602.bin",0x20, 0x20, BAD_DUMP CRC(451d0a72) SHA1(9ff6e2c5bd2b57bd607cb33e60e7ed25bea164b3) )
|
// ROM_LOAD( "7h_7602.bin",0x20, 0x20, BAD_DUMP CRC(451d0a72) SHA1(9ff6e2c5bd2b57bd607cb33e60e7ed25bea164b3) )
|
||||||
ROM_LOAD( "7h_bprom.bin",0x20, 0x20, BAD_DUMP CRC(c9618de2) SHA1(d5636546dbc57e6aab01dab79b2ead1dfef8fa5c) ) //taken from the other set, might be bad
|
ROM_LOAD( "7h_bprom.bin",0x20, 0x20, BAD_DUMP CRC(c9618de2) SHA1(d5636546dbc57e6aab01dab79b2ead1dfef8fa5c) ) //taken from the other set, might be bad
|
||||||
|
|
||||||
DISK_REGION( "laserdisc" )
|
DISK_REGION( "laserdisc" )
|
||||||
|
@ -301,7 +301,7 @@ static MACHINE_RESET( gbusters )
|
|||||||
konami_configure_set_lines(devtag_get_device(machine, "maincpu"), gbusters_banking);
|
konami_configure_set_lines(devtag_get_device(machine, "maincpu"), gbusters_banking);
|
||||||
|
|
||||||
/* mirror address for banked ROM */
|
/* mirror address for banked ROM */
|
||||||
memcpy(&RAM[0x18000], &RAM[0x10000], 0x08000);
|
memcpy(&RAM[0x18000], &RAM[0x10000], 0x08000);
|
||||||
|
|
||||||
state->palette_selected = 0;
|
state->palette_selected = 0;
|
||||||
state->priority = 0;
|
state->priority = 0;
|
||||||
|
@ -168,15 +168,15 @@ static WRITE8_HANDLER( gunpey_blitter_w )
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( mem_map, ADDRESS_SPACE_PROGRAM, 16 )
|
static ADDRESS_MAP_START( mem_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||||
AM_RANGE(0x00000, 0x0ffff) AM_RAM
|
AM_RANGE(0x00000, 0x0ffff) AM_RAM
|
||||||
// AM_RANGE(0x50000, 0x500ff) AM_RAM
|
// AM_RANGE(0x50000, 0x500ff) AM_RAM
|
||||||
// AM_RANGE(0x50100, 0x502ff) AM_NOP
|
// AM_RANGE(0x50100, 0x502ff) AM_NOP
|
||||||
AM_RANGE(0x80000, 0xfffff) AM_ROM
|
AM_RANGE(0x80000, 0xfffff) AM_ROM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 16 )
|
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 16 )
|
||||||
AM_RANGE(0x7f40, 0x7f45) AM_READ8(gunpey_inputs_r,0xffff)
|
AM_RANGE(0x7f40, 0x7f45) AM_READ8(gunpey_inputs_r,0xffff)
|
||||||
|
|
||||||
// AM_RANGE(0x7f48, 0x7f48) AM_WRITE(output_w)
|
// AM_RANGE(0x7f48, 0x7f48) AM_WRITE(output_w)
|
||||||
AM_RANGE(0x7f80, 0x7f81) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0xffff)
|
AM_RANGE(0x7f80, 0x7f81) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0xffff)
|
||||||
|
|
||||||
AM_RANGE(0x7f88, 0x7f89) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0xff00)
|
AM_RANGE(0x7f88, 0x7f89) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0xff00)
|
||||||
|
@ -2361,5 +2361,5 @@ GAME( 1998, xrally, hng64, hng64, hng64, hng64_race, ROT0, "SNK", "Xtreme R
|
|||||||
GAME( 1998, bbust2, hng64, hng64, bbust2, hng64_shoot, ROT0, "SNK", "Beast Busters 2nd Nightmare", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 004 */
|
GAME( 1998, bbust2, hng64, hng64, bbust2, hng64_shoot, ROT0, "SNK", "Beast Busters 2nd Nightmare", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 004 */
|
||||||
GAME( 1998, sams64_2, hng64, hng64, hng64, ss64, ROT0, "SNK", "Samurai Shodown: Warrior's Rage / Samurai Spirits 2: Asura Zanmaden", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 005 */
|
GAME( 1998, sams64_2, hng64, hng64, hng64, ss64, ROT0, "SNK", "Samurai Shodown: Warrior's Rage / Samurai Spirits 2: Asura Zanmaden", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 005 */
|
||||||
GAME( 1998, fatfurwa, hng64, hng64, hng64, fatfurwa, ROT0, "SNK", "Fatal Fury: Wild Ambition (rev.A)", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 006 */
|
GAME( 1998, fatfurwa, hng64, hng64, hng64, fatfurwa, ROT0, "SNK", "Fatal Fury: Wild Ambition (rev.A)", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 006 */
|
||||||
GAME( 1999, buriki, hng64, hng64, hng64, fatfurwa, ROT0, "SNK", "Buriki One (rev.B)", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 007 */
|
GAME( 1999, buriki, hng64, hng64, hng64, fatfurwa, ROT0, "SNK", "Buriki One (rev.B)", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 007 */
|
||||||
|
|
||||||
|
@ -287,7 +287,7 @@ static VIDEO_UPDATE( metalmx )
|
|||||||
/* TODO: TMS34020 should take care of this */
|
/* TODO: TMS34020 should take care of this */
|
||||||
metalmx_state *state = (metalmx_state *)screen->machine->driver_data;
|
metalmx_state *state = (metalmx_state *)screen->machine->driver_data;
|
||||||
|
|
||||||
// UINT32 *src_base = &gsp_vram[(vreg_base[0x40/4] & 0x40) ? 0x20000 : 0];
|
// UINT32 *src_base = &gsp_vram[(vreg_base[0x40/4] & 0x40) ? 0x20000 : 0];
|
||||||
UINT16 *src_base = state->gsp_vram;
|
UINT16 *src_base = state->gsp_vram;
|
||||||
int y;
|
int y;
|
||||||
|
|
||||||
|
@ -86,9 +86,9 @@ static VIDEO_UPDATE(monzagp)
|
|||||||
for(y=0;y<256;y++)
|
for(y=0;y<256;y++)
|
||||||
{
|
{
|
||||||
for(x=0;x<256;x++)
|
for(x=0;x<256;x++)
|
||||||
{
|
{
|
||||||
drawgfx_transpen(bitmap,cliprect,screen->machine->gfx[bank&1],
|
drawgfx_transpen(bitmap,cliprect,screen->machine->gfx[bank&1],
|
||||||
vram[y*screenw+x],
|
vram[y*screenw+x],
|
||||||
//(vram[y*screenw+x]&0x3f)+(bank>>1)*64,
|
//(vram[y*screenw+x]&0x3f)+(bank>>1)*64,
|
||||||
0,
|
0,
|
||||||
0, 0,
|
0, 0,
|
||||||
@ -116,8 +116,8 @@ static WRITE8_HANDLER(port_w)
|
|||||||
//vram[coordy*screenw+coordx]=data;
|
//vram[coordy*screenw+coordx]=data;
|
||||||
//if(output==0xfe)
|
//if(output==0xfe)
|
||||||
{
|
{
|
||||||
// if(data>='A' && data <='Z')
|
// if(data>='A' && data <='Z')
|
||||||
// printf("%.2x %.2x %c %c\n",coordy, offset,data, znaki[data-'A']);
|
// printf("%.2x %.2x %c %c\n",coordy, offset,data, znaki[data-'A']);
|
||||||
//vram[coordy*screenw+coordx]=data;
|
//vram[coordy*screenw+coordx]=data;
|
||||||
vram[(coordx*256+coordy)&0x7ff]=data;
|
vram[(coordx*256+coordy)&0x7ff]=data;
|
||||||
}
|
}
|
||||||
@ -187,16 +187,16 @@ static WRITE8_HANDLER(port3_w)
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
|
|
||||||
#define I8039_p0 0x100
|
#define I8039_p0 0x100
|
||||||
#define I8039_p1 0x101
|
#define I8039_p1 0x101
|
||||||
#define I8039_p2 0x102
|
#define I8039_p2 0x102
|
||||||
#define I8039_p4 0x104
|
#define I8039_p4 0x104
|
||||||
#define I8039_p5 0x105
|
#define I8039_p5 0x105
|
||||||
#define I8039_p6 0x106
|
#define I8039_p6 0x106
|
||||||
#define I8039_p7 0x107
|
#define I8039_p7 0x107
|
||||||
#define I8039_t0 0x110
|
#define I8039_t0 0x110
|
||||||
#define I8039_t1 0x111
|
#define I8039_t1 0x111
|
||||||
#define I8039_bus 0x120
|
#define I8039_bus 0x120
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static ADDRESS_MAP_START( monzagp_io, ADDRESS_SPACE_IO, 8 )
|
static ADDRESS_MAP_START( monzagp_io, ADDRESS_SPACE_IO, 8 )
|
||||||
@ -276,11 +276,11 @@ ROM_START( monzagp )
|
|||||||
ROM_LOAD( "8.1f", 0x1400, 0x0400, CRC(99ce2753) SHA1(f4540700ea909ba1be34ac2c33dafd8ec67a2bb7) )
|
ROM_LOAD( "8.1f", 0x1400, 0x0400, CRC(99ce2753) SHA1(f4540700ea909ba1be34ac2c33dafd8ec67a2bb7) )
|
||||||
|
|
||||||
ROM_REGION( 0x10000, "unk1", 0 )
|
ROM_REGION( 0x10000, "unk1", 0 )
|
||||||
ROM_LOAD( "1.9c", 0x0000, 0x0400, CRC(005d5fed) SHA1(145a860751ef7d99129b7242aacac7a4e1e14a51) )
|
ROM_LOAD( "1.9c", 0x0000, 0x0400, CRC(005d5fed) SHA1(145a860751ef7d99129b7242aacac7a4e1e14a51) )
|
||||||
ROM_LOAD( "2", 0x0400, 0x0400, NO_DUMP )
|
ROM_LOAD( "2", 0x0400, 0x0400, NO_DUMP )
|
||||||
ROM_LOAD( "3.12f", 0x0800, 0x0400, CRC(e5591074) SHA1(ac756ee605d932d7c1c3eddbe2b9c6f78dad6ce8) )
|
ROM_LOAD( "3.12f", 0x0800, 0x0400, CRC(e5591074) SHA1(ac756ee605d932d7c1c3eddbe2b9c6f78dad6ce8) )
|
||||||
ROM_LOAD( "4.10f", 0x0c00, 0x0400, CRC(a426a371) SHA1(d6023bebf6924d1820e631ee53896100e5b256a5) )
|
ROM_LOAD( "4.10f", 0x0c00, 0x0400, CRC(a426a371) SHA1(d6023bebf6924d1820e631ee53896100e5b256a5) )
|
||||||
ROM_LOAD( "5.9f", 0x1000, 0x0400, CRC(5abd1ef6) SHA1(1bc79225c1be2821930fdb8e821a70c7ac8683ab) )
|
ROM_LOAD( "5.9f", 0x1000, 0x0400, CRC(5abd1ef6) SHA1(1bc79225c1be2821930fdb8e821a70c7ac8683ab) )
|
||||||
|
|
||||||
ROM_REGION( 0x0700, "proms", 0 )
|
ROM_REGION( 0x0700, "proms", 0 )
|
||||||
ROM_LOAD( "63s140.1", 0x0000, 0x0100, CRC(5123c83e) SHA1(d8ff06af421d3dae65bc9b0a081ed56249ef61ab) )
|
ROM_LOAD( "63s140.1", 0x0000, 0x0100, CRC(5123c83e) SHA1(d8ff06af421d3dae65bc9b0a081ed56249ef61ab) )
|
||||||
|
@ -156,7 +156,7 @@ static INTERRUPT_GEN( moobl_interrupt )
|
|||||||
|
|
||||||
static WRITE16_HANDLER( sound_cmd1_w )
|
static WRITE16_HANDLER( sound_cmd1_w )
|
||||||
{
|
{
|
||||||
if ((data & 0x00ff0000) == 0)
|
if ((data & 0x00ff0000) == 0)
|
||||||
{
|
{
|
||||||
data &= 0xff;
|
data &= 0xff;
|
||||||
soundlatch_w(space, 0, data);
|
soundlatch_w(space, 0, data);
|
||||||
@ -165,7 +165,7 @@ static WRITE16_HANDLER( sound_cmd1_w )
|
|||||||
|
|
||||||
static WRITE16_HANDLER( sound_cmd2_w )
|
static WRITE16_HANDLER( sound_cmd2_w )
|
||||||
{
|
{
|
||||||
if ((data & 0x00ff0000) == 0)
|
if ((data & 0x00ff0000) == 0)
|
||||||
soundlatch2_w(space, 0, data & 0xff);
|
soundlatch2_w(space, 0, data & 0xff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
Multi Game 2 & III: 21 games included, hardware features MMC3 NES mapper and additional
|
Multi Game 2 & III: 21 games included, hardware features MMC3 NES mapper and additional
|
||||||
RAM used by Super Mario Bros 3.
|
RAM used by Super Mario Bros 3.
|
||||||
|
|
||||||
Multi Game (Tung Sheng Electronics): 10 games included, selectable by dip switches.
|
Multi Game (Tung Sheng Electronics): 10 games included, selectable by dip switches.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
|
@ -386,7 +386,7 @@ static READ16_HANDLER( ninjaw_sound_r )
|
|||||||
|
|
||||||
if (offset == 1)
|
if (offset == 1)
|
||||||
return ((tc0140syt_comm_r(state->tc0140syt, 0) & 0xff));
|
return ((tc0140syt_comm_r(state->tc0140syt, 0) & 0xff));
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,7 +418,7 @@ static READ16_HANDLER( othunder_sound_r )
|
|||||||
othunder_state *state = (othunder_state *)space->machine->driver_data;
|
othunder_state *state = (othunder_state *)space->machine->driver_data;
|
||||||
if (offset == 1)
|
if (offset == 1)
|
||||||
return ((tc0140syt_comm_r(state->tc0140syt, 0) & 0xff));
|
return ((tc0140syt_comm_r(state->tc0140syt, 0) & 0xff));
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ static WRITE8_HANDLER( parodius_videobank_w )
|
|||||||
{
|
{
|
||||||
parodius_state *state = (parodius_state *)space->machine->driver_data;
|
parodius_state *state = (parodius_state *)space->machine->driver_data;
|
||||||
|
|
||||||
if (state->videobank & 0xf8)
|
if (state->videobank & 0xf8)
|
||||||
logerror("%04x: videobank = %02x\n",cpu_get_pc(space->cpu),data);
|
logerror("%04x: videobank = %02x\n",cpu_get_pc(space->cpu),data);
|
||||||
|
|
||||||
/* bit 0 = select palette or work RAM at 0000-07ff */
|
/* bit 0 = select palette or work RAM at 0000-07ff */
|
||||||
@ -93,7 +93,7 @@ static WRITE8_HANDLER( parodius_3fc0_w )
|
|||||||
{
|
{
|
||||||
parodius_state *state = (parodius_state *)space->machine->driver_data;
|
parodius_state *state = (parodius_state *)space->machine->driver_data;
|
||||||
|
|
||||||
if ((data & 0xf4) != 0x10)
|
if ((data & 0xf4) != 0x10)
|
||||||
logerror("%04x: 3fc0 = %02x\n",cpu_get_pc(space->cpu),data);
|
logerror("%04x: 3fc0 = %02x\n",cpu_get_pc(space->cpu),data);
|
||||||
|
|
||||||
/* bit 0/1 = coin counters */
|
/* bit 0/1 = coin counters */
|
||||||
@ -399,7 +399,7 @@ ROM_END
|
|||||||
|
|
||||||
static KONAMI_SETLINES_CALLBACK( parodius_banking )
|
static KONAMI_SETLINES_CALLBACK( parodius_banking )
|
||||||
{
|
{
|
||||||
if (lines & 0xf0)
|
if (lines & 0xf0)
|
||||||
logerror("%04x: setlines %02x\n", cpu_get_pc(device), lines);
|
logerror("%04x: setlines %02x\n", cpu_get_pc(device), lines);
|
||||||
|
|
||||||
memory_set_bank(device->machine, "bank1", (lines & 0x0f) ^ 0x0f);
|
memory_set_bank(device->machine, "bank1", (lines & 0x0f) ^ 0x0f);
|
||||||
|
@ -454,16 +454,16 @@ P1KEY11 29|30 P2KEY11
|
|||||||
GND 53|54 GND
|
GND 53|54 GND
|
||||||
GND 55|56 GND
|
GND 55|56 GND
|
||||||
*/
|
*/
|
||||||
|
|
||||||
UINT32 controls = input_port_read(space->machine, "CONTROLLER");
|
UINT32 controls = input_port_read(space->machine, "CONTROLLER");
|
||||||
UINT32 value = input_port_read(space->machine, "INPUTS");
|
UINT32 value = input_port_read(space->machine, "INPUTS");
|
||||||
|
|
||||||
if(controls) {
|
if(controls) {
|
||||||
// Clearly has ghosting, game will only recognise one key depressed at once, and keyboard can only represent keys with distinct rows and columns
|
// Clearly has ghosting, game will only recognise one key depressed at once, and keyboard can only represent keys with distinct rows and columns
|
||||||
// Since the game can't accept conflicting inputs e.g. PL1 Up and 'A' or 'B' we have to
|
// Since the game can't accept conflicting inputs e.g. PL1 Up and 'A' or 'B' we have to
|
||||||
// make the user choose the input method. Especially since in test mode both sets are usable.
|
// make the user choose the input method. Especially since in test mode both sets are usable.
|
||||||
// Switch top word to either Mahjong inputs or joystick depending
|
// Switch top word to either Mahjong inputs or joystick depending
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
KEY1 = 0x0400, // JAMMA P2 Button 1
|
KEY1 = 0x0400, // JAMMA P2 Button 1
|
||||||
KEY2 = 0x0040, // JAMMA P2 Down
|
KEY2 = 0x0040, // JAMMA P2 Down
|
||||||
@ -471,13 +471,13 @@ P1KEY11 29|30 P2KEY11
|
|||||||
KEY4 = 0x8000, // JAMMA P1 Up
|
KEY4 = 0x8000, // JAMMA P1 Up
|
||||||
KEY5 = 0x4000, // JAMMA P1 Down
|
KEY5 = 0x4000, // JAMMA P1 Down
|
||||||
KEY6 = 0x0010, // JAMMA P2 Left
|
KEY6 = 0x0010, // JAMMA P2 Left
|
||||||
// KEY7
|
// KEY7
|
||||||
KEY8 = 0x1000, // JAMMA P1 Left
|
KEY8 = 0x1000, // JAMMA P1 Left
|
||||||
KEY9 = 0x2000, // JAMMA P1 Right
|
KEY9 = 0x2000, // JAMMA P1 Right
|
||||||
KEY10 = 0x0020, // JAMMA P2 Right
|
KEY10 = 0x0020, // JAMMA P2 Right
|
||||||
KEY11 = 0x0800, // JAMMA P1 Button 1
|
KEY11 = 0x0800, // JAMMA P1 Button 1
|
||||||
}; // Mahjong->JAMMA mapping specific to this game pcb
|
}; // Mahjong->JAMMA mapping specific to this game pcb
|
||||||
|
|
||||||
UINT16 key_codes[] = { // treated as IP_ACTIVE_LOW, game inverts them upon reading
|
UINT16 key_codes[] = { // treated as IP_ACTIVE_LOW, game inverts them upon reading
|
||||||
// ROW (distinct pins for P1 or P2) | COLUMN (shared for P1+P2)
|
// ROW (distinct pins for P1 or P2) | COLUMN (shared for P1+P2)
|
||||||
KEY4 | KEY3, // A
|
KEY4 | KEY3, // A
|
||||||
@ -506,9 +506,9 @@ P1KEY11 29|30 P2KEY11
|
|||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
// HACK: read IPT_START1 from "INPUTS" to avoid listing it twice or having two independent STARTs listed
|
// HACK: read IPT_START1 from "INPUTS" to avoid listing it twice or having two independent STARTs listed
|
||||||
int start_depressed = ~value & 0x01000000;
|
int start_depressed = ~value & 0x01000000;
|
||||||
keys |= start_depressed ? 1 << (sizeof(key_codes)/sizeof(key_codes[0]) - 1) : 0; // and bung it in at the end
|
keys |= start_depressed ? 1 << (sizeof(key_codes)/sizeof(key_codes[0]) - 1) : 0; // and bung it in at the end
|
||||||
|
|
||||||
value |= 0xFFFF0000; // set top word
|
value |= 0xFFFF0000; // set top word
|
||||||
do {
|
do {
|
||||||
// since we can't handle multiple keys, just return the first one depressed
|
// since we can't handle multiple keys, just return the first one depressed
|
||||||
@ -753,7 +753,7 @@ static INPUT_PORTS_START( mjgtaste )
|
|||||||
PORT_CONFNAME( 0x00000001, 0x00000001, DEF_STR ( Controller ) )
|
PORT_CONFNAME( 0x00000001, 0x00000001, DEF_STR ( Controller ) )
|
||||||
PORT_CONFSETTING( 0x00000000, DEF_STR( Joystick ) )
|
PORT_CONFSETTING( 0x00000000, DEF_STR( Joystick ) )
|
||||||
PORT_CONFSETTING( 0x00000001, "Mahjong Panel" )
|
PORT_CONFSETTING( 0x00000001, "Mahjong Panel" )
|
||||||
|
|
||||||
PORT_START("MAHJONG") /* articifial enumeration for mahjong encoder */
|
PORT_START("MAHJONG") /* articifial enumeration for mahjong encoder */
|
||||||
PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_MAHJONG_A ) PORT_PLAYER(1)
|
PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_MAHJONG_A ) PORT_PLAYER(1)
|
||||||
PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_MAHJONG_B ) PORT_PLAYER(1)
|
PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_MAHJONG_B ) PORT_PLAYER(1)
|
||||||
@ -774,8 +774,8 @@ static INPUT_PORTS_START( mjgtaste )
|
|||||||
PORT_BIT( 0x00010000, IP_ACTIVE_HIGH, IPT_MAHJONG_CHI ) PORT_PLAYER(1)
|
PORT_BIT( 0x00010000, IP_ACTIVE_HIGH, IPT_MAHJONG_CHI ) PORT_PLAYER(1)
|
||||||
PORT_BIT( 0x00020000, IP_ACTIVE_HIGH, IPT_MAHJONG_REACH ) PORT_PLAYER(1)
|
PORT_BIT( 0x00020000, IP_ACTIVE_HIGH, IPT_MAHJONG_REACH ) PORT_PLAYER(1)
|
||||||
PORT_BIT( 0x00040000, IP_ACTIVE_HIGH, IPT_MAHJONG_RON ) PORT_PLAYER(1)
|
PORT_BIT( 0x00040000, IP_ACTIVE_HIGH, IPT_MAHJONG_RON ) PORT_PLAYER(1)
|
||||||
// PORT_BIT( 0x00080000, IP_ACTIVE_HIGH, IPT_START1 ) /* start on panel, hacked in from the regular one to avoid duplicates in the UI */
|
// PORT_BIT( 0x00080000, IP_ACTIVE_HIGH, IPT_START1 ) /* start on panel, hacked in from the regular one to avoid duplicates in the UI */
|
||||||
|
|
||||||
PORT_START("JP4") /* jumper pads on the PCB */
|
PORT_START("JP4") /* jumper pads on the PCB */
|
||||||
// PORT_DIPNAME( 0x03000000, 0x01000000, DEF_STR( Region ) )
|
// PORT_DIPNAME( 0x03000000, 0x01000000, DEF_STR( Region ) )
|
||||||
// PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) )
|
// PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) )
|
||||||
|
@ -230,7 +230,7 @@ static INTERRUPT_GEN(audio_interrupt)
|
|||||||
{
|
{
|
||||||
rungun_state *state = (rungun_state *)device->machine->driver_data;
|
rungun_state *state = (rungun_state *)device->machine->driver_data;
|
||||||
|
|
||||||
if (state->z80_control & 0x80)
|
if (state->z80_control & 0x80)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
|
cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
|
||||||
|
@ -6702,9 +6702,9 @@ static const gfx_layout superbar_layout =
|
|||||||
{ 0,1,2,3,4,5,6,7,
|
{ 0,1,2,3,4,5,6,7,
|
||||||
64,65,66,67,68,69,70,71 },
|
64,65,66,67,68,69,70,71 },
|
||||||
{ 0*8, 2*8, 16*8, 18*8,
|
{ 0*8, 2*8, 16*8, 18*8,
|
||||||
1*8, 3*8, 17*8, 19*8,
|
1*8, 3*8, 17*8, 19*8,
|
||||||
4*8, 6*8, 20*8, 22*8,
|
4*8, 6*8, 20*8, 22*8,
|
||||||
5*8, 7*8, 21*8, 23*8 },
|
5*8, 7*8, 21*8, 23*8 },
|
||||||
16*16
|
16*16
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -256,7 +256,7 @@ static READ16_HANDLER( slapshot_msb_sound_r )
|
|||||||
slapshot_state *state = (slapshot_state *)space->machine->driver_data;
|
slapshot_state *state = (slapshot_state *)space->machine->driver_data;
|
||||||
if (offset == 1)
|
if (offset == 1)
|
||||||
return ((tc0140syt_comm_r(state->tc0140syt, 0) & 0xff) << 8);
|
return ((tc0140syt_comm_r(state->tc0140syt, 0) & 0xff) << 8);
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -859,40 +859,40 @@ ROM_START( sureshot )
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Etched in copper on back COPYRIGHT SMS 1983
|
Etched in copper on back COPYRIGHT SMS 1983
|
||||||
mfg corp
|
mfg corp
|
||||||
S/N A-872 A-872 was etched
|
S/N A-872 A-872 was etched
|
||||||
MADE IN USA
|
MADE IN USA
|
||||||
|
|
||||||
Etched in copper on front REV 03
|
Etched in copper on front REV 03
|
||||||
|
|
||||||
Silkscreened on top P/N 1001
|
Silkscreened on top P/N 1001
|
||||||
|
|
||||||
|
|
||||||
.16 2764 handwritten sticker U16
|
.16 2764 handwritten sticker U16
|
||||||
.17 2764 handwritten sticker U17
|
.17 2764 handwritten sticker U17
|
||||||
.18 2764 handwritten sticker U18
|
.18 2764 handwritten sticker U18
|
||||||
.19 2764 handwritten sticker U19
|
.19 2764 handwritten sticker U19
|
||||||
.26 2732 handwritten sticker #26
|
.26 2732 handwritten sticker #26
|
||||||
.32 pal10l8 green dot sticker with 32 written on it
|
.32 pal10l8 green dot sticker with 32 written on it
|
||||||
.52 pal10l8 blue dot sticker with 52 written on it
|
.52 pal10l8 blue dot sticker with 52 written on it
|
||||||
.58 pal10l8 3 blue dot stickers with 58 written on one
|
.58 pal10l8 3 blue dot stickers with 58 written on one
|
||||||
.40 pal10l8 red dot sticker with 40 written on it
|
.40 pal10l8 red dot sticker with 40 written on it
|
||||||
.39 pal10l8 3 green dot stickers with 39 written on one
|
.39 pal10l8 3 green dot stickers with 39 written on one
|
||||||
.38 pal10l8 3 blue dot stickers with 38 written on one
|
.38 pal10l8 3 blue dot stickers with 38 written on one
|
||||||
.80 pal10l8 2 blue dot stickers with 80 written on one
|
.80 pal10l8 2 blue dot stickers with 80 written on one
|
||||||
.94 pal14h4 2 green dot stickers with 94 written on one - was getting different values for each read
|
.94 pal14h4 2 green dot stickers with 94 written on one - was getting different values for each read
|
||||||
.109 pal14h4 2 brown dot stickers with 109 written on one
|
.109 pal14h4 2 brown dot stickers with 109 written on one
|
||||||
.110 pal10l8 2 red dot stickers with 110 written on one
|
.110 pal10l8 2 red dot stickers with 110 written on one
|
||||||
.128 pal10h8 1 blue, 1 brown, and another blue dot sticker with 128 written on the first blue one
|
.128 pal10h8 1 blue, 1 brown, and another blue dot sticker with 128 written on the first blue one
|
||||||
.129 pal10h8 1 green and 1 red dot sticker
|
.129 pal10h8 1 green and 1 red dot sticker
|
||||||
.130 pal10h8 3 red dot stickers with 130 written on one
|
.130 pal10h8 3 red dot stickers with 130 written on one
|
||||||
.140 pal14h4 1 brown sticker with 140 written on it
|
.140 pal14h4 1 brown sticker with 140 written on it
|
||||||
.141 pal14h4 1 brown sticker with 141 written on it
|
.141 pal14h4 1 brown sticker with 141 written on it
|
||||||
.142 pal14h4 1 brown sticker with 142 written on it
|
.142 pal14h4 1 brown sticker with 142 written on it
|
||||||
.143 pal14h4 1 brown sticker with 143 written on it
|
.143 pal14h4 1 brown sticker with 143 written on it
|
||||||
.144 pal14h4 1 brown sticker with 144 written on it
|
.144 pal14h4 1 brown sticker with 144 written on it
|
||||||
.145 pal14h4 1 brown sticker with 145 written on it
|
.145 pal14h4 1 brown sticker with 145 written on it
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ROM_START( secondch )
|
ROM_START( secondch )
|
||||||
|
@ -204,7 +204,7 @@ static void spy_collision( running_machine *machine )
|
|||||||
The mad scientist's laser truck has both a high sprite center and a small height value.
|
The mad scientist's laser truck has both a high sprite center and a small height value.
|
||||||
It has to be measured from the ground to detect correctly.
|
It has to be measured from the ground to detect correctly.
|
||||||
*/
|
*/
|
||||||
if (w2 == 0x58 && d2 == 0x04 && h2 == 0x10 && y2 == 0x30)
|
if (w2 == 0x58 && d2 == 0x04 && h2 == 0x10 && y2 == 0x30)
|
||||||
h2 = y2;
|
h2 = y2;
|
||||||
|
|
||||||
// what other sprites fall into:
|
// what other sprites fall into:
|
||||||
@ -229,9 +229,9 @@ static void spy_collision( running_machine *machine )
|
|||||||
nearplane = (state->pmcram[2] << 8) + state->pmcram[3];
|
nearplane = (state->pmcram[2] << 8) + state->pmcram[3];
|
||||||
|
|
||||||
// fail safe
|
// fail safe
|
||||||
if (loopend > MAX_SPRITES)
|
if (loopend > MAX_SPRITES)
|
||||||
loopend = MAX_SPRITES;
|
loopend = MAX_SPRITES;
|
||||||
if (!nearplane)
|
if (!nearplane)
|
||||||
nearplane = DEF_NEAR_PLANE;
|
nearplane = DEF_NEAR_PLANE;
|
||||||
|
|
||||||
loopend = (loopend << 1) + 4;
|
loopend = (loopend << 1) + 4;
|
||||||
|
@ -299,7 +299,7 @@ static ADDRESS_MAP_START( atamanot_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0x0800, 0x08ff) AM_WRITE(ssingles_colorram_w)
|
AM_RANGE(0x0800, 0x08ff) AM_WRITE(ssingles_colorram_w)
|
||||||
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
||||||
AM_RANGE(0x4000, 0x47ff) AM_RAM
|
AM_RANGE(0x4000, 0x47ff) AM_RAM
|
||||||
// AM_RANGE(0x6000, 0x60ff) AM_RAM //kanji tilemap?
|
// AM_RANGE(0x6000, 0x60ff) AM_RAM //kanji tilemap?
|
||||||
AM_RANGE(0x6000, 0x7fff) AM_ROM AM_REGION("question",0)
|
AM_RANGE(0x6000, 0x7fff) AM_ROM AM_REGION("question",0)
|
||||||
AM_RANGE(0x8000, 0x9fff) AM_ROM
|
AM_RANGE(0x8000, 0x9fff) AM_ROM
|
||||||
AM_RANGE(0xc000, 0xc000) AM_READ( c000_r )
|
AM_RANGE(0xc000, 0xc000) AM_READ( c000_r )
|
||||||
@ -451,33 +451,33 @@ atamanot kanji gfx decoding:
|
|||||||
|
|
||||||
static const gfx_layout layout_16x16 =
|
static const gfx_layout layout_16x16 =
|
||||||
{
|
{
|
||||||
16,16,
|
16,16,
|
||||||
RGN_FRAC(1,4),
|
RGN_FRAC(1,4),
|
||||||
1,
|
1,
|
||||||
{ 0 },
|
{ 0 },
|
||||||
{ 0, 1, 2, 3, 4, 5, 6, 7,
|
{ 0, 1, 2, 3, 4, 5, 6, 7,
|
||||||
RGN_FRAC(1,4)+0, RGN_FRAC(1,4)+1, RGN_FRAC(1,4)+2, RGN_FRAC(1,4)+3, RGN_FRAC(1,4)+4, RGN_FRAC(1,4)+5, RGN_FRAC(1,4)+6, RGN_FRAC(1,4)+7 },
|
RGN_FRAC(1,4)+0, RGN_FRAC(1,4)+1, RGN_FRAC(1,4)+2, RGN_FRAC(1,4)+3, RGN_FRAC(1,4)+4, RGN_FRAC(1,4)+5, RGN_FRAC(1,4)+6, RGN_FRAC(1,4)+7 },
|
||||||
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
|
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
|
||||||
RGN_FRAC(2,4)+0*8, RGN_FRAC(2,4)+1*8, RGN_FRAC(2,4)+2*8, RGN_FRAC(2,4)+3*8, RGN_FRAC(2,4)+4*8, RGN_FRAC(2,4)+5*8, RGN_FRAC(2,4)+6*8, RGN_FRAC(2,4)+7*8 },
|
RGN_FRAC(2,4)+0*8, RGN_FRAC(2,4)+1*8, RGN_FRAC(2,4)+2*8, RGN_FRAC(2,4)+3*8, RGN_FRAC(2,4)+4*8, RGN_FRAC(2,4)+5*8, RGN_FRAC(2,4)+6*8, RGN_FRAC(2,4)+7*8 },
|
||||||
8*8
|
8*8
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static const gfx_layout layout_8x16 =
|
static const gfx_layout layout_8x16 =
|
||||||
{
|
{
|
||||||
8,16,
|
8,16,
|
||||||
RGN_FRAC(1,2),
|
RGN_FRAC(1,2),
|
||||||
1,
|
1,
|
||||||
{ 0 },
|
{ 0 },
|
||||||
{ 0, 1, 2, 3, 4, 5, 6, 7 },
|
{ 0, 1, 2, 3, 4, 5, 6, 7 },
|
||||||
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
|
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
|
||||||
RGN_FRAC(2,4)+0*8, RGN_FRAC(2,4)+1*8, RGN_FRAC(2,4)+2*8, RGN_FRAC(2,4)+3*8, RGN_FRAC(2,4)+4*8, RGN_FRAC(2,4)+5*8, RGN_FRAC(2,4)+6*8, RGN_FRAC(2,4)+7*8 },
|
RGN_FRAC(2,4)+0*8, RGN_FRAC(2,4)+1*8, RGN_FRAC(2,4)+2*8, RGN_FRAC(2,4)+3*8, RGN_FRAC(2,4)+4*8, RGN_FRAC(2,4)+5*8, RGN_FRAC(2,4)+6*8, RGN_FRAC(2,4)+7*8 },
|
||||||
8*8
|
8*8
|
||||||
};
|
};
|
||||||
|
|
||||||
GFXDECODE_ENTRY( "kanji", 0, layout_16x16, 0, 8 )
|
GFXDECODE_ENTRY( "kanji", 0, layout_16x16, 0, 8 )
|
||||||
GFXDECODE_ENTRY( "kanji_uc", 0, layout_8x16, 0, 8 )
|
GFXDECODE_ENTRY( "kanji_uc", 0, layout_8x16, 0, 8 )
|
||||||
GFXDECODE_ENTRY( "kanji_lc", 0, layout_8x16, 0, 8 )
|
GFXDECODE_ENTRY( "kanji_lc", 0, layout_8x16, 0, 8 )
|
||||||
|
|
||||||
It looks "stolen" from an unknown Japanese computer?
|
It looks "stolen" from an unknown Japanese computer?
|
||||||
*/
|
*/
|
||||||
|
@ -74,7 +74,7 @@ static WRITE8_HANDLER( surpratk_5fc0_w )
|
|||||||
{
|
{
|
||||||
surpratk_state *state = (surpratk_state *)space->machine->driver_data;
|
surpratk_state *state = (surpratk_state *)space->machine->driver_data;
|
||||||
|
|
||||||
if ((data & 0xf4) != 0x10)
|
if ((data & 0xf4) != 0x10)
|
||||||
logerror("%04x: 3fc0 = %02x\n",cpu_get_pc(space->cpu),data);
|
logerror("%04x: 3fc0 = %02x\n",cpu_get_pc(space->cpu),data);
|
||||||
|
|
||||||
/* bit 0/1 = coin counters */
|
/* bit 0/1 = coin counters */
|
||||||
|
@ -628,7 +628,7 @@ static WRITE8_HANDLER( sound_bankswitch_w )
|
|||||||
memory_set_bank(space->machine, "bank2", (data - 1) & 7);
|
memory_set_bank(space->machine, "bank2", (data - 1) & 7);
|
||||||
|
|
||||||
#ifdef MAME_DEBUG
|
#ifdef MAME_DEBUG
|
||||||
if (((data - 1) & 7) > 2)
|
if (((data - 1) & 7) > 2)
|
||||||
logerror("CPU #1 switch to ROM bank %06x: should only happen if Z80 prg rom is 128K!\n",(data - 1) & 7);
|
logerror("CPU #1 switch to ROM bank %06x: should only happen if Z80 prg rom is 128K!\n",(data - 1) & 7);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -699,7 +699,7 @@ static WRITE16_HANDLER( driveout_sound_command_w )
|
|||||||
|
|
||||||
static WRITE16_HANDLER( cchip2_word_w )
|
static WRITE16_HANDLER( cchip2_word_w )
|
||||||
{
|
{
|
||||||
taitof2_state *state = (taitof2_state *)space->machine->driver_data;
|
taitof2_state *state = (taitof2_state *)space->machine->driver_data;
|
||||||
|
|
||||||
logerror("cchip2_w pc: %06x offset %04x: %02x\n", cpu_get_pc(space->cpu), offset, data);
|
logerror("cchip2_w pc: %06x offset %04x: %02x\n", cpu_get_pc(space->cpu), offset, data);
|
||||||
|
|
||||||
@ -708,7 +708,7 @@ static WRITE16_HANDLER( cchip2_word_w )
|
|||||||
|
|
||||||
static READ16_HANDLER( cchip2_word_r )
|
static READ16_HANDLER( cchip2_word_r )
|
||||||
{
|
{
|
||||||
taitof2_state *state = (taitof2_state *)space->machine->driver_data;
|
taitof2_state *state = (taitof2_state *)space->machine->driver_data;
|
||||||
|
|
||||||
/* C-Chip ID */
|
/* C-Chip ID */
|
||||||
if (offset == 0x401)
|
if (offset == 0x401)
|
||||||
|
@ -317,7 +317,7 @@ static INTERRUPT_GEN( vbl_interrupt )
|
|||||||
cpu_set_irq_callback(device, irq_callback);
|
cpu_set_irq_callback(device, irq_callback);
|
||||||
|
|
||||||
/* kludge to make plgirls boot */
|
/* kludge to make plgirls boot */
|
||||||
if (cpu_get_reg(device, Z80_IM) != 2)
|
if (cpu_get_reg(device, Z80_IM) != 2)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// What is really generating interrupts 0 and 1 is still to be found
|
// What is really generating interrupts 0 and 1 is still to be found
|
||||||
|
@ -1407,7 +1407,7 @@ static READ16_HANDLER( taitoz_sound_r )
|
|||||||
|
|
||||||
if (offset == 1)
|
if (offset == 1)
|
||||||
return (tc0140syt_comm_r(state->tc0140syt, 0) & 0xff);
|
return (tc0140syt_comm_r(state->tc0140syt, 0) & 0xff);
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1438,7 +1438,7 @@ static READ16_HANDLER( taitoz_msb_sound_r )
|
|||||||
|
|
||||||
if (offset == 1)
|
if (offset == 1)
|
||||||
return ((tc0140syt_comm_r(state->tc0140syt, 0) & 0xff) << 8);
|
return ((tc0140syt_comm_r(state->tc0140syt, 0) & 0xff) << 8);
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -1447,7 +1447,7 @@ static READ16_HANDLER( taitoz_msb_sound_r )
|
|||||||
/**** sound pan control ****/
|
/**** sound pan control ****/
|
||||||
static WRITE8_HANDLER( taitoz_pancontrol )
|
static WRITE8_HANDLER( taitoz_pancontrol )
|
||||||
{
|
{
|
||||||
// taitoz_state *state = (taitoz_state *)space->machine->driver_data;
|
// taitoz_state *state = (taitoz_state *)space->machine->driver_data;
|
||||||
static const char *const fltname[] = { "2610.1.r", "2610.1.l", "2610.2.r", "2610.2.l" };
|
static const char *const fltname[] = { "2610.1.r", "2610.1.l", "2610.2.r", "2610.2.l" };
|
||||||
|
|
||||||
offset = offset & 3;
|
offset = offset & 3;
|
||||||
|
@ -241,9 +241,9 @@ static WRITE16_HANDLER( prmrsocr_sound_cmd_w )
|
|||||||
if (ACCESSING_BITS_0_7)
|
if (ACCESSING_BITS_0_7)
|
||||||
{
|
{
|
||||||
data &= 0xff;
|
data &= 0xff;
|
||||||
if (offset == 0)
|
if (offset == 0)
|
||||||
soundlatch_w(space, 0, data);
|
soundlatch_w(space, 0, data);
|
||||||
else
|
else
|
||||||
soundlatch2_w(space, 0, data);
|
soundlatch2_w(space, 0, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -276,10 +276,10 @@ static WRITE8_HANDLER( tmnt_sres_w )
|
|||||||
/* bit 2 plays the title music */
|
/* bit 2 plays the title music */
|
||||||
if (data & 0x04)
|
if (data & 0x04)
|
||||||
{
|
{
|
||||||
if (!sample_playing(state->samples, 0))
|
if (!sample_playing(state->samples, 0))
|
||||||
sample_start_raw(state->samples, 0, state->sampledata, 0x40000, 20000, 0);
|
sample_start_raw(state->samples, 0, state->sampledata, 0x40000, 20000, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
sample_stop(state->samples, 0);
|
sample_stop(state->samples, 0);
|
||||||
state->tmnt_soundlatch = data;
|
state->tmnt_soundlatch = data;
|
||||||
}
|
}
|
||||||
@ -797,11 +797,11 @@ INLINE UINT32 tmnt2_get_word( running_machine *machine, UINT32 addr )
|
|||||||
{
|
{
|
||||||
tmnt_state *state = (tmnt_state *)machine->driver_data;
|
tmnt_state *state = (tmnt_state *)machine->driver_data;
|
||||||
|
|
||||||
if (addr <= 0x07ffff / 2)
|
if (addr <= 0x07ffff / 2)
|
||||||
return(state->tmnt2_rom[addr]);
|
return(state->tmnt2_rom[addr]);
|
||||||
else if (addr >= 0x104000 / 2 && addr <= 0x107fff / 2)
|
else if (addr >= 0x104000 / 2 && addr <= 0x107fff / 2)
|
||||||
return(state->sunset_104000[addr - 0x104000 / 2]);
|
return(state->sunset_104000[addr - 0x104000 / 2]);
|
||||||
else if (addr >= 0x180000 / 2 && addr <= 0x183fff / 2)
|
else if (addr >= 0x180000 / 2 && addr <= 0x183fff / 2)
|
||||||
return(machine->generic.spriteram.u16[addr - 0x180000 / 2]);
|
return(machine->generic.spriteram.u16[addr - 0x180000 / 2]);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -821,7 +821,7 @@ static void tmnt2_put_word( const address_space *space, UINT32 addr, UINT16 data
|
|||||||
k053245_word_w(state->k053245, offs, data, 0xffff);
|
k053245_word_w(state->k053245, offs, data, 0xffff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (addr >= 0x104000 / 2 && addr <= 0x107fff / 2)
|
else if (addr >= 0x104000 / 2 && addr <= 0x107fff / 2)
|
||||||
state->sunset_104000[addr - 0x104000 / 2] = data;
|
state->sunset_104000[addr - 0x104000 / 2] = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -836,11 +836,11 @@ static WRITE16_HANDLER( tmnt2_1c0800_w )
|
|||||||
|
|
||||||
COMBINE_DATA(state->tmnt2_1c0800 + offset);
|
COMBINE_DATA(state->tmnt2_1c0800 + offset);
|
||||||
|
|
||||||
if (offset != 0x18/2 || !ACCESSING_BITS_8_15)
|
if (offset != 0x18/2 || !ACCESSING_BITS_8_15)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mcu = state->tmnt2_1c0800;
|
mcu = state->tmnt2_1c0800;
|
||||||
if ((mcu[8] & 0xff00) != 0x8200)
|
if ((mcu[8] & 0xff00) != 0x8200)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
src_addr = (mcu[0] | (mcu[1] & 0xff) << 16) >> 1;
|
src_addr = (mcu[0] | (mcu[1] & 0xff) << 16) >> 1;
|
||||||
@ -848,9 +848,9 @@ static WRITE16_HANDLER( tmnt2_1c0800_w )
|
|||||||
mod_addr = (mcu[4] | (mcu[5] & 0xff) << 16) >> 1;
|
mod_addr = (mcu[4] | (mcu[5] & 0xff) << 16) >> 1;
|
||||||
zlock = (mcu[8] & 0xff) == 0x0001;
|
zlock = (mcu[8] & 0xff) == 0x0001;
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
src[i] = tmnt2_get_word(space->machine, src_addr + i);
|
src[i] = tmnt2_get_word(space->machine, src_addr + i);
|
||||||
for (i = 0; i < 24; i++) mod[i] =
|
for (i = 0; i < 24; i++) mod[i] =
|
||||||
tmnt2_get_word(space->machine, mod_addr + i);
|
tmnt2_get_word(space->machine, mod_addr + i);
|
||||||
|
|
||||||
code = src[0]; // code
|
code = src[0]; // code
|
||||||
|
@ -64,7 +64,7 @@ ROM_START( vega )
|
|||||||
ROM_LOAD( "rom7.bin", 0x0000, 0x0800, CRC(1de564cd) SHA1(7408cd29f1afc111aa695ecb00160d8f7fba7532) )
|
ROM_LOAD( "rom7.bin", 0x0000, 0x0800, CRC(1de564cd) SHA1(7408cd29f1afc111aa695ecb00160d8f7fba7532) )
|
||||||
ROM_LOAD( "rom8.bin", 0x0000, 0x0800, CRC(ccb8598c) SHA1(8c4a702f0653bb189db7d8ac4c2a06aacecc0de0) )
|
ROM_LOAD( "rom8.bin", 0x0000, 0x0800, CRC(ccb8598c) SHA1(8c4a702f0653bb189db7d8ac4c2a06aacecc0de0) )
|
||||||
ROM_LOAD( "rom9.bin", 0x0000, 0x0800, CRC(191c73cd) SHA1(17b1c3790f82b276e55d25ea8a38a3c9cf20bf12) )
|
ROM_LOAD( "rom9.bin", 0x0000, 0x0800, CRC(191c73cd) SHA1(17b1c3790f82b276e55d25ea8a38a3c9cf20bf12) )
|
||||||
//ROM_LOAD( "rom10.bin", 0x0000, 0x1000, CRC(c7659222) SHA1(86df4f4afe5bfd0b67239353a344724405c32fed) ) // 1ST AND 2ND HALF IDENTICAL
|
//ROM_LOAD( "rom10.bin", 0x0000, 0x1000, CRC(c7659222) SHA1(86df4f4afe5bfd0b67239353a344724405c32fed) ) // 1ST AND 2ND HALF IDENTICAL
|
||||||
ROM_LOAD( "rom10a.bin", 0x0000, 0x1000, CRC(fca9a570) SHA1(598772db11b32518ed6bf5155a19f4f1761a4831) ) // if you convert the ascii dump there is different data in the 2nd half unlike the above dump (it also appears in the ascii dumps of 11/12 too tho)
|
ROM_LOAD( "rom10a.bin", 0x0000, 0x1000, CRC(fca9a570) SHA1(598772db11b32518ed6bf5155a19f4f1761a4831) ) // if you convert the ascii dump there is different data in the 2nd half unlike the above dump (it also appears in the ascii dumps of 11/12 too tho)
|
||||||
ROM_LOAD( "rom11.bin", 0x0000, 0x0800, CRC(d1896f77) SHA1(5b80bf7aa81508edfae4fa583b4b0077575a300c) )
|
ROM_LOAD( "rom11.bin", 0x0000, 0x0800, CRC(d1896f77) SHA1(5b80bf7aa81508edfae4fa583b4b0077575a300c) )
|
||||||
ROM_LOAD( "rom12.bin", 0x0000, 0x0800, CRC(f5f1df2f) SHA1(5851b468702e5e4f085b64afbe7d8b797bb109b5) )
|
ROM_LOAD( "rom12.bin", 0x0000, 0x0800, CRC(f5f1df2f) SHA1(5851b468702e5e4f085b64afbe7d8b797bb109b5) )
|
||||||
@ -114,9 +114,9 @@ DRIVER_INIT(vegaa)
|
|||||||
|
|
||||||
l = ascii_to_bin(l);
|
l = ascii_to_bin(l);
|
||||||
r = ascii_to_bin(r);
|
r = ascii_to_bin(r);
|
||||||
|
|
||||||
num = l << 4 | r;
|
num = l << 4 | r;
|
||||||
|
|
||||||
buf[count] = num;
|
buf[count] = num;
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
@ -194,7 +194,7 @@ static READ16_HANDLER( warriorb_sound_r )
|
|||||||
|
|
||||||
if (offset == 1)
|
if (offset == 1)
|
||||||
return ((tc0140syt_comm_r(state->tc0140syt, 0) & 0xff));
|
return ((tc0140syt_comm_r(state->tc0140syt, 0) & 0xff));
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -638,7 +638,7 @@ static READ16_HANDLER( wgp_sound_r )
|
|||||||
|
|
||||||
if (offset == 1)
|
if (offset == 1)
|
||||||
return ((tc0140syt_comm_r(state->tc0140syt, 0) & 0xff));
|
return ((tc0140syt_comm_r(state->tc0140syt, 0) & 0xff));
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -219,7 +219,7 @@ static WRITE16_HANDLER( sound_cmd1_w )
|
|||||||
{
|
{
|
||||||
// anyone knows why 0x1a keeps lurking the sound queue in the world version???
|
// anyone knows why 0x1a keeps lurking the sound queue in the world version???
|
||||||
if (state->strip_0x1a)
|
if (state->strip_0x1a)
|
||||||
if (soundlatch2_r(space, 0) == 1 && data == 0x1a)
|
if (soundlatch2_r(space, 0) == 1 && data == 0x1a)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
soundlatch_w(space, 0, data & 0xff);
|
soundlatch_w(space, 0, data & 0xff);
|
||||||
|
@ -298,9 +298,9 @@ INPUT_PORTS_END
|
|||||||
|
|
||||||
static INTERRUPT_GEN( xmen_interrupt )
|
static INTERRUPT_GEN( xmen_interrupt )
|
||||||
{
|
{
|
||||||
if (cpu_getiloops(device) == 0)
|
if (cpu_getiloops(device) == 0)
|
||||||
irq5_line_hold(device);
|
irq5_line_hold(device);
|
||||||
else
|
else
|
||||||
irq3_line_hold(device);
|
irq3_line_hold(device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ typedef struct _asuka_state asuka_state;
|
|||||||
struct _asuka_state
|
struct _asuka_state
|
||||||
{
|
{
|
||||||
/* memory pointers */
|
/* memory pointers */
|
||||||
// UINT16 * paletteram; // this currently uses generic palette handlers
|
// UINT16 * paletteram; // this currently uses generic palette handlers
|
||||||
|
|
||||||
/* video-related */
|
/* video-related */
|
||||||
UINT16 video_ctrl;
|
UINT16 video_ctrl;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
struct sprite_cave
|
struct sprite_cave
|
||||||
{
|
{
|
||||||
int priority, flags;
|
int priority, flags;
|
||||||
|
|
||||||
|
@ -18,8 +18,8 @@ struct _gijoe_state
|
|||||||
int avac_vrc, sprite_colorbase;
|
int avac_vrc, sprite_colorbase;
|
||||||
|
|
||||||
/* misc */
|
/* misc */
|
||||||
UINT16 cur_control2;
|
UINT16 cur_control2;
|
||||||
emu_timer *dmadelay_timer;
|
emu_timer *dmadelay_timer;
|
||||||
|
|
||||||
/* devices */
|
/* devices */
|
||||||
const device_config *maincpu;
|
const device_config *maincpu;
|
||||||
|
@ -8,7 +8,7 @@ typedef struct _rastan_state rastan_state;
|
|||||||
struct _rastan_state
|
struct _rastan_state
|
||||||
{
|
{
|
||||||
/* memory pointers */
|
/* memory pointers */
|
||||||
// UINT16 * paletteram; // this currently uses generic palette handlers
|
// UINT16 * paletteram; // this currently uses generic palette handlers
|
||||||
|
|
||||||
/* video-related */
|
/* video-related */
|
||||||
UINT16 sprite_ctrl;
|
UINT16 sprite_ctrl;
|
||||||
|
@ -19,7 +19,7 @@ struct _spy_state
|
|||||||
int rambank, pmcbank;
|
int rambank, pmcbank;
|
||||||
int video_enable;
|
int video_enable;
|
||||||
int old_3f90;
|
int old_3f90;
|
||||||
|
|
||||||
/* devices */
|
/* devices */
|
||||||
const device_config *maincpu;
|
const device_config *maincpu;
|
||||||
const device_config *audiocpu;
|
const device_config *audiocpu;
|
||||||
|
@ -5,7 +5,7 @@ struct _taitob_state
|
|||||||
/* memory pointers */
|
/* memory pointers */
|
||||||
UINT16 * spriteram;
|
UINT16 * spriteram;
|
||||||
UINT16 * pixelram;
|
UINT16 * pixelram;
|
||||||
// UINT16 * paletteram; // this currently uses generic palette handlers
|
// UINT16 * paletteram; // this currently uses generic palette handlers
|
||||||
|
|
||||||
/* video-related */
|
/* video-related */
|
||||||
/* framebuffer is a raw bitmap, remapped as a last step */
|
/* framebuffer is a raw bitmap, remapped as a last step */
|
||||||
|
@ -27,7 +27,7 @@ struct _taitof2_state
|
|||||||
int sprite_type;
|
int sprite_type;
|
||||||
|
|
||||||
UINT16 spritebank[8];
|
UINT16 spritebank[8];
|
||||||
// UINT16 spritebank_eof[8];
|
// UINT16 spritebank_eof[8];
|
||||||
UINT16 spritebank_buffered[8];
|
UINT16 spritebank_buffered[8];
|
||||||
|
|
||||||
INT32 sprites_disabled, sprites_active_area, sprites_master_scrollx, sprites_master_scrolly;
|
INT32 sprites_disabled, sprites_active_area, sprites_master_scrollx, sprites_master_scrolly;
|
||||||
|
@ -4,7 +4,7 @@ struct _tmnt_state
|
|||||||
{
|
{
|
||||||
/* memory pointers */
|
/* memory pointers */
|
||||||
INT16 * sampledata;
|
INT16 * sampledata;
|
||||||
UINT16 * tmnt2_1c0800;
|
UINT16 * tmnt2_1c0800;
|
||||||
UINT16 * sunset_104000;
|
UINT16 * sunset_104000;
|
||||||
UINT16 * tmnt2_rom;
|
UINT16 * tmnt2_rom;
|
||||||
// UINT16 * paletteram; // currently this uses generic palette handling
|
// UINT16 * paletteram; // currently this uses generic palette handling
|
||||||
@ -14,7 +14,7 @@ struct _tmnt_state
|
|||||||
/* video-related */
|
/* video-related */
|
||||||
int layer_colorbase[3], sprite_colorbase;
|
int layer_colorbase[3], sprite_colorbase;
|
||||||
int layerpri[3];
|
int layerpri[3];
|
||||||
int sorted_layer[3]; // this might not be necessary, but tmnt2 uses it in a strange way...
|
int sorted_layer[3]; // this might not be necessary, but tmnt2 uses it in a strange way...
|
||||||
|
|
||||||
tilemap_t *roz_tilemap;
|
tilemap_t *roz_tilemap;
|
||||||
int glfgreat_roz_rom_bank, glfgreat_roz_char_bank, glfgreat_roz_rom_mode;
|
int glfgreat_roz_rom_bank, glfgreat_roz_char_bank, glfgreat_roz_rom_mode;
|
||||||
|
@ -10,7 +10,7 @@ struct _volfied_state
|
|||||||
/* memory pointers */
|
/* memory pointers */
|
||||||
UINT16 * video_ram;
|
UINT16 * video_ram;
|
||||||
UINT8 * cchip_ram;
|
UINT8 * cchip_ram;
|
||||||
// UINT16 * paletteram; // this currently uses generic palette handlers
|
// UINT16 * paletteram; // this currently uses generic palette handlers
|
||||||
|
|
||||||
/* video-related */
|
/* video-related */
|
||||||
UINT16 video_ctrl;
|
UINT16 video_ctrl;
|
||||||
|
@ -37,7 +37,7 @@ static WRITE8_HANDLER( ajax_bankswitch_w )
|
|||||||
int bank = 0;
|
int bank = 0;
|
||||||
|
|
||||||
/* rom select */
|
/* rom select */
|
||||||
if (!(data & 0x80))
|
if (!(data & 0x80))
|
||||||
bank += 4;
|
bank += 4;
|
||||||
|
|
||||||
/* coin counters */
|
/* coin counters */
|
||||||
|
@ -533,7 +533,7 @@ WRITE32_DEVICE_HANDLER( n64_sp_reg_w )
|
|||||||
{
|
{
|
||||||
UINT32 oldstatus = cpu_get_reg(device, RSP_SR);
|
UINT32 oldstatus = cpu_get_reg(device, RSP_SR);
|
||||||
UINT32 newstatus = oldstatus;
|
UINT32 newstatus = oldstatus;
|
||||||
|
|
||||||
// printf( "RSP_STATUS_REG Write; %08x\n", data );
|
// printf( "RSP_STATUS_REG Write; %08x\n", data );
|
||||||
if (data & 0x00000001) // clear halt
|
if (data & 0x00000001) // clear halt
|
||||||
{
|
{
|
||||||
|
@ -303,7 +303,7 @@ static TILE_GET_INFO( sailormn_get_tile_info_2 )
|
|||||||
|
|
||||||
INLINE void vram_w( UINT16 *VRAM, tilemap_t *TILEMAP, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask )
|
INLINE void vram_w( UINT16 *VRAM, tilemap_t *TILEMAP, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask )
|
||||||
{
|
{
|
||||||
if ((VRAM[offset] & mem_mask) == (data & mem_mask))
|
if ((VRAM[offset] & mem_mask) == (data & mem_mask))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
COMBINE_DATA(&VRAM[offset]);
|
COMBINE_DATA(&VRAM[offset]);
|
||||||
@ -328,7 +328,7 @@ INLINE void vram_w( UINT16 *VRAM, tilemap_t *TILEMAP, ATTR_UNUSED offs_t offset,
|
|||||||
INLINE void vram_8x8_w( UINT16 *VRAM, tilemap_t *TILEMAP, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask )
|
INLINE void vram_8x8_w( UINT16 *VRAM, tilemap_t *TILEMAP, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask )
|
||||||
{
|
{
|
||||||
offset %= 0x4000 / 2;
|
offset %= 0x4000 / 2;
|
||||||
if ((VRAM[offset] & mem_mask) == (data & mem_mask))
|
if ((VRAM[offset] & mem_mask) == (data & mem_mask))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
COMBINE_DATA(&VRAM[offset + 0x0000 / 2]);
|
COMBINE_DATA(&VRAM[offset + 0x0000 / 2]);
|
||||||
@ -343,51 +343,51 @@ static TILE_GET_INFO( get_tile_info_2 ) { cave_state *state = (cave_state *)mach
|
|||||||
static TILE_GET_INFO( get_tile_info_3 ) { cave_state *state = (cave_state *)machine->driver_data; get_tile_info(machine, tileinfo, tile_index, 3, state->vram_3, state->tiledim_3); }
|
static TILE_GET_INFO( get_tile_info_3 ) { cave_state *state = (cave_state *)machine->driver_data; get_tile_info(machine, tileinfo, tile_index, 3, state->vram_3, state->tiledim_3); }
|
||||||
|
|
||||||
WRITE16_HANDLER( cave_vram_0_w )
|
WRITE16_HANDLER( cave_vram_0_w )
|
||||||
{
|
{
|
||||||
cave_state *state = (cave_state *)space->machine->driver_data;
|
cave_state *state = (cave_state *)space->machine->driver_data;
|
||||||
vram_w(state->vram_0, state->tilemap_0, offset, data, mem_mask);
|
vram_w(state->vram_0, state->tilemap_0, offset, data, mem_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE16_HANDLER( cave_vram_0_8x8_w )
|
WRITE16_HANDLER( cave_vram_0_8x8_w )
|
||||||
{
|
{
|
||||||
cave_state *state = (cave_state *)space->machine->driver_data;
|
cave_state *state = (cave_state *)space->machine->driver_data;
|
||||||
vram_8x8_w(state->vram_0, state->tilemap_0, offset, data, mem_mask);
|
vram_8x8_w(state->vram_0, state->tilemap_0, offset, data, mem_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE16_HANDLER( cave_vram_1_w )
|
WRITE16_HANDLER( cave_vram_1_w )
|
||||||
{
|
{
|
||||||
cave_state *state = (cave_state *)space->machine->driver_data;
|
cave_state *state = (cave_state *)space->machine->driver_data;
|
||||||
vram_w(state->vram_1, state->tilemap_1, offset, data, mem_mask);
|
vram_w(state->vram_1, state->tilemap_1, offset, data, mem_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE16_HANDLER( cave_vram_1_8x8_w )
|
WRITE16_HANDLER( cave_vram_1_8x8_w )
|
||||||
{
|
{
|
||||||
cave_state *state = (cave_state *)space->machine->driver_data;
|
cave_state *state = (cave_state *)space->machine->driver_data;
|
||||||
vram_8x8_w(state->vram_1, state->tilemap_1, offset, data, mem_mask);
|
vram_8x8_w(state->vram_1, state->tilemap_1, offset, data, mem_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE16_HANDLER( cave_vram_2_w )
|
WRITE16_HANDLER( cave_vram_2_w )
|
||||||
{
|
{
|
||||||
cave_state *state = (cave_state *)space->machine->driver_data;
|
cave_state *state = (cave_state *)space->machine->driver_data;
|
||||||
vram_w(state->vram_2, state->tilemap_2, offset, data, mem_mask);
|
vram_w(state->vram_2, state->tilemap_2, offset, data, mem_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE16_HANDLER( cave_vram_2_8x8_w )
|
WRITE16_HANDLER( cave_vram_2_8x8_w )
|
||||||
{
|
{
|
||||||
cave_state *state = (cave_state *)space->machine->driver_data;
|
cave_state *state = (cave_state *)space->machine->driver_data;
|
||||||
vram_8x8_w(state->vram_2, state->tilemap_2, offset, data, mem_mask);
|
vram_8x8_w(state->vram_2, state->tilemap_2, offset, data, mem_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE16_HANDLER( cave_vram_3_w )
|
WRITE16_HANDLER( cave_vram_3_w )
|
||||||
{
|
{
|
||||||
cave_state *state = (cave_state *)space->machine->driver_data;
|
cave_state *state = (cave_state *)space->machine->driver_data;
|
||||||
vram_w(state->vram_3, state->tilemap_3, offset, data, mem_mask);
|
vram_w(state->vram_3, state->tilemap_3, offset, data, mem_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE16_HANDLER( cave_vram_3_8x8_w )
|
WRITE16_HANDLER( cave_vram_3_8x8_w )
|
||||||
{
|
{
|
||||||
cave_state *state = (cave_state *)space->machine->driver_data;
|
cave_state *state = (cave_state *)space->machine->driver_data;
|
||||||
vram_8x8_w(state->vram_3, state->tilemap_3, offset, data, mem_mask);
|
vram_8x8_w(state->vram_3, state->tilemap_3, offset, data, mem_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -559,7 +559,7 @@ static void get_sprite_info_cave( running_machine *machine )
|
|||||||
source = state->spriteram + ((state->spriteram_size / 2) / 2) * state->spriteram_bank;
|
source = state->spriteram + ((state->spriteram_size / 2) / 2) * state->spriteram_bank;
|
||||||
|
|
||||||
if (state->videoregs[4] & 0x02)
|
if (state->videoregs[4] & 0x02)
|
||||||
if (state->spriteram_2)
|
if (state->spriteram_2)
|
||||||
source = state->spriteram_2 + ((state->spriteram_size / 2) / 2) * state->spriteram_bank;
|
source = state->spriteram_2 + ((state->spriteram_size / 2) / 2) * state->spriteram_bank;
|
||||||
|
|
||||||
finish = source + ((state->spriteram_size / 2) / 2);
|
finish = source + ((state->spriteram_size / 2) / 2);
|
||||||
@ -689,7 +689,7 @@ static void get_sprite_info_donpachi( running_machine *machine )
|
|||||||
source = state->spriteram + ((state->spriteram_size / 2) / 2) * state->spriteram_bank;
|
source = state->spriteram + ((state->spriteram_size / 2) / 2) * state->spriteram_bank;
|
||||||
|
|
||||||
if (state->videoregs[4] & 0x02)
|
if (state->videoregs[4] & 0x02)
|
||||||
if (state->spriteram_2)
|
if (state->spriteram_2)
|
||||||
source = state->spriteram_2 + ((state->spriteram_size / 2) / 2) * state->spriteram_bank;
|
source = state->spriteram_2 + ((state->spriteram_size / 2) / 2) * state->spriteram_bank;
|
||||||
|
|
||||||
finish = source + ((state->spriteram_size / 2) / 2);
|
finish = source + ((state->spriteram_size / 2) / 2);
|
||||||
@ -887,7 +887,7 @@ static void do_blit_zoom16_cave( running_machine *machine, const struct sprite_c
|
|||||||
x2 = sprite->x;
|
x2 = sprite->x;
|
||||||
x1 = x2 + sprite->total_width;
|
x1 = x2 + sprite->total_width;
|
||||||
dx = -1;
|
dx = -1;
|
||||||
if (x2 < state->blit.clip_left)
|
if (x2 < state->blit.clip_left)
|
||||||
x2 = state->blit.clip_left;
|
x2 = state->blit.clip_left;
|
||||||
|
|
||||||
if (x1 > state->blit.clip_right)
|
if (x1 > state->blit.clip_right)
|
||||||
@ -896,16 +896,16 @@ static void do_blit_zoom16_cave( running_machine *machine, const struct sprite_c
|
|||||||
x1 = state->blit.clip_right;
|
x1 = state->blit.clip_right;
|
||||||
while ((xcount0 & 0xffff) >= sprite->zoomx_re)
|
while ((xcount0 & 0xffff) >= sprite->zoomx_re)
|
||||||
{
|
{
|
||||||
xcount0 += sprite->zoomx_re;
|
xcount0 += sprite->zoomx_re;
|
||||||
x1--;
|
x1--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x2 >= x1)
|
if (x2 >= x1)
|
||||||
return;
|
return;
|
||||||
x1--; x2--;
|
x1--; x2--;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
x1 = sprite->x;
|
x1 = sprite->x;
|
||||||
x2 = x1 + sprite->total_width;
|
x2 = x1 + sprite->total_width;
|
||||||
@ -916,13 +916,13 @@ static void do_blit_zoom16_cave( running_machine *machine, const struct sprite_c
|
|||||||
x1 = state->blit.clip_left;
|
x1 = state->blit.clip_left;
|
||||||
while ((xcount0 & 0xffff) >= sprite->zoomx_re)
|
while ((xcount0 & 0xffff) >= sprite->zoomx_re)
|
||||||
{
|
{
|
||||||
xcount0 += sprite->zoomx_re;
|
xcount0 += sprite->zoomx_re;
|
||||||
x1++;
|
x1++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (x2 > state->blit.clip_right)
|
if (x2 > state->blit.clip_right)
|
||||||
x2 = state->blit.clip_right;
|
x2 = state->blit.clip_right;
|
||||||
if (x1 >= x2)
|
if (x1 >= x2)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -931,7 +931,7 @@ static void do_blit_zoom16_cave( running_machine *machine, const struct sprite_c
|
|||||||
y2 = sprite->y;
|
y2 = sprite->y;
|
||||||
y1 = y2 + sprite->total_height;
|
y1 = y2 + sprite->total_height;
|
||||||
dy = -1;
|
dy = -1;
|
||||||
if (y2 < state->blit.clip_top)
|
if (y2 < state->blit.clip_top)
|
||||||
y2 = state->blit.clip_top;
|
y2 = state->blit.clip_top;
|
||||||
if (y1 > state->blit.clip_bottom)
|
if (y1 > state->blit.clip_bottom)
|
||||||
{
|
{
|
||||||
@ -939,15 +939,15 @@ static void do_blit_zoom16_cave( running_machine *machine, const struct sprite_c
|
|||||||
y1 = state->blit.clip_bottom;
|
y1 = state->blit.clip_bottom;
|
||||||
while ((ycount0 & 0xffff) >= sprite->zoomy_re)
|
while ((ycount0 & 0xffff) >= sprite->zoomy_re)
|
||||||
{
|
{
|
||||||
ycount0 += sprite->zoomy_re;
|
ycount0 += sprite->zoomy_re;
|
||||||
y1--;
|
y1--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (y2 >= y1)
|
if (y2 >= y1)
|
||||||
return;
|
return;
|
||||||
y1--; y2--;
|
y1--; y2--;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
y1 = sprite->y;
|
y1 = sprite->y;
|
||||||
y2 = y1 + sprite->total_height;
|
y2 = y1 + sprite->total_height;
|
||||||
@ -958,13 +958,13 @@ static void do_blit_zoom16_cave( running_machine *machine, const struct sprite_c
|
|||||||
y1 = state->blit.clip_top;
|
y1 = state->blit.clip_top;
|
||||||
while ((ycount0 & 0xffff) >= sprite->zoomy_re)
|
while ((ycount0 & 0xffff) >= sprite->zoomy_re)
|
||||||
{
|
{
|
||||||
ycount0 += sprite->zoomy_re;
|
ycount0 += sprite->zoomy_re;
|
||||||
y1++;
|
y1++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (y2 > state->blit.clip_bottom )
|
if (y2 > state->blit.clip_bottom )
|
||||||
y2 = state->blit.clip_bottom;
|
y2 = state->blit.clip_bottom;
|
||||||
if (y1 >= y2)
|
if (y1 >= y2)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -995,7 +995,7 @@ static void do_blit_zoom16_cave( running_machine *machine, const struct sprite_c
|
|||||||
source += xcount >> 16;
|
source += xcount >> 16;
|
||||||
xcount &= 0xffff;
|
xcount &= 0xffff;
|
||||||
pen = *source;
|
pen = *source;
|
||||||
if (pen)
|
if (pen)
|
||||||
dest[x] = base_pen + pen;
|
dest[x] = base_pen + pen;
|
||||||
}
|
}
|
||||||
xcount += sprite->zoomx_re;
|
xcount += sprite->zoomx_re;
|
||||||
@ -1028,15 +1028,15 @@ static void do_blit_zoom16_cave_zb( running_machine *machine, const struct sprit
|
|||||||
x1 = state->blit.clip_right;
|
x1 = state->blit.clip_right;
|
||||||
while ((xcount0 & 0xffff) >= sprite->zoomx_re)
|
while ((xcount0 & 0xffff) >= sprite->zoomx_re)
|
||||||
{
|
{
|
||||||
xcount0 += sprite->zoomx_re;
|
xcount0 += sprite->zoomx_re;
|
||||||
x1--;
|
x1--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (x2 >= x1)
|
if (x2 >= x1)
|
||||||
return;
|
return;
|
||||||
x1--; x2--;
|
x1--; x2--;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
x1 = sprite->x;
|
x1 = sprite->x;
|
||||||
x2 = x1 + sprite->total_width;
|
x2 = x1 + sprite->total_width;
|
||||||
@ -1045,15 +1045,15 @@ static void do_blit_zoom16_cave_zb( running_machine *machine, const struct sprit
|
|||||||
{
|
{
|
||||||
xcount0 += (state->blit.clip_left - x1) * sprite->zoomx_re;
|
xcount0 += (state->blit.clip_left - x1) * sprite->zoomx_re;
|
||||||
x1 = state->blit.clip_left;
|
x1 = state->blit.clip_left;
|
||||||
while ((xcount0 & 0xffff) >= sprite->zoomx_re)
|
while ((xcount0 & 0xffff) >= sprite->zoomx_re)
|
||||||
{
|
{
|
||||||
xcount0 += sprite->zoomx_re;
|
xcount0 += sprite->zoomx_re;
|
||||||
x1++;
|
x1++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (x2 > state->blit.clip_right)
|
if (x2 > state->blit.clip_right)
|
||||||
x2 = state->blit.clip_right;
|
x2 = state->blit.clip_right;
|
||||||
if (x1 >= x2)
|
if (x1 >= x2)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (sprite->flags & SPRITE_FLIPY_CAVE)
|
if (sprite->flags & SPRITE_FLIPY_CAVE)
|
||||||
@ -1061,7 +1061,7 @@ static void do_blit_zoom16_cave_zb( running_machine *machine, const struct sprit
|
|||||||
y2 = sprite->y;
|
y2 = sprite->y;
|
||||||
y1 = y2 + sprite->total_height;
|
y1 = y2 + sprite->total_height;
|
||||||
dy = -1;
|
dy = -1;
|
||||||
if (y2 < state->blit.clip_top)
|
if (y2 < state->blit.clip_top)
|
||||||
y2 = state->blit.clip_top;
|
y2 = state->blit.clip_top;
|
||||||
if (y1 > state->blit.clip_bottom)
|
if (y1 > state->blit.clip_bottom)
|
||||||
{
|
{
|
||||||
@ -1069,15 +1069,15 @@ static void do_blit_zoom16_cave_zb( running_machine *machine, const struct sprit
|
|||||||
y1 = state->blit.clip_bottom;
|
y1 = state->blit.clip_bottom;
|
||||||
while ((ycount0 & 0xffff) >= sprite->zoomy_re)
|
while ((ycount0 & 0xffff) >= sprite->zoomy_re)
|
||||||
{
|
{
|
||||||
ycount0 += sprite->zoomy_re;
|
ycount0 += sprite->zoomy_re;
|
||||||
y1--;
|
y1--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (y2 >= y1)
|
if (y2 >= y1)
|
||||||
return;
|
return;
|
||||||
y1--; y2--;
|
y1--; y2--;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
y1 = sprite->y;
|
y1 = sprite->y;
|
||||||
y2 = y1 + sprite->total_height;
|
y2 = y1 + sprite->total_height;
|
||||||
@ -1088,13 +1088,13 @@ static void do_blit_zoom16_cave_zb( running_machine *machine, const struct sprit
|
|||||||
y1 = state->blit.clip_top;
|
y1 = state->blit.clip_top;
|
||||||
while ((ycount0 & 0xffff) >= sprite->zoomy_re)
|
while ((ycount0 & 0xffff) >= sprite->zoomy_re)
|
||||||
{
|
{
|
||||||
ycount0 += sprite->zoomy_re;
|
ycount0 += sprite->zoomy_re;
|
||||||
y1++;
|
y1++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (y2 > state->blit.clip_bottom)
|
if (y2 > state->blit.clip_bottom)
|
||||||
y2 = state->blit.clip_bottom;
|
y2 = state->blit.clip_bottom;
|
||||||
if (y1 >= y2)
|
if (y1 >= y2)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1156,18 +1156,18 @@ static void do_blit_16_cave( running_machine *machine, const struct sprite_cave
|
|||||||
x2 = sprite->x;
|
x2 = sprite->x;
|
||||||
x1 = x2 + sprite->total_width;
|
x1 = x2 + sprite->total_width;
|
||||||
dx = -1;
|
dx = -1;
|
||||||
if (x2 < state->blit.clip_left)
|
if (x2 < state->blit.clip_left)
|
||||||
x2 = state->blit.clip_left;
|
x2 = state->blit.clip_left;
|
||||||
if (x1 > state->blit.clip_right)
|
if (x1 > state->blit.clip_right)
|
||||||
{
|
{
|
||||||
xcount0 = x1 - state->blit.clip_right;
|
xcount0 = x1 - state->blit.clip_right;
|
||||||
x1 = state->blit.clip_right;
|
x1 = state->blit.clip_right;
|
||||||
}
|
}
|
||||||
if (x2 >= x1)
|
if (x2 >= x1)
|
||||||
return;
|
return;
|
||||||
x1--; x2--;
|
x1--; x2--;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
x1 = sprite->x;
|
x1 = sprite->x;
|
||||||
x2 = x1 + sprite->total_width;
|
x2 = x1 + sprite->total_width;
|
||||||
@ -1177,9 +1177,9 @@ static void do_blit_16_cave( running_machine *machine, const struct sprite_cave
|
|||||||
xcount0 = state->blit.clip_left - x1;
|
xcount0 = state->blit.clip_left - x1;
|
||||||
x1 = state->blit.clip_left;
|
x1 = state->blit.clip_left;
|
||||||
}
|
}
|
||||||
if (x2 > state->blit.clip_right)
|
if (x2 > state->blit.clip_right)
|
||||||
x2 = state->blit.clip_right;
|
x2 = state->blit.clip_right;
|
||||||
if (x1 >= x2)
|
if (x1 >= x2)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (sprite->flags & SPRITE_FLIPY_CAVE)
|
if (sprite->flags & SPRITE_FLIPY_CAVE)
|
||||||
@ -1187,14 +1187,14 @@ static void do_blit_16_cave( running_machine *machine, const struct sprite_cave
|
|||||||
y2 = sprite->y;
|
y2 = sprite->y;
|
||||||
y1 = y2 + sprite->total_height;
|
y1 = y2 + sprite->total_height;
|
||||||
dy = -1;
|
dy = -1;
|
||||||
if (y2 < state->blit.clip_top)
|
if (y2 < state->blit.clip_top)
|
||||||
y2 = state->blit.clip_top;
|
y2 = state->blit.clip_top;
|
||||||
if (y1 > state->blit.clip_bottom)
|
if (y1 > state->blit.clip_bottom)
|
||||||
{
|
{
|
||||||
ycount0 = y1 - state->blit.clip_bottom;
|
ycount0 = y1 - state->blit.clip_bottom;
|
||||||
y1 = state->blit.clip_bottom;
|
y1 = state->blit.clip_bottom;
|
||||||
}
|
}
|
||||||
if (y2 >= y1)
|
if (y2 >= y1)
|
||||||
return;
|
return;
|
||||||
y1--; y2--;
|
y1--; y2--;
|
||||||
}
|
}
|
||||||
@ -1207,9 +1207,9 @@ static void do_blit_16_cave( running_machine *machine, const struct sprite_cave
|
|||||||
ycount0 = state->blit.clip_top - y1;
|
ycount0 = state->blit.clip_top - y1;
|
||||||
y1 = state->blit.clip_top;
|
y1 = state->blit.clip_top;
|
||||||
}
|
}
|
||||||
if (y2 > state->blit.clip_bottom)
|
if (y2 > state->blit.clip_bottom)
|
||||||
y2 = state->blit.clip_bottom;
|
y2 = state->blit.clip_bottom;
|
||||||
if (y1 >= y2)
|
if (y1 >= y2)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1229,7 +1229,7 @@ static void do_blit_16_cave( running_machine *machine, const struct sprite_cave
|
|||||||
for (x = x1; x != x2; x += dx)
|
for (x = x1; x != x2; x += dx)
|
||||||
{
|
{
|
||||||
pen = *source;
|
pen = *source;
|
||||||
if (pen)
|
if (pen)
|
||||||
dest[x] = base_pen + pen;
|
dest[x] = base_pen + pen;
|
||||||
source++;
|
source++;
|
||||||
}
|
}
|
||||||
@ -1252,18 +1252,18 @@ static void do_blit_16_cave_zb( running_machine *machine, const struct sprite_c
|
|||||||
x2 = sprite->x;
|
x2 = sprite->x;
|
||||||
x1 = x2 + sprite->total_width;
|
x1 = x2 + sprite->total_width;
|
||||||
dx = -1;
|
dx = -1;
|
||||||
if (x2 < state->blit.clip_left)
|
if (x2 < state->blit.clip_left)
|
||||||
x2 = state->blit.clip_left;
|
x2 = state->blit.clip_left;
|
||||||
if (x1 > state->blit.clip_right)
|
if (x1 > state->blit.clip_right)
|
||||||
{
|
{
|
||||||
xcount0 = x1 - state->blit.clip_right;
|
xcount0 = x1 - state->blit.clip_right;
|
||||||
x1 = state->blit.clip_right;
|
x1 = state->blit.clip_right;
|
||||||
}
|
}
|
||||||
if (x2 >= x1)
|
if (x2 >= x1)
|
||||||
return;
|
return;
|
||||||
x1--; x2--;
|
x1--; x2--;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
x1 = sprite->x;
|
x1 = sprite->x;
|
||||||
x2 = x1 + sprite->total_width;
|
x2 = x1 + sprite->total_width;
|
||||||
@ -1273,9 +1273,9 @@ static void do_blit_16_cave_zb( running_machine *machine, const struct sprite_c
|
|||||||
xcount0 = state->blit.clip_left - x1;
|
xcount0 = state->blit.clip_left - x1;
|
||||||
x1 = state->blit.clip_left;
|
x1 = state->blit.clip_left;
|
||||||
}
|
}
|
||||||
if (x2 > state->blit.clip_right)
|
if (x2 > state->blit.clip_right)
|
||||||
x2 = state->blit.clip_right;
|
x2 = state->blit.clip_right;
|
||||||
if (x1 >= x2)
|
if (x1 >= x2)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (sprite->flags & SPRITE_FLIPY_CAVE)
|
if (sprite->flags & SPRITE_FLIPY_CAVE)
|
||||||
@ -1283,18 +1283,18 @@ static void do_blit_16_cave_zb( running_machine *machine, const struct sprite_c
|
|||||||
y2 = sprite->y;
|
y2 = sprite->y;
|
||||||
y1 = y2 + sprite->total_height;
|
y1 = y2 + sprite->total_height;
|
||||||
dy = -1;
|
dy = -1;
|
||||||
if (y2 < state->blit.clip_top)
|
if (y2 < state->blit.clip_top)
|
||||||
y2 = state->blit.clip_top;
|
y2 = state->blit.clip_top;
|
||||||
if (y1 > state->blit.clip_bottom)
|
if (y1 > state->blit.clip_bottom)
|
||||||
{
|
{
|
||||||
ycount0 = y1 - state->blit.clip_bottom;
|
ycount0 = y1 - state->blit.clip_bottom;
|
||||||
y1 = state->blit.clip_bottom;
|
y1 = state->blit.clip_bottom;
|
||||||
}
|
}
|
||||||
if (y2 >= y1)
|
if (y2 >= y1)
|
||||||
return;
|
return;
|
||||||
y1--; y2--;
|
y1--; y2--;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
y1 = sprite->y;
|
y1 = sprite->y;
|
||||||
y2 = y1 + sprite->total_height;
|
y2 = y1 + sprite->total_height;
|
||||||
@ -1304,7 +1304,7 @@ static void do_blit_16_cave_zb( running_machine *machine, const struct sprite_c
|
|||||||
ycount0 = state->blit.clip_top - y1;
|
ycount0 = state->blit.clip_top - y1;
|
||||||
y1 = state->blit.clip_top;
|
y1 = state->blit.clip_top;
|
||||||
}
|
}
|
||||||
if (y2 > state->blit.clip_bottom)
|
if (y2 > state->blit.clip_bottom)
|
||||||
y2 = state->blit.clip_bottom;
|
y2 = state->blit.clip_bottom;
|
||||||
if (y1 >= y2)
|
if (y1 >= y2)
|
||||||
return;
|
return;
|
||||||
@ -1568,25 +1568,25 @@ INLINE void cave_tilemap_draw(
|
|||||||
static void cave_tilemap_0_draw( running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, UINT32 flags, UINT32 priority, UINT32 priority2 )
|
static void cave_tilemap_0_draw( running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, UINT32 flags, UINT32 priority, UINT32 priority2 )
|
||||||
{
|
{
|
||||||
cave_state *state = (cave_state *)machine->driver_data;
|
cave_state *state = (cave_state *)machine->driver_data;
|
||||||
cave_tilemap_draw(machine, bitmap, cliprect, state->tilemap_0, state->vram_0, state->vctrl_0, flags, priority, priority2);
|
cave_tilemap_draw(machine, bitmap, cliprect, state->tilemap_0, state->vram_0, state->vctrl_0, flags, priority, priority2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cave_tilemap_1_draw( running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, UINT32 flags, UINT32 priority, UINT32 priority2 )
|
static void cave_tilemap_1_draw( running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, UINT32 flags, UINT32 priority, UINT32 priority2 )
|
||||||
{
|
{
|
||||||
cave_state *state = (cave_state *)machine->driver_data;
|
cave_state *state = (cave_state *)machine->driver_data;
|
||||||
cave_tilemap_draw(machine, bitmap, cliprect, state->tilemap_1, state->vram_1, state->vctrl_1, flags, priority, priority2);
|
cave_tilemap_draw(machine, bitmap, cliprect, state->tilemap_1, state->vram_1, state->vctrl_1, flags, priority, priority2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cave_tilemap_2_draw( running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, UINT32 flags, UINT32 priority, UINT32 priority2 )
|
static void cave_tilemap_2_draw( running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, UINT32 flags, UINT32 priority, UINT32 priority2 )
|
||||||
{
|
{
|
||||||
cave_state *state = (cave_state *)machine->driver_data;
|
cave_state *state = (cave_state *)machine->driver_data;
|
||||||
cave_tilemap_draw(machine, bitmap, cliprect, state->tilemap_2, state->vram_2, state->vctrl_2, flags, priority, priority2);
|
cave_tilemap_draw(machine, bitmap, cliprect, state->tilemap_2, state->vram_2, state->vctrl_2, flags, priority, priority2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cave_tilemap_3_draw( running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, UINT32 flags, UINT32 priority, UINT32 priority2 )
|
static void cave_tilemap_3_draw( running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, UINT32 flags, UINT32 priority, UINT32 priority2 )
|
||||||
{
|
{
|
||||||
cave_state *state = (cave_state *)machine->driver_data;
|
cave_state *state = (cave_state *)machine->driver_data;
|
||||||
cave_tilemap_draw(machine, bitmap, cliprect, state->tilemap_3, state->vram_3, state->vctrl_3, flags, priority, priority2);
|
cave_tilemap_draw(machine, bitmap, cliprect, state->tilemap_3, state->vram_3, state->vctrl_3, flags, priority, priority2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1605,7 +1605,7 @@ VIDEO_UPDATE( cave )
|
|||||||
if (state->tilemap_0)
|
if (state->tilemap_0)
|
||||||
{
|
{
|
||||||
state->tiledim_0 = state->vctrl_0[1] & 0x2000;
|
state->tiledim_0 = state->vctrl_0[1] & 0x2000;
|
||||||
if (state->tiledim_0 != state->old_tiledim_0)
|
if (state->tiledim_0 != state->old_tiledim_0)
|
||||||
tilemap_mark_all_tiles_dirty(state->tilemap_0);
|
tilemap_mark_all_tiles_dirty(state->tilemap_0);
|
||||||
state->old_tiledim_0 = state->tiledim_0;
|
state->old_tiledim_0 = state->tiledim_0;
|
||||||
}
|
}
|
||||||
@ -1613,7 +1613,7 @@ VIDEO_UPDATE( cave )
|
|||||||
if (state->tilemap_1)
|
if (state->tilemap_1)
|
||||||
{
|
{
|
||||||
state->tiledim_1 = state->vctrl_1[1] & 0x2000;
|
state->tiledim_1 = state->vctrl_1[1] & 0x2000;
|
||||||
if (state->tiledim_1 != state->old_tiledim_1)
|
if (state->tiledim_1 != state->old_tiledim_1)
|
||||||
tilemap_mark_all_tiles_dirty(state->tilemap_1);
|
tilemap_mark_all_tiles_dirty(state->tilemap_1);
|
||||||
state->old_tiledim_1 = state->tiledim_1;
|
state->old_tiledim_1 = state->tiledim_1;
|
||||||
}
|
}
|
||||||
@ -1621,7 +1621,7 @@ VIDEO_UPDATE( cave )
|
|||||||
if (state->tilemap_2)
|
if (state->tilemap_2)
|
||||||
{
|
{
|
||||||
state->tiledim_2 = state->vctrl_2[1] & 0x2000;
|
state->tiledim_2 = state->vctrl_2[1] & 0x2000;
|
||||||
if (state->tiledim_2 != state->old_tiledim_2)
|
if (state->tiledim_2 != state->old_tiledim_2)
|
||||||
tilemap_mark_all_tiles_dirty(state->tilemap_2);
|
tilemap_mark_all_tiles_dirty(state->tilemap_2);
|
||||||
state->old_tiledim_2 = state->tiledim_2;
|
state->old_tiledim_2 = state->tiledim_2;
|
||||||
}
|
}
|
||||||
@ -1629,7 +1629,7 @@ VIDEO_UPDATE( cave )
|
|||||||
if (state->tilemap_3)
|
if (state->tilemap_3)
|
||||||
{
|
{
|
||||||
state->tiledim_3 = state->vctrl_3[1] & 0x2000;
|
state->tiledim_3 = state->vctrl_3[1] & 0x2000;
|
||||||
if (state->tiledim_3 != state->old_tiledim_3)
|
if (state->tiledim_3 != state->old_tiledim_3)
|
||||||
tilemap_mark_all_tiles_dirty(state->tilemap_3);
|
tilemap_mark_all_tiles_dirty(state->tilemap_3);
|
||||||
state->old_tiledim_3 = state->tiledim_3;
|
state->old_tiledim_3 = state->tiledim_3;
|
||||||
}
|
}
|
||||||
@ -1762,7 +1762,7 @@ void cave_get_sprite_info( running_machine *machine )
|
|||||||
|
|
||||||
static STATE_POSTLOAD( cave_sprite_postload )
|
static STATE_POSTLOAD( cave_sprite_postload )
|
||||||
{
|
{
|
||||||
/* FIXME: this is probably not enough to restore sprites, but anyway saves do not
|
/* FIXME: this is probably not enough to restore sprites, but anyway saves do not
|
||||||
currently work due to pending timers hence it is hard to test what is missing */
|
currently work due to pending timers hence it is hard to test what is missing */
|
||||||
cave_get_sprite_info(machine);
|
cave_get_sprite_info(machine);
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
|
|
||||||
data = spriteram[offs + 3];
|
data = spriteram[offs + 3];
|
||||||
priority = (data & 0x80) >> 7; // 0 = low
|
priority = (data & 0x80) >> 7; // 0 = low
|
||||||
if (priority != primask)
|
if (priority != primask)
|
||||||
continue;
|
continue;
|
||||||
color = (data & 0x7f);
|
color = (data & 0x7f);
|
||||||
|
|
||||||
|
@ -24,13 +24,13 @@ void dbz_sprite_callback( running_machine *machine, int *code, int *color, int *
|
|||||||
dbz_state *state = (dbz_state *)machine->driver_data;
|
dbz_state *state = (dbz_state *)machine->driver_data;
|
||||||
int pri = (*color & 0x3c0) >> 5;
|
int pri = (*color & 0x3c0) >> 5;
|
||||||
|
|
||||||
if (pri <= state->layerpri[3])
|
if (pri <= state->layerpri[3])
|
||||||
*priority_mask = 0xff00;
|
*priority_mask = 0xff00;
|
||||||
else if (pri > state->layerpri[3] && pri <= state->layerpri[2])
|
else if (pri > state->layerpri[3] && pri <= state->layerpri[2])
|
||||||
*priority_mask = 0xfff0;
|
*priority_mask = 0xfff0;
|
||||||
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
||||||
*priority_mask = 0xfffc;
|
*priority_mask = 0xfffc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xfffe;
|
*priority_mask = 0xfffe;
|
||||||
|
|
||||||
*color = (state->sprite_colorbase << 1) + (*color & 0x1f);
|
*color = (state->sprite_colorbase << 1) + (*color & 0x1f);
|
||||||
|
@ -7,14 +7,14 @@ void gijoe_sprite_callback( running_machine *machine, int *code, int *color, int
|
|||||||
gijoe_state *state = (gijoe_state *)machine->driver_data;
|
gijoe_state *state = (gijoe_state *)machine->driver_data;
|
||||||
int pri = (*color & 0x03e0) >> 4;
|
int pri = (*color & 0x03e0) >> 4;
|
||||||
|
|
||||||
if (pri <= state->layer_pri[3])
|
if (pri <= state->layer_pri[3])
|
||||||
*priority_mask = 0;
|
*priority_mask = 0;
|
||||||
else if (pri > state->layer_pri[3] && pri <= state->layer_pri[2])
|
else if (pri > state->layer_pri[3] && pri <= state->layer_pri[2])
|
||||||
*priority_mask = 0xff00;
|
*priority_mask = 0xff00;
|
||||||
else if (pri > state->layer_pri[2] && pri <= state->layer_pri[1])
|
else if (pri > state->layer_pri[2] && pri <= state->layer_pri[1])
|
||||||
*priority_mask = 0xff00 | 0xf0f0;
|
*priority_mask = 0xff00 | 0xf0f0;
|
||||||
else if (pri > state->layer_pri[1] && pri <= state->layer_pri[0])
|
else if (pri > state->layer_pri[1] && pri <= state->layer_pri[0])
|
||||||
*priority_mask = 0xff00 | 0xf0f0 | 0xcccc;
|
*priority_mask = 0xff00 | 0xf0f0 | 0xcccc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xff00 | 0xf0f0 | 0xcccc | 0xaaaa;
|
*priority_mask = 0xff00 | 0xf0f0 | 0xcccc | 0xaaaa;
|
||||||
|
|
||||||
@ -29,20 +29,20 @@ void gijoe_tile_callback( running_machine *machine, int layer, int *code, int *c
|
|||||||
if (tile >= 0xf000 && tile <= 0xf4ff)
|
if (tile >= 0xf000 && tile <= 0xf4ff)
|
||||||
{
|
{
|
||||||
tile &= 0x0fff;
|
tile &= 0x0fff;
|
||||||
if (tile < 0x0310)
|
if (tile < 0x0310)
|
||||||
{
|
{
|
||||||
state->avac_occupancy[layer] |= 0x0f00;
|
state->avac_occupancy[layer] |= 0x0f00;
|
||||||
tile |= state->avac_bits[0];
|
tile |= state->avac_bits[0];
|
||||||
|
}
|
||||||
|
else if (tile < 0x0470)
|
||||||
|
{
|
||||||
|
state->avac_occupancy[layer] |= 0xf000;
|
||||||
|
tile |= state->avac_bits[1];
|
||||||
}
|
}
|
||||||
else if (tile < 0x0470)
|
|
||||||
{
|
|
||||||
state->avac_occupancy[layer] |= 0xf000;
|
|
||||||
tile |= state->avac_bits[1];
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
state->avac_occupancy[layer] |= 0x00f0;
|
state->avac_occupancy[layer] |= 0x00f0;
|
||||||
tile |= state->avac_bits[2];
|
tile |= state->avac_bits[2];
|
||||||
}
|
}
|
||||||
*code = tile;
|
*code = tile;
|
||||||
}
|
}
|
||||||
|
@ -41,9 +41,9 @@ void gradius3_sprite_callback( running_machine *machine, int *code, int *color,
|
|||||||
gradius3_state *state = (gradius3_state *)machine->driver_data;
|
gradius3_state *state = (gradius3_state *)machine->driver_data;
|
||||||
int pri = ((*color & 0x60) >> 5);
|
int pri = ((*color & 0x60) >> 5);
|
||||||
|
|
||||||
if (state->priority == 0)
|
if (state->priority == 0)
|
||||||
*priority_mask = primask[0][pri];
|
*priority_mask = primask[0][pri];
|
||||||
else
|
else
|
||||||
*priority_mask = primask[1][pri];
|
*priority_mask = primask[1][pri];
|
||||||
|
|
||||||
*code |= (*color & 0x01) << 13;
|
*code |= (*color & 0x01) << 13;
|
||||||
|
@ -1921,7 +1921,7 @@ void recoverPolygonBlock(running_machine* machine, const UINT16* packet, struct
|
|||||||
threeDRoms = (UINT16*)(memory_region(machine, "verts"));
|
threeDRoms = (UINT16*)(memory_region(machine, "verts"));
|
||||||
threeDPointer = &threeDRoms[threeDOffset * 3];
|
threeDPointer = &threeDRoms[threeDOffset * 3];
|
||||||
|
|
||||||
if (threeDOffset >= 0x0c00000 && hng64_mcu_type == SHOOT_MCU)
|
if (threeDOffset >= 0x0c00000 && hng64_mcu_type == SHOOT_MCU)
|
||||||
{
|
{
|
||||||
printf("Strange geometry packet: (ignoring)\n");
|
printf("Strange geometry packet: (ignoring)\n");
|
||||||
printPacket(packet, 1);
|
printPacket(packet, 1);
|
||||||
@ -2050,7 +2050,7 @@ void recoverPolygonBlock(running_machine* machine, const UINT16* packet, struct
|
|||||||
|
|
||||||
// Debug - Colors polygons with certain flags bright blue! ajg
|
// Debug - Colors polygons with certain flags bright blue! ajg
|
||||||
//if (chunkOffset[2] & 0x00f0)
|
//if (chunkOffset[2] & 0x00f0)
|
||||||
// polys[*numPolys].debugColor = 0xff0000ff;
|
// polys[*numPolys].debugColor = 0xff0000ff;
|
||||||
|
|
||||||
// Debug - ajg
|
// Debug - ajg
|
||||||
//printf("%d (%08x) : %04x %04x %04x ", k, address[k]*3*2, chunkOffset[0], chunkOffset[1], chunkOffset[2]);
|
//printf("%d (%08x) : %04x %04x %04x ", k, address[k]*3*2, chunkOffset[0], chunkOffset[1], chunkOffset[2]);
|
||||||
@ -2094,7 +2094,7 @@ void recoverPolygonBlock(running_machine* machine, const UINT16* packet, struct
|
|||||||
/* TODO: Does the explicit palette bit do anything when the dynamic palette flag is on? */
|
/* TODO: Does the explicit palette bit do anything when the dynamic palette flag is on? */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UINT8 explicitPaletteValue = (chunkOffset[1] & 0x0f00) >> 8;
|
UINT8 explicitPaletteValue = (chunkOffset[1] & 0x0f00) >> 8;
|
||||||
polys[*numPolys].palOffset += explicitPaletteValue * 0x80;
|
polys[*numPolys].palOffset += explicitPaletteValue * 0x80;
|
||||||
}
|
}
|
||||||
|
@ -18,19 +18,19 @@ void lethalen_sprite_callback( running_machine *machine, int *code, int *color,
|
|||||||
*color += 0x400 / 64; // colourbase?
|
*color += 0x400 / 64; // colourbase?
|
||||||
|
|
||||||
/* this isn't ideal.. shouldn't need to hardcode it? not 100% sure about it anyway*/
|
/* this isn't ideal.. shouldn't need to hardcode it? not 100% sure about it anyway*/
|
||||||
if (pri == 0x10)
|
if (pri == 0x10)
|
||||||
*priority_mask = 0xf0; // guys on first level
|
*priority_mask = 0xf0; // guys on first level
|
||||||
else if (pri == 0x90)
|
else if (pri == 0x90)
|
||||||
*priority_mask = 0xf0; // car doors
|
*priority_mask = 0xf0; // car doors
|
||||||
else if (pri == 0x20)
|
else if (pri == 0x20)
|
||||||
*priority_mask = 0xf0 | 0xcc; // people behind glass on 1st level
|
*priority_mask = 0xf0 | 0xcc; // people behind glass on 1st level
|
||||||
else if (pri == 0xa0)
|
else if (pri == 0xa0)
|
||||||
*priority_mask = 0xf0 | 0xcc; // glass on 1st/2nd level
|
*priority_mask = 0xf0 | 0xcc; // glass on 1st/2nd level
|
||||||
else if (pri == 0x40)
|
else if (pri == 0x40)
|
||||||
*priority_mask = 0; // blood splats?
|
*priority_mask = 0; // blood splats?
|
||||||
else if (pri == 0x00)
|
else if (pri == 0x00)
|
||||||
*priority_mask = 0; // gunshots etc
|
*priority_mask = 0; // gunshots etc
|
||||||
else if (pri == 0x30)
|
else if (pri == 0x30)
|
||||||
*priority_mask = 0xf0 | 0xcc | 0xaa; // mask sprites (always in a bad colour, used to do special effects i think
|
*priority_mask = 0xf0 | 0xcc | 0xaa; // mask sprites (always in a bad colour, used to do special effects i think
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -55,7 +55,7 @@ void mainevt_sprite_callback(running_machine *machine, int *code,int *color,int
|
|||||||
*priority_mask = 0xff00;
|
*priority_mask = 0xff00;
|
||||||
else if (*color & 0x40)
|
else if (*color & 0x40)
|
||||||
*priority_mask = 0xff00 | 0xf0f0;
|
*priority_mask = 0xff00 | 0xf0f0;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xff00 | 0xf0f0 | 0xcccc;
|
*priority_mask = 0xff00 | 0xf0f0 | 0xcccc;
|
||||||
/* bit 7 is shadow, not used */
|
/* bit 7 is shadow, not used */
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ void moo_sprite_callback( running_machine *machine, int *code, int *color, int *
|
|||||||
*priority_mask = 0xf0;
|
*priority_mask = 0xf0;
|
||||||
else if (pri <= state->layerpri[0])
|
else if (pri <= state->layerpri[0])
|
||||||
*priority_mask = 0xf0|0xcc;
|
*priority_mask = 0xf0|0xcc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xf0|0xcc|0xaa;
|
*priority_mask = 0xf0|0xcc|0xaa;
|
||||||
|
|
||||||
*color = state->sprite_colorbase | (*color & 0x001f);
|
*color = state->sprite_colorbase | (*color & 0x001f);
|
||||||
|
@ -33,7 +33,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
data = spriteram[offs + 2];
|
data = spriteram[offs + 2];
|
||||||
tilenum = data & 0x7fff;
|
tilenum = data & 0x7fff;
|
||||||
|
|
||||||
if (!tilenum)
|
if (!tilenum)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
data = spriteram[offs + 0];
|
data = spriteram[offs + 0];
|
||||||
@ -60,7 +60,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
flipy = (data & 0x2) >> 1;
|
flipy = (data & 0x2) >> 1;
|
||||||
priority = (data & 0x4) >> 2; // 1 = low
|
priority = (data & 0x4) >> 2; // 1 = low
|
||||||
/* data&0x8 - unknown */
|
/* data&0x8 - unknown */
|
||||||
if (priority != primask)
|
if (priority != primask)
|
||||||
continue;
|
continue;
|
||||||
color = (data & 0x7f00) >> 8;
|
color = (data & 0x7f00) >> 8;
|
||||||
/* data&0x8000 - unknown */
|
/* data&0x8000 - unknown */
|
||||||
|
@ -99,7 +99,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
tilenum = data & 0x1fff; // $80000 spritemap rom maps up to $2000 64x64 sprites
|
tilenum = data & 0x1fff; // $80000 spritemap rom maps up to $2000 64x64 sprites
|
||||||
flipy = (data & 0x8000) >> 15;
|
flipy = (data & 0x8000) >> 15;
|
||||||
|
|
||||||
if (!tilenum)
|
if (!tilenum)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
map_offset = tilenum << 5;
|
map_offset = tilenum << 5;
|
||||||
|
@ -14,7 +14,7 @@ void overdriv_sprite_callback( running_machine *machine, int *code, int *color,
|
|||||||
int pri = (*color & 0xffe0) >> 5; /* ??????? */
|
int pri = (*color & 0xffe0) >> 5; /* ??????? */
|
||||||
if (pri)
|
if (pri)
|
||||||
*priority_mask = 0x02;
|
*priority_mask = 0x02;
|
||||||
else
|
else
|
||||||
*priority_mask = 0x00;
|
*priority_mask = 0x00;
|
||||||
|
|
||||||
*color = state->sprite_colorbase + (*color & 0x001f);
|
*color = state->sprite_colorbase + (*color & 0x001f);
|
||||||
|
@ -26,13 +26,13 @@ void parodius_sprite_callback( running_machine *machine, int *code, int *color,
|
|||||||
{
|
{
|
||||||
parodius_state *state = (parodius_state *)machine->driver_data;
|
parodius_state *state = (parodius_state *)machine->driver_data;
|
||||||
int pri = 0x20 | ((*color & 0x60) >> 2);
|
int pri = 0x20 | ((*color & 0x60) >> 2);
|
||||||
if (pri <= state->layerpri[2])
|
if (pri <= state->layerpri[2])
|
||||||
*priority_mask = 0;
|
*priority_mask = 0;
|
||||||
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
||||||
*priority_mask = 0xf0;
|
*priority_mask = 0xf0;
|
||||||
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
||||||
*priority_mask = 0xf0 | 0xcc;
|
*priority_mask = 0xf0 | 0xcc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
||||||
|
|
||||||
*color = state->sprite_colorbase + (*color & 0x1f);
|
*color = state->sprite_colorbase + (*color & 0x1f);
|
||||||
|
@ -998,7 +998,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta
|
|||||||
|
|
||||||
**- End Sprite Format -*/
|
**- End Sprite Format -*/
|
||||||
|
|
||||||
|
|
||||||
psikyosh_state *state = (psikyosh_state *)machine->driver_data;
|
psikyosh_state *state = (psikyosh_state *)machine->driver_data;
|
||||||
const gfx_element *gfx;
|
const gfx_element *gfx;
|
||||||
UINT32 *src = machine->generic.buffered_spriteram.u32; /* Use buffered spriteram */
|
UINT32 *src = machine->generic.buffered_spriteram.u32; /* Use buffered spriteram */
|
||||||
@ -1133,7 +1133,7 @@ static void psikyosh_postlineblend( running_machine *machine, bitmap_t *bitmap,
|
|||||||
if ((state->vidregs[2] & 0xf) != req_pri) {
|
if ((state->vidregs[2] & 0xf) != req_pri) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
profiler_mark_start(PROFILER_USER2);
|
profiler_mark_start(PROFILER_USER2);
|
||||||
for (y = cliprect->min_y; y <= cliprect->max_y; y += 1) {
|
for (y = cliprect->min_y; y <= cliprect->max_y; y += 1) {
|
||||||
|
|
||||||
@ -1185,7 +1185,7 @@ popmessage ("Regs %08x %08x %08x %08x\n %08x %08x %08x %08x",
|
|||||||
state->vidregs[4], state->vidregs[5],
|
state->vidregs[4], state->vidregs[5],
|
||||||
state->vidregs[6], state->vidregs[7]);
|
state->vidregs[6], state->vidregs[7]);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bitmap_fill(bitmap, cliprect, get_black_pen(screen->machine));
|
bitmap_fill(bitmap, cliprect, get_black_pen(screen->machine));
|
||||||
bitmap_fill(state->z_bitmap, cliprect, 0); /* z-buffer */
|
bitmap_fill(state->z_bitmap, cliprect, 0); /* z-buffer */
|
||||||
|
|
||||||
|
@ -175,7 +175,7 @@ VIDEO_UPDATE( jumping )
|
|||||||
{
|
{
|
||||||
rainbow_state *state = (rainbow_state *)screen->machine->driver_data;
|
rainbow_state *state = (rainbow_state *)screen->machine->driver_data;
|
||||||
UINT16 *spriteram = state->spriteram;
|
UINT16 *spriteram = state->spriteram;
|
||||||
int offs, layer[2];
|
int offs, layer[2];
|
||||||
int sprite_colbank = (state->sprite_ctrl & 0xe0) >> 1;
|
int sprite_colbank = (state->sprite_ctrl & 0xe0) >> 1;
|
||||||
|
|
||||||
pc080sn_tilemap_update(state->pc080sn);
|
pc080sn_tilemap_update(state->pc080sn);
|
||||||
|
@ -27,13 +27,13 @@ void simpsons_sprite_callback( running_machine *machine, int *code, int *color,
|
|||||||
simpsons_state *state = (simpsons_state *)machine->driver_data;
|
simpsons_state *state = (simpsons_state *)machine->driver_data;
|
||||||
int pri = (*color & 0x0f80) >> 6; /* ??????? */
|
int pri = (*color & 0x0f80) >> 6; /* ??????? */
|
||||||
|
|
||||||
if (pri <= state->layerpri[2])
|
if (pri <= state->layerpri[2])
|
||||||
*priority_mask = 0;
|
*priority_mask = 0;
|
||||||
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
||||||
*priority_mask = 0xf0;
|
*priority_mask = 0xf0;
|
||||||
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
||||||
*priority_mask = 0xf0 | 0xcc;
|
*priority_mask = 0xf0 | 0xcc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
||||||
|
|
||||||
*color = state->sprite_colorbase + (*color & 0x001f);
|
*color = state->sprite_colorbase + (*color & 0x001f);
|
||||||
@ -72,7 +72,7 @@ static READ8_HANDLER( simpsons_k053247_r )
|
|||||||
else
|
else
|
||||||
return(state->spriteram[offs] >> 8);
|
return(state->spriteram[offs] >> 8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return state->xtraram[offset - 0x1000];
|
return state->xtraram[offset - 0x1000];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,22 +153,22 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
if ((state->spriteram_buffered[(offs + 4) / 2] & 0xf000) == 0xa000)
|
if ((state->spriteram_buffered[(offs + 4) / 2] & 0xf000) == 0xa000)
|
||||||
{
|
{
|
||||||
master_scrollx = state->spriteram_buffered[(offs + 4) / 2] & 0xfff;
|
master_scrollx = state->spriteram_buffered[(offs + 4) / 2] & 0xfff;
|
||||||
if (master_scrollx >= 0x800)
|
if (master_scrollx >= 0x800)
|
||||||
master_scrollx -= 0x1000; /* signed value */
|
master_scrollx -= 0x1000; /* signed value */
|
||||||
|
|
||||||
master_scrolly = state->spriteram_buffered[(offs + 6) / 2] & 0xfff;
|
master_scrolly = state->spriteram_buffered[(offs + 6) / 2] & 0xfff;
|
||||||
if (master_scrolly >= 0x800)
|
if (master_scrolly >= 0x800)
|
||||||
master_scrolly -= 0x1000; /* signed value */
|
master_scrolly -= 0x1000; /* signed value */
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((state->spriteram_buffered[(offs + 4) / 2] & 0xf000) == 0x5000)
|
if ((state->spriteram_buffered[(offs + 4) / 2] & 0xf000) == 0x5000)
|
||||||
{
|
{
|
||||||
scroll1x = state->spriteram_buffered[(offs + 4) / 2] & 0xfff;
|
scroll1x = state->spriteram_buffered[(offs + 4) / 2] & 0xfff;
|
||||||
if (scroll1x >= 0x800)
|
if (scroll1x >= 0x800)
|
||||||
scroll1x -= 0x1000; /* signed value */
|
scroll1x -= 0x1000; /* signed value */
|
||||||
|
|
||||||
scroll1y = state->spriteram_buffered[(offs + 6) / 2] & 0xfff;
|
scroll1y = state->spriteram_buffered[(offs + 6) / 2] & 0xfff;
|
||||||
if (scroll1y >= 0x800)
|
if (scroll1y >= 0x800)
|
||||||
scroll1y -= 0x1000; /* signed value */
|
scroll1y -= 0x1000; /* signed value */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -418,11 +418,11 @@ static void taito_update_sprites_active_area( running_machine *machine )
|
|||||||
if ((state->spriteram_buffered[(offs+4)/2] & 0xf000) == 0xa000)
|
if ((state->spriteram_buffered[(offs+4)/2] & 0xf000) == 0xa000)
|
||||||
{
|
{
|
||||||
state->sprites_master_scrollx = state->spriteram_buffered[(offs + 4) / 2] & 0xfff;
|
state->sprites_master_scrollx = state->spriteram_buffered[(offs + 4) / 2] & 0xfff;
|
||||||
if (state->sprites_master_scrollx >= 0x800)
|
if (state->sprites_master_scrollx >= 0x800)
|
||||||
state->sprites_master_scrollx -= 0x1000; /* signed value */
|
state->sprites_master_scrollx -= 0x1000; /* signed value */
|
||||||
|
|
||||||
state->sprites_master_scrolly = state->spriteram_buffered[(offs + 6) / 2] & 0xfff;
|
state->sprites_master_scrolly = state->spriteram_buffered[(offs + 6) / 2] & 0xfff;
|
||||||
if (state->sprites_master_scrolly >= 0x800)
|
if (state->sprites_master_scrolly >= 0x800)
|
||||||
state->sprites_master_scrolly -= 0x1000; /* signed value */
|
state->sprites_master_scrolly -= 0x1000; /* signed value */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,13 +27,13 @@ void surpratk_sprite_callback( running_machine *machine, int *code, int *color,
|
|||||||
{
|
{
|
||||||
surpratk_state *state = (surpratk_state *)machine->driver_data;
|
surpratk_state *state = (surpratk_state *)machine->driver_data;
|
||||||
int pri = 0x20 | ((*color & 0x60) >> 2);
|
int pri = 0x20 | ((*color & 0x60) >> 2);
|
||||||
if (pri <= state->layerpri[2])
|
if (pri <= state->layerpri[2])
|
||||||
*priority_mask = 0;
|
*priority_mask = 0;
|
||||||
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
||||||
*priority_mask = 0xf0;
|
*priority_mask = 0xf0;
|
||||||
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
||||||
*priority_mask = 0xf0 | 0xcc;
|
*priority_mask = 0xf0 | 0xcc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
||||||
|
|
||||||
*color = state->sprite_colorbase + (*color & 0x1f);
|
*color = state->sprite_colorbase + (*color & 0x1f);
|
||||||
|
@ -109,11 +109,11 @@ WRITE16_HANDLER( tail2nos_gfxbank_w )
|
|||||||
int bank;
|
int bank;
|
||||||
|
|
||||||
/* bits 0 and 2 select char bank */
|
/* bits 0 and 2 select char bank */
|
||||||
if (data & 0x04)
|
if (data & 0x04)
|
||||||
bank = 2;
|
bank = 2;
|
||||||
else if (data & 0x01)
|
else if (data & 0x01)
|
||||||
bank = 1;
|
bank = 1;
|
||||||
else
|
else
|
||||||
bank = 0;
|
bank = 0;
|
||||||
|
|
||||||
if (state->charbank != bank)
|
if (state->charbank != bank)
|
||||||
@ -123,9 +123,9 @@ WRITE16_HANDLER( tail2nos_gfxbank_w )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* bit 5 seems to select palette bank (used on startup) */
|
/* bit 5 seems to select palette bank (used on startup) */
|
||||||
if (data & 0x20)
|
if (data & 0x20)
|
||||||
bank = 7;
|
bank = 7;
|
||||||
else
|
else
|
||||||
bank = 3;
|
bank = 3;
|
||||||
|
|
||||||
if (state->charpalette != bank)
|
if (state->charpalette != bank)
|
||||||
@ -158,10 +158,10 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
int sx, sy, flipx, flipy, code, color;
|
int sx, sy, flipx, flipy, code, color;
|
||||||
|
|
||||||
sx = spriteram[offs + 1];
|
sx = spriteram[offs + 1];
|
||||||
if (sx >= 0x8000)
|
if (sx >= 0x8000)
|
||||||
sx -= 0x10000;
|
sx -= 0x10000;
|
||||||
sy = 0x10000 - spriteram[offs + 0];
|
sy = 0x10000 - spriteram[offs + 0];
|
||||||
if (sy >= 0x8000)
|
if (sy >= 0x8000)
|
||||||
sy -= 0x10000;
|
sy -= 0x10000;
|
||||||
code = spriteram[offs + 2] & 0x07ff;
|
code = spriteram[offs + 2] & 0x07ff;
|
||||||
color = (spriteram[offs + 2] & 0xe000) >> 13;
|
color = (spriteram[offs + 2] & 0xe000) >> 13;
|
||||||
|
@ -248,7 +248,7 @@ WRITE16_HANDLER( taitof2_spritebank_w )
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
int j = 0;
|
int j = 0;
|
||||||
|
|
||||||
if (offset < 2)
|
if (offset < 2)
|
||||||
return; /* irrelevant zero writes */
|
return; /* irrelevant zero writes */
|
||||||
|
|
||||||
if (offset < 4) /* special bank pairs */
|
if (offset < 4) /* special bank pairs */
|
||||||
@ -296,7 +296,7 @@ static void taito_f2_tc360_spritemixdraw( running_machine *machine, bitmap_t *de
|
|||||||
int sprite_screen_height = (scaley * gfx->height + 0x8000) >> 16;
|
int sprite_screen_height = (scaley * gfx->height + 0x8000) >> 16;
|
||||||
int sprite_screen_width = (scalex * gfx->width + 0x8000) >> 16;
|
int sprite_screen_width = (scalex * gfx->width + 0x8000) >> 16;
|
||||||
|
|
||||||
if (!scalex || !scaley)
|
if (!scalex || !scaley)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (sprite_screen_width && sprite_screen_height)
|
if (sprite_screen_width && sprite_screen_height)
|
||||||
@ -528,7 +528,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
color = 0;
|
color = 0;
|
||||||
|
|
||||||
f2_x_offset = state->hide_pixels; /* Get rid of 0-3 unwanted pixels on edge of screen. */
|
f2_x_offset = state->hide_pixels; /* Get rid of 0-3 unwanted pixels on edge of screen. */
|
||||||
if (state->sprites_flipscreen)
|
if (state->sprites_flipscreen)
|
||||||
f2_x_offset = -state->flip_hide_pixels; // was -f2_x_offset
|
f2_x_offset = -state->flip_hide_pixels; // was -f2_x_offset
|
||||||
|
|
||||||
/* safety check to avoid getting stuck in bank 2 for games using only one bank */
|
/* safety check to avoid getting stuck in bank 2 for games using only one bank */
|
||||||
@ -547,7 +547,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
|
|
||||||
/* Get rid of 0-3 unwanted pixels on edge of screen. */
|
/* Get rid of 0-3 unwanted pixels on edge of screen. */
|
||||||
f2_x_offset = state->hide_pixels;
|
f2_x_offset = state->hide_pixels;
|
||||||
if (state->sprites_flipscreen)
|
if (state->sprites_flipscreen)
|
||||||
f2_x_offset = -state->flip_hide_pixels; // was -f2_x_offset
|
f2_x_offset = -state->flip_hide_pixels; // was -f2_x_offset
|
||||||
|
|
||||||
if (state->game == FOOTCHMP)
|
if (state->game == FOOTCHMP)
|
||||||
@ -563,22 +563,22 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
if ((state->spriteram_buffered[(offs + 4) / 2] & 0xf000) == 0xa000)
|
if ((state->spriteram_buffered[(offs + 4) / 2] & 0xf000) == 0xa000)
|
||||||
{
|
{
|
||||||
master_scrollx = state->spriteram_buffered[(offs + 4) / 2] & 0xfff;
|
master_scrollx = state->spriteram_buffered[(offs + 4) / 2] & 0xfff;
|
||||||
if (master_scrollx >= 0x800)
|
if (master_scrollx >= 0x800)
|
||||||
master_scrollx -= 0x1000; /* signed value */
|
master_scrollx -= 0x1000; /* signed value */
|
||||||
|
|
||||||
master_scrolly = state->spriteram_buffered[(offs + 6) / 2] & 0xfff;
|
master_scrolly = state->spriteram_buffered[(offs + 6) / 2] & 0xfff;
|
||||||
if (master_scrolly >= 0x800)
|
if (master_scrolly >= 0x800)
|
||||||
master_scrolly -= 0x1000; /* signed value */
|
master_scrolly -= 0x1000; /* signed value */
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((state->spriteram_buffered[(offs + 4) / 2] & 0xf000) == 0x5000)
|
if ((state->spriteram_buffered[(offs + 4) / 2] & 0xf000) == 0x5000)
|
||||||
{
|
{
|
||||||
scroll1x = state->spriteram_buffered[(offs + 4) / 2] & 0xfff;
|
scroll1x = state->spriteram_buffered[(offs + 4) / 2] & 0xfff;
|
||||||
if (scroll1x >= 0x800)
|
if (scroll1x >= 0x800)
|
||||||
scroll1x -= 0x1000; /* signed value */
|
scroll1x -= 0x1000; /* signed value */
|
||||||
|
|
||||||
scroll1y = state->spriteram_buffered[(offs + 6) / 2] & 0xfff;
|
scroll1y = state->spriteram_buffered[(offs + 6) / 2] & 0xfff;
|
||||||
if (scroll1y >= 0x800)
|
if (scroll1y >= 0x800)
|
||||||
scroll1y -= 0x1000; /* signed value */
|
scroll1y -= 0x1000; /* signed value */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -260,7 +260,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
|
|
||||||
sx = state->buff_spriteram[offs + 4] | ((state->buff_spriteram[offs + 5] & 1) << 8);
|
sx = state->buff_spriteram[offs + 4] | ((state->buff_spriteram[offs + 5] & 1) << 8);
|
||||||
sy = state->buff_spriteram[offs + 6];
|
sy = state->buff_spriteram[offs + 6];
|
||||||
if (sx >= 320)
|
if (sx >= 320)
|
||||||
sx -= 512;
|
sx -= 512;
|
||||||
flipx = state->buff_spriteram[offs + 3] & 0x01;
|
flipx = state->buff_spriteram[offs + 3] & 0x01;
|
||||||
flipy = state->buff_spriteram[offs + 3] & 0x02;
|
flipy = state->buff_spriteram[offs + 3] & 0x02;
|
||||||
|
@ -178,7 +178,7 @@ static void contcirc_draw_sprites_16x8( running_machine *machine, bitmap_t *bitm
|
|||||||
color = (data & 0xff00) >> 8;
|
color = (data & 0xff00) >> 8;
|
||||||
zoomx = (data & 0x7f);
|
zoomx = (data & 0x7f);
|
||||||
|
|
||||||
if (!tilenum)
|
if (!tilenum)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
map_offset = tilenum << 7;
|
map_offset = tilenum << 7;
|
||||||
@ -205,7 +205,7 @@ static void contcirc_draw_sprites_16x8( running_machine *machine, bitmap_t *bitm
|
|||||||
|
|
||||||
code = spritemap[map_offset + px + (py << 3)];
|
code = spritemap[map_offset + px + (py << 3)];
|
||||||
|
|
||||||
if (code == 0xffff)
|
if (code == 0xffff)
|
||||||
bad_chunks++;
|
bad_chunks++;
|
||||||
|
|
||||||
curx = x + ((k * zoomx) / 8);
|
curx = x + ((k * zoomx) / 8);
|
||||||
@ -274,7 +274,7 @@ static void chasehq_draw_sprites_16x16( running_machine *machine, bitmap_t *bitm
|
|||||||
/* higher bits are sometimes used... e.g. sign over flashing enemy car...! */
|
/* higher bits are sometimes used... e.g. sign over flashing enemy car...! */
|
||||||
tilenum = data & 0x7ff;
|
tilenum = data & 0x7ff;
|
||||||
|
|
||||||
if (!tilenum)
|
if (!tilenum)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
zoomx += 1;
|
zoomx += 1;
|
||||||
@ -303,7 +303,7 @@ static void chasehq_draw_sprites_16x16( running_machine *machine, bitmap_t *bitm
|
|||||||
|
|
||||||
code = spritemap[map_offset + px + (py << 3)];
|
code = spritemap[map_offset + px + (py << 3)];
|
||||||
|
|
||||||
if (code == 0xffff)
|
if (code == 0xffff)
|
||||||
bad_chunks++;
|
bad_chunks++;
|
||||||
|
|
||||||
curx = x + ((k * zoomx) / 8);
|
curx = x + ((k * zoomx) / 8);
|
||||||
@ -459,7 +459,7 @@ static void bshark_draw_sprites_16x8( running_machine *machine, bitmap_t *bitmap
|
|||||||
data = spriteram[offs + 3];
|
data = spriteram[offs + 3];
|
||||||
tilenum = data & 0x1fff; /* $80000 spritemap rom maps up to $2000 64x64 sprites */
|
tilenum = data & 0x1fff; /* $80000 spritemap rom maps up to $2000 64x64 sprites */
|
||||||
|
|
||||||
if (!tilenum)
|
if (!tilenum)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
map_offset = tilenum << 5;
|
map_offset = tilenum << 5;
|
||||||
@ -564,7 +564,7 @@ static void sci_draw_sprites_16x8( running_machine *machine, bitmap_t *bitmap, c
|
|||||||
data = spriteram[offs + 3];
|
data = spriteram[offs + 3];
|
||||||
tilenum = data & 0x1fff; /* $80000 spritemap rom maps up to $2000 64x64 sprites */
|
tilenum = data & 0x1fff; /* $80000 spritemap rom maps up to $2000 64x64 sprites */
|
||||||
|
|
||||||
if (!tilenum)
|
if (!tilenum)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
map_offset = tilenum << 5;
|
map_offset = tilenum << 5;
|
||||||
@ -660,7 +660,7 @@ static void aquajack_draw_sprites_16x8(running_machine *machine, bitmap_t *bitma
|
|||||||
flipy = (data & 0x8000) >> 15; // ???
|
flipy = (data & 0x8000) >> 15; // ???
|
||||||
tilenum = data & 0x1fff; /* $80000 spritemap rom maps up to $2000 64x64 sprites */
|
tilenum = data & 0x1fff; /* $80000 spritemap rom maps up to $2000 64x64 sprites */
|
||||||
|
|
||||||
if (!tilenum)
|
if (!tilenum)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
map_offset = tilenum << 5;
|
map_offset = tilenum << 5;
|
||||||
@ -755,7 +755,7 @@ static void spacegun_draw_sprites_16x8(running_machine *machine, bitmap_t *bitma
|
|||||||
flipy = (data & 0x8000) >> 15; // ???
|
flipy = (data & 0x8000) >> 15; // ???
|
||||||
tilenum = data & 0x1fff; /* $80000 spritemap rom maps up to $2000 64x64 sprites */
|
tilenum = data & 0x1fff; /* $80000 spritemap rom maps up to $2000 64x64 sprites */
|
||||||
|
|
||||||
if (!tilenum)
|
if (!tilenum)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
map_offset = tilenum << 5;
|
map_offset = tilenum << 5;
|
||||||
|
@ -208,7 +208,7 @@ static void fill_slope( bitmap_t *bitmap, const rectangle *cliprect, int color,
|
|||||||
y1 = cliprect->min_y;
|
y1 = cliprect->min_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x1 > x2 || (x1==x2 && sl1 > sl2))
|
if (x1 > x2 || (x1==x2 && sl1 > sl2))
|
||||||
{
|
{
|
||||||
INT32 t, *tp;
|
INT32 t, *tp;
|
||||||
t = x1;
|
t = x1;
|
||||||
@ -222,7 +222,7 @@ static void fill_slope( bitmap_t *bitmap, const rectangle *cliprect, int color,
|
|||||||
nx2 = tp;
|
nx2 = tp;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (y1 < y2)
|
while (y1 < y2)
|
||||||
{
|
{
|
||||||
if (y1 >= cliprect->min_y)
|
if (y1 >= cliprect->min_y)
|
||||||
{
|
{
|
||||||
@ -235,7 +235,7 @@ static void fill_slope( bitmap_t *bitmap, const rectangle *cliprect, int color,
|
|||||||
if (xx2 > cliprect->max_x)
|
if (xx2 > cliprect->max_x)
|
||||||
xx2 = cliprect->max_x;
|
xx2 = cliprect->max_x;
|
||||||
|
|
||||||
while (xx1 <= xx2)
|
while (xx1 <= xx2)
|
||||||
{
|
{
|
||||||
*BITMAP_ADDR16(bitmap, y1, xx1) = color;
|
*BITMAP_ADDR16(bitmap, y1, xx1) = color;
|
||||||
xx1++;
|
xx1++;
|
||||||
@ -259,14 +259,14 @@ static void fill_poly( bitmap_t *bitmap, const rectangle *cliprect, const struct
|
|||||||
int color = q->col;
|
int color = q->col;
|
||||||
int pcount = q->pcount;
|
int pcount = q->pcount;
|
||||||
|
|
||||||
for (i = 0; i < pcount; i++)
|
for (i = 0; i < pcount; i++)
|
||||||
{
|
{
|
||||||
p[i].x = p[i + pcount].x = q->p[i].x << TAITOAIR_FRAC_SHIFT;
|
p[i].x = p[i + pcount].x = q->p[i].x << TAITOAIR_FRAC_SHIFT;
|
||||||
p[i].y = p[i + pcount].y = q->p[i].y;
|
p[i].y = p[i + pcount].y = q->p[i].y;
|
||||||
}
|
}
|
||||||
|
|
||||||
pmin = pmax = 0;
|
pmin = pmax = 0;
|
||||||
for (i = 1; i < pcount; i++)
|
for (i = 1; i < pcount; i++)
|
||||||
{
|
{
|
||||||
if (p[i].y < p[pmin].y)
|
if (p[i].y < p[pmin].y)
|
||||||
pmin = i;
|
pmin = i;
|
||||||
@ -293,9 +293,9 @@ static void fill_poly( bitmap_t *bitmap, const rectangle *cliprect, const struct
|
|||||||
|
|
||||||
goto startup;
|
goto startup;
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
if (p[ps1 - 1].y == p[ps2 + 1].y)
|
if (p[ps1 - 1].y == p[ps2 + 1].y)
|
||||||
{
|
{
|
||||||
fill_slope(bitmap, cliprect, color, x1, x2, sl1, sl2, cury, p[ps1 - 1].y, &x1, &x2);
|
fill_slope(bitmap, cliprect, color, x1, x2, sl1, sl2, cury, p[ps1 - 1].y, &x1, &x2);
|
||||||
cury = p[ps1 - 1].y;
|
cury = p[ps1 - 1].y;
|
||||||
@ -313,8 +313,8 @@ static void fill_poly( bitmap_t *bitmap, const rectangle *cliprect, const struct
|
|||||||
x2 = p[ps2].x;
|
x2 = p[ps2].x;
|
||||||
sl1 = (x1 - p[ps1 - 1].x) / (cury - p[ps1 - 1].y);
|
sl1 = (x1 - p[ps1 - 1].x) / (cury - p[ps1 - 1].y);
|
||||||
sl2 = (x2 - p[ps2 + 1].x) / (cury - p[ps2 + 1].y);
|
sl2 = (x2 - p[ps2 + 1].x) / (cury - p[ps2 + 1].y);
|
||||||
}
|
}
|
||||||
else if (p[ps1 - 1].y < p[ps2 + 1].y)
|
else if (p[ps1 - 1].y < p[ps2 + 1].y)
|
||||||
{
|
{
|
||||||
fill_slope(bitmap, cliprect, color, x1, x2, sl1, sl2, cury, p[ps1 - 1].y, &x1, &x2);
|
fill_slope(bitmap, cliprect, color, x1, x2, sl1, sl2, cury, p[ps1 - 1].y, &x1, &x2);
|
||||||
cury = p[ps1 - 1].y;
|
cury = p[ps1 - 1].y;
|
||||||
@ -325,8 +325,8 @@ static void fill_poly( bitmap_t *bitmap, const rectangle *cliprect, const struct
|
|||||||
ps1--;
|
ps1--;
|
||||||
x1 = p[ps1].x;
|
x1 = p[ps1].x;
|
||||||
sl1 = (x1 - p[ps1 - 1].x) / (cury - p[ps1 - 1].y);
|
sl1 = (x1 - p[ps1 - 1].x) / (cury - p[ps1 - 1].y);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fill_slope(bitmap, cliprect, color, x1, x2, sl1, sl2, cury, p[ps2 + 1].y, &x1, &x2);
|
fill_slope(bitmap, cliprect, color, x1, x2, sl1, sl2, cury, p[ps2 + 1].y, &x1, &x2);
|
||||||
cury = p[ps2 + 1].y;
|
cury = p[ps2 + 1].y;
|
||||||
@ -370,7 +370,7 @@ VIDEO_UPDATE( taitoair )
|
|||||||
if (state->line_ram[0x3fff])
|
if (state->line_ram[0x3fff])
|
||||||
{
|
{
|
||||||
int adr = 0x3fff;
|
int adr = 0x3fff;
|
||||||
// struct taitoair_poly q;
|
// struct taitoair_poly q;
|
||||||
|
|
||||||
while (adr >= 0 && state->line_ram[adr] && state->line_ram[adr] != 0x4000)
|
while (adr >= 0 && state->line_ram[adr] && state->line_ram[adr] != 0x4000)
|
||||||
{
|
{
|
||||||
|
@ -122,13 +122,13 @@ void punkshot_sprite_callback( running_machine *machine, int *code, int *color,
|
|||||||
{
|
{
|
||||||
tmnt_state *state = (tmnt_state *)machine->driver_data;
|
tmnt_state *state = (tmnt_state *)machine->driver_data;
|
||||||
int pri = 0x20 | ((*color & 0x60) >> 2);
|
int pri = 0x20 | ((*color & 0x60) >> 2);
|
||||||
if (pri <= state->layerpri[2])
|
if (pri <= state->layerpri[2])
|
||||||
*priority_mask = 0;
|
*priority_mask = 0;
|
||||||
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
||||||
*priority_mask = 0xf0;
|
*priority_mask = 0xf0;
|
||||||
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
||||||
*priority_mask = 0xf0 | 0xcc;
|
*priority_mask = 0xf0 | 0xcc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
||||||
|
|
||||||
*code |= (*color & 0x10) << 9;
|
*code |= (*color & 0x10) << 9;
|
||||||
@ -139,13 +139,13 @@ void thndrx2_sprite_callback( running_machine *machine, int *code, int *color, i
|
|||||||
{
|
{
|
||||||
tmnt_state *state = (tmnt_state *)machine->driver_data;
|
tmnt_state *state = (tmnt_state *)machine->driver_data;
|
||||||
int pri = 0x20 | ((*color & 0x60) >> 2);
|
int pri = 0x20 | ((*color & 0x60) >> 2);
|
||||||
if (pri <= state->layerpri[2])
|
if (pri <= state->layerpri[2])
|
||||||
*priority_mask = 0;
|
*priority_mask = 0;
|
||||||
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
||||||
*priority_mask = 0xf0;
|
*priority_mask = 0xf0;
|
||||||
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
||||||
*priority_mask = 0xf0 | 0xcc;
|
*priority_mask = 0xf0 | 0xcc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
||||||
|
|
||||||
*color = state->sprite_colorbase + (*color & 0x0f);
|
*color = state->sprite_colorbase + (*color & 0x0f);
|
||||||
@ -162,13 +162,13 @@ void lgtnfght_sprite_callback( running_machine *machine, int *code, int *color,
|
|||||||
{
|
{
|
||||||
tmnt_state *state = (tmnt_state *)machine->driver_data;
|
tmnt_state *state = (tmnt_state *)machine->driver_data;
|
||||||
int pri = 0x20 | ((*color & 0x60) >> 2);
|
int pri = 0x20 | ((*color & 0x60) >> 2);
|
||||||
if (pri <= state->layerpri[2])
|
if (pri <= state->layerpri[2])
|
||||||
*priority_mask = 0;
|
*priority_mask = 0;
|
||||||
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
||||||
*priority_mask = 0xf0;
|
*priority_mask = 0xf0;
|
||||||
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
||||||
*priority_mask = 0xf0 | 0xcc;
|
*priority_mask = 0xf0 | 0xcc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
||||||
|
|
||||||
*color = state->sprite_colorbase + (*color & 0x1f);
|
*color = state->sprite_colorbase + (*color & 0x1f);
|
||||||
@ -183,13 +183,13 @@ if (input_code_pressed(machine, KEYCODE_W) && (*color & 0x40)) *color = rand();
|
|||||||
if (input_code_pressed(machine, KEYCODE_E) && (*color & 0x80)) *color = rand();
|
if (input_code_pressed(machine, KEYCODE_E) && (*color & 0x80)) *color = rand();
|
||||||
#endif
|
#endif
|
||||||
int pri = 0x20 | ((*color & 0x60) >> 2);
|
int pri = 0x20 | ((*color & 0x60) >> 2);
|
||||||
if (pri <= state->layerpri[2])
|
if (pri <= state->layerpri[2])
|
||||||
*priority_mask = 0;
|
*priority_mask = 0;
|
||||||
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
||||||
*priority_mask = 0xf0;
|
*priority_mask = 0xf0;
|
||||||
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
||||||
*priority_mask = 0xf0 | 0xcc;
|
*priority_mask = 0xf0 | 0xcc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
||||||
|
|
||||||
*color = state->sprite_colorbase + (*color & 0x1f);
|
*color = state->sprite_colorbase + (*color & 0x1f);
|
||||||
@ -199,13 +199,13 @@ void prmrsocr_sprite_callback( running_machine *machine, int *code, int *color,
|
|||||||
{
|
{
|
||||||
tmnt_state *state = (tmnt_state *)machine->driver_data;
|
tmnt_state *state = (tmnt_state *)machine->driver_data;
|
||||||
int pri = 0x20 | ((*color & 0x60) >> 2);
|
int pri = 0x20 | ((*color & 0x60) >> 2);
|
||||||
if (pri <= state->layerpri[2])
|
if (pri <= state->layerpri[2])
|
||||||
*priority_mask = 0;
|
*priority_mask = 0;
|
||||||
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
||||||
*priority_mask = 0xf0;
|
*priority_mask = 0xf0;
|
||||||
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
||||||
*priority_mask = 0xf0 | 0xcc;
|
*priority_mask = 0xf0 | 0xcc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
||||||
|
|
||||||
*code |= state->prmrsocr_sprite_bank << 14;
|
*code |= state->prmrsocr_sprite_bank << 14;
|
||||||
@ -275,8 +275,8 @@ VIDEO_START( glfgreat )
|
|||||||
state->roz_tilemap = tilemap_create(machine, glfgreat_get_roz_tile_info, tilemap_scan_rows, 16, 16, 512, 512);
|
state->roz_tilemap = tilemap_create(machine, glfgreat_get_roz_tile_info, tilemap_scan_rows, 16, 16, 512, 512);
|
||||||
tilemap_set_transparent_pen(state->roz_tilemap,0);
|
tilemap_set_transparent_pen(state->roz_tilemap,0);
|
||||||
|
|
||||||
state->glfgreat_roz_rom_bank = 0;
|
state->glfgreat_roz_rom_bank = 0;
|
||||||
state->glfgreat_roz_char_bank = 0;
|
state->glfgreat_roz_char_bank = 0;
|
||||||
state->glfgreat_roz_rom_mode = 0;
|
state->glfgreat_roz_rom_mode = 0;
|
||||||
state_save_register_global(machine, state->glfgreat_roz_rom_bank);
|
state_save_register_global(machine, state->glfgreat_roz_rom_bank);
|
||||||
state_save_register_global(machine, state->glfgreat_roz_char_bank);
|
state_save_register_global(machine, state->glfgreat_roz_char_bank);
|
||||||
@ -290,8 +290,8 @@ VIDEO_START( prmrsocr )
|
|||||||
state->roz_tilemap = tilemap_create(machine, prmrsocr_get_roz_tile_info, tilemap_scan_rows, 16, 16, 512, 256);
|
state->roz_tilemap = tilemap_create(machine, prmrsocr_get_roz_tile_info, tilemap_scan_rows, 16, 16, 512, 256);
|
||||||
tilemap_set_transparent_pen(state->roz_tilemap,0);
|
tilemap_set_transparent_pen(state->roz_tilemap,0);
|
||||||
|
|
||||||
state->prmrsocr_sprite_bank = 0;
|
state->prmrsocr_sprite_bank = 0;
|
||||||
state->glfgreat_roz_char_bank = 0;
|
state->glfgreat_roz_char_bank = 0;
|
||||||
state_save_register_global(machine, state->prmrsocr_sprite_bank);
|
state_save_register_global(machine, state->prmrsocr_sprite_bank);
|
||||||
state_save_register_global(machine, state->glfgreat_roz_char_bank);
|
state_save_register_global(machine, state->glfgreat_roz_char_bank);
|
||||||
}
|
}
|
||||||
@ -300,7 +300,7 @@ VIDEO_START( blswhstl )
|
|||||||
{
|
{
|
||||||
tmnt_state *state = (tmnt_state *)machine->driver_data;
|
tmnt_state *state = (tmnt_state *)machine->driver_data;
|
||||||
|
|
||||||
state->blswhstl_rombank = -1;
|
state->blswhstl_rombank = -1;
|
||||||
state_save_register_global(machine, state->blswhstl_rombank);
|
state_save_register_global(machine, state->blswhstl_rombank);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -678,9 +678,9 @@ READ16_HANDLER( glfgreat_ball_r )
|
|||||||
popmessage("%04x", state->glfgreat_pixel);
|
popmessage("%04x", state->glfgreat_pixel);
|
||||||
#endif
|
#endif
|
||||||
/* if out of the ROZ layer palette range, it's in the water - return 0 */
|
/* if out of the ROZ layer palette range, it's in the water - return 0 */
|
||||||
if (state->glfgreat_pixel < 0x400 || state->glfgreat_pixel >= 0x500)
|
if (state->glfgreat_pixel < 0x400 || state->glfgreat_pixel >= 0x500)
|
||||||
return 0;
|
return 0;
|
||||||
else
|
else
|
||||||
return state->glfgreat_pixel & 0xff;
|
return state->glfgreat_pixel & 0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -750,7 +750,7 @@ VIDEO_UPDATE( tmnt2 )
|
|||||||
if (newdim != state->lastdim || newen != state->lasten)
|
if (newdim != state->lastdim || newen != state->lasten)
|
||||||
{
|
{
|
||||||
brt = 1.0;
|
brt = 1.0;
|
||||||
if (newen)
|
if (newen)
|
||||||
brt -= (1.0 - PALETTE_DEFAULT_SHADOW_FACTOR) * newdim / 8;
|
brt -= (1.0 - PALETTE_DEFAULT_SHADOW_FACTOR) * newdim / 8;
|
||||||
state->lastdim = newdim;
|
state->lastdim = newdim;
|
||||||
state->lasten = newen;
|
state->lasten = newen;
|
||||||
|
@ -53,7 +53,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
priority = (data & 0x8000) >> 15;
|
priority = (data & 0x8000) >> 15;
|
||||||
// unknown = (data & 0x2000) >> 13;
|
// unknown = (data & 0x2000) >> 13;
|
||||||
|
|
||||||
if (y == 0x180)
|
if (y == 0x180)
|
||||||
continue; /* dead sprite */
|
continue; /* dead sprite */
|
||||||
|
|
||||||
map_offset = tilenum << 7;
|
map_offset = tilenum << 7;
|
||||||
|
@ -33,13 +33,13 @@ void vendetta_sprite_callback( running_machine *machine, int *code, int *color,
|
|||||||
{
|
{
|
||||||
vendetta_state *state = (vendetta_state *)machine->driver_data;
|
vendetta_state *state = (vendetta_state *)machine->driver_data;
|
||||||
int pri = (*color & 0x03e0) >> 4; /* ??????? */
|
int pri = (*color & 0x03e0) >> 4; /* ??????? */
|
||||||
if (pri <= state->layerpri[2])
|
if (pri <= state->layerpri[2])
|
||||||
*priority_mask = 0;
|
*priority_mask = 0;
|
||||||
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
||||||
*priority_mask = 0xf0;
|
*priority_mask = 0xf0;
|
||||||
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
||||||
*priority_mask = 0xf0 | 0xcc;
|
*priority_mask = 0xf0 | 0xcc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
||||||
|
|
||||||
*color = state->sprite_colorbase + (*color & 0x001f);
|
*color = state->sprite_colorbase + (*color & 0x001f);
|
||||||
|
@ -492,12 +492,12 @@ INLINE void bryan2_drawscanline( bitmap_t *bitmap, int x, int y, int length,
|
|||||||
UINT16 *dsti = BITMAP_ADDR16(bitmap, y, x);
|
UINT16 *dsti = BITMAP_ADDR16(bitmap, y, x);
|
||||||
UINT8 *dstp = BITMAP_ADDR8(priority, y, x);
|
UINT8 *dstp = BITMAP_ADDR8(priority, y, x);
|
||||||
|
|
||||||
if (transparent)
|
if (transparent)
|
||||||
{
|
{
|
||||||
while (length--)
|
while (length--)
|
||||||
{
|
{
|
||||||
UINT32 spixel = *src++;
|
UINT32 spixel = *src++;
|
||||||
if (spixel < 0x7fff)
|
if (spixel < 0x7fff)
|
||||||
{
|
{
|
||||||
*dsti = spixel;
|
*dsti = spixel;
|
||||||
*dstp = pri;
|
*dstp = pri;
|
||||||
@ -505,10 +505,10 @@ INLINE void bryan2_drawscanline( bitmap_t *bitmap, int x, int y, int length,
|
|||||||
dsti++;
|
dsti++;
|
||||||
dstp++;
|
dstp++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else /* Not transparent case */
|
else /* Not transparent case */
|
||||||
{
|
{
|
||||||
while (length--)
|
while (length--)
|
||||||
{
|
{
|
||||||
*dsti++ = *src++;
|
*dsti++ = *src++;
|
||||||
*dstp++ = pri;
|
*dstp++ = pri;
|
||||||
@ -570,9 +570,9 @@ static void wgp_piv_layer_draw( running_machine *machine, bitmap_t *bitmap, cons
|
|||||||
y_index = 0;
|
y_index = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!machine_flip)
|
if (!machine_flip)
|
||||||
y = min_y;
|
y = min_y;
|
||||||
else
|
else
|
||||||
y = max_y;
|
y = max_y;
|
||||||
|
|
||||||
do
|
do
|
||||||
|
@ -12,13 +12,13 @@ void xexex_sprite_callback( running_machine *machine, int *code, int *color, int
|
|||||||
pri = (*color & 0x3e0) >> 4;
|
pri = (*color & 0x3e0) >> 4;
|
||||||
|
|
||||||
if (pri <= state->layerpri[3])
|
if (pri <= state->layerpri[3])
|
||||||
*priority_mask = 0;
|
*priority_mask = 0;
|
||||||
else if (pri > state->layerpri[3] && pri <= state->layerpri[2])
|
else if (pri > state->layerpri[3] && pri <= state->layerpri[2])
|
||||||
*priority_mask = 0xff00;
|
*priority_mask = 0xff00;
|
||||||
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
||||||
*priority_mask = 0xff00 | 0xf0f0;
|
*priority_mask = 0xff00 | 0xf0f0;
|
||||||
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
||||||
*priority_mask = 0xff00 | 0xf0f0 | 0xcccc;
|
*priority_mask = 0xff00 | 0xf0f0 | 0xcccc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xff00 | 0xf0f0 | 0xcccc | 0xaaaa;
|
*priority_mask = 0xff00 | 0xf0f0 | 0xcccc | 0xaaaa;
|
||||||
|
|
||||||
|
@ -31,13 +31,13 @@ void xmen_sprite_callback( running_machine *machine, int *code, int *color, int
|
|||||||
xmen_state *state = (xmen_state *)machine->driver_data;
|
xmen_state *state = (xmen_state *)machine->driver_data;
|
||||||
int pri = (*color & 0x00e0) >> 4; /* ??????? */
|
int pri = (*color & 0x00e0) >> 4; /* ??????? */
|
||||||
|
|
||||||
if (pri <= state->layerpri[2])
|
if (pri <= state->layerpri[2])
|
||||||
*priority_mask = 0;
|
*priority_mask = 0;
|
||||||
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
else if (pri > state->layerpri[2] && pri <= state->layerpri[1])
|
||||||
*priority_mask = 0xf0;
|
*priority_mask = 0xf0;
|
||||||
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
else if (pri > state->layerpri[1] && pri <= state->layerpri[0])
|
||||||
*priority_mask = 0xf0 | 0xcc;
|
*priority_mask = 0xf0 | 0xcc;
|
||||||
else
|
else
|
||||||
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
||||||
|
|
||||||
*color = state->sprite_colorbase + (*color & 0x001f);
|
*color = state->sprite_colorbase + (*color & 0x001f);
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* This is a simple file to encapsulate the OpenGL API headers */
|
/* This is a simple file to encapsulate the OpenGL API headers */
|
||||||
|
|
||||||
#include <SDL/SDL_config.h>
|
#include <SDL/SDL_config.h>
|
||||||
|
|
||||||
#ifdef __WIN32__
|
#ifdef __WIN32__
|
||||||
@ -68,21 +68,21 @@ extern "C" {
|
|||||||
** this file except in compliance with the License. You may obtain a copy
|
** this file except in compliance with the License. You may obtain a copy
|
||||||
** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
|
** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
|
||||||
** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
|
** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
|
||||||
**
|
**
|
||||||
** http://oss.sgi.com/projects/FreeB
|
** http://oss.sgi.com/projects/FreeB
|
||||||
**
|
**
|
||||||
** Note that, as provided in the License, the Software is distributed on an
|
** Note that, as provided in the License, the Software is distributed on an
|
||||||
** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
|
** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
|
||||||
** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
|
** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
|
||||||
** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
|
** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
|
||||||
** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
|
** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
|
||||||
**
|
**
|
||||||
** Original Code. The Original Code is: OpenGL Sample Implementation,
|
** Original Code. The Original Code is: OpenGL Sample Implementation,
|
||||||
** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
|
** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
|
||||||
** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc.
|
** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc.
|
||||||
** Copyright in any portions created by third parties is as indicated
|
** Copyright in any portions created by third parties is as indicated
|
||||||
** elsewhere herein. All Rights Reserved.
|
** elsewhere herein. All Rights Reserved.
|
||||||
**
|
**
|
||||||
** Additional Notice Provisions: This software was created using the
|
** Additional Notice Provisions: This software was created using the
|
||||||
** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
|
** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
|
||||||
** not been independently verified as being compliant with the OpenGL(R)
|
** not been independently verified as being compliant with the OpenGL(R)
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user