mirror of
https://github.com/holub/mame
synced 2025-05-20 12:48:53 +03:00
Cleanups and version bump.
This commit is contained in:
parent
620a6cbe4b
commit
f0cdba5b11
@ -1144,12 +1144,12 @@ static void I386OP(enter16)(i386_state *cpustate) // Opcode 0xc8
|
|||||||
UINT8 x;
|
UINT8 x;
|
||||||
UINT16 frameptr;
|
UINT16 frameptr;
|
||||||
PUSH16(cpustate,REG16(BP));
|
PUSH16(cpustate,REG16(BP));
|
||||||
|
|
||||||
if(!STACK_32BIT)
|
if(!STACK_32BIT)
|
||||||
frameptr = REG16(SP);
|
frameptr = REG16(SP);
|
||||||
else
|
else
|
||||||
frameptr = REG32(ESP);
|
frameptr = REG32(ESP);
|
||||||
|
|
||||||
if(level > 0)
|
if(level > 0)
|
||||||
{
|
{
|
||||||
for(x=1;x<level-1;x++)
|
for(x=1;x<level-1;x++)
|
||||||
|
@ -1009,7 +1009,7 @@ static void I386OP(enter32)(i386_state *cpustate) // Opcode 0xc8
|
|||||||
frameptr = REG16(SP);
|
frameptr = REG16(SP);
|
||||||
else
|
else
|
||||||
frameptr = REG32(ESP);
|
frameptr = REG32(ESP);
|
||||||
|
|
||||||
if(level > 0)
|
if(level > 0)
|
||||||
{
|
{
|
||||||
for(x=1;x<level-1;x++)
|
for(x=1;x<level-1;x++)
|
||||||
|
@ -262,7 +262,7 @@ M68KMAKE_OPCODE_HANDLER_HEADER
|
|||||||
#include "mame.h"
|
#include "mame.h"
|
||||||
extern void m68040_fpu_op0(m68ki_cpu_core *m68k);
|
extern void m68040_fpu_op0(m68ki_cpu_core *m68k);
|
||||||
extern void m68040_fpu_op1(m68ki_cpu_core *m68k);
|
extern void m68040_fpu_op1(m68ki_cpu_core *m68k);
|
||||||
extern void m68881_mmu_ops(m68ki_cpu_core *m68k);
|
extern void m68881_mmu_ops(m68ki_cpu_core *m68k);
|
||||||
|
|
||||||
/* ======================================================================== */
|
/* ======================================================================== */
|
||||||
/* ========================= INSTRUCTION HANDLERS ========================= */
|
/* ========================= INSTRUCTION HANDLERS ========================= */
|
||||||
|
@ -42,7 +42,7 @@ static const char copyright_notice[] =
|
|||||||
|
|
||||||
extern void m68040_fpu_op0(m68ki_cpu_core *m68k);
|
extern void m68040_fpu_op0(m68ki_cpu_core *m68k);
|
||||||
extern void m68040_fpu_op1(m68ki_cpu_core *m68k);
|
extern void m68040_fpu_op1(m68ki_cpu_core *m68k);
|
||||||
extern void m68881_mmu_ops(m68ki_cpu_core *m68k);
|
extern void m68881_mmu_ops(m68ki_cpu_core *m68k);
|
||||||
|
|
||||||
/* ======================================================================== */
|
/* ======================================================================== */
|
||||||
/* ================================= DATA ================================= */
|
/* ================================= DATA ================================= */
|
||||||
|
@ -233,7 +233,7 @@ static const char *const g_mmuregs[8] =
|
|||||||
|
|
||||||
static const char *const g_mmucond[16] =
|
static const char *const g_mmucond[16] =
|
||||||
{
|
{
|
||||||
"bs", "bc", "ls", "lc", "ss", "sc", "as", "ac",
|
"bs", "bc", "ls", "lc", "ss", "sc", "as", "ac",
|
||||||
"ws", "wc", "is", "ic", "gs", "gc", "cs", "cc"
|
"ws", "wc", "is", "ic", "gs", "gc", "cs", "cc"
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -3139,14 +3139,14 @@ static void d68851_pbcc16(void)
|
|||||||
{
|
{
|
||||||
UINT32 temp_pc = g_cpu_pc;
|
UINT32 temp_pc = g_cpu_pc;
|
||||||
|
|
||||||
sprintf(g_dasm_str, "pb%s %x", g_mmucond[g_cpu_ir&0xf], temp_pc + make_int_16(read_imm_16()));
|
sprintf(g_dasm_str, "pb%s %x", g_mmucond[g_cpu_ir&0xf], temp_pc + make_int_16(read_imm_16()));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void d68851_pbcc32(void)
|
static void d68851_pbcc32(void)
|
||||||
{
|
{
|
||||||
UINT32 temp_pc = g_cpu_pc;
|
UINT32 temp_pc = g_cpu_pc;
|
||||||
|
|
||||||
sprintf(g_dasm_str, "pb%s %x", g_mmucond[g_cpu_ir&0xf], temp_pc + make_int_32(read_imm_32()));
|
sprintf(g_dasm_str, "pb%s %x", g_mmucond[g_cpu_ir&0xf], temp_pc + make_int_32(read_imm_32()));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void d68851_pdbcc(void)
|
static void d68851_pdbcc(void)
|
||||||
@ -3154,7 +3154,7 @@ static void d68851_pdbcc(void)
|
|||||||
UINT32 temp_pc = g_cpu_pc;
|
UINT32 temp_pc = g_cpu_pc;
|
||||||
UINT16 modes = read_imm_16();
|
UINT16 modes = read_imm_16();
|
||||||
|
|
||||||
sprintf(g_dasm_str, "pb%s %x", g_mmucond[modes&0xf], temp_pc + make_int_16(read_imm_16()));
|
sprintf(g_dasm_str, "pb%s %x", g_mmucond[modes&0xf], temp_pc + make_int_16(read_imm_16()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// PScc: 0000000000xxxxxx
|
// PScc: 0000000000xxxxxx
|
||||||
@ -3485,7 +3485,7 @@ static const opcode_struct g_opcode_info[] =
|
|||||||
{d68000_unlk , 0xfff8, 0x4e58, 0x000},
|
{d68000_unlk , 0xfff8, 0x4e58, 0x000},
|
||||||
{d68020_unpk_rr , 0xf1f8, 0x8180, 0x000},
|
{d68020_unpk_rr , 0xf1f8, 0x8180, 0x000},
|
||||||
{d68020_unpk_mm , 0xf1f8, 0x8188, 0x000},
|
{d68020_unpk_mm , 0xf1f8, 0x8188, 0x000},
|
||||||
{d68851_p000 , 0xffc0, 0xf000, 0x000},
|
{d68851_p000 , 0xffc0, 0xf000, 0x000},
|
||||||
{d68851_pbcc16 , 0xffc0, 0xf080, 0x000},
|
{d68851_pbcc16 , 0xffc0, 0xf080, 0x000},
|
||||||
{d68851_pbcc32 , 0xffc0, 0xf0c0, 0x000},
|
{d68851_pbcc32 , 0xffc0, 0xf0c0, 0x000},
|
||||||
{d68851_pdbcc , 0xfff8, 0xf048, 0x000},
|
{d68851_pdbcc , 0xfff8, 0xf048, 0x000},
|
||||||
|
@ -37,7 +37,7 @@ INLINE UINT32 pmmu_translate_addr(m68ki_cpu_core *m68k, UINT32 addr_in)
|
|||||||
bbits = (m68k->mmu_tc>>8)&0xf;
|
bbits = (m68k->mmu_tc>>8)&0xf;
|
||||||
cbits = (m68k->mmu_tc>>4)&0xf;
|
cbits = (m68k->mmu_tc>>4)&0xf;
|
||||||
|
|
||||||
// logerror("PMMU: tcr %08x limit %08x aptr %08x is %x abits %d bbits %d cbits %d\n", m68k->mmu_tc, root_limit, root_aptr, is, abits, bbits, cbits);
|
// logerror("PMMU: tcr %08x limit %08x aptr %08x is %x abits %d bbits %d cbits %d\n", m68k->mmu_tc, root_limit, root_aptr, is, abits, bbits, cbits);
|
||||||
|
|
||||||
// get table A offset
|
// get table A offset
|
||||||
tofs = (addr_in<<is)>>(32-abits);
|
tofs = (addr_in<<is)>>(32-abits);
|
||||||
@ -52,19 +52,19 @@ INLINE UINT32 pmmu_translate_addr(m68ki_cpu_core *m68k, UINT32 addr_in)
|
|||||||
|
|
||||||
case 2: // valid 4 byte descriptors
|
case 2: // valid 4 byte descriptors
|
||||||
tofs *= 4;
|
tofs *= 4;
|
||||||
// logerror("PMMU: reading table A entry at %08x\n", tofs + (root_aptr & 0xfffffffc));
|
// logerror("PMMU: reading table A entry at %08x\n", tofs + (root_aptr & 0xfffffffc));
|
||||||
tbl_entry = memory_read_dword_32be(m68k->program, tofs + (root_aptr & 0xfffffffc));
|
tbl_entry = memory_read_dword_32be(m68k->program, tofs + (root_aptr & 0xfffffffc));
|
||||||
tamode = tbl_entry & 3;
|
tamode = tbl_entry & 3;
|
||||||
// logerror("PMMU: addr %08x entry %08x mode %x tofs %x\n", addr_in, tbl_entry, tamode, tofs);
|
// logerror("PMMU: addr %08x entry %08x mode %x tofs %x\n", addr_in, tbl_entry, tamode, tofs);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3: // valid 8 byte descriptors
|
case 3: // valid 8 byte descriptors
|
||||||
tofs *= 8;
|
tofs *= 8;
|
||||||
// logerror("PMMU: reading table A entries at %08x\n", tofs + (root_aptr & 0xfffffffc));
|
// logerror("PMMU: reading table A entries at %08x\n", tofs + (root_aptr & 0xfffffffc));
|
||||||
tbl_entry2 = memory_read_dword_32be(m68k->program, tofs + (root_aptr & 0xfffffffc));
|
tbl_entry2 = memory_read_dword_32be(m68k->program, tofs + (root_aptr & 0xfffffffc));
|
||||||
tbl_entry = memory_read_dword_32be(m68k->program, tofs + (root_aptr & 0xfffffffc)+4);
|
tbl_entry = memory_read_dword_32be(m68k->program, tofs + (root_aptr & 0xfffffffc)+4);
|
||||||
tamode = tbl_entry2 & 3;
|
tamode = tbl_entry2 & 3;
|
||||||
// logerror("PMMU: addr %08x entry %08x entry2 %08x mode %x tofs %x\n", addr_in, tbl_entry, tbl_entry2, tamode, tofs);
|
// logerror("PMMU: addr %08x entry %08x entry2 %08x mode %x tofs %x\n", addr_in, tbl_entry, tbl_entry2, tamode, tofs);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,19 +81,19 @@ INLINE UINT32 pmmu_translate_addr(m68ki_cpu_core *m68k, UINT32 addr_in)
|
|||||||
|
|
||||||
case 2: // 4-byte table B descriptor
|
case 2: // 4-byte table B descriptor
|
||||||
tofs *= 4;
|
tofs *= 4;
|
||||||
// logerror("PMMU: reading table B entry at %08x\n", tofs + tptr);
|
// logerror("PMMU: reading table B entry at %08x\n", tofs + tptr);
|
||||||
tbl_entry = memory_read_dword_32be(m68k->program, tofs + tptr);
|
tbl_entry = memory_read_dword_32be(m68k->program, tofs + tptr);
|
||||||
tbmode = tbl_entry & 3;
|
tbmode = tbl_entry & 3;
|
||||||
// logerror("PMMU: addr %08x entry %08x mode %x tofs %x\n", addr_in, tbl_entry, tbmode, tofs);
|
// logerror("PMMU: addr %08x entry %08x mode %x tofs %x\n", addr_in, tbl_entry, tbmode, tofs);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3: // 8-byte table B descriptor
|
case 3: // 8-byte table B descriptor
|
||||||
tofs *= 8;
|
tofs *= 8;
|
||||||
// logerror("PMMU: reading table B entries at %08x\n", tofs + tptr);
|
// logerror("PMMU: reading table B entries at %08x\n", tofs + tptr);
|
||||||
tbl_entry2 = memory_read_dword_32be(m68k->program, tofs + tptr);
|
tbl_entry2 = memory_read_dword_32be(m68k->program, tofs + tptr);
|
||||||
tbl_entry = memory_read_dword_32be(m68k->program, tofs + tptr + 4);
|
tbl_entry = memory_read_dword_32be(m68k->program, tofs + tptr + 4);
|
||||||
tbmode = tbl_entry2 & 3;
|
tbmode = tbl_entry2 & 3;
|
||||||
// logerror("PMMU: addr %08x entry %08x entry2 %08x mode %x tofs %x\n", addr_in, tbl_entry, tbl_entry2, tbmode, tofs);
|
// logerror("PMMU: addr %08x entry %08x entry2 %08x mode %x tofs %x\n", addr_in, tbl_entry, tbl_entry2, tbmode, tofs);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: // early termination descriptor
|
case 1: // early termination descriptor
|
||||||
@ -120,19 +120,19 @@ INLINE UINT32 pmmu_translate_addr(m68ki_cpu_core *m68k, UINT32 addr_in)
|
|||||||
|
|
||||||
case 2: // 4-byte table C descriptor
|
case 2: // 4-byte table C descriptor
|
||||||
tofs *= 4;
|
tofs *= 4;
|
||||||
// logerror("PMMU: reading table C entry at %08x\n", tofs + tptr);
|
// logerror("PMMU: reading table C entry at %08x\n", tofs + tptr);
|
||||||
tbl_entry = memory_read_dword_32be(m68k->program, tofs + tptr);
|
tbl_entry = memory_read_dword_32be(m68k->program, tofs + tptr);
|
||||||
tcmode = tbl_entry & 3;
|
tcmode = tbl_entry & 3;
|
||||||
// logerror("PMMU: addr %08x entry %08x mode %x tofs %x\n", addr_in, tbl_entry, tbmode, tofs);
|
// logerror("PMMU: addr %08x entry %08x mode %x tofs %x\n", addr_in, tbl_entry, tbmode, tofs);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3: // 8-byte table C descriptor
|
case 3: // 8-byte table C descriptor
|
||||||
tofs *= 8;
|
tofs *= 8;
|
||||||
// logerror("PMMU: reading table C entries at %08x\n", tofs + tptr);
|
// logerror("PMMU: reading table C entries at %08x\n", tofs + tptr);
|
||||||
tbl_entry2 = memory_read_dword_32be(m68k->program, tofs + tptr);
|
tbl_entry2 = memory_read_dword_32be(m68k->program, tofs + tptr);
|
||||||
tbl_entry = memory_read_dword_32be(m68k->program, tofs + tptr + 4);
|
tbl_entry = memory_read_dword_32be(m68k->program, tofs + tptr + 4);
|
||||||
tcmode = tbl_entry2 & 3;
|
tcmode = tbl_entry2 & 3;
|
||||||
// logerror("PMMU: addr %08x entry %08x entry2 %08x mode %x tofs %x\n", addr_in, tbl_entry, tbl_entry2, tbmode, tofs);
|
// logerror("PMMU: addr %08x entry %08x entry2 %08x mode %x tofs %x\n", addr_in, tbl_entry, tbl_entry2, tbmode, tofs);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: // termination descriptor
|
case 1: // termination descriptor
|
||||||
@ -166,13 +166,13 @@ INLINE UINT32 pmmu_translate_addr(m68ki_cpu_core *m68k, UINT32 addr_in)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// logerror("PMMU: [%08x] => [%08x]\n", addr_in, addr_out);
|
// logerror("PMMU: [%08x] => [%08x]\n", addr_in, addr_out);
|
||||||
|
|
||||||
return addr_out;
|
return addr_out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
m68881_mmu_ops: COP 0 MMU opcode handling
|
m68881_mmu_ops: COP 0 MMU opcode handling
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -183,7 +183,7 @@ void m68881_mmu_ops(m68ki_cpu_core *m68k)
|
|||||||
UINT64 temp64;
|
UINT64 temp64;
|
||||||
|
|
||||||
// catch the 2 "weird" encodings up front (PBcc)
|
// catch the 2 "weird" encodings up front (PBcc)
|
||||||
if ((m68k->ir & 0xffc0) == 0xf0c0)
|
if ((m68k->ir & 0xffc0) == 0xf0c0)
|
||||||
{
|
{
|
||||||
logerror("680x0: unhandled PBcc\n");
|
logerror("680x0: unhandled PBcc\n");
|
||||||
return;
|
return;
|
||||||
@ -316,5 +316,5 @@ void m68881_mmu_ops(m68ki_cpu_core *m68k)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,11 +86,11 @@ void mips3com_init(mips3_state *mips, mips3_flavor flavor, int bigendian, const
|
|||||||
mips->icache_size = config->icache;
|
mips->icache_size = config->icache;
|
||||||
mips->dcache_size = config->dcache;
|
mips->dcache_size = config->dcache;
|
||||||
mips->system_clock = config->system_clock;
|
mips->system_clock = config->system_clock;
|
||||||
|
|
||||||
/* configure flavor-specific parameters */
|
/* configure flavor-specific parameters */
|
||||||
mips->pfnmask = 0x00ffffff;
|
mips->pfnmask = 0x00ffffff;
|
||||||
mips->tlbentries = MIPS3_MAX_TLB_ENTRIES;
|
mips->tlbentries = MIPS3_MAX_TLB_ENTRIES;
|
||||||
|
|
||||||
/* VR4300 and VR5432 have 4 fewer PFN bits, and only 32 TLB entries */
|
/* VR4300 and VR5432 have 4 fewer PFN bits, and only 32 TLB entries */
|
||||||
if (flavor == MIPS3_TYPE_VR4300)
|
if (flavor == MIPS3_TYPE_VR4300)
|
||||||
{
|
{
|
||||||
|
@ -204,7 +204,7 @@ struct _mips3_state
|
|||||||
UINT64 count_zero_time;
|
UINT64 count_zero_time;
|
||||||
UINT32 compare_armed;
|
UINT32 compare_armed;
|
||||||
emu_timer * compare_int_timer;
|
emu_timer * compare_int_timer;
|
||||||
|
|
||||||
/* derived info based on flavor */
|
/* derived info based on flavor */
|
||||||
UINT32 pfnmask;
|
UINT32 pfnmask;
|
||||||
UINT8 tlbentries;
|
UINT8 tlbentries;
|
||||||
|
@ -214,7 +214,7 @@ INLINE void dma8237_advance( const device_config *device )
|
|||||||
static void set_dack(i8237_t *i8237, int channel)
|
static void set_dack(i8237_t *i8237, int channel)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
int state = (i == channel) ^ !BIT(i8237->command, 7);
|
int state = (i == channel) ^ !BIT(i8237->command, 7);
|
||||||
|
@ -11,12 +11,12 @@
|
|||||||
_I/OW 2 | | 39 A6
|
_I/OW 2 | | 39 A6
|
||||||
_MEMR 3 | | 38 A5
|
_MEMR 3 | | 38 A5
|
||||||
_MEMW 4 | | 37 A4
|
_MEMW 4 | | 37 A4
|
||||||
5 | | 36 _EOP
|
5 | | 36 _EOP
|
||||||
READY 6 | | 35 A3
|
READY 6 | | 35 A3
|
||||||
HLDA 7 | | 34 A2
|
HLDA 7 | | 34 A2
|
||||||
ADSTB 8 | | 33 A1
|
ADSTB 8 | | 33 A1
|
||||||
AEN 9 | | 32 A0
|
AEN 9 | | 32 A0
|
||||||
HRQ 10 | 8237 | 31 Vcc
|
HRQ 10 | 8237 | 31 Vcc
|
||||||
_CS 11 | | 30 DB0
|
_CS 11 | | 30 DB0
|
||||||
CLK 12 | | 29 DB1
|
CLK 12 | | 29 DB1
|
||||||
RESET 13 | | 28 DB2
|
RESET 13 | | 28 DB2
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
HLDA 7 | | 34 A2
|
HLDA 7 | | 34 A2
|
||||||
ADSTB 8 | | 33 A1
|
ADSTB 8 | | 33 A1
|
||||||
AEN 9 | | 32 A0
|
AEN 9 | | 32 A0
|
||||||
HRQ 10 | 8257 | 31 Vcc
|
HRQ 10 | 8257 | 31 Vcc
|
||||||
_CS 11 | | 30 D0
|
_CS 11 | | 30 D0
|
||||||
CLK 12 | | 29 D1
|
CLK 12 | | 29 D1
|
||||||
RESET 13 | | 28 D2
|
RESET 13 | | 28 D2
|
||||||
|
@ -7,16 +7,16 @@
|
|||||||
|
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
_____ _____
|
_____ _____
|
||||||
A5 1 |* \_/ | 40 A6
|
A5 1 |* \_/ | 40 A6
|
||||||
A4 2 | | 39 A7
|
A4 2 | | 39 A7
|
||||||
A3 3 | | 38 IEI
|
A3 3 | | 38 IEI
|
||||||
A2 4 | | 37 _INT/_PULSE
|
A2 4 | | 37 _INT/_PULSE
|
||||||
A1 5 | | 36 IEO
|
A1 5 | | 36 IEO
|
||||||
A0 6 | | 35 D0
|
A0 6 | | 35 D0
|
||||||
CLK 7 | | 34 D1
|
CLK 7 | | 34 D1
|
||||||
_WR 8 | | 33 D2
|
_WR 8 | | 33 D2
|
||||||
_RD 9 | | 32 D3
|
_RD 9 | | 32 D3
|
||||||
_IORQ 10 | Z8410 | 31 D4
|
_IORQ 10 | Z8410 | 31 D4
|
||||||
+5V 11 | | 30 GND
|
+5V 11 | | 30 GND
|
||||||
_MREQ 12 | | 29 D5
|
_MREQ 12 | | 29 D5
|
||||||
_BAO 13 | | 28 D6
|
_BAO 13 | | 28 D6
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
different noise LFSR patttern: taps on bits A and E, output on E
|
different noise LFSR patttern: taps on bits A and E, output on E
|
||||||
It uses a 15-bit ring buffer for periodic noise/arbitrary duty cycle.
|
It uses a 15-bit ring buffer for periodic noise/arbitrary duty cycle.
|
||||||
(all this chip's info needs to be verified)
|
(all this chip's info needs to be verified)
|
||||||
|
|
||||||
28/03/2005 : Sebastien Chevalier
|
28/03/2005 : Sebastien Chevalier
|
||||||
Update th SN76496Write func, according to SN76489 doc found on SMSPower.
|
Update th SN76496Write func, according to SN76489 doc found on SMSPower.
|
||||||
- On write with 0x80 set to 0, when LastRegister is other then TONE,
|
- On write with 0x80 set to 0, when LastRegister is other then TONE,
|
||||||
@ -48,22 +48,22 @@
|
|||||||
28/04/2009 : Lord Nightmare
|
28/04/2009 : Lord Nightmare
|
||||||
Add READY line readback; cleaned up struct a bit. Cleaned up comments.
|
Add READY line readback; cleaned up struct a bit. Cleaned up comments.
|
||||||
Add more TODOs. Fixed some unsaved savestate related stuff.
|
Add more TODOs. Fixed some unsaved savestate related stuff.
|
||||||
|
|
||||||
04/11/2009 : Lord Nightmare
|
04/11/2009 : Lord Nightmare
|
||||||
Changed the way that the invert works (it now selects between XOR and XNOR
|
Changed the way that the invert works (it now selects between XOR and XNOR
|
||||||
for the taps), and added R->OldNoise to simulate the extra 0 that is always
|
for the taps), and added R->OldNoise to simulate the extra 0 that is always
|
||||||
output before the noise LFSR contents are after an LFSR reset.
|
output before the noise LFSR contents are after an LFSR reset.
|
||||||
This fixes SN76489/A to match chips. Added SN94624.
|
This fixes SN76489/A to match chips. Added SN94624.
|
||||||
|
|
||||||
14/11/2009 : Lord Nightmare
|
14/11/2009 : Lord Nightmare
|
||||||
Removed STEP mess, vastly simplifying the code. Made output bipolar rather
|
Removed STEP mess, vastly simplifying the code. Made output bipolar rather
|
||||||
than always above the 0 line, but disabled that code due to pending issues.
|
than always above the 0 line, but disabled that code due to pending issues.
|
||||||
|
|
||||||
16/11/2009 : Lord Nightmare
|
16/11/2009 : Lord Nightmare
|
||||||
Fix screeching in regulus: When summing together four equal channels, the
|
Fix screeching in regulus: When summing together four equal channels, the
|
||||||
size of the max amplitude per channel should be 1/4 of the max range, not
|
size of the max amplitude per channel should be 1/4 of the max range, not
|
||||||
1/3. Added NCR7496.
|
1/3. Added NCR7496.
|
||||||
|
|
||||||
18/11/2009 : Lord Nightmare
|
18/11/2009 : Lord Nightmare
|
||||||
Modify Init functions to support negating the audio output. The gamegear
|
Modify Init functions to support negating the audio output. The gamegear
|
||||||
psg does this. Change gamegear and sega psgs to use XOR rather than XNOR
|
psg does this. Change gamegear and sega psgs to use XOR rather than XNOR
|
||||||
@ -269,10 +269,10 @@ static STREAM_UPDATE( SN76496Update )
|
|||||||
R->Count[3] = R->Period[3];
|
R->Count[3] = R->Period[3];
|
||||||
}
|
}
|
||||||
/* //bipolar output, doesn't seem to work right with sonic 2 on gamegear at least
|
/* //bipolar output, doesn't seem to work right with sonic 2 on gamegear at least
|
||||||
out = (R->Output[0]?R->Volume[0]:(0-R->Volume[0]))
|
out = (R->Output[0]?R->Volume[0]:(0-R->Volume[0]))
|
||||||
+(R->Output[1]?R->Volume[1]:(0-R->Volume[1]))
|
+(R->Output[1]?R->Volume[1]:(0-R->Volume[1]))
|
||||||
+(R->Output[2]?R->Volume[2]:(0-R->Volume[2]))
|
+(R->Output[2]?R->Volume[2]:(0-R->Volume[2]))
|
||||||
+(R->Output[3]?R->Volume[3]:(0-R->Volume[3]));
|
+(R->Output[3]?R->Volume[3]:(0-R->Volume[3]));
|
||||||
*/
|
*/
|
||||||
if (R->Stereo)
|
if (R->Stereo)
|
||||||
{
|
{
|
||||||
@ -280,7 +280,7 @@ static STREAM_UPDATE( SN76496Update )
|
|||||||
+ (((R->StereoMask&0x20)&&R->Output[1])?R->Volume[1]:0)
|
+ (((R->StereoMask&0x20)&&R->Output[1])?R->Volume[1]:0)
|
||||||
+ (((R->StereoMask&0x40)&&R->Output[2])?R->Volume[2]:0)
|
+ (((R->StereoMask&0x40)&&R->Output[2])?R->Volume[2]:0)
|
||||||
+ (((R->StereoMask&0x80)&&R->Output[3])?R->Volume[3]:0);
|
+ (((R->StereoMask&0x80)&&R->Output[3])?R->Volume[3]:0);
|
||||||
|
|
||||||
out2 = (((R->StereoMask&0x1)&&R->Output[0])?R->Volume[0]:0)
|
out2 = (((R->StereoMask&0x1)&&R->Output[0])?R->Volume[0]:0)
|
||||||
+ (((R->StereoMask&0x2)&&R->Output[1])?R->Volume[1]:0)
|
+ (((R->StereoMask&0x2)&&R->Output[1])?R->Volume[1]:0)
|
||||||
+ (((R->StereoMask&0x4)&&R->Output[2])?R->Volume[2]:0)
|
+ (((R->StereoMask&0x4)&&R->Output[2])?R->Volume[2]:0)
|
||||||
|
@ -63,7 +63,7 @@ static WRITE8_HANDLER ( aeroboto_1a2_w )
|
|||||||
aeroboto_state *state = (aeroboto_state *)space->machine->driver_data;
|
aeroboto_state *state = (aeroboto_state *)space->machine->driver_data;
|
||||||
|
|
||||||
state->mainram[0x01a2] = data;
|
state->mainram[0x01a2] = data;
|
||||||
if (data)
|
if (data)
|
||||||
state->disable_irq = 1;
|
state->disable_irq = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -754,8 +754,8 @@ ROM_END
|
|||||||
|
|
||||||
|
|
||||||
static DRIVER_INIT( spcpostn )
|
static DRIVER_INIT( spcpostn )
|
||||||
{
|
{
|
||||||
spcpostn_decode(machine, "maincpu");
|
spcpostn_decode(machine, "maincpu");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -307,9 +307,9 @@ static DRIVER_INIT( battlex )
|
|||||||
int bit, col;
|
int bit, col;
|
||||||
bit = (mskd[outcount * 8 + linecount] & bitmask) >> bitcount;
|
bit = (mskd[outcount * 8 + linecount] & bitmask) >> bitcount;
|
||||||
|
|
||||||
if (bit)
|
if (bit)
|
||||||
col = (cold[outcount * 8 + (linecount & ~1) + (bitcount / 4)] & 0x0f) << 4;
|
col = (cold[outcount * 8 + (linecount & ~1) + (bitcount / 4)] & 0x0f) << 4;
|
||||||
else
|
else
|
||||||
col = (cold[outcount * 8 + (linecount & ~1) + (bitcount / 4)] & 0xf0);
|
col = (cold[outcount * 8 + (linecount & ~1) + (bitcount / 4)] & 0xf0);
|
||||||
|
|
||||||
dest[outcount * 32 + linecount * 4 + bitcount /2] |= (col >> (4 * (bitcount & 1)));
|
dest[outcount * 32 + linecount * 4 + bitcount /2] |= (col >> (4 * (bitcount & 1)));
|
||||||
|
@ -317,7 +317,7 @@ static MACHINE_DRIVER_START( blueprnt )
|
|||||||
|
|
||||||
MDRV_MACHINE_START(blueprnt)
|
MDRV_MACHINE_START(blueprnt)
|
||||||
MDRV_MACHINE_RESET(blueprnt)
|
MDRV_MACHINE_RESET(blueprnt)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
MDRV_SCREEN_REFRESH_RATE(60)
|
MDRV_SCREEN_REFRESH_RATE(60)
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
/*******************************************************************************************
|
/*******************************************************************************************
|
||||||
|
|
||||||
Dream 9 Final (c) 1992 Excellent Systems
|
Dream 9 Final (c) 1992 Excellent Systems
|
||||||
|
|
||||||
driver by Angelo Salese & David Haywood
|
driver by Angelo Salese & David Haywood
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- Don't know where the ES8712 & RTC62421b chips routes;
|
- Don't know where the ES8712 & RTC62421b chips routes;
|
||||||
- A bunch of missing port outputs;
|
- A bunch of missing port outputs;
|
||||||
- screen disable? Start-up fading looks horrible;
|
- screen disable? Start-up fading looks horrible;
|
||||||
- Game looks IGS-esque, is there any correlation?
|
- Game looks IGS-esque, is there any correlation?
|
||||||
|
|
||||||
============================================================================================
|
============================================================================================
|
||||||
|
|
||||||
PCB: ES-9112
|
PCB: ES-9112
|
||||||
|
|
||||||
Main Chips: Z80, ES8712, 24Mhz OSC, RTC62421B 9262, YM2413, 4x8DSW
|
Main Chips: Z80, ES8712, 24Mhz OSC, RTC62421B 9262, YM2413, 4x8DSW
|
||||||
|
|
||||||
*******************************************************************************************/
|
*******************************************************************************************/
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ static WRITE8_HANDLER( d9final_bank_w )
|
|||||||
/* game checks this after three attract cycles, otherwise coin inputs stop to work. */
|
/* game checks this after three attract cycles, otherwise coin inputs stop to work. */
|
||||||
static READ8_HANDLER( prot_latch_r )
|
static READ8_HANDLER( prot_latch_r )
|
||||||
{
|
{
|
||||||
// printf("PC=%06x\n",cpu_get_pc(space->cpu));
|
// printf("PC=%06x\n",cpu_get_pc(space->cpu));
|
||||||
|
|
||||||
return 0x04;
|
return 0x04;
|
||||||
}
|
}
|
||||||
@ -99,7 +99,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( d9final_io, ADDRESS_SPACE_IO, 8 )
|
static ADDRESS_MAP_START( d9final_io, ADDRESS_SPACE_IO, 8 )
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
// AM_RANGE(0x00, 0x00) AM_WRITENOP //bit 0: irq enable? screen enable?
|
// AM_RANGE(0x00, 0x00) AM_WRITENOP //bit 0: irq enable? screen enable?
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSWA")
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSWA")
|
||||||
AM_RANGE(0x20, 0x20) AM_READ_PORT("DSWB")
|
AM_RANGE(0x20, 0x20) AM_READ_PORT("DSWB")
|
||||||
AM_RANGE(0x40, 0x40) AM_READ_PORT("DSWC")
|
AM_RANGE(0x40, 0x40) AM_READ_PORT("DSWC")
|
||||||
|
@ -196,7 +196,7 @@ static READ8_HANDLER( drw80pkr_io_r )
|
|||||||
{
|
{
|
||||||
ret = pkr_io_ram[offset];
|
ret = pkr_io_ram[offset];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p2 == 0xf7)
|
if (p2 == 0xf7)
|
||||||
{
|
{
|
||||||
// unknown
|
// unknown
|
||||||
@ -214,7 +214,7 @@ static READ8_HANDLER( drw80pkr_io_r )
|
|||||||
|
|
||||||
switch (kbdin)
|
switch (kbdin)
|
||||||
{
|
{
|
||||||
// The following is very incorrect, but does allow you to
|
// The following is very incorrect, but does allow you to
|
||||||
// play slightly with very messed up hold buttons etc.
|
// play slightly with very messed up hold buttons etc.
|
||||||
//
|
//
|
||||||
// Open/Close the door with 'O'
|
// Open/Close the door with 'O'
|
||||||
|
@ -86,15 +86,15 @@ static WRITE8_DEVICE_HANDLER( ayporta_w )
|
|||||||
logerror("AY port A write %02x\n",data);
|
logerror("AY port A write %02x\n",data);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
lamps for POST?
|
lamps for POST?
|
||||||
0x01: RAM test d000-d7ff
|
0x01: RAM test d000-d7ff
|
||||||
0x02: VRAM test d800-ffff
|
0x02: VRAM test d800-ffff
|
||||||
0x04: Video SYNC test
|
0x04: Video SYNC test
|
||||||
0x08: ROM check
|
0x08: ROM check
|
||||||
0x10: NVRAM check
|
0x10: NVRAM check
|
||||||
0x20: IRQ test
|
0x20: IRQ test
|
||||||
0x40: Stack RAM check
|
0x40: Stack RAM check
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/* lamps? */
|
/* lamps? */
|
||||||
@ -127,7 +127,7 @@ static ADDRESS_MAP_START( fortecar_ports, ADDRESS_SPACE_IO, 8 )
|
|||||||
AM_RANGE(0x40, 0x40) AM_DEVREAD("aysnd", ay8910_r)
|
AM_RANGE(0x40, 0x40) AM_DEVREAD("aysnd", ay8910_r)
|
||||||
AM_RANGE(0x40, 0x41) AM_DEVWRITE("aysnd", ay8910_address_data_w)
|
AM_RANGE(0x40, 0x41) AM_DEVWRITE("aysnd", ay8910_address_data_w)
|
||||||
AM_RANGE(0x60, 0x63) AM_DEVREADWRITE("fcppi0", ppi8255_r, ppi8255_w)//M5L8255AP
|
AM_RANGE(0x60, 0x63) AM_DEVREADWRITE("fcppi0", ppi8255_r, ppi8255_w)//M5L8255AP
|
||||||
// AM_RANGE(0x80, 0x81) //8251A UART
|
// AM_RANGE(0x80, 0x81) //8251A UART
|
||||||
AM_RANGE(0xa0, 0xa0) AM_READ_PORT("IN0") //written too,multiplexer?
|
AM_RANGE(0xa0, 0xa0) AM_READ_PORT("IN0") //written too,multiplexer?
|
||||||
AM_RANGE(0xa1, 0xa1) AM_READ_PORT("IN1")
|
AM_RANGE(0xa1, 0xa1) AM_READ_PORT("IN1")
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
@ -102,7 +102,7 @@ static WRITE8_HANDLER( gei_bitmap_w )
|
|||||||
|
|
||||||
|
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
*BITMAP_ADDR16(tmpbitmap, sy, sx+i) = color[8-i-1];
|
*BITMAP_ADDR16(tmpbitmap, sy, sx+i) = color[8-i-1];
|
||||||
}
|
}
|
||||||
|
|
||||||
static PALETTE_INIT(gei)
|
static PALETTE_INIT(gei)
|
||||||
|
@ -209,7 +209,7 @@ static WRITE16_HANDLER( igs011_layers_w )
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
Palette (r5g5b5)
|
Palette (r5g5b5)
|
||||||
|
|
||||||
offset + 0x000: xRRRRRGG
|
offset + 0x000: xRRRRRGG
|
||||||
offset + 0x800: GGGBBBBB
|
offset + 0x800: GGGBBBBB
|
||||||
|
|
||||||
@ -576,14 +576,14 @@ static void lhb2_decrypt(running_machine *machine)
|
|||||||
// To be done (similar to lhb2?)
|
// To be done (similar to lhb2?)
|
||||||
static void nkishusp_decrypt(running_machine *machine)
|
static void nkishusp_decrypt(running_machine *machine)
|
||||||
{
|
{
|
||||||
// lhb_decrypt(machine);
|
// lhb_decrypt(machine);
|
||||||
// dbc_decrypt(machine);
|
// dbc_decrypt(machine);
|
||||||
// lhb2_decrypt(machine);
|
// lhb2_decrypt(machine);
|
||||||
// drgnwrld_type1_decrypt(machine);
|
// drgnwrld_type1_decrypt(machine);
|
||||||
// drgnwrld_type2_decrypt(machine);
|
// drgnwrld_type2_decrypt(machine);
|
||||||
// drgnwrld_type3_decrypt(machine);
|
// drgnwrld_type3_decrypt(machine);
|
||||||
// wlcc_decrypt(machine);
|
// wlcc_decrypt(machine);
|
||||||
// vbowlj_decrypt(machine);
|
// vbowlj_decrypt(machine);
|
||||||
|
|
||||||
int i,j;
|
int i,j;
|
||||||
int rom_size = 0x80000;
|
int rom_size = 0x80000;
|
||||||
@ -597,8 +597,8 @@ static void nkishusp_decrypt(running_machine *machine)
|
|||||||
if ((i & 0x0054) != 0x0000 && (i & 0x0056) != 0x0010)
|
if ((i & 0x0054) != 0x0000 && (i & 0x0056) != 0x0010)
|
||||||
x ^= 0x0004;
|
x ^= 0x0004;
|
||||||
|
|
||||||
// if ((i & 0x0204) == 0x0000)
|
// if ((i & 0x0204) == 0x0000)
|
||||||
// x ^= 0x0008;
|
// x ^= 0x0008;
|
||||||
|
|
||||||
if ((i & 0x3080) != 0x3080 && (i & 0x3090) != 0x3010)
|
if ((i & 0x3080) != 0x3080 && (i & 0x3090) != 0x3010)
|
||||||
x ^= 0x0020;
|
x ^= 0x0020;
|
||||||
|
@ -61,7 +61,7 @@ static WRITE8_HANDLER( video_disable_w )
|
|||||||
video_disable = data & 1;
|
video_disable = data & 1;
|
||||||
if (data & (~1))
|
if (data & (~1))
|
||||||
logerror("PC %06X: unknown bits of video_disable written = %02x\n",cpu_get_pc(space->cpu),data);
|
logerror("PC %06X: unknown bits of video_disable written = %02x\n",cpu_get_pc(space->cpu),data);
|
||||||
// popmessage("VIDEO %02X",data);
|
// popmessage("VIDEO %02X",data);
|
||||||
}
|
}
|
||||||
static WRITE16_HANDLER( video_disable_lsb_w )
|
static WRITE16_HANDLER( video_disable_lsb_w )
|
||||||
{
|
{
|
||||||
@ -670,7 +670,7 @@ static DRIVER_INIT( starzan )
|
|||||||
x ^= 0x80;
|
x ^= 0x80;
|
||||||
|
|
||||||
//if ( (i & 0xffff) < 0x20 )
|
//if ( (i & 0xffff) < 0x20 )
|
||||||
// x ^= 0x80;
|
// x ^= 0x80;
|
||||||
#else
|
#else
|
||||||
// by iq_132
|
// by iq_132
|
||||||
if ((i & 0x00011) == 0x00011) x ^= 0x01;
|
if ((i & 0x00011) == 0x00011) x ^= 0x01;
|
||||||
@ -2713,7 +2713,7 @@ IGS PCB NO-0230-1
|
|||||||
| |----------------| |----------------------| (---) \ |
|
| |----------------| |----------------------| (---) \ |
|
||||||
|----------------------------------------------------------|
|
|----------------------------------------------------------|
|
||||||
|
|
||||||
U1,U5,U6 ULN2004A SW4 1pos switch for reset
|
U1,U5,U6 ULN2004A SW4 1pos switch for reset
|
||||||
U2 TBM TB27C4096 Sw1-2-3 8x2 DSW
|
U2 TBM TB27C4096 Sw1-2-3 8x2 DSW
|
||||||
U4 IGS025 (protection?)
|
U4 IGS025 (protection?)
|
||||||
U8 IGS S2102 SP V102 1P1327A6 C000538
|
U8 IGS S2102 SP V102 1P1327A6 C000538
|
||||||
|
@ -102,7 +102,7 @@ static READ16_HANDLER( jackpool_io_r )
|
|||||||
case 0x20: return 0xff; //hopper motor
|
case 0x20: return 0xff; //hopper motor
|
||||||
case 0x2c: return eeprom_read_bit();
|
case 0x2c: return eeprom_read_bit();
|
||||||
case 0x2e: return eeprom_read_bit();
|
case 0x2e: return eeprom_read_bit();
|
||||||
// default: printf("R %02x\n",offset*2); break;
|
// default: printf("R %02x\n",offset*2); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// printf("R %02x\n",offset*2);
|
// printf("R %02x\n",offset*2);
|
||||||
@ -131,10 +131,10 @@ static WRITE16_HANDLER( jackpool_io_w )
|
|||||||
case 0x50: eeprom_set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break;
|
case 0x50: eeprom_set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break;
|
||||||
case 0x52: eeprom_set_clock_line((data & 1) ? ASSERT_LINE : CLEAR_LINE ); break;
|
case 0x52: eeprom_set_clock_line((data & 1) ? ASSERT_LINE : CLEAR_LINE ); break;
|
||||||
case 0x54: eeprom_write_bit(data & 1); break;
|
case 0x54: eeprom_write_bit(data & 1); break;
|
||||||
// case 0x5a: eeprom_set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break;
|
// case 0x5a: eeprom_set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break;
|
||||||
// case 0x5c: eeprom_set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break;
|
// case 0x5c: eeprom_set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break;
|
||||||
case 0x60: break;
|
case 0x60: break;
|
||||||
// default: printf("[%02x] <- %02x W\n",offset*2,data); break;
|
// default: printf("[%02x] <- %02x W\n",offset*2,data); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
@ -715,7 +715,7 @@ static INTERRUPT_GEN(konamigx_vbinterrupt_type4)
|
|||||||
|
|
||||||
// maybe this interupt should only be every 30fps, or maybe there are flags to prevent the game running too fast
|
// maybe this interupt should only be every 30fps, or maybe there are flags to prevent the game running too fast
|
||||||
// the real hardware should output the display for each screen on alternate frames
|
// the real hardware should output the display for each screen on alternate frames
|
||||||
// if(video_screen_get_frame_number(device->machine->primary_screen) & 1)
|
// if(video_screen_get_frame_number(device->machine->primary_screen) & 1)
|
||||||
if (1) // gx_syncen & 0x20)
|
if (1) // gx_syncen & 0x20)
|
||||||
{
|
{
|
||||||
gx_syncen &= ~0x20;
|
gx_syncen &= ~0x20;
|
||||||
@ -840,19 +840,19 @@ static READ32_HANDLER( sound020_r )
|
|||||||
break;
|
break;
|
||||||
case 13: // Soccer Superstars
|
case 13: // Soccer Superstars
|
||||||
//if(cpu_get_pc(space->cpu) != 0x236dce && cpu_get_pc(space->cpu) != 0x236d8a && cpu_get_pc(space->cpu) != 0x236d8a)
|
//if(cpu_get_pc(space->cpu) != 0x236dce && cpu_get_pc(space->cpu) != 0x236d8a && cpu_get_pc(space->cpu) != 0x236d8a)
|
||||||
// printf("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(space->cpu));
|
// printf("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(space->cpu));
|
||||||
if (cpu_get_pc(space->cpu) == 0x0236e04) rv = 0xffffffff;
|
if (cpu_get_pc(space->cpu) == 0x0236e04) rv = 0xffffffff;
|
||||||
if (cpu_get_pc(space->cpu) == 0x0236e12) rv = 0xffffffff;
|
if (cpu_get_pc(space->cpu) == 0x0236e12) rv = 0xffffffff;
|
||||||
break;
|
break;
|
||||||
case 14: // Soccer Superstars ver. JAC
|
case 14: // Soccer Superstars ver. JAC
|
||||||
//if(cpu_get_pc(space->cpu) != 0x2367b4)
|
//if(cpu_get_pc(space->cpu) != 0x2367b4)
|
||||||
// printf("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(space->cpu));
|
// printf("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(space->cpu));
|
||||||
if (cpu_get_pc(space->cpu) == 0x02367ea) rv = 0xffffffff;
|
if (cpu_get_pc(space->cpu) == 0x02367ea) rv = 0xffffffff;
|
||||||
if (cpu_get_pc(space->cpu) == 0x02367f8) rv = 0xffffffff;
|
if (cpu_get_pc(space->cpu) == 0x02367f8) rv = 0xffffffff;
|
||||||
break;
|
break;
|
||||||
case 15: // Soccer Superstars ver. JAA
|
case 15: // Soccer Superstars ver. JAA
|
||||||
//if(cpu_get_pc(space->cpu) != 0x23670a)
|
//if(cpu_get_pc(space->cpu) != 0x23670a)
|
||||||
// printf("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(space->cpu));
|
// printf("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(space->cpu));
|
||||||
if (cpu_get_pc(space->cpu) == 0x0236740) rv = 0xffffffff;
|
if (cpu_get_pc(space->cpu) == 0x0236740) rv = 0xffffffff;
|
||||||
if (cpu_get_pc(space->cpu) == 0x023674e) rv = 0xffffffff;
|
if (cpu_get_pc(space->cpu) == 0x023674e) rv = 0xffffffff;
|
||||||
break;
|
break;
|
||||||
@ -997,10 +997,10 @@ static READ32_HANDLER( type1_roz_r2 )
|
|||||||
static READ32_HANDLER( type3_sync_r )
|
static READ32_HANDLER( type3_sync_r )
|
||||||
{
|
{
|
||||||
if(konamigx_current_frame==0)
|
if(konamigx_current_frame==0)
|
||||||
return -1; // return 0xfffffffe | 1;
|
return -1; // return 0xfffffffe | 1;
|
||||||
else
|
else
|
||||||
return 0;// return 0xfffffffe | 0;
|
return 0;// return 0xfffffffe | 0;
|
||||||
}
|
}
|
||||||
static int last_prot_op, last_prot_clk;
|
static int last_prot_op, last_prot_clk;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1284,7 +1284,7 @@ static ADDRESS_MAP_START( gx_type4_map, ADDRESS_SPACE_PROGRAM, 32 )
|
|||||||
AM_RANGE(0xea0000, 0xea7fff) AM_RAM AM_BASE(&gx_subpaletteram32) // 5G/7G/9G (sub screen palette RAM)
|
AM_RANGE(0xea0000, 0xea7fff) AM_RAM AM_BASE(&gx_subpaletteram32) // 5G/7G/9G (sub screen palette RAM)
|
||||||
AM_RANGE(0xec0000, 0xec0003) AM_READ(type3_sync_r) // type 4 polls this too
|
AM_RANGE(0xec0000, 0xec0003) AM_READ(type3_sync_r) // type 4 polls this too
|
||||||
AM_RANGE(0xf00000, 0xf07fff) AM_RAM_WRITE(konamigx_t4_psacmap_w) AM_BASE(&gx_psacram) // PSAC2 tilemap
|
AM_RANGE(0xf00000, 0xf07fff) AM_RAM_WRITE(konamigx_t4_psacmap_w) AM_BASE(&gx_psacram) // PSAC2 tilemap
|
||||||
// AM_RANGE(0xf00000, 0xf07fff) AM_RAM
|
// AM_RANGE(0xf00000, 0xf07fff) AM_RAM
|
||||||
AM_IMPORT_FROM(gx_base_memmap)
|
AM_IMPORT_FROM(gx_base_memmap)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
@ -156,9 +156,9 @@ static READ8_HANDLER( input_buttons_r )
|
|||||||
{
|
{
|
||||||
m14_state *state = (m14_state *)space->machine->driver_data;
|
m14_state *state = (m14_state *)space->machine->driver_data;
|
||||||
|
|
||||||
if (state->hop_mux)
|
if (state->hop_mux)
|
||||||
{
|
{
|
||||||
state->hop_mux = 0;
|
state->hop_mux = 0;
|
||||||
return 0; //0x43 status bits
|
return 0; //0x43 status bits
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -122,7 +122,7 @@ static WRITE8_HANDLER( ldrun2_bankswitch_w )
|
|||||||
if (state->bankcontrol[0] == 0x01 && data == 0x0d)
|
if (state->bankcontrol[0] == 0x01 && data == 0x0d)
|
||||||
/* special case for service mode */
|
/* special case for service mode */
|
||||||
state->ldrun2_bankswap = 2;
|
state->ldrun2_bankswap = 2;
|
||||||
else
|
else
|
||||||
state->ldrun2_bankswap = 0;
|
state->ldrun2_bankswap = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ static MACHINE_RESET( marineb )
|
|||||||
|
|
||||||
state->palette_bank = 0;
|
state->palette_bank = 0;
|
||||||
state->column_scroll = 0;
|
state->column_scroll = 0;
|
||||||
state->flipscreen_x = 0;
|
state->flipscreen_x = 0;
|
||||||
state->flipscreen_y = 0;
|
state->flipscreen_y = 0;
|
||||||
state->marineb_active_low_flipscreen = 0;
|
state->marineb_active_low_flipscreen = 0;
|
||||||
MACHINE_RESET_CALL(espial);
|
MACHINE_RESET_CALL(espial);
|
||||||
@ -59,7 +59,7 @@ static MACHINE_RESET( springer )
|
|||||||
|
|
||||||
state->palette_bank = 0;
|
state->palette_bank = 0;
|
||||||
state->column_scroll = 0;
|
state->column_scroll = 0;
|
||||||
state->flipscreen_x = 0;
|
state->flipscreen_x = 0;
|
||||||
state->flipscreen_y = 0;
|
state->flipscreen_y = 0;
|
||||||
state->marineb_active_low_flipscreen = 1;
|
state->marineb_active_low_flipscreen = 1;
|
||||||
MACHINE_RESET_CALL(espial);
|
MACHINE_RESET_CALL(espial);
|
||||||
|
@ -86,7 +86,7 @@ Fix Anything Else (Palette etc.)
|
|||||||
Not sure about the main "global brightness" control register, I don't think it can make the palette
|
Not sure about the main "global brightness" control register, I don't think it can make the palette
|
||||||
completely black because of kirarast attract mode, so I'm making it cut by 50% at most.
|
completely black because of kirarast attract mode, so I'm making it cut by 50% at most.
|
||||||
- brightness control also breaks other games in various places, eg gametngk everything going dark
|
- brightness control also breaks other games in various places, eg gametngk everything going dark
|
||||||
when bomb is used, p47 aces intro?
|
when bomb is used, p47 aces intro?
|
||||||
|
|
||||||
gametngk seems to need some kind of shadow sprites but the only difference in the sprite attributes is one of the
|
gametngk seems to need some kind of shadow sprites but the only difference in the sprite attributes is one of the
|
||||||
priority bits, forcing sprites of that priority to be shadows doesn't work
|
priority bits, forcing sprites of that priority to be shadows doesn't work
|
||||||
@ -129,7 +129,7 @@ Not Working Games
|
|||||||
|
|
||||||
f1superb - the road is always rendered as straight.
|
f1superb - the road is always rendered as straight.
|
||||||
- the game has a road layer and extra roms for it
|
- the game has a road layer and extra roms for it
|
||||||
- there is an unknown maths DSP for protection
|
- there is an unknown maths DSP for protection
|
||||||
|
|
||||||
Jaleco Megasystem 32 Game List - thanks to Yasuhiro
|
Jaleco Megasystem 32 Game List - thanks to Yasuhiro
|
||||||
---------------------------------------------------
|
---------------------------------------------------
|
||||||
@ -149,7 +149,7 @@ Ryuusei Janshi Kirara Star (kirarast)
|
|||||||
Mahjong Angel Kiss
|
Mahjong Angel Kiss
|
||||||
Vs. Janshi Brand New Stars
|
Vs. Janshi Brand New Stars
|
||||||
|
|
||||||
|
|
||||||
Hayaoshi Quiz Nettou Namahousou ( hayaosi3 )
|
Hayaoshi Quiz Nettou Namahousou ( hayaosi3 )
|
||||||
Hayaoshi Quiz Grand Champion Taikai (hayaosi2)
|
Hayaoshi Quiz Grand Champion Taikai (hayaosi2)
|
||||||
|
|
||||||
@ -281,7 +281,7 @@ static WRITE32_HANDLER( pip_w )
|
|||||||
|
|
||||||
|
|
||||||
static ADDRESS_MAP_START( ms32_map, ADDRESS_SPACE_PROGRAM, 32 )
|
static ADDRESS_MAP_START( ms32_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||||
/* RAM areas verified by testing on real hw - usually accessed at the 0xfc000000 + mirror */
|
/* RAM areas verified by testing on real hw - usually accessed at the 0xfc000000 + mirror */
|
||||||
AM_RANGE(0xc0000000, 0xc0007fff) AM_READWRITE8 (ms32_nvram_r8, ms32_nvram_w8, 0x000000ff) AM_MIRROR(0x3c1fe000) // nvram is 8-bit wide, 0x2000 in size */
|
AM_RANGE(0xc0000000, 0xc0007fff) AM_READWRITE8 (ms32_nvram_r8, ms32_nvram_w8, 0x000000ff) AM_MIRROR(0x3c1fe000) // nvram is 8-bit wide, 0x2000 in size */
|
||||||
/* AM_RANGE(0xc0008000, 0xc01fffff) // mirrors of nvramram, handled above */
|
/* AM_RANGE(0xc0008000, 0xc01fffff) // mirrors of nvramram, handled above */
|
||||||
AM_RANGE(0xc1180000, 0xc1187fff) AM_READWRITE8 (ms32_priram_r8, ms32_priram_w8, 0x000000ff) AM_MIRROR(0x3c038000) /* priram is 8-bit wide, 0x2000 in size */
|
AM_RANGE(0xc1180000, 0xc1187fff) AM_READWRITE8 (ms32_priram_r8, ms32_priram_w8, 0x000000ff) AM_MIRROR(0x3c038000) /* priram is 8-bit wide, 0x2000 in size */
|
||||||
@ -289,17 +289,17 @@ static ADDRESS_MAP_START( ms32_map, ADDRESS_SPACE_PROGRAM, 32 )
|
|||||||
AM_RANGE(0xc1400000, 0xc143ffff) AM_READWRITE16(ms32_palram_r16, ms32_palram_w16, 0x0000ffff) AM_MIRROR(0x3c1c0000) /* palram is 16-bit wide, 0x20000 in size */
|
AM_RANGE(0xc1400000, 0xc143ffff) AM_READWRITE16(ms32_palram_r16, ms32_palram_w16, 0x0000ffff) AM_MIRROR(0x3c1c0000) /* palram is 16-bit wide, 0x20000 in size */
|
||||||
/* AM_RANGE(0xc1440000, 0xc145ffff) // mirrors of palram, handled above */
|
/* AM_RANGE(0xc1440000, 0xc145ffff) // mirrors of palram, handled above */
|
||||||
AM_RANGE(0xc2000000, 0xc201ffff) AM_READWRITE16(ms32_rozram_r16, ms32_rozram_w16, 0x0000ffff) AM_MIRROR(0x3c1e0000) /* rozram is 16-bit wide, 0x10000 in size */
|
AM_RANGE(0xc2000000, 0xc201ffff) AM_READWRITE16(ms32_rozram_r16, ms32_rozram_w16, 0x0000ffff) AM_MIRROR(0x3c1e0000) /* rozram is 16-bit wide, 0x10000 in size */
|
||||||
/* AM_RANGE(0xc2020000, 0xc21fffff) // mirrors of rozram, handled above */
|
/* AM_RANGE(0xc2020000, 0xc21fffff) // mirrors of rozram, handled above */
|
||||||
AM_RANGE(0xc2200000, 0xc2201fff) AM_READWRITE16(ms32_lineram_r16,ms32_lineram_w16,0x0000ffff) AM_MIRROR(0x3c1fe000) /* lineram is 16-bit wide, 0x1000 in size */
|
AM_RANGE(0xc2200000, 0xc2201fff) AM_READWRITE16(ms32_lineram_r16,ms32_lineram_w16,0x0000ffff) AM_MIRROR(0x3c1fe000) /* lineram is 16-bit wide, 0x1000 in size */
|
||||||
/* AM_RANGE(0xc2202000, 0xc23fffff) // mirrors of lineram, handled above */
|
/* AM_RANGE(0xc2202000, 0xc23fffff) // mirrors of lineram, handled above */
|
||||||
AM_RANGE(0xc2800000, 0xc283ffff) AM_READWRITE16(ms32_sprram_r16, ms32_sprram_w16, 0x0000ffff) AM_MIRROR(0x3c1c0000) /* spriteram is 16-bit wide, 0x20000 in size */
|
AM_RANGE(0xc2800000, 0xc283ffff) AM_READWRITE16(ms32_sprram_r16, ms32_sprram_w16, 0x0000ffff) AM_MIRROR(0x3c1c0000) /* spriteram is 16-bit wide, 0x20000 in size */
|
||||||
/* AM_RANGE(0xc2840000, 0xc29fffff) // mirrors of sprram, handled above */
|
/* AM_RANGE(0xc2840000, 0xc29fffff) // mirrors of sprram, handled above */
|
||||||
AM_RANGE(0xc2c00000, 0xc2c07fff) AM_READWRITE16(ms32_txram_r16, ms32_txram_w16, 0x0000ffff) AM_MIRROR(0x3c1f0000) /* txram is 16-bit wide, 0x4000 in size */
|
AM_RANGE(0xc2c00000, 0xc2c07fff) AM_READWRITE16(ms32_txram_r16, ms32_txram_w16, 0x0000ffff) AM_MIRROR(0x3c1f0000) /* txram is 16-bit wide, 0x4000 in size */
|
||||||
AM_RANGE(0xc2c08000, 0xc2c0ffff) AM_READWRITE16(ms32_bgram_r16, ms32_bgram_w16, 0x0000ffff) AM_MIRROR(0x3c1f0000) /* bgram is 16-bit wide, 0x4000 in size */
|
AM_RANGE(0xc2c08000, 0xc2c0ffff) AM_READWRITE16(ms32_bgram_r16, ms32_bgram_w16, 0x0000ffff) AM_MIRROR(0x3c1f0000) /* bgram is 16-bit wide, 0x4000 in size */
|
||||||
/* AM_RANGE(0xc2c10000, 0xc2dfffff) // mirrors of txram / bg, handled above */
|
/* AM_RANGE(0xc2c10000, 0xc2dfffff) // mirrors of txram / bg, handled above */
|
||||||
AM_RANGE(0xc2e00000, 0xc2e1ffff) AM_RAM AM_BASE(&ms32_mainram) AM_MIRROR(0x3c0e0000) /* mainram is 32-bit wide, 0x20000 in size */
|
AM_RANGE(0xc2e00000, 0xc2e1ffff) AM_RAM AM_BASE(&ms32_mainram) AM_MIRROR(0x3c0e0000) /* mainram is 32-bit wide, 0x20000 in size */
|
||||||
AM_RANGE(0xc3e00000, 0xc3ffffff) AM_ROMBANK(1) AM_MIRROR(0x3c000000) // ROM is 32-bit wide, 0x200000 in size */
|
AM_RANGE(0xc3e00000, 0xc3ffffff) AM_ROMBANK(1) AM_MIRROR(0x3c000000) // ROM is 32-bit wide, 0x200000 in size */
|
||||||
|
|
||||||
/* todo: clean up the mapping of these */
|
/* todo: clean up the mapping of these */
|
||||||
AM_RANGE(0xfc800000, 0xfc800003) AM_READNOP /* sound? */
|
AM_RANGE(0xfc800000, 0xfc800003) AM_READNOP /* sound? */
|
||||||
AM_RANGE(0xfc800000, 0xfc800003) AM_WRITE(ms32_sound_w) /* sound? */
|
AM_RANGE(0xfc800000, 0xfc800003) AM_WRITE(ms32_sound_w) /* sound? */
|
||||||
@ -350,7 +350,7 @@ static ADDRESS_MAP_START( f1superb_map, ADDRESS_SPACE_PROGRAM, 32 )
|
|||||||
AM_RANGE(0xfce00800, 0xfce0085f) AM_RAM // regs?
|
AM_RANGE(0xfce00800, 0xfce0085f) AM_RAM // regs?
|
||||||
|
|
||||||
/* these two are almost certainly wrong, they just let you see what
|
/* these two are almost certainly wrong, they just let you see what
|
||||||
happens if you generate the FPU ints without breaking other games */
|
happens if you generate the FPU ints without breaking other games */
|
||||||
AM_RANGE(0xfce00e00, 0xfce00e03) AM_WRITE(ms32_irq5_guess_w)
|
AM_RANGE(0xfce00e00, 0xfce00e03) AM_WRITE(ms32_irq5_guess_w)
|
||||||
AM_RANGE(0xfd0f0000, 0xfd0f0003) AM_WRITE(ms32_irq2_guess_w)
|
AM_RANGE(0xfd0f0000, 0xfd0f0003) AM_WRITE(ms32_irq2_guess_w)
|
||||||
|
|
||||||
@ -420,7 +420,7 @@ tried halving the frequency it runs at, no effect. irq_11 can be
|
|||||||
pretty much confirmed as comms by the code there and the use of
|
pretty much confirmed as comms by the code there and the use of
|
||||||
MOVT/MOVZ to i/o with 16 bit device based at FEE00000, so that leaves
|
MOVT/MOVZ to i/o with 16 bit device based at FEE00000, so that leaves
|
||||||
the ones that do the sprite info loading, this is where it starts to
|
the ones that do the sprite info loading, this is where it starts to
|
||||||
look less promising :(
|
look less promising :(
|
||||||
|
|
||||||
Between irqs 2,3,4,5,7 the only unused strings in the ROM are the four "fpu
|
Between irqs 2,3,4,5,7 the only unused strings in the ROM are the four "fpu
|
||||||
* interrupt" and the "option 1".
|
* interrupt" and the "option 1".
|
||||||
@ -473,7 +473,7 @@ what the operations might be, my maths isn't up to much though...
|
|||||||
///**/AM_RANGE(0xfdc00000, 0xfdc006ff) AM_RAM /* f1superb */
|
///**/AM_RANGE(0xfdc00000, 0xfdc006ff) AM_RAM /* f1superb */
|
||||||
///**/AM_RANGE(0xfde00000, 0xfde01fff) AM_RAM /* f1superb lineram #2? */
|
///**/AM_RANGE(0xfde00000, 0xfde01fff) AM_RAM /* f1superb lineram #2? */
|
||||||
///**/AM_RANGE(0xfe202000, 0xfe2fffff) AM_RAM /* f1superb vram */
|
///**/AM_RANGE(0xfe202000, 0xfe2fffff) AM_RAM /* f1superb vram */
|
||||||
// AM_RANGE(0xfd0e0000, 0xfd0e0003) AM_READ(ms32_read_inputs3) /* analog controls in f1superb? */
|
// AM_RANGE(0xfd0e0000, 0xfd0e0003) AM_READ(ms32_read_inputs3) /* analog controls in f1superb? */
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
*
|
*
|
||||||
@ -2539,7 +2539,7 @@ GAME( 1994, f1superb, 0, f1superb, f1superb, f1superb, ROT0, "Jaleco",
|
|||||||
|
|
||||||
D0 : Dot clock control (1= 24 KHz?, 0= 15 KHz)
|
D0 : Dot clock control (1= 24 KHz?, 0= 15 KHz)
|
||||||
|
|
||||||
$FCE00004 : Horizontal timing
|
$FCE00004 : Horizontal timing
|
||||||
$FCE00008 : Horizontal timing
|
$FCE00008 : Horizontal timing
|
||||||
$FCE0000C : Horizontal timing
|
$FCE0000C : Horizontal timing
|
||||||
$FCE00010 : Horizontal viewport start
|
$FCE00010 : Horizontal viewport start
|
||||||
|
@ -84,7 +84,7 @@ static DRIVER_INIT( ohpaipee )
|
|||||||
|
|
||||||
nb1413m3_type = NB1413M3_OHPAIPEE;
|
nb1413m3_type = NB1413M3_OHPAIPEE;
|
||||||
|
|
||||||
// init_nb1413m3(machine);
|
// init_nb1413m3(machine);
|
||||||
}
|
}
|
||||||
|
|
||||||
static DRIVER_INIT( togenkyo )
|
static DRIVER_INIT( togenkyo )
|
||||||
@ -110,13 +110,13 @@ static DRIVER_INIT( togenkyo )
|
|||||||
ROM[0x010c] = 0x00;
|
ROM[0x010c] = 0x00;
|
||||||
ROM[0x010d] = 0x00;
|
ROM[0x010d] = 0x00;
|
||||||
// Program ROM SUM check skip
|
// Program ROM SUM check skip
|
||||||
// ROM[0x025c] = 0x00;
|
// ROM[0x025c] = 0x00;
|
||||||
// ROM[0x025d] = 0x00;
|
// ROM[0x025d] = 0x00;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
nb1413m3_type = NB1413M3_TOGENKYO;
|
nb1413m3_type = NB1413M3_TOGENKYO;
|
||||||
|
|
||||||
//S init_nb1413m3(machine);
|
//S init_nb1413m3(machine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ static WRITE8_HANDLER( pandoras_int_control_w )
|
|||||||
|
|
||||||
switch (offset)
|
switch (offset)
|
||||||
{
|
{
|
||||||
case 0x00: if (!data)
|
case 0x00: if (!data)
|
||||||
cputag_set_input_line(space->machine, "maincpu", M6809_IRQ_LINE, CLEAR_LINE);
|
cputag_set_input_line(space->machine, "maincpu", M6809_IRQ_LINE, CLEAR_LINE);
|
||||||
state->irq_enable_a = data;
|
state->irq_enable_a = data;
|
||||||
break;
|
break;
|
||||||
@ -67,7 +67,7 @@ static WRITE8_HANDLER( pandoras_int_control_w )
|
|||||||
break;
|
break;
|
||||||
case 0x05: pandoras_flipscreen_w(space, 0, data);
|
case 0x05: pandoras_flipscreen_w(space, 0, data);
|
||||||
break;
|
break;
|
||||||
case 0x06: if (!data)
|
case 0x06: if (!data)
|
||||||
cputag_set_input_line(space->machine, "sub", M6809_IRQ_LINE, CLEAR_LINE);
|
cputag_set_input_line(space->machine, "sub", M6809_IRQ_LINE, CLEAR_LINE);
|
||||||
state->irq_enable_b = data;
|
state->irq_enable_b = data;
|
||||||
break;
|
break;
|
||||||
|
@ -763,7 +763,7 @@ static DRIVER_INIT(polygonet)
|
|||||||
|
|
||||||
/* The dsp56k occasionally executes out of mapped memory */
|
/* The dsp56k occasionally executes out of mapped memory */
|
||||||
dsp56k_update_handler = memory_set_direct_update_handler(cputag_get_address_space(machine, "dsp", ADDRESS_SPACE_PROGRAM), plygonet_dsp56k_direct_handler);
|
dsp56k_update_handler = memory_set_direct_update_handler(cputag_get_address_space(machine, "dsp", ADDRESS_SPACE_PROGRAM), plygonet_dsp56k_direct_handler);
|
||||||
|
|
||||||
/* save states */
|
/* save states */
|
||||||
state_save_register_global(machine, init_eeprom_count);
|
state_save_register_global(machine, init_eeprom_count);
|
||||||
state_save_register_global_pointer(machine, dsp56k_bank00_ram, 2 * 8 * dsp56k_bank00_size);
|
state_save_register_global_pointer(machine, dsp56k_bank00_ram, 2 * 8 * dsp56k_bank00_size);
|
||||||
|
@ -1576,13 +1576,13 @@ ROM_END
|
|||||||
|
|
||||||
/* Top Racer (bootleg without MB8841 / MB8842)
|
/* Top Racer (bootleg without MB8841 / MB8842)
|
||||||
|
|
||||||
CPU Lower Board (label "1081-C")
|
CPU Lower Board (label "1081-C")
|
||||||
2x ZILOG Z8002PS (DIP40)
|
2x ZILOG Z8002PS (DIP40)
|
||||||
1x NEC D708C-1 (DIP40)
|
1x NEC D708C-1 (DIP40)
|
||||||
|
|
||||||
Upper Board (label "1080-C")
|
Upper Board (label "1080-C")
|
||||||
1x oscillator 24.576 MHz
|
1x oscillator 24.576 MHz
|
||||||
ROMs Lower Board (label "1081-C")
|
ROMs Lower Board (label "1081-C")
|
||||||
7x HN482764G (1a,a2,a3,a4,a5,a,b)
|
7x HN482764G (1a,a2,a3,a4,a5,a,b)
|
||||||
1x HN482732G (a6)
|
1x HN482732G (a6)
|
||||||
1x PROM 82S129
|
1x PROM 82S129
|
||||||
@ -1595,15 +1595,15 @@ Upper Board (label "1080-C")
|
|||||||
4x TMS2732JL (12,13,14,15)
|
4x TMS2732JL (12,13,14,15)
|
||||||
8x PROM 24S10
|
8x PROM 24S10
|
||||||
2x PROM 7603
|
2x PROM 7603
|
||||||
2x PROM 7643
|
2x PROM 7643
|
||||||
Note Lower Board (label "1081-C")
|
Note Lower Board (label "1081-C")
|
||||||
1x flat cable connector to upper
|
1x flat cable connector to upper
|
||||||
1x 18x2 edge connector
|
1x 18x2 edge connector
|
||||||
|
|
||||||
Upper Board (label "1080-C")
|
Upper Board (label "1080-C")
|
||||||
1x flat cable connector to lower
|
1x flat cable connector to lower
|
||||||
1x 18x2 edge connector
|
1x 18x2 edge connector
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ROM_START( topracern )
|
ROM_START( topracern )
|
||||||
|
@ -2999,8 +2999,8 @@ static INPUT_PORTS_START( mjvegasa )
|
|||||||
PORT_DIPSETTING( 0x40, "500" )
|
PORT_DIPSETTING( 0x40, "500" )
|
||||||
PORT_DIPSETTING( 0x30, "700" )
|
PORT_DIPSETTING( 0x30, "700" )
|
||||||
PORT_DIPSETTING( 0x20, "1000" )
|
PORT_DIPSETTING( 0x20, "1000" )
|
||||||
// PORT_DIPSETTING( 0x10, "1000" )
|
// PORT_DIPSETTING( 0x10, "1000" )
|
||||||
// PORT_DIPSETTING( 0x00, "1000" )
|
// PORT_DIPSETTING( 0x00, "1000" )
|
||||||
PORT_DIPNAME( 0x80, 0x80, "Unknown 2-7" )
|
PORT_DIPNAME( 0x80, 0x80, "Unknown 2-7" )
|
||||||
PORT_DIPSETTING( 0x00, "1" )
|
PORT_DIPSETTING( 0x00, "1" )
|
||||||
PORT_DIPSETTING( 0x80, "2" )
|
PORT_DIPSETTING( 0x80, "2" )
|
||||||
|
@ -6,17 +6,17 @@
|
|||||||
|
|
||||||
Top Board:
|
Top Board:
|
||||||
|
|
||||||
68EC030-40
|
68EC030-40
|
||||||
(MSM6295 + Crystal) * 4
|
(MSM6295 + Crystal) * 4
|
||||||
|
|
||||||
Bottom Board:
|
Bottom Board:
|
||||||
|
|
||||||
68EC030-40
|
68EC030-40
|
||||||
TMS34010-50
|
TMS34010-50
|
||||||
|
|
||||||
Video hardware:
|
Video hardware:
|
||||||
|
|
||||||
- Blitter that supports rotation and zoom (background and sprites)
|
- Blitter that supports rotation and zoom (background and sprites)
|
||||||
- TMS34010 (text, score)
|
- TMS34010 (text, score)
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
@ -28,9 +28,9 @@
|
|||||||
chopped off. This is most noticeable for distant thin objects (falgs, poles of the start banner).
|
chopped off. This is most noticeable for distant thin objects (falgs, poles of the start banner).
|
||||||
See maincpu routine at 387B8, specifically the jump at 3880E throws 4 horizontal pixels away.
|
See maincpu routine at 387B8, specifically the jump at 3880E throws 4 horizontal pixels away.
|
||||||
|
|
||||||
- The player often disappears (when she's too slow?). Is this normal ?
|
- The player often disappears (when she's too slow?). Is this normal ?
|
||||||
|
|
||||||
- Are button 2 and analog input "Y" used ?
|
- Are button 2 and analog input "Y" used ?
|
||||||
|
|
||||||
*****************************************************************************************************/
|
*****************************************************************************************************/
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ static READ32_HANDLER( skimaxx_blitter_r )
|
|||||||
else
|
else
|
||||||
*dst = (*dst & 0xffff0000) | pen;
|
*dst = (*dst & 0xffff0000) | pen;
|
||||||
}
|
}
|
||||||
|
|
||||||
skimaxx_blitter_src_x = (skimaxx_blitter_src_x & 0x10000) | ((skimaxx_blitter_src_x + skimaxx_blitter_src_dx) & 0xffff);
|
skimaxx_blitter_src_x = (skimaxx_blitter_src_x & 0x10000) | ((skimaxx_blitter_src_x + skimaxx_blitter_src_dx) & 0xffff);
|
||||||
skimaxx_blitter_src_y = (skimaxx_blitter_src_y & 0xffff0000) | ((skimaxx_blitter_src_y + skimaxx_blitter_src_dy) & 0xffff);
|
skimaxx_blitter_src_y = (skimaxx_blitter_src_y & 0xffff0000) | ((skimaxx_blitter_src_y + skimaxx_blitter_src_dy) & 0xffff);
|
||||||
|
|
||||||
@ -136,7 +136,7 @@ static VIDEO_START( skimaxx )
|
|||||||
|
|
||||||
static VIDEO_UPDATE( skimaxx )
|
static VIDEO_UPDATE( skimaxx )
|
||||||
{
|
{
|
||||||
// popmessage("%02x %02x", input_port_read(screen->machine, "X"), input_port_read(screen->machine, "Y") );
|
// popmessage("%02x %02x", input_port_read(screen->machine, "X"), input_port_read(screen->machine, "Y") );
|
||||||
|
|
||||||
VIDEO_UPDATE_CALL(tms340x0);
|
VIDEO_UPDATE_CALL(tms340x0);
|
||||||
|
|
||||||
@ -282,13 +282,13 @@ static WRITE32_HANDLER( skimaxx_sub_ctrl_w )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
00 left max again
|
00 left max again
|
||||||
|
|
||||||
01 right max
|
01 right max
|
||||||
..
|
..
|
||||||
10 center
|
10 center
|
||||||
..
|
..
|
||||||
1f left max
|
1f left max
|
||||||
*/
|
*/
|
||||||
static READ32_HANDLER( skimaxx_analog_r )
|
static READ32_HANDLER( skimaxx_analog_r )
|
||||||
{
|
{
|
||||||
@ -305,7 +305,7 @@ static ADDRESS_MAP_START( 68030_1_map, ADDRESS_SPACE_PROGRAM, 32 )
|
|||||||
AM_RANGE(0x00000000, 0x001fffff) AM_ROM
|
AM_RANGE(0x00000000, 0x001fffff) AM_ROM
|
||||||
AM_RANGE(0x10000000, 0x10000003) AM_WRITE( skimaxx_sub_ctrl_w )
|
AM_RANGE(0x10000000, 0x10000003) AM_WRITE( skimaxx_sub_ctrl_w )
|
||||||
AM_RANGE(0x10100000, 0x1010000f) AM_READWRITE(m68k_tms_r, m68k_tms_w)//AM_NOP
|
AM_RANGE(0x10100000, 0x1010000f) AM_READWRITE(m68k_tms_r, m68k_tms_w)//AM_NOP
|
||||||
// AM_RANGE(0x10180000, 0x10187fff) AM_RAM AM_SHARE(1)
|
// AM_RANGE(0x10180000, 0x10187fff) AM_RAM AM_SHARE(1)
|
||||||
AM_RANGE(0x10180000, 0x1018ffff) AM_RAM AM_SHARE(1) // above 10188000 accessed at level end (game bug?)
|
AM_RANGE(0x10180000, 0x1018ffff) AM_RAM AM_SHARE(1) // above 10188000 accessed at level end (game bug?)
|
||||||
AM_RANGE(0x20000000, 0x20000003) AM_READNOP // watchdog_r?
|
AM_RANGE(0x20000000, 0x20000003) AM_READNOP // watchdog_r?
|
||||||
|
|
||||||
@ -343,9 +343,9 @@ static ADDRESS_MAP_START( 68030_2_map, ADDRESS_SPACE_PROGRAM, 32 )
|
|||||||
AM_RANGE(0x40000000, 0x40000003) AM_WRITE( skimaxx_fpga_ctrl_w ) AM_BASE( &skimaxx_fpga_ctrl )
|
AM_RANGE(0x40000000, 0x40000003) AM_WRITE( skimaxx_fpga_ctrl_w ) AM_BASE( &skimaxx_fpga_ctrl )
|
||||||
|
|
||||||
AM_RANGE(0x50000000, 0x5007ffff) AM_RAMBANK(1) // background ram allocated here at video_start (skimaxx_bg_buffer_back/front)
|
AM_RANGE(0x50000000, 0x5007ffff) AM_RAMBANK(1) // background ram allocated here at video_start (skimaxx_bg_buffer_back/front)
|
||||||
// AM_RANGE(0xfffc0000, 0xfffc7fff) AM_RAM AM_SHARE(1)
|
// AM_RANGE(0xfffc0000, 0xfffc7fff) AM_RAM AM_SHARE(1)
|
||||||
AM_RANGE(0xfffc0000, 0xfffcffff) AM_RAM AM_SHARE(1)
|
AM_RANGE(0xfffc0000, 0xfffcffff) AM_RAM AM_SHARE(1)
|
||||||
// AM_RANGE(0xfffe0000, 0xffffffff) AM_RAM // I think this is banked with the shared RAM? (see CPU sync routines)
|
// AM_RANGE(0xfffe0000, 0xffffffff) AM_RAM // I think this is banked with the shared RAM? (see CPU sync routines)
|
||||||
AM_RANGE(0xfffe0010, 0xfffeffff) AM_RAM // HACK
|
AM_RANGE(0xfffe0010, 0xfffeffff) AM_RAM // HACK
|
||||||
AM_RANGE(0xfffe0000, 0xfffeffff) AM_RAM AM_SHARE(1) // HACK
|
AM_RANGE(0xfffe0000, 0xfffeffff) AM_RAM AM_SHARE(1) // HACK
|
||||||
AM_RANGE(0xffff0000, 0xffffffff) AM_RAM
|
AM_RANGE(0xffff0000, 0xffffffff) AM_RAM
|
||||||
@ -457,7 +457,7 @@ static INPUT_PORTS_START( skimaxx )
|
|||||||
|
|
||||||
PORT_START("Y")
|
PORT_START("Y")
|
||||||
PORT_BIT( 0x1f, 0x10, IPT_AD_STICK_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(1) PORT_MINMAX(0x00,0x1e) PORT_INVERT
|
PORT_BIT( 0x1f, 0x10, IPT_AD_STICK_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(1) PORT_MINMAX(0x00,0x1e) PORT_INVERT
|
||||||
// PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(35) PORT_KEYDELTA(5)
|
// PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(35) PORT_KEYDELTA(5)
|
||||||
|
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
@ -520,17 +520,17 @@ static MACHINE_DRIVER_START( skimaxx )
|
|||||||
|
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||||
// MDRV_SCREEN_RAW_PARAMS(40000000/4, 156*4, 0, 100*4, 328, 0, 300) // TODO - Wrong but TMS overrides it anyway
|
// MDRV_SCREEN_RAW_PARAMS(40000000/4, 156*4, 0, 100*4, 328, 0, 300) // TODO - Wrong but TMS overrides it anyway
|
||||||
MDRV_SCREEN_REFRESH_RATE(60)
|
MDRV_SCREEN_REFRESH_RATE(60)
|
||||||
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
|
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
|
||||||
MDRV_SCREEN_SIZE(0x400, 0x100)
|
MDRV_SCREEN_SIZE(0x400, 0x100)
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x280-1, 0, 0xf0-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, 0x280-1, 0, 0xf0-1)
|
||||||
|
|
||||||
MDRV_VIDEO_START(skimaxx)
|
MDRV_VIDEO_START(skimaxx)
|
||||||
// MDRV_VIDEO_UPDATE(tms340x0)
|
// MDRV_VIDEO_UPDATE(tms340x0)
|
||||||
MDRV_VIDEO_UPDATE(skimaxx)
|
MDRV_VIDEO_UPDATE(skimaxx)
|
||||||
|
|
||||||
// MDRV_GFXDECODE( skimaxx )
|
// MDRV_GFXDECODE( skimaxx )
|
||||||
|
|
||||||
MDRV_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
|
MDRV_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
|
||||||
MDRV_PALETTE_LENGTH(32768)
|
MDRV_PALETTE_LENGTH(32768)
|
||||||
|
@ -952,7 +952,7 @@ static ADDRESS_MAP_START( madcrush_cpuA_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0xfe00, 0xfe00) AM_WRITE(snk_sprite_split_point_w)
|
AM_RANGE(0xfe00, 0xfe00) AM_WRITE(snk_sprite_split_point_w)
|
||||||
AM_RANGE(0xff00, 0xff00) AM_WRITE(marvins_scroll_msb_w)
|
AM_RANGE(0xff00, 0xff00) AM_WRITE(marvins_scroll_msb_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START( madcrush_cpuB_map, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( madcrush_cpuB_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
AM_RANGE(0x0000, 0x9fff) AM_ROM
|
AM_RANGE(0x0000, 0x9fff) AM_ROM
|
||||||
AM_RANGE(0xa000, 0xa000) AM_WRITE(snk_cpuB_nmi_ack_w)
|
AM_RANGE(0xa000, 0xa000) AM_WRITE(snk_cpuB_nmi_ack_w)
|
||||||
@ -3668,11 +3668,11 @@ static MACHINE_DRIVER_START( vangrd2 )
|
|||||||
|
|
||||||
MDRV_CPU_MODIFY("sub")
|
MDRV_CPU_MODIFY("sub")
|
||||||
MDRV_CPU_PROGRAM_MAP(madcrash_cpuB_map)
|
MDRV_CPU_PROGRAM_MAP(madcrash_cpuB_map)
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_DRIVER_START( madcrush )
|
static MACHINE_DRIVER_START( madcrush )
|
||||||
|
|
||||||
MDRV_IMPORT_FROM(marvins)
|
MDRV_IMPORT_FROM(marvins)
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
|
@ -223,7 +223,7 @@ static WRITE8_HANDLER( zvideoram_w )
|
|||||||
|
|
||||||
col = state->unkram[0x400];
|
col = state->unkram[0x400];
|
||||||
|
|
||||||
if (col > 0x0f)
|
if (col > 0x0f)
|
||||||
popmessage("color > 0x0f = %2d", col);
|
popmessage("color > 0x0f = %2d", col);
|
||||||
|
|
||||||
col &= 0x0f;
|
col &= 0x0f;
|
||||||
|
@ -265,8 +265,8 @@ To Do / Unknowns:
|
|||||||
|
|
||||||
|
|
||||||
/**************** Machine stuff ******************/
|
/**************** Machine stuff ******************/
|
||||||
//#define USE_HD64x180 /* Define if CPU support is available */
|
//#define USE_HD64x180 /* Define if CPU support is available */
|
||||||
//#define USE_ENCRYPTED_V25S /* Define to enable V25 even on games where it is encrypted */
|
//#define USE_ENCRYPTED_V25S /* Define to enable V25 even on games where it is encrypted */
|
||||||
|
|
||||||
#define CPU_2_NONE 0x00
|
#define CPU_2_NONE 0x00
|
||||||
#define CPU_2_Z80 0x5a
|
#define CPU_2_Z80 0x5a
|
||||||
@ -1962,7 +1962,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
/* this seems to be the map for the ROM based game, Knuckle Bash */
|
/* this seems to be the map for the ROM based game, Knuckle Bash */
|
||||||
static ADDRESS_MAP_START( V25_kbash_mem, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( V25_kbash_mem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
// AM_RANGE(0x00000, 0x03fff) AM_ROM
|
// AM_RANGE(0x00000, 0x03fff) AM_ROM
|
||||||
// AM_RANGE(0x00000, 0x007ff) AM_RAM /* External shared RAM (Banked) */
|
// AM_RANGE(0x00000, 0x007ff) AM_RAM /* External shared RAM (Banked) */
|
||||||
AM_RANGE(0x04000, 0x04001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
|
AM_RANGE(0x04000, 0x04001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
|
||||||
AM_RANGE(0x04002, 0x04002) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w)
|
AM_RANGE(0x04002, 0x04002) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w)
|
||||||
@ -1993,10 +1993,10 @@ ADDRESS_MAP_END
|
|||||||
*/
|
*/
|
||||||
#ifdef USE_ENCRYPTED_V25S
|
#ifdef USE_ENCRYPTED_V25S
|
||||||
/*
|
/*
|
||||||
AM_RANGE(0x21f000, 0x21f001) AM_READWRITE(toaplan2_snd_cpu_r, batsugun_snd_cpu_w) ;V25+ Command/Status port
|
AM_RANGE(0x21f000, 0x21f001) AM_READWRITE(toaplan2_snd_cpu_r, batsugun_snd_cpu_w) ;V25+ Command/Status port
|
||||||
AM_RANGE(0x21f004, 0x21f005) AM_READ_PORT("DSWA")
|
AM_RANGE(0x21f004, 0x21f005) AM_READ_PORT("DSWA")
|
||||||
AM_RANGE(0x21f006, 0x21f007) AM_READ_PORT("DSWB")
|
AM_RANGE(0x21f006, 0x21f007) AM_READ_PORT("DSWB")
|
||||||
AM_RANGE(0x21f008, 0x21f009) AM_READ_PORT("JMPR")
|
AM_RANGE(0x21f008, 0x21f009) AM_READ_PORT("JMPR")
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* FIXME: These should be moved into the CPU core files, putted here for simplicity. */
|
/* FIXME: These should be moved into the CPU core files, putted here for simplicity. */
|
||||||
@ -2006,7 +2006,7 @@ static READ8_HANDLER( v25s_internal_io_r )
|
|||||||
{
|
{
|
||||||
case 0xf00: return input_port_read(space->machine, "DSWB"); //port 0
|
case 0xf00: return input_port_read(space->machine, "DSWB"); //port 0
|
||||||
case 0xf08: return input_port_read(space->machine, "JMPR"); //port 1
|
case 0xf08: return input_port_read(space->machine, "JMPR"); //port 1
|
||||||
// case 0xf10: //port 2
|
// case 0xf10: //port 2
|
||||||
case 0xf38: return input_port_read(space->machine, "DSWA"); //port T
|
case 0xf38: return input_port_read(space->machine, "DSWA"); //port T
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2031,7 +2031,7 @@ static ADDRESS_MAP_START( V25_rambased_mem, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0x00000, 0x00001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
|
AM_RANGE(0x00000, 0x00001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
|
||||||
AM_RANGE(0x00000, 0x07fff) AM_RAM AM_SHARE(6) AM_BASE(&batsugun_share)
|
AM_RANGE(0x00000, 0x07fff) AM_RAM AM_SHARE(6) AM_BASE(&batsugun_share)
|
||||||
|
|
||||||
// AM_RANGE(0x40000, 0x477ff) AM_RAM AM_SHARE(7)
|
// AM_RANGE(0x40000, 0x477ff) AM_RAM AM_SHARE(7)
|
||||||
AM_RANGE(0x40e00, 0x40eff) AM_RAM //internal V25 RAM
|
AM_RANGE(0x40e00, 0x40eff) AM_RAM //internal V25 RAM
|
||||||
#ifdef USE_ENCRYPTED_V25S
|
#ifdef USE_ENCRYPTED_V25S
|
||||||
AM_RANGE(0x40f00, 0x40fff) AM_READWRITE(v25s_internal_io_r,v25s_internal_io_w)
|
AM_RANGE(0x40f00, 0x40fff) AM_READWRITE(v25s_internal_io_r,v25s_internal_io_w)
|
||||||
@ -3894,7 +3894,7 @@ static MACHINE_DRIVER_START( fixeight )
|
|||||||
//MDRV_CPU_IO_MAP(V25_port)
|
//MDRV_CPU_IO_MAP(V25_port)
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(batsugun)
|
MDRV_MACHINE_RESET(batsugun)
|
||||||
// MDRV_MACHINE_RESET(toaplan2)
|
// MDRV_MACHINE_RESET(toaplan2)
|
||||||
|
|
||||||
// MDRV_NVRAM_HANDLER(fixeight) /* See 37B6 code */
|
// MDRV_NVRAM_HANDLER(fixeight) /* See 37B6 code */
|
||||||
|
|
||||||
@ -3963,7 +3963,7 @@ MACHINE_DRIVER_END
|
|||||||
for Batsugun??
|
for Batsugun??
|
||||||
|
|
||||||
- note, the basic startup code remapping seems identical between all games, so they
|
- note, the basic startup code remapping seems identical between all games, so they
|
||||||
probably use a common remap with some per-game changes which supports the above theory
|
probably use a common remap with some per-game changes which supports the above theory
|
||||||
*/
|
*/
|
||||||
const UINT8 ts007spy_vfive_decryption_table[256] = {
|
const UINT8 ts007spy_vfive_decryption_table[256] = {
|
||||||
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, /* 00 */
|
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, /* 00 */
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
|
|
||||||
4enraya
|
4enraya
|
||||||
|
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
|
|
||||||
Ambush
|
Ambush
|
||||||
|
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
|
|
||||||
Angel Kids
|
Angel Kids
|
||||||
|
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ struct _bionicc_state
|
|||||||
UINT16 * fgvideoram;
|
UINT16 * fgvideoram;
|
||||||
UINT16 * txvideoram;
|
UINT16 * txvideoram;
|
||||||
UINT16 * paletteram16;
|
UINT16 * paletteram16;
|
||||||
// UINT16 * spriteram16; // needed for EOF, but currently handled through buffer_spriteram16
|
// UINT16 * spriteram16; // needed for EOF, but currently handled through buffer_spriteram16
|
||||||
|
|
||||||
/* video-related */
|
/* video-related */
|
||||||
tilemap *tx_tilemap, *bg_tilemap, *fg_tilemap;
|
tilemap *tx_tilemap, *bg_tilemap, *fg_tilemap;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
|
|
||||||
Pandora's Palace
|
Pandora's Palace
|
||||||
|
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
|
@ -13,10 +13,10 @@ struct _popper_state
|
|||||||
UINT8 * attribram;
|
UINT8 * attribram;
|
||||||
UINT8 * ol_attribram;
|
UINT8 * ol_attribram;
|
||||||
UINT8 * spriteram;
|
UINT8 * spriteram;
|
||||||
// size_t spriteram_size;
|
// size_t spriteram_size;
|
||||||
|
|
||||||
/* video-related */
|
/* video-related */
|
||||||
tilemap *p123_tilemap, *p0_tilemap;
|
tilemap *p123_tilemap, *p0_tilemap;
|
||||||
tilemap *ol_p123_tilemap, *ol_p0_tilemap;
|
tilemap *ol_p123_tilemap, *ol_p0_tilemap;
|
||||||
INT32 flipscreen, e002, gfx_bank;
|
INT32 flipscreen, e002, gfx_bank;
|
||||||
rectangle tilemap_clip;
|
rectangle tilemap_clip;
|
||||||
|
@ -67,11 +67,11 @@ READ8_HANDLER( arkanoid_68705_port_c_r )
|
|||||||
int res = 0;
|
int res = 0;
|
||||||
|
|
||||||
/* bit 0 is high on a write strobe; clear it once we've detected it */
|
/* bit 0 is high on a write strobe; clear it once we've detected it */
|
||||||
if (state->z80write)
|
if (state->z80write)
|
||||||
res |= 0x01;
|
res |= 0x01;
|
||||||
|
|
||||||
/* bit 1 is high if the previous write has been read */
|
/* bit 1 is high if the previous write has been read */
|
||||||
if (!state->m68705write)
|
if (!state->m68705write)
|
||||||
res |= 0x02;
|
res |= 0x02;
|
||||||
|
|
||||||
return (state->port_c_out & state->ddr_c) | (res & ~state->ddr_c);
|
return (state->port_c_out & state->ddr_c) | (res & ~state->ddr_c);
|
||||||
@ -110,11 +110,11 @@ CUSTOM_INPUT( arkanoid_68705_input_r )
|
|||||||
int res = 0;
|
int res = 0;
|
||||||
|
|
||||||
/* bit 0x40 of comes from the sticky bit */
|
/* bit 0x40 of comes from the sticky bit */
|
||||||
if (!state->z80write)
|
if (!state->z80write)
|
||||||
res |= 0x01;
|
res |= 0x01;
|
||||||
|
|
||||||
/* bit 0x80 comes from a write latch */
|
/* bit 0x80 comes from a write latch */
|
||||||
if (!state->m68705write)
|
if (!state->m68705write)
|
||||||
res |= 0x02;
|
res |= 0x02;
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#include "bsktball.h"
|
#include "bsktball.h"
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
bsktball_nmion_w
|
bsktball_nmion_w
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
WRITE8_HANDLER( bsktball_nmion_w )
|
WRITE8_HANDLER( bsktball_nmion_w )
|
||||||
{
|
{
|
||||||
@ -17,7 +17,7 @@ WRITE8_HANDLER( bsktball_nmion_w )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
bsktball_interrupt
|
bsktball_interrupt
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
/* NMI every 32V, IRQ every VBLANK */
|
/* NMI every 32V, IRQ every VBLANK */
|
||||||
INTERRUPT_GEN( bsktball_interrupt )
|
INTERRUPT_GEN( bsktball_interrupt )
|
||||||
@ -34,7 +34,7 @@ INTERRUPT_GEN( bsktball_interrupt )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
bsktball_ld_w
|
bsktball_ld_w
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
WRITE8_HANDLER( bsktball_ld1_w )
|
WRITE8_HANDLER( bsktball_ld1_w )
|
||||||
@ -51,7 +51,7 @@ WRITE8_HANDLER( bsktball_ld2_w )
|
|||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
bsktball_in0_r
|
bsktball_in0_r
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
READ8_HANDLER( bsktball_in0_r )
|
READ8_HANDLER( bsktball_in0_r )
|
||||||
@ -73,64 +73,64 @@ READ8_HANDLER( bsktball_in0_r )
|
|||||||
/* P1 H DIR */
|
/* P1 H DIR */
|
||||||
if (p1_horiz > state->last_p1_horiz)
|
if (p1_horiz > state->last_p1_horiz)
|
||||||
{
|
{
|
||||||
if ((p1_horiz - state->last_p1_horiz) > 128)
|
if ((p1_horiz - state->last_p1_horiz) > 128)
|
||||||
state->dir2 = 0x40;
|
state->dir2 = 0x40;
|
||||||
else
|
else
|
||||||
state->dir2 = 0;
|
state->dir2 = 0;
|
||||||
}
|
}
|
||||||
else if (p1_horiz < state->last_p1_horiz)
|
else if (p1_horiz < state->last_p1_horiz)
|
||||||
{
|
{
|
||||||
if ((state->last_p1_horiz - p1_horiz) > 128)
|
if ((state->last_p1_horiz - p1_horiz) > 128)
|
||||||
state->dir2 = 0;
|
state->dir2 = 0;
|
||||||
else
|
else
|
||||||
state->dir2 = 0x40;
|
state->dir2 = 0x40;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* P1 V DIR */
|
/* P1 V DIR */
|
||||||
if (p1_vert > state->last_p1_vert)
|
if (p1_vert > state->last_p1_vert)
|
||||||
{
|
{
|
||||||
if ((p1_vert - state->last_p1_vert) > 128)
|
if ((p1_vert - state->last_p1_vert) > 128)
|
||||||
state->dir3 = 0;
|
state->dir3 = 0;
|
||||||
else
|
else
|
||||||
state->dir3 = 0x80;
|
state->dir3 = 0x80;
|
||||||
}
|
}
|
||||||
else if (p1_vert < state->last_p1_vert)
|
else if (p1_vert < state->last_p1_vert)
|
||||||
{
|
{
|
||||||
if ((state->last_p1_vert - p1_vert) > 128)
|
if ((state->last_p1_vert - p1_vert) > 128)
|
||||||
state->dir3 = 0x80;
|
state->dir3 = 0x80;
|
||||||
else
|
else
|
||||||
state->dir3 = 0;
|
state->dir3 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* P2 H DIR */
|
/* P2 H DIR */
|
||||||
if (p2_horiz > state->last_p2_horiz)
|
if (p2_horiz > state->last_p2_horiz)
|
||||||
{
|
{
|
||||||
if ((p2_horiz - state->last_p2_horiz) > 128)
|
if ((p2_horiz - state->last_p2_horiz) > 128)
|
||||||
state->dir0 = 0x10;
|
state->dir0 = 0x10;
|
||||||
else
|
else
|
||||||
state->dir0 = 0;
|
state->dir0 = 0;
|
||||||
}
|
}
|
||||||
else if (p2_horiz < state->last_p2_horiz)
|
else if (p2_horiz < state->last_p2_horiz)
|
||||||
{
|
{
|
||||||
if ((state->last_p2_horiz - p2_horiz) > 128)
|
if ((state->last_p2_horiz - p2_horiz) > 128)
|
||||||
state->dir0 = 0;
|
state->dir0 = 0;
|
||||||
else
|
else
|
||||||
state->dir0 = 0x10;
|
state->dir0 = 0x10;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* P2 V DIR */
|
/* P2 V DIR */
|
||||||
if (p2_vert > state->last_p2_vert)
|
if (p2_vert > state->last_p2_vert)
|
||||||
{
|
{
|
||||||
if ((p2_vert - state->last_p2_vert) > 128)
|
if ((p2_vert - state->last_p2_vert) > 128)
|
||||||
state->dir1 = 0;
|
state->dir1 = 0;
|
||||||
else
|
else
|
||||||
state->dir1 = 0x20;
|
state->dir1 = 0x20;
|
||||||
}
|
}
|
||||||
else if (p2_vert < state->last_p2_vert)
|
else if (p2_vert < state->last_p2_vert)
|
||||||
{
|
{
|
||||||
if ((state->last_p2_vert - p2_vert) > 128)
|
if ((state->last_p2_vert - p2_vert) > 128)
|
||||||
state->dir1 = 0x20;
|
state->dir1 = 0x20;
|
||||||
else
|
else
|
||||||
state->dir1 = 0;
|
state->dir1 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ READ8_HANDLER( bsktball_in0_r )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
bsktball_led_w
|
bsktball_led_w
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
WRITE8_HANDLER( bsktball_led1_w )
|
WRITE8_HANDLER( bsktball_led1_w )
|
||||||
{
|
{
|
||||||
|
@ -8650,7 +8650,7 @@ Other Sun games
|
|||||||
DRIVER( sextriv2 ) /* (c) 1985 Kinky Kit and Game Co. */
|
DRIVER( sextriv2 ) /* (c) 1985 Kinky Kit and Game Co. */
|
||||||
DRIVER( geimulti ) /* (c) 1992 Grayhound Electronics */
|
DRIVER( geimulti ) /* (c) 1992 Grayhound Electronics */
|
||||||
DRIVER( sprtauth ) /* (c) 1982 Classic Games */
|
DRIVER( sprtauth ) /* (c) 1982 Classic Games */
|
||||||
DRIVER( suprpokr )
|
DRIVER( suprpokr )
|
||||||
DRIVER( dribling ) /* (c) 1983 Model Racing */
|
DRIVER( dribling ) /* (c) 1983 Model Racing */
|
||||||
DRIVER( driblingo ) /* (c) 1983 Olympia */
|
DRIVER( driblingo ) /* (c) 1983 Olympia */
|
||||||
DRIVER( ace ) /* [1976 Allied Leisure] */
|
DRIVER( ace ) /* [1976 Allied Leisure] */
|
||||||
|
@ -225,7 +225,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
|
|
||||||
/* handle double / quadruple height */
|
/* handle double / quadruple height */
|
||||||
i = (state->spriteram[offs + 1] & 0xc0) >> 6;
|
i = (state->spriteram[offs + 1] & 0xc0) >> 6;
|
||||||
if (i == 2)
|
if (i == 2)
|
||||||
i = 3;
|
i = 3;
|
||||||
|
|
||||||
do
|
do
|
||||||
|
@ -269,16 +269,16 @@ VIDEO_UPDATE( 1943 )
|
|||||||
else
|
else
|
||||||
bitmap_fill(bitmap, cliprect, get_black_pen(screen->machine));
|
bitmap_fill(bitmap, cliprect, get_black_pen(screen->machine));
|
||||||
|
|
||||||
if (state->obj_on)
|
if (state->obj_on)
|
||||||
draw_sprites(screen->machine, bitmap, cliprect, 0);
|
draw_sprites(screen->machine, bitmap, cliprect, 0);
|
||||||
|
|
||||||
if (state->bg1_on)
|
if (state->bg1_on)
|
||||||
tilemap_draw(bitmap, cliprect, state->bg_tilemap, 0, 0);
|
tilemap_draw(bitmap, cliprect, state->bg_tilemap, 0, 0);
|
||||||
|
|
||||||
if (state->obj_on)
|
if (state->obj_on)
|
||||||
draw_sprites(screen->machine, bitmap, cliprect, 1);
|
draw_sprites(screen->machine, bitmap, cliprect, 1);
|
||||||
|
|
||||||
if (state->char_on)
|
if (state->char_on)
|
||||||
tilemap_draw(bitmap, cliprect, state->fg_tilemap, 0, 0);
|
tilemap_draw(bitmap, cliprect, state->fg_tilemap, 0, 0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -63,7 +63,7 @@ VIDEO_START( aeroboto )
|
|||||||
temp = alloc_array_or_die(UINT8, state->stars_length);
|
temp = alloc_array_or_die(UINT8, state->stars_length);
|
||||||
memcpy(temp, state->stars_rom, state->stars_length);
|
memcpy(temp, state->stars_rom, state->stars_length);
|
||||||
|
|
||||||
for (i = 0; i < state->stars_length; i++)
|
for (i = 0; i < state->stars_length; i++)
|
||||||
state->stars_rom[(i & ~0xff) + (i << 5 & 0xe0) + (i >> 3 & 0x1f)] = temp[i];
|
state->stars_rom[(i & ~0xff) + (i << 5 & 0xe0) + (i >> 3 & 0x1f)] = temp[i];
|
||||||
|
|
||||||
free(temp);
|
free(temp);
|
||||||
@ -168,10 +168,10 @@ VIDEO_UPDATE( aeroboto )
|
|||||||
// the star field is supposed to be seen through tile pen 0 when active
|
// the star field is supposed to be seen through tile pen 0 when active
|
||||||
if (!state->starsoff)
|
if (!state->starsoff)
|
||||||
{
|
{
|
||||||
if (star_color < 0xd0)
|
if (star_color < 0xd0)
|
||||||
{
|
{
|
||||||
star_color = 0xd0;
|
star_color = 0xd0;
|
||||||
sky_color = 0;
|
sky_color = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
star_color += 2;
|
star_color += 2;
|
||||||
@ -183,7 +183,7 @@ VIDEO_UPDATE( aeroboto )
|
|||||||
state->ox = *state->starx;
|
state->ox = *state->starx;
|
||||||
x = state->sx / SCROLL_SPEED;
|
x = state->sx / SCROLL_SPEED;
|
||||||
|
|
||||||
if (*state->vscroll != 0xff)
|
if (*state->vscroll != 0xff)
|
||||||
state->sy += (char)(*state->stary - state->oy);
|
state->sy += (char)(*state->stary - state->oy);
|
||||||
state->oy = *state->stary;
|
state->oy = *state->stary;
|
||||||
y = state->sy / SCROLL_SPEED;
|
y = state->sy / SCROLL_SPEED;
|
||||||
@ -201,7 +201,7 @@ VIDEO_UPDATE( aeroboto )
|
|||||||
for (j = 0; j < 256; j++)
|
for (j = 0; j < 256; j++)
|
||||||
{
|
{
|
||||||
src_rowptr = src_colptr + (((y + j) & 0xff) << 5 );
|
src_rowptr = src_colptr + (((y + j) & 0xff) << 5 );
|
||||||
if (!((unsigned)*src_rowptr & src_colmask))
|
if (!((unsigned)*src_rowptr & src_colmask))
|
||||||
*BITMAP_ADDR16(bitmap, j, i) = pen;
|
*BITMAP_ADDR16(bitmap, j, i) = pen;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ static void draw_chars( running_machine *machine, bitmap_t *bitmap, const rectan
|
|||||||
|
|
||||||
col = state->colorram[((sy & 0x1c) << 3) + sx];
|
col = state->colorram[((sy & 0x1c) << 3) + sx];
|
||||||
|
|
||||||
if ((col & 0x10) != priority)
|
if ((col & 0x10) != priority)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
scroll = ~state->scrollram[sx];
|
scroll = ~state->scrollram[sx];
|
||||||
@ -109,7 +109,7 @@ VIDEO_UPDATE( ambush )
|
|||||||
if ( (sy == 0) ||
|
if ( (sy == 0) ||
|
||||||
(sy == 0xff) ||
|
(sy == 0xff) ||
|
||||||
((sx < 0x40) && ( state->spriteram[offs + 2] & 0x10)) ||
|
((sx < 0x40) && ( state->spriteram[offs + 2] & 0x10)) ||
|
||||||
((sx >= 0xc0) && (!(state->spriteram[offs + 2] & 0x10))))
|
((sx >= 0xc0) && (!(state->spriteram[offs + 2] & 0x10))))
|
||||||
continue; /* prevent wraparound */
|
continue; /* prevent wraparound */
|
||||||
|
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta
|
|||||||
UINT8 bank = attr & 0x08;
|
UINT8 bank = attr & 0x08;
|
||||||
UINT8 color = attr & 0x03;
|
UINT8 color = attr & 0x03;
|
||||||
|
|
||||||
if (bank)
|
if (bank)
|
||||||
tile_no += 0x100;
|
tile_no += 0x100;
|
||||||
|
|
||||||
ypos = 0xff - ypos;
|
ypos = 0xff - ypos;
|
||||||
@ -286,12 +286,12 @@ VIDEO_UPDATE( angelkds )
|
|||||||
clip.min_y = visarea->min_y;
|
clip.min_y = visarea->min_y;
|
||||||
clip.max_y = visarea->max_y;
|
clip.max_y = visarea->max_y;
|
||||||
|
|
||||||
if ((state->layer_ctrl & 0x80) == 0x00)
|
if ((state->layer_ctrl & 0x80) == 0x00)
|
||||||
tilemap_draw(bitmap, &clip, state->bgtop_tilemap, 0, 0);
|
tilemap_draw(bitmap, &clip, state->bgtop_tilemap, 0, 0);
|
||||||
|
|
||||||
draw_sprites(screen->machine, bitmap, &clip, 0x80);
|
draw_sprites(screen->machine, bitmap, &clip, 0x80);
|
||||||
|
|
||||||
if ((state->layer_ctrl & 0x20) == 0x00)
|
if ((state->layer_ctrl & 0x20) == 0x00)
|
||||||
tilemap_draw(bitmap, &clip, state->tx_tilemap, 0, 0);
|
tilemap_draw(bitmap, &clip, state->tx_tilemap, 0, 0);
|
||||||
|
|
||||||
/* draw bottom of screen */
|
/* draw bottom of screen */
|
||||||
@ -300,12 +300,12 @@ VIDEO_UPDATE( angelkds )
|
|||||||
clip.min_y = visarea->min_y;
|
clip.min_y = visarea->min_y;
|
||||||
clip.max_y = visarea->max_y;
|
clip.max_y = visarea->max_y;
|
||||||
|
|
||||||
if ((state->layer_ctrl & 0x40) == 0x00)
|
if ((state->layer_ctrl & 0x40) == 0x00)
|
||||||
tilemap_draw(bitmap, &clip, state->bgbot_tilemap, 0, 0);
|
tilemap_draw(bitmap, &clip, state->bgbot_tilemap, 0, 0);
|
||||||
|
|
||||||
draw_sprites(screen->machine, bitmap, &clip, 0x40);
|
draw_sprites(screen->machine, bitmap, &clip, 0x40);
|
||||||
|
|
||||||
if ((state->layer_ctrl & 0x20) == 0x00)
|
if ((state->layer_ctrl & 0x20) == 0x00)
|
||||||
tilemap_draw(bitmap, &clip, state->tx_tilemap, 0, 0);
|
tilemap_draw(bitmap, &clip, state->tx_tilemap, 0, 0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -251,7 +251,7 @@ static void robowres_draw_sprites( bitmap_t *dest_bmp, const rectangle *cliprect
|
|||||||
int sx = sprite[offs + 3];
|
int sx = sprite[offs + 3];
|
||||||
int flipx = sprite[offs + 1] & 0x01;
|
int flipx = sprite[offs + 1] & 0x01;
|
||||||
|
|
||||||
if(sx >= 248)
|
if(sx >= 248)
|
||||||
sx -= 256;
|
sx -= 256;
|
||||||
|
|
||||||
if (flipy)
|
if (flipy)
|
||||||
|
@ -148,9 +148,9 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
|
|
||||||
sx = state->spriteram[offs];
|
sx = state->spriteram[offs];
|
||||||
sy = 248 - state->spriteram[offs + 1];
|
sy = 248 - state->spriteram[offs + 1];
|
||||||
if (flip_screen_x_get(machine))
|
if (flip_screen_x_get(machine))
|
||||||
sx = 248 - sx;
|
sx = 248 - sx;
|
||||||
if (flip_screen_y_get(machine))
|
if (flip_screen_y_get(machine))
|
||||||
sy = 248 - sy;
|
sy = 248 - sy;
|
||||||
|
|
||||||
code = state->spriteram[offs + 3] + ((state->spriteram[offs + 2] & 0x03) << 8) + 1024 * state->gfxbank;
|
code = state->spriteram[offs + 3] + ((state->spriteram[offs + 2] & 0x03) << 8) + 1024 * state->gfxbank;
|
||||||
|
@ -136,7 +136,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
int shade = 0;
|
int shade = 0;
|
||||||
|
|
||||||
sy = 255 - state->spriteram[obj * 2 + 1];
|
sy = 255 - state->spriteram[obj * 2 + 1];
|
||||||
if (sy == 255)
|
if (sy == 255)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
charcode = state->spriteram[obj * 2] & 0x3f;
|
charcode = state->spriteram[obj * 2] & 0x3f;
|
||||||
|
@ -209,7 +209,7 @@ WRITE16_HANDLER( bionicc_gfxctrl_w )
|
|||||||
|
|
||||||
static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect )
|
static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect )
|
||||||
{
|
{
|
||||||
// bionicc_state *state = (bionicc_state *)machine->driver_data;
|
// bionicc_state *state = (bionicc_state *)machine->driver_data;
|
||||||
int offs;
|
int offs;
|
||||||
const gfx_element *gfx = machine->gfx[3];
|
const gfx_element *gfx = machine->gfx[3];
|
||||||
|
|
||||||
@ -225,7 +225,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
int sx = (INT16)buffered_spriteram16[offs + 3]; /* signed */
|
int sx = (INT16)buffered_spriteram16[offs + 3]; /* signed */
|
||||||
int sy = (INT16)buffered_spriteram16[offs + 2]; /* signed */
|
int sy = (INT16)buffered_spriteram16[offs + 2]; /* signed */
|
||||||
|
|
||||||
if (sy > 512 - 16)
|
if (sy > 512 - 16)
|
||||||
sy -= 512;
|
sy -= 512;
|
||||||
|
|
||||||
if (flip_screen_get(machine))
|
if (flip_screen_get(machine))
|
||||||
|
@ -196,7 +196,7 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
int sx, sy, code, color;
|
int sx, sy, code, color;
|
||||||
|
|
||||||
sx = 240 - state->spriteram[offs + 3];
|
sx = 240 - state->spriteram[offs + 3];
|
||||||
if (sx < -7)
|
if (sx < -7)
|
||||||
sx += 256;
|
sx += 256;
|
||||||
|
|
||||||
sy = 240 - state->spriteram[offs + 2];
|
sy = 240 - state->spriteram[offs + 2];
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* video/konamigx.c - Konami GX video hardware (here there be dragons, and achocode)
|
* video/konamigx.c - Konami GX video hardware (here there be dragons, and achocode)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "driver.h"
|
#include "driver.h"
|
||||||
@ -245,7 +245,7 @@ INLINE void K053936GP_copyroz32clip( running_machine *machine,
|
|||||||
|
|
||||||
if (srcx < src_minx || srcx > src_maxx || srcy < src_miny || srcy > src_maxy)
|
if (srcx < src_minx || srcx > src_maxx || srcy < src_miny || srcy > src_maxy)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
pixel = src_base[offs];
|
pixel = src_base[offs];
|
||||||
if (!(pixel & cmask))
|
if (!(pixel & cmask))
|
||||||
continue;
|
continue;
|
||||||
@ -650,8 +650,8 @@ INLINE void zdrawgfxzoom32GP(
|
|||||||
eax = dst_ptr[ecx];
|
eax = dst_ptr[ecx];
|
||||||
szbuf_ptr[ecx*2] = z8;
|
szbuf_ptr[ecx*2] = z8;
|
||||||
szbuf_ptr[ecx*2+1] = p8;
|
szbuf_ptr[ecx*2+1] = p8;
|
||||||
|
|
||||||
// the shadow tables are 15-bit lookup tables which accept RGB15... lossy, nasty, yuck!
|
// the shadow tables are 15-bit lookup tables which accept RGB15... lossy, nasty, yuck!
|
||||||
dst_ptr[ecx] = shd_base[rgb_to_rgb15(eax)];
|
dst_ptr[ecx] = shd_base[rgb_to_rgb15(eax)];
|
||||||
//dst_ptr[ecx] =(eax>>3&0x001f);lend_r32( eax, 0x00000000, 128);
|
//dst_ptr[ecx] =(eax>>3&0x001f);lend_r32( eax, 0x00000000, 128);
|
||||||
}
|
}
|
||||||
@ -787,8 +787,8 @@ INLINE void zdrawgfxzoom32GP(
|
|||||||
eax = dst_ptr[ecx];
|
eax = dst_ptr[ecx];
|
||||||
szbuf_ptr[ecx*2] = z8;
|
szbuf_ptr[ecx*2] = z8;
|
||||||
szbuf_ptr[ecx*2+1] = p8;
|
szbuf_ptr[ecx*2+1] = p8;
|
||||||
|
|
||||||
// the shadow tables are 15-bit lookup tables which accept RGB15... lossy, nasty, yuck!
|
// the shadow tables are 15-bit lookup tables which accept RGB15... lossy, nasty, yuck!
|
||||||
dst_ptr[ecx] = shd_base[rgb_to_rgb15(eax)];
|
dst_ptr[ecx] = shd_base[rgb_to_rgb15(eax)];
|
||||||
}
|
}
|
||||||
while (++ecx);
|
while (++ecx);
|
||||||
@ -1171,7 +1171,7 @@ void konamigx_mixer(running_machine *machine, bitmap_t *bitmap, const rectangle
|
|||||||
disp = K055555_read_register(K55_INPUT_ENABLES);
|
disp = K055555_read_register(K55_INPUT_ENABLES);
|
||||||
if (!disp) return;
|
if (!disp) return;
|
||||||
cltc_shdpri = K054338_read_register(K338_REG_CONTROL);
|
cltc_shdpri = K054338_read_register(K338_REG_CONTROL);
|
||||||
|
|
||||||
if (!rushingheroes_hack) // Slam Dunk 2 never sets this. It's either part of the protection, or type4 doesn't use it
|
if (!rushingheroes_hack) // Slam Dunk 2 never sets this. It's either part of the protection, or type4 doesn't use it
|
||||||
{
|
{
|
||||||
if (!(cltc_shdpri & K338_CTL_KILL)) return;
|
if (!(cltc_shdpri & K338_CTL_KILL)) return;
|
||||||
@ -1549,7 +1549,7 @@ void konamigx_mixer(running_machine *machine, bitmap_t *bitmap, const rectangle
|
|||||||
}
|
}
|
||||||
|
|
||||||
l = sub1flags & 0xf;
|
l = sub1flags & 0xf;
|
||||||
|
|
||||||
if (offs == -2)
|
if (offs == -2)
|
||||||
{
|
{
|
||||||
K053936GP_0_zoom_draw(machine, bitmap, cliprect, sub1, l, k, alpha);
|
K053936GP_0_zoom_draw(machine, bitmap, cliprect, sub1, l, k, alpha);
|
||||||
@ -1818,12 +1818,12 @@ WRITE32_HANDLER( konamigx_type3_psac2_bank_w )
|
|||||||
konamigx_type3_psac2_actual_bank = (konamigx_type3_psac2_bank[0] & 0x10000000) >> 28;
|
konamigx_type3_psac2_actual_bank = (konamigx_type3_psac2_bank[0] & 0x10000000) >> 28;
|
||||||
|
|
||||||
/* handle this by creating 2 roz tilemaps instead, otherwise performance dies completely on dual screen mode
|
/* handle this by creating 2 roz tilemaps instead, otherwise performance dies completely on dual screen mode
|
||||||
if (konamigx_type3_psac2_actual_bank!=konamigx_type3_psac2_actual_last_bank)
|
if (konamigx_type3_psac2_actual_bank!=konamigx_type3_psac2_actual_last_bank)
|
||||||
{
|
{
|
||||||
tilemap_mark_all_tiles_dirty (gx_psac_tilemap);
|
tilemap_mark_all_tiles_dirty (gx_psac_tilemap);
|
||||||
konamigx_type3_psac2_actual_last_bank = konamigx_type3_psac2_actual_bank;
|
konamigx_type3_psac2_actual_last_bank = konamigx_type3_psac2_actual_bank;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1836,8 +1836,8 @@ WRITE32_HANDLER( konamigx_type3_psac2_bank_w )
|
|||||||
|
|
||||||
int base_index = tile_index;
|
int base_index = tile_index;
|
||||||
|
|
||||||
// if (konamigx_type3_psac2_actual_bank)
|
// if (konamigx_type3_psac2_actual_bank)
|
||||||
// base_index+=0x20000/2;
|
// base_index+=0x20000/2;
|
||||||
|
|
||||||
|
|
||||||
tileno = tmap[base_index*2] | ((tmap[(base_index*2)+1] & 0x0f)<<8);
|
tileno = tmap[base_index*2] | ((tmap[(base_index*2)+1] & 0x0f)<<8);
|
||||||
@ -1857,8 +1857,8 @@ WRITE32_HANDLER( konamigx_type3_psac2_bank_w )
|
|||||||
|
|
||||||
int base_index = tile_index;
|
int base_index = tile_index;
|
||||||
|
|
||||||
// if (konamigx_type3_psac2_actual_bank)
|
// if (konamigx_type3_psac2_actual_bank)
|
||||||
// base_index+=0x20000/2;
|
// base_index+=0x20000/2;
|
||||||
|
|
||||||
|
|
||||||
tileno = tmap[base_index*2] | ((tmap[(base_index*2)+1] & 0x0f)<<8);
|
tileno = tmap[base_index*2] | ((tmap[(base_index*2)+1] & 0x0f)<<8);
|
||||||
@ -2134,7 +2134,7 @@ VIDEO_START(konamigx_type3)
|
|||||||
//tilemap_set_flip(gx_psac_tilemap, TILEMAP_FLIPX| TILEMAP_FLIPY);
|
//tilemap_set_flip(gx_psac_tilemap, TILEMAP_FLIPX| TILEMAP_FLIPY);
|
||||||
|
|
||||||
K053936_wraparound_enable(0, 1);
|
K053936_wraparound_enable(0, 1);
|
||||||
// K053936GP_set_offset(0, -30, -1);
|
// K053936GP_set_offset(0, -30, -1);
|
||||||
K053936_set_offset(0, -30, +1);
|
K053936_set_offset(0, -30, +1);
|
||||||
|
|
||||||
K056832_set_LayerOffset(0, -52, 0);
|
K056832_set_LayerOffset(0, -52, 0);
|
||||||
@ -2164,7 +2164,7 @@ VIDEO_START(konamigx_type4)
|
|||||||
gx_specialrozenable = 3;
|
gx_specialrozenable = 3;
|
||||||
|
|
||||||
K056832_set_LayerOffset(0, -27, 0);
|
K056832_set_LayerOffset(0, -27, 0);
|
||||||
K056832_set_LayerOffset(1, -25, 0);
|
K056832_set_LayerOffset(1, -25, 0);
|
||||||
K056832_set_LayerOffset(2, -24, 0);
|
K056832_set_LayerOffset(2, -24, 0);
|
||||||
K056832_set_LayerOffset(3, -22, 0);
|
K056832_set_LayerOffset(3, -22, 0);
|
||||||
|
|
||||||
@ -2196,7 +2196,7 @@ VIDEO_START(konamigx_type4_sd2)
|
|||||||
|
|
||||||
|
|
||||||
K056832_set_LayerOffset(0, -29, -1);
|
K056832_set_LayerOffset(0, -29, -1);
|
||||||
K056832_set_LayerOffset(1, -27, -1);
|
K056832_set_LayerOffset(1, -27, -1);
|
||||||
K056832_set_LayerOffset(2, -26, -1);
|
K056832_set_LayerOffset(2, -26, -1);
|
||||||
K056832_set_LayerOffset(3, -24, -1);
|
K056832_set_LayerOffset(3, -24, -1);
|
||||||
|
|
||||||
@ -2328,7 +2328,7 @@ VIDEO_UPDATE(konamigx)
|
|||||||
if (konamigx_current_frame==1)
|
if (konamigx_current_frame==1)
|
||||||
{
|
{
|
||||||
int offset=0;
|
int offset=0;
|
||||||
|
|
||||||
if (konamigx_palformat==1)
|
if (konamigx_palformat==1)
|
||||||
{
|
{
|
||||||
for (offset=0;offset<0x4000/4;offset++)
|
for (offset=0;offset<0x4000/4;offset++)
|
||||||
@ -2373,7 +2373,7 @@ VIDEO_UPDATE(konamigx)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
int offset=0;
|
int offset=0;
|
||||||
|
|
||||||
if (konamigx_palformat==1)
|
if (konamigx_palformat==1)
|
||||||
@ -2480,8 +2480,8 @@ VIDEO_UPDATE(konamigx)
|
|||||||
|
|
||||||
if (konamigx_type3_psac2_actual_bank == 1) K053936_0_zoom_draw(type3_roz_temp_bitmap, &temprect,gx_psac_tilemap_alt, 0,0,0); // soccerss playfield
|
if (konamigx_type3_psac2_actual_bank == 1) K053936_0_zoom_draw(type3_roz_temp_bitmap, &temprect,gx_psac_tilemap_alt, 0,0,0); // soccerss playfield
|
||||||
else K053936_0_zoom_draw(type3_roz_temp_bitmap, &temprect,gx_psac_tilemap, 0,0,0); // soccerss playfield
|
else K053936_0_zoom_draw(type3_roz_temp_bitmap, &temprect,gx_psac_tilemap, 0,0,0); // soccerss playfield
|
||||||
|
|
||||||
|
|
||||||
konamigx_mixer(screen->machine, bitmap, cliprect, 0, 0, 0, 0, 0, type3_roz_temp_bitmap, gx_rushingheroes_hack);
|
konamigx_mixer(screen->machine, bitmap, cliprect, 0, 0, 0, 0, 0, type3_roz_temp_bitmap, gx_rushingheroes_hack);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -6821,7 +6821,7 @@ void K056832_tilemap_draw(running_machine *machine, bitmap_t *bitmap, const rect
|
|||||||
|
|
||||||
drawrect.min_x = (dminx < cminx ) ? cminx : dminx;
|
drawrect.min_x = (dminx < cminx ) ? cminx : dminx;
|
||||||
drawrect.max_x = (dmaxx > cmaxx ) ? cmaxx : dmaxx;
|
drawrect.max_x = (dmaxx > cmaxx ) ? cmaxx : dmaxx;
|
||||||
|
|
||||||
// soccer superstars visible area is >512 pixels, this causes problems with the logic because
|
// soccer superstars visible area is >512 pixels, this causes problems with the logic because
|
||||||
// the tilemaps are 512 pixels across. Assume that if the limits were set as below that we
|
// the tilemaps are 512 pixels across. Assume that if the limits were set as below that we
|
||||||
// want the tilemap to be drawn on the right hand side.. this is probably not the correct
|
// want the tilemap to be drawn on the right hand side.. this is probably not the correct
|
||||||
|
@ -121,7 +121,7 @@ WRITE8_HANDLER( yard_scroll_panel_w )
|
|||||||
sx = ( offset % 16 );
|
sx = ( offset % 16 );
|
||||||
sy = ( offset / 16 );
|
sy = ( offset / 16 );
|
||||||
|
|
||||||
if (sx < 1 || sx > 14)
|
if (sx < 1 || sx > 14)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sx = 4 * (sx - 1);
|
sx = 4 * (sx - 1);
|
||||||
|
@ -162,7 +162,7 @@ VIDEO_UPDATE( marineb )
|
|||||||
{
|
{
|
||||||
int gfx, sx, sy, code, col, flipx, flipy, offs2;
|
int gfx, sx, sy, code, col, flipx, flipy, offs2;
|
||||||
|
|
||||||
if ((offs == 0) || (offs == 2))
|
if ((offs == 0) || (offs == 2))
|
||||||
continue; /* no sprites here */
|
continue; /* no sprites here */
|
||||||
|
|
||||||
if (offs < 8)
|
if (offs < 8)
|
||||||
@ -303,7 +303,7 @@ VIDEO_UPDATE( springer )
|
|||||||
{
|
{
|
||||||
int gfx, sx, sy, code, col, flipx, flipy, offs2;
|
int gfx, sx, sy, code, col, flipx, flipy, offs2;
|
||||||
|
|
||||||
if ((offs == 0) || (offs == 2))
|
if ((offs == 0) || (offs == 2))
|
||||||
continue; /* no sprites here */
|
continue; /* no sprites here */
|
||||||
|
|
||||||
offs2 = 0x0010 + offs;
|
offs2 = 0x0010 + offs;
|
||||||
@ -407,7 +407,7 @@ VIDEO_UPDATE( hopprobo )
|
|||||||
{
|
{
|
||||||
int gfx, sx, sy, code, col, flipx, flipy, offs2;
|
int gfx, sx, sy, code, col, flipx, flipy, offs2;
|
||||||
|
|
||||||
if ((offs == 0) || (offs == 2))
|
if ((offs == 0) || (offs == 2))
|
||||||
continue; /* no sprites here */
|
continue; /* no sprites here */
|
||||||
|
|
||||||
offs2 = 0x0010 + offs;
|
offs2 = 0x0010 + offs;
|
||||||
|
@ -196,8 +196,8 @@ WRITE32_HANDLER( ms32_brightness_w )
|
|||||||
brt_g = 0x100 - ((brt[0] & 0x00ff) >> 0);
|
brt_g = 0x100 - ((brt[0] & 0x00ff) >> 0);
|
||||||
brt_b = 0x100 - ((brt[1] & 0x00ff) >> 0);
|
brt_b = 0x100 - ((brt[1] & 0x00ff) >> 0);
|
||||||
|
|
||||||
// for (i = 0;i < 0x3000;i++) // colors 0x3000-0x3fff are not used
|
// for (i = 0;i < 0x3000;i++) // colors 0x3000-0x3fff are not used
|
||||||
// update_color(space->machine, i);
|
// update_color(space->machine, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -359,14 +359,14 @@ VIDEO_UPDATE( ms32 )
|
|||||||
/* TODO: 0 is correct for gametngk, but break f1superb scrolling grid (text at
|
/* TODO: 0 is correct for gametngk, but break f1superb scrolling grid (text at
|
||||||
top and bottom of the screen becomes black on black) */
|
top and bottom of the screen becomes black on black) */
|
||||||
bitmap_fill(temp_bitmap_tilemaps,cliprect,0); /* bg color */
|
bitmap_fill(temp_bitmap_tilemaps,cliprect,0); /* bg color */
|
||||||
|
|
||||||
/* clear our sprite bitmaps */
|
/* clear our sprite bitmaps */
|
||||||
bitmap_fill(temp_bitmap_sprites,cliprect,0);
|
bitmap_fill(temp_bitmap_sprites,cliprect,0);
|
||||||
bitmap_fill(temp_bitmap_sprites_pri,cliprect,0);
|
bitmap_fill(temp_bitmap_sprites_pri,cliprect,0);
|
||||||
|
|
||||||
tetrisp2_draw_sprites(screen->machine, temp_bitmap_sprites, temp_bitmap_sprites_pri, cliprect, NULL, ms32_sprram_16, 0x20000, 0, ms32_reverse_sprite_order, 0, 1 );
|
tetrisp2_draw_sprites(screen->machine, temp_bitmap_sprites, temp_bitmap_sprites_pri, cliprect, NULL, ms32_sprram_16, 0x20000, 0, ms32_reverse_sprite_order, 0, 1 );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
asc_pri = scr_pri = rot_pri = 0;
|
asc_pri = scr_pri = rot_pri = 0;
|
||||||
@ -430,8 +430,8 @@ VIDEO_UPDATE( ms32 )
|
|||||||
|
|
||||||
/* MIX it! */
|
/* MIX it! */
|
||||||
/* this mixing isn't 100% accurate, it should be using ALL the data in
|
/* this mixing isn't 100% accurate, it should be using ALL the data in
|
||||||
the priority ram, probably for per-pixel / pen mixing, or more levels
|
the priority ram, probably for per-pixel / pen mixing, or more levels
|
||||||
than are supported here.. I don't know, it will need hw tests I think */
|
than are supported here.. I don't know, it will need hw tests I think */
|
||||||
{
|
{
|
||||||
int xx, yy;
|
int xx, yy;
|
||||||
int width = video_screen_get_width(screen);
|
int width = video_screen_get_width(screen);
|
||||||
@ -442,7 +442,7 @@ VIDEO_UPDATE( ms32 )
|
|||||||
UINT8* srcptr_tilepri;
|
UINT8* srcptr_tilepri;
|
||||||
UINT16* srcptr_spri;
|
UINT16* srcptr_spri;
|
||||||
//UINT8* srcptr_spripri;
|
//UINT8* srcptr_spripri;
|
||||||
|
|
||||||
UINT32* dstptr_bitmap;
|
UINT32* dstptr_bitmap;
|
||||||
|
|
||||||
bitmap_fill(bitmap,cliprect,0);
|
bitmap_fill(bitmap,cliprect,0);
|
||||||
@ -477,7 +477,7 @@ VIDEO_UPDATE( ms32 )
|
|||||||
|
|
||||||
if (primask == 0x00)
|
if (primask == 0x00)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (src_tilepri==0x00)
|
if (src_tilepri==0x00)
|
||||||
{
|
{
|
||||||
if (spridat & 0xff)
|
if (spridat & 0xff)
|
||||||
@ -543,7 +543,7 @@ VIDEO_UPDATE( ms32 )
|
|||||||
}
|
}
|
||||||
else if (primask == 0xf0)
|
else if (primask == 0xf0)
|
||||||
{
|
{
|
||||||
// dstptr_bitmap[xx] = paldata[spridat];
|
// dstptr_bitmap[xx] = paldata[spridat];
|
||||||
if (src_tilepri==0x00)
|
if (src_tilepri==0x00)
|
||||||
{
|
{
|
||||||
if (spridat & 0xff)
|
if (spridat & 0xff)
|
||||||
@ -595,14 +595,14 @@ VIDEO_UPDATE( ms32 )
|
|||||||
{
|
{
|
||||||
if (spridat & 0xff)
|
if (spridat & 0xff)
|
||||||
dstptr_bitmap[xx] = paldata[spridat]; // tetrisp intro text
|
dstptr_bitmap[xx] = paldata[spridat]; // tetrisp intro text
|
||||||
else
|
else
|
||||||
dstptr_bitmap[xx] = paldata[src_tile];
|
dstptr_bitmap[xx] = paldata[src_tile];
|
||||||
}
|
}
|
||||||
else if (src_tilepri==0x01)
|
else if (src_tilepri==0x01)
|
||||||
{
|
{
|
||||||
if (spridat & 0xff)
|
if (spridat & 0xff)
|
||||||
dstptr_bitmap[xx] = paldata[spridat]; // tetrisp intro text
|
dstptr_bitmap[xx] = paldata[spridat]; // tetrisp intro text
|
||||||
else
|
else
|
||||||
dstptr_bitmap[xx] = paldata[src_tile];
|
dstptr_bitmap[xx] = paldata[src_tile];
|
||||||
}
|
}
|
||||||
else if (src_tilepri==0x02)
|
else if (src_tilepri==0x02)
|
||||||
@ -629,7 +629,7 @@ VIDEO_UPDATE( ms32 )
|
|||||||
else if (src_tilepri==0x07)
|
else if (src_tilepri==0x07)
|
||||||
{
|
{
|
||||||
//dstptr_bitmap[xx] = paldata[mame_rand(screen->machine)&0xfff];
|
//dstptr_bitmap[xx] = paldata[mame_rand(screen->machine)&0xfff];
|
||||||
dstptr_bitmap[xx] = paldata[src_tile]; // assumed
|
dstptr_bitmap[xx] = paldata[src_tile]; // assumed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (primask == 0xfe)
|
else if (primask == 0xfe)
|
||||||
@ -638,7 +638,7 @@ VIDEO_UPDATE( ms32 )
|
|||||||
{
|
{
|
||||||
if (spridat & 0xff)
|
if (spridat & 0xff)
|
||||||
dstptr_bitmap[xx] = paldata[spridat]; // screens in gametngk intro
|
dstptr_bitmap[xx] = paldata[spridat]; // screens in gametngk intro
|
||||||
else
|
else
|
||||||
dstptr_bitmap[xx] = paldata[src_tile];
|
dstptr_bitmap[xx] = paldata[src_tile];
|
||||||
}
|
}
|
||||||
else if (src_tilepri==0x01)
|
else if (src_tilepri==0x01)
|
||||||
@ -675,9 +675,9 @@ VIDEO_UPDATE( ms32 )
|
|||||||
{
|
{
|
||||||
fatalerror("unhandled priority type %02x\n",primask);
|
fatalerror("unhandled priority type %02x\n",primask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -393,7 +393,7 @@ VIDEO_START( nbmj8900_2layer )
|
|||||||
nbmj8900_clut = auto_alloc_array(machine, UINT8, 0x800);
|
nbmj8900_clut = auto_alloc_array(machine, UINT8, 0x800);
|
||||||
memset(nbmj8900_videoram0, 0xff, (screen_width * screen_height * sizeof(UINT8)));
|
memset(nbmj8900_videoram0, 0xff, (screen_width * screen_height * sizeof(UINT8)));
|
||||||
memset(nbmj8900_videoram1, 0xff, (screen_width * screen_height * sizeof(UINT8)));
|
memset(nbmj8900_videoram1, 0xff, (screen_width * screen_height * sizeof(UINT8)));
|
||||||
// machine->pens[0x07f] = 0xff; /* palette_transparent_pen */
|
// machine->pens[0x07f] = 0xff; /* palette_transparent_pen */
|
||||||
gfxdraw_mode = 1;
|
gfxdraw_mode = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -709,16 +709,16 @@ void skns_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectang
|
|||||||
{
|
{
|
||||||
// sengekis uses this on sprites which are shrinking as they head towards the ground
|
// sengekis uses this on sprites which are shrinking as they head towards the ground
|
||||||
// it's also used on the input test of Gals Panic S2
|
// it's also used on the input test of Gals Panic S2
|
||||||
//
|
//
|
||||||
// it appears to offer a higher precision 'shrink' mode (although I'm not entirely
|
// it appears to offer a higher precision 'shrink' mode (although I'm not entirely
|
||||||
// convinced this implementation is correct because we simply end up ignoring
|
// convinced this implementation is correct because we simply end up ignoring
|
||||||
// part of the data)
|
// part of the data)
|
||||||
zoomx_m = 0;
|
zoomx_m = 0;
|
||||||
zoomx_s = (source[2] >> 24)&0x00fc;
|
zoomx_s = (source[2] >> 24)&0x00fc;
|
||||||
zoomy_m = 0;
|
zoomy_m = 0;
|
||||||
zoomy_s = (source[3] >> 24)&0x00fc;
|
zoomy_s = (source[3] >> 24)&0x00fc;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -273,7 +273,7 @@ VIDEO_START( tetrisp2 )
|
|||||||
tilemap_set_transparent_pen(tilemap_bg,0);
|
tilemap_set_transparent_pen(tilemap_bg,0);
|
||||||
tilemap_set_transparent_pen(tilemap_fg,0);
|
tilemap_set_transparent_pen(tilemap_fg,0);
|
||||||
tilemap_set_transparent_pen(tilemap_rot,0);
|
tilemap_set_transparent_pen(tilemap_rot,0);
|
||||||
|
|
||||||
// should be smaller and mirrored like m32 I guess
|
// should be smaller and mirrored like m32 I guess
|
||||||
tetrisp2_priority = auto_alloc_array(machine, UINT8, 0x40000);
|
tetrisp2_priority = auto_alloc_array(machine, UINT8, 0x40000);
|
||||||
ms32_rearrange_sprites(machine, "gfx1");
|
ms32_rearrange_sprites(machine, "gfx1");
|
||||||
@ -392,7 +392,7 @@ void tetrisp2_draw_sprites(running_machine *machine, bitmap_t *bitmap, bitmap_t
|
|||||||
|
|
||||||
UINT16 *source = sprram_top;
|
UINT16 *source = sprram_top;
|
||||||
UINT16 *finish = sprram_top + (sprram_size - 0x10) / 2;
|
UINT16 *finish = sprram_top + (sprram_size - 0x10) / 2;
|
||||||
|
|
||||||
flipscreen = flip;
|
flipscreen = flip;
|
||||||
|
|
||||||
if (reverseorder == 1)
|
if (reverseorder == 1)
|
||||||
@ -405,7 +405,7 @@ void tetrisp2_draw_sprites(running_machine *machine, bitmap_t *bitmap, bitmap_t
|
|||||||
|
|
||||||
|
|
||||||
for (;reverseorder ? (source>=finish) : (source<finish); reverseorder ? (source-=8) : (source+=8))
|
for (;reverseorder ? (source>=finish) : (source<finish); reverseorder ? (source-=8) : (source+=8))
|
||||||
{
|
{
|
||||||
attr = source[ 0 ];
|
attr = source[ 0 ];
|
||||||
|
|
||||||
pri = (attr & 0x00f0);
|
pri = (attr & 0x00f0);
|
||||||
@ -453,10 +453,10 @@ void tetrisp2_draw_sprites(running_machine *machine, bitmap_t *bitmap, bitmap_t
|
|||||||
xzoom = 0x10000;
|
xzoom = 0x10000;
|
||||||
yzoom = 0x10000;
|
yzoom = 0x10000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
gfx_element_set_source_clip(gfx, tx, xsize, ty, ysize);
|
gfx_element_set_source_clip(gfx, tx, xsize, ty, ysize);
|
||||||
|
|
||||||
if (priority_ram == NULL)
|
if (priority_ram == NULL)
|
||||||
{
|
{
|
||||||
// passes the priority as the upper bits of the colour
|
// passes the priority as the upper bits of the colour
|
||||||
@ -489,7 +489,7 @@ void tetrisp2_draw_sprites(running_machine *machine, bitmap_t *bitmap, bitmap_t
|
|||||||
xzoom, yzoom, bitmap_pri,primask, 0);
|
xzoom, yzoom, bitmap_pri,primask, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} /* end sprite loop */
|
} /* end sprite loop */
|
||||||
}
|
}
|
||||||
|
@ -10,4 +10,4 @@
|
|||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
extern const char build_version[];
|
extern const char build_version[];
|
||||||
const char build_version[] = "0.135 ("__DATE__")";
|
const char build_version[] = "0.135u1 ("__DATE__")";
|
||||||
|
Loading…
Reference in New Issue
Block a user