Cleanups and version bump.

This commit is contained in:
Aaron Giles 2009-11-20 06:50:40 +00:00
parent 620a6cbe4b
commit f0cdba5b11
66 changed files with 297 additions and 297 deletions

View File

@ -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++)

View File

@ -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++)

View File

@ -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 ========================= */

View File

@ -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 ================================= */

View File

@ -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},

View File

@ -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;
} }
} }
} }

View File

@ -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)
{ {

View File

@ -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;

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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;
} }

View File

@ -754,8 +754,8 @@ ROM_END
static DRIVER_INIT( spcpostn ) static DRIVER_INIT( spcpostn )
{ {
spcpostn_decode(machine, "maincpu"); spcpostn_decode(machine, "maincpu");
} }

View File

@ -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)));

View File

@ -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)

View File

@ -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")

View File

@ -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'

View File

@ -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

View File

@ -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)

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;
} }
} }

View File

@ -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);

View File

@ -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

View File

@ -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);
} }

View File

@ -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;

View File

@ -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);

View File

@ -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 )

View File

@ -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" )

View File

@ -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)

View File

@ -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 */

View File

@ -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;

View File

@ -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 */

View File

@ -1,6 +1,6 @@
/************************************************************************* /*************************************************************************
4enraya 4enraya
*************************************************************************/ *************************************************************************/

View File

@ -1,6 +1,6 @@
/************************************************************************* /*************************************************************************
Ambush Ambush
*************************************************************************/ *************************************************************************/

View File

@ -1,6 +1,6 @@
/************************************************************************* /*************************************************************************
Angel Kids Angel Kids
*************************************************************************/ *************************************************************************/

View File

@ -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;

View File

@ -1,6 +1,6 @@
/************************************************************************* /*************************************************************************
Pandora's Palace Pandora's Palace
*************************************************************************/ *************************************************************************/

View File

@ -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;

View File

@ -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;

View File

@ -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 )
{ {

View File

@ -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] */

View File

@ -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

View File

@ -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;

View File

@ -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;
} }
} }

View File

@ -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 */

View File

@ -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;

View File

@ -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)

View File

@ -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;

View File

@ -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;

View File

@ -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))

View File

@ -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];

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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;

View File

@ -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);
} }
} }
} }

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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 */
} }

View File

@ -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__")";