diff --git a/hash/a5200.xml b/hash/a5200.xml
index d6232cf3a63..274a3e142a9 100644
--- a/hash/a5200.xml
+++ b/hash/a5200.xml
@@ -1472,4 +1472,18 @@ Possible Undumped protos: -
+
+
+ 5200 Tempest
+ 2012
+ Atariage
+
+
+
+
+
+
+
+
+
diff --git a/hash/megadriv.xml b/hash/megadriv.xml
index 843499bab81..926b16de98b 100644
--- a/hash/megadriv.xml
+++ b/hash/megadriv.xml
@@ -21791,7 +21791,20 @@ Notice that these are not working on real hardware due to bugged code with VDP i
-
+
+
+ Putty Squad (prototype)
+ 1992
+ System 3 / Ocean
+
+
+
+
+
+
+
+
+
Putter Golf (Jpn, SegaNet)
1991
Sega
diff --git a/hash/spectrum_cass.xml b/hash/spectrum_cass.xml
index e4ac2f52285..0f0575d4678 100644
--- a/hash/spectrum_cass.xml
+++ b/hash/spectrum_cass.xml
@@ -709,7 +709,97 @@
+
+
+ Castlevania - Spectral Interlude (v1.1, English, 128K)
+ 2015
+ Rewind
+
+
+
+
+
+
+
+ Castlevania - Spectral Interlude (v1.1, Russian, 128K)
+ 2015
+ Rewind
+
+
+
+
+
+
+
+
+ Castlevania - Spectral Interlude (v1.1, Polish, 128K)
+ 2015
+ Rewind
+
+
+
+
+
+
+
+
+ Castlevania - Spectral Interlude (v1.1, Spanish, 128K)
+ 2015
+ Rewind
+
+
+
+
+
+
+
+
+ Castlevania - Spectral Interlude (v1.1, Italian, 128K)
+ 2015
+ Rewind
+
+
+
+
+
+
+
+
+ Castlevania - Spectral Interlude (v1.0, English, 128K)
+ 2015
+ Rewind
+
+
+
+
+
+
+
+
+ Castlevania - Spectral Interlude (v1.0, Russian, 128K)
+ 2015
+ Rewind
+
+
+
+
+
+
+
+
+ Castlevania - Spectral Interlude (v1.0, Polish, 128K)
+ 2015
+ Rewind
+
+
+
+
+
+
+
+
+
diff --git a/src/devices/cpu/i86/i86.c b/src/devices/cpu/i86/i86.c
index 5921ce3e052..70af764f1a2 100644
--- a/src/devices/cpu/i86/i86.c
+++ b/src/devices/cpu/i86/i86.c
@@ -1149,7 +1149,7 @@ bool i8086_common_cpu_device::common_op(UINT8 op)
// 8086 'invalid opcodes', as documented at http://www.os2museum.com/wp/?p=2147 and tested on real hardware
// - 0x60 - 0x6f are aliases to 0x70 - 0x7f.
-// - 0xc0, 0xc1, 0xc8, 0xc9 are also aliases where the CPU ignores BIT 1 (*).
+// - 0xc0, 0xc1, 0xc8, 0xc9 are also aliases where the CPU ignores BIT 1 (*).
// - 0xf1 is an alias to 0xf0.
//
// Instructions are used in the boot sector for some versions of
@@ -2018,7 +2018,7 @@ bool i8086_common_cpu_device::common_op(UINT8 op)
case 0xf0: // i_lock
- case 0xf1: // 0xf1 is 0xf0; verified on custom hardware
+ case 0xf1: // 0xf1 is 0xf0; verified on real CPU
logerror("%s: %06x: Warning - BUSLOCK\n", tag(), pc());
m_lock = true;
m_no_interrupt = 1;
diff --git a/src/emu/machine.c b/src/emu/machine.c
index 3f0eb5a9c15..ae85784ed46 100644
--- a/src/emu/machine.c
+++ b/src/emu/machine.c
@@ -256,6 +256,7 @@ void running_machine::start()
m_memory.initialize();
// initialize the watchdog
+ m_watchdog_counter = 0;
m_watchdog_timer = m_scheduler.timer_alloc(timer_expired_delegate(FUNC(running_machine::watchdog_fired), this));
if (config().m_watchdog_vblank_count != 0 && primary_screen != NULL)
primary_screen->register_vblank_callback(vblank_state_delegate(FUNC(running_machine::watchdog_vblank), this));
diff --git a/src/emu/machine.h b/src/emu/machine.h
index a989ba2c874..ae4e514482c 100644
--- a/src/emu/machine.h
+++ b/src/emu/machine.h
@@ -226,6 +226,7 @@ public:
// watchdog control
void watchdog_reset();
void watchdog_enable(bool enable = true);
+ INT32 get_vblank_watchdog_counter() { return m_watchdog_counter; }
// misc
void CLIB_DECL vlogerror(const char *format, va_list args);
diff --git a/src/mame/arcade.lst b/src/mame/arcade.lst
index cbdb8a6d296..5c04d15dbcb 100644
--- a/src/mame/arcade.lst
+++ b/src/mame/arcade.lst
@@ -4501,6 +4501,7 @@ wboyub // bootleg of wboyu
wbdeluxe // (c) 1986 + Escape license (S1)
wboysys2 // 834-5984 (c) 1986 + Escape license (S1)
gardia // 834-6119 (S2?)
+gardiaj //
gardiab // bootleg
nob // (c) Data East
nobb // bootleg
diff --git a/src/mame/drivers/bbc.c b/src/mame/drivers/bbc.c
index ac20e5e8177..c658dbc0020 100644
--- a/src/mame/drivers/bbc.c
+++ b/src/mame/drivers/bbc.c
@@ -1205,10 +1205,6 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( bbcmet, bbcm )
- /* sound hardware */
- MCFG_DEVICE_REMOVE("mono")
- MCFG_DEVICE_REMOVE("sn76489")
-
/* printer */
MCFG_DEVICE_REMOVE("centronics")
@@ -1503,7 +1499,7 @@ ROM_START(bbcb_us)
ROMX_LOAD("usmos10.rom", 0x40000, 0x4000, CRC(c8e946a9) SHA1(83d91d089dca092d2c8b7c3650ff8143c9069b89), ROM_BIOS(1))
ROMX_LOAD("usbasic3.rom", 0x3c000, 0x4000, CRC(161b9539) SHA1(b39014610a968789afd7695aa04d1277d874405c), ROM_BIOS(1)) /* rom page 15 3c000 */
- ROM_LOAD("viewa210.rom", 0x30000, 0x2e50, CRC(0abd418b) SHA1(e23e5bbc59339cbda87e8dafa8d80116378ac305)) /* Valid size? */
+ ROM_LOAD("viewa210.rom", 0x30000, 0x4000, CRC(4345359f) SHA1(88c93df1854f5fbe6cd6e5f0e29a8bf4ea3b5614))
ROM_LOAD("usdnfs10.rom", 0x38000, 0x4000, CRC(7e367e8c) SHA1(161f585dc45665ea77433c84afd2f95049f7f5a0))
ROM_REGION(0x4000, "os", 0)
@@ -1941,7 +1937,7 @@ COMP ( 1985, reutapm, 0, 0, reutapm, bbcb, bbc_state, bbc, "
COMP ( 1986, bbcm, 0, bbcb, bbcm, bbcm, bbc_state, bbc, "Acorn", "BBC Master 128", MACHINE_IMPERFECT_GRAPHICS)
COMP ( 1986, bbcmt, bbcm, 0, bbcmt, bbcm, bbc_state, bbc, "Acorn", "BBC Master Turbo", MACHINE_NOT_WORKING)
COMP ( 1986, bbcmaiv, bbcm, 0, bbcmaiv, bbcm, bbc_state, bbc, "Acorn", "BBC Master AIV", MACHINE_NOT_WORKING)
-COMP ( 1986, bbcmet, bbcm, 0, bbcmet, bbcm, bbc_state, bbc, "Acorn", "BBC Master ET", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS)
+COMP ( 1986, bbcmet, bbcm, 0, bbcmet, bbcm, bbc_state, bbc, "Acorn", "BBC Master ET", MACHINE_IMPERFECT_GRAPHICS)
COMP ( 1986, bbcm512, bbcm, 0, bbcm512, bbcm, bbc_state, bbc, "Acorn", "BBC Master 512", MACHINE_NOT_WORKING)
COMP ( 1986, bbcmarm, bbcm, 0, bbcmarm, bbcm, bbc_state, bbc, "Acorn", "ARM Evaluation System", MACHINE_NOT_WORKING)
COMP ( 1986, bbcmc, 0, bbcm, bbcmc, bbcm, bbc_state, bbc, "Acorn", "BBC Master Compact", MACHINE_IMPERFECT_GRAPHICS)
diff --git a/src/mame/drivers/champbas.c b/src/mame/drivers/champbas.c
index 8aaad810c17..6a2477cac7d 100644
--- a/src/mame/drivers/champbas.c
+++ b/src/mame/drivers/champbas.c
@@ -40,7 +40,7 @@ write:
7001 8910 control
8ff0-8fff sprites
a000 ?
-a006 MCU HALT controll
+a006 MCU HALT control
a007 NOP (MCU shared RAM switch)
a060-a06f sprites
a080 command for the sound CPU
@@ -86,6 +86,7 @@ TODO:
#include "emu.h"
#include "cpu/z80/z80.h"
#include "cpu/alph8201/alph8201.h"
+//#include "cpu/hmcs40/hmcs40.h"
#include "sound/ay8910.h"
#include "sound/dac.h"
#include "includes/champbas.h"
@@ -567,7 +568,7 @@ GFXDECODE_END
/*************************************
*
- * Machine driver
+ * Machine drivers
*
*************************************/
@@ -581,6 +582,7 @@ MACHINE_START_MEMBER(champbas_state,champbas)
MACHINE_START_MEMBER(champbas_state,exctsccr)
{
// FIXME
+ // I dun wanna
machine().scheduler().timer_pulse(attotime::from_hz(75), timer_expired_delegate(FUNC(champbas_state::exctsccr_fm_callback),this)); /* updates fm */
MACHINE_START_CALL_MEMBER(champbas);
@@ -595,7 +597,7 @@ MACHINE_RESET_MEMBER(champbas_state,champbas)
INTERRUPT_GEN_MEMBER(champbas_state::vblank_irq)
{
- if(m_irq_mask)
+ if (m_irq_mask)
device.execute().set_input_line(0, ASSERT_LINE);
}
@@ -608,7 +610,7 @@ static MACHINE_CONFIG_START( talbot, champbas_state )
MCFG_CPU_VBLANK_INT_DRIVER("screen", champbas_state, vblank_irq)
/* MCU */
- MCFG_CPU_ADD(CPUTAG_MCU, ALPHA8201, XTAL_18_432MHz/6/8)
+ MCFG_CPU_ADD("mcu", ALPHA8201, XTAL_18_432MHz/6/8)
MCFG_CPU_PROGRAM_MAP(mcu_map)
MCFG_MACHINE_START_OVERRIDE(champbas_state,champbas)
@@ -681,7 +683,7 @@ static MACHINE_CONFIG_DERIVED( champmcu, champbas )
/* basic machine hardware */
/* MCU */
- MCFG_CPU_ADD(CPUTAG_MCU, ALPHA8201, XTAL_18_432MHz/6/8)
+ MCFG_CPU_ADD("mcu", ALPHA8201, XTAL_18_432MHz/6/8)
MCFG_CPU_PROGRAM_MAP(mcu_map)
/* to MCU timeout champbbj */
@@ -702,7 +704,7 @@ static MACHINE_CONFIG_START( exctsccr, champbas_state )
MCFG_CPU_PERIODIC_INT_DRIVER(champbas_state, nmi_line_pulse, 4000) /* 4 kHz, updates the dac */
/* MCU */
- MCFG_CPU_ADD(CPUTAG_MCU, ALPHA8301, XTAL_18_432MHz/6/8) /* Actually 8302 */
+ MCFG_CPU_ADD("mcu", ALPHA8301, XTAL_18_432MHz/6/8) /* Actually 8302 */
MCFG_CPU_PROGRAM_MAP(mcu_map)
MCFG_MACHINE_START_OVERRIDE(champbas_state,exctsccr)
diff --git a/src/mame/drivers/konamim2.c b/src/mame/drivers/konamim2.c
index 63c293fa1be..5939929c8c4 100644
--- a/src/mame/drivers/konamim2.c
+++ b/src/mame/drivers/konamim2.c
@@ -191,7 +191,7 @@ Notes:
#include "emu.h"
#include "cdrom.h"
#include "cpu/powerpc/ppc.h"
-
+#include "imagedev/chd_cd.h"
struct CDE_DMA
{
@@ -1187,6 +1187,11 @@ static MACHINE_CONFIG_START( m2, konamim2_state )
MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
+ /*cd-rom*/
+ MCFG_CDROM_ADD( "cdrom" )
+ MCFG_CDROM_INTERFACE("3do_m2_cdrom")
+
+ MCFG_SOFTWARE_LIST_ADD("cd_list","3do_m2")
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/macpci.c b/src/mame/drivers/macpci.c
index 10f938d108f..5e24c434114 100644
--- a/src/mame/drivers/macpci.c
+++ b/src/mame/drivers/macpci.c
@@ -110,6 +110,8 @@ static MACHINE_CONFIG_START( pippin, macpci_state )
MCFG_SOUND_ROUTE( 1, "rspeaker", 1.00 )
MCFG_CDROM_ADD("cdrom")
+ MCFG_CDROM_INTERFACE("pippin_cdrom")
+ MCFG_SOFTWARE_LIST_ADD("cd_list","pippin")
MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("32M")
diff --git a/src/mame/drivers/osborne1.c b/src/mame/drivers/osborne1.c
index 4910ee5e0cc..256eb247d45 100644
--- a/src/mame/drivers/osborne1.c
+++ b/src/mame/drivers/osborne1.c
@@ -141,6 +141,11 @@ static INPUT_PORTS_START( osborne1 )
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
+
+ PORT_START("CNF")
+ PORT_CONFNAME(0x01, 0x00, "Video Output")
+ PORT_CONFSETTING(0x00, "Standard")
+ PORT_CONFSETTING(0x01, "SCREEN-PAC")
INPUT_PORTS_END
@@ -197,7 +202,7 @@ static MACHINE_CONFIG_START( osborne1, osborne1_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_UPDATE_DRIVER(osborne1_state, screen_update)
- MCFG_SCREEN_RAW_PARAMS( MAIN_CLOCK/2, 512, 0, 416, 260, 0, 240 )
+ MCFG_SCREEN_RAW_PARAMS( MAIN_CLOCK, 1024, 0, 832, 260, 0, 240 )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", osborne1)
MCFG_PALETTE_ADD_MONOCHROME_GREEN_HIGHLIGHT("palette")
diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c
index e110517de1f..cc2e1d5fcdd 100644
--- a/src/mame/drivers/system1.c
+++ b/src/mame/drivers/system1.c
@@ -4150,6 +4150,35 @@ ROM_START( gardiab )
ROM_LOAD( "pr5317.4", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) )
ROM_END
+ROM_START( gardiaj )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "epr-10250.ic90", 0x00000, 0x8000, CRC(c97943a7) SHA1(eb201987c7a78f7eb6838211c0af3394c0b2d95f) ) /* encrypted */
+ ROM_LOAD( "epr-10251.ic91", 0x10000, 0x8000, CRC(b2ed05dc) SHA1(c520bf7024c85dc759c27eccb0a31998f4d72b5f) )
+ ROM_LOAD( "epr-10252.ic92", 0x18000, 0x8000, CRC(0a490588) SHA1(18df754ebdf062096f2d631a722b168901610345) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "epr-10243.ic126", 0x0000, 0x4000, CRC(87220660) SHA1(3f2bfc03e0f1053a4aa0ec5ebb0d573f2e20964c) )
+
+ ROM_REGION( 0x18000, "tiles", 0 )
+ ROM_LOAD( "epr-10240.ic4", 0x00000, 0x8000, CRC(998ce090) SHA1(78929f471c5aa8b32d1693e8af2ef3e86efd3d7d) )
+ ROM_LOAD( "epr-10241.ic5", 0x08000, 0x8000, CRC(81ab0b07) SHA1(7f776dccd66ad097a1a906823786a52d31a8c4e8) )
+ ROM_LOAD( "epr-10242.ic6", 0x10000, 0x8000, CRC(2dc4c4c7) SHA1(0347170b941a5c567eed114833656e8abd16a8ab) )
+
+ ROM_REGION( 0x20000, "sprites", 0 )
+ ROM_LOAD( "epr-10234.ic87", 0x00000, 0x8000, CRC(8a6aed33) SHA1(044836885ace8294124b1be9b3a4828f772bb9ee) )
+ ROM_LOAD( "epr-10233.ic86", 0x08000, 0x8000, CRC(c52784d3) SHA1(b37d7f261be12616dbe11dfa375eaf6878e4a0f3) )
+ ROM_LOAD( "epr-10236.ic89", 0x10000, 0x8000, CRC(b35ab227) SHA1(616f6097afddffa9af89fe84d8b6df59c567c1e6) )
+ ROM_LOAD( "epr-10235.ic88", 0x18000, 0x8000, CRC(006a3151) SHA1(a575f9d5c026e6b18e990720ec7520b6b5ae94e3) )
+
+ ROM_REGION( 0x0300, "palette", 0 )
+ ROM_LOAD( "pr-7345.ic20", 0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */
+ ROM_LOAD( "pr-7344.ic14", 0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */
+ ROM_LOAD( "pr-7343.ic8", 0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "pr5317.ic28", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) )
+ROM_END
+
ROM_START( brain )
ROM_REGION( 0x20000, "maincpu", 0 )
@@ -5698,6 +5727,7 @@ GAME( 1985, chopliftbl, choplift, sys2row, choplift, system1_state, bank0c,
GAME( 1985, shtngmst, 0, sys2m, shtngmst, system1_state, shtngmst, ROT0, "Sega", "Shooting Master (8751 315-5159)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1985, shtngmste, shtngmst, sys2m, shtngmst, system1_state, shtngmst, ROT0, "Sega / EVG", "Shooting Master (EVG, 8751 315-5159a)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, gardiab, gardia, sys2x, gardia, system1_state, gardiab, ROT270, "bootleg", "Gardia (317-0007?, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, gardiaj, gardia, sys2x, gardia, system1_state, gardia, ROT270, "Coreland / Sega", "Gardia (Japan, 317-0006)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
GAME( 1986, wboysys2, wboy, sys2x, wboysys2, system1_state, wboysys2, ROT0, "Escape (Sega license)", "Wonder Boy (system 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1987, tokisens, 0, sys2, tokisens, system1_state, bank0c, ROT90, "Sega", "Toki no Senshi - Chrono Soldier", MACHINE_SUPPORTS_SAVE )
GAME( 1987, wbml, 0, sys2xb, wbml, system1_state, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan New Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/includes/champbas.h b/src/mame/includes/champbas.h
index ac48cbf6b3d..8fb362b399e 100644
--- a/src/mame/includes/champbas.h
+++ b/src/mame/includes/champbas.h
@@ -6,10 +6,9 @@
*************************************************************************/
-
-#define CPUTAG_MCU "mcu"
#include "sound/dac.h"
+
class champbas_state : public driver_device
{
public:
@@ -20,12 +19,13 @@ public:
m_spriteram_2(*this, "spriteram_2"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
- m_mcu(*this, CPUTAG_MCU),
+ m_mcu(*this, "mcu"),
m_dac(*this, "dac"),
m_dac1(*this, "dac1"),
m_dac2(*this, "dac2"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette"){ }
+ m_palette(*this, "palette")
+ { }
/* memory pointers */
required_shared_ptr m_bg_videoram;
diff --git a/src/mame/includes/osborne1.h b/src/mame/includes/osborne1.h
index 52d39a09461..8134e0ccbe7 100644
--- a/src/mame/includes/osborne1.h
+++ b/src/mame/includes/osborne1.h
@@ -47,6 +47,7 @@ public:
m_row5(*this, "ROW5"),
m_row6(*this, "ROW6"),
m_row7(*this, "ROW7"),
+ m_cnf(*this, "CNF"),
m_bank1(*this, "bank1"),
m_bank2(*this, "bank2"),
m_bank3(*this, "bank3"),
@@ -93,6 +94,8 @@ public:
bool m_pia_0_irq_state;
bool m_pia_1_irq_state;
/* video related */
+ UINT8 m_screen_pac;
+ UINT8 m_resolution;
UINT8 m_new_start_x;
UINT8 m_new_start_y;
emu_timer *m_video_timer;
@@ -115,6 +118,7 @@ protected:
required_ioport m_row5;
required_ioport m_row6;
required_ioport m_row7;
+ required_ioport m_cnf;
required_memory_bank m_bank1;
required_memory_bank m_bank2;
required_memory_bank m_bank3;
diff --git a/src/mame/machine/osborne1.c b/src/mame/machine/osborne1.c
index 84cf5f2db46..1fa93b6567a 100644
--- a/src/mame/machine/osborne1.c
+++ b/src/mame/machine/osborne1.c
@@ -75,6 +75,9 @@ READ8_MEMBER( osborne1_state::osborne1_2000_r )
/* Row 7 */
if ( offset & 0x80 ) data &= m_row7->read();
break;
+ case 0x400: /* SCREEN-PAC */
+ if (m_screen_pac) data &= 0xFB;
+ break;
case 0x900: /* IEEE488 PIA */
data = m_pia0->read(space, offset & 0x03 );
break;
@@ -108,6 +111,9 @@ WRITE8_MEMBER( osborne1_state::osborne1_2000_w )
case 0x100: /* Floppy */
m_fdc->write(space, offset & 0x03, data );
break;
+ case 0x400: /* SCREEN-PAC */
+ m_resolution = data & 0x01;
+ break;
case 0x900: /* IEEE488 PIA */
m_pia0->write(space, offset & 0x03, data );
break;
@@ -358,7 +364,7 @@ TIMER_CALLBACK_MEMBER(osborne1_state::osborne1_video_callback)
ma = (m_new_start_y + (y/10)) * 128 + m_new_start_x;
UINT16 *p = &m_bitmap.pix16(y);
- for ( x = 0; x < 52; x++ )
+ for ( x = 0; x < ((m_screen_pac && m_resolution) ? 104 : 52); x++ )
{
chr = m_ram->pointer()[ 0xF000 + ( (ma+x) & 0xFFF ) ];
dim = m_ram->pointer()[ 0x10000 + ( (ma+x) & 0xFFF ) ] & 0x80;
@@ -370,13 +376,21 @@ TIMER_CALLBACK_MEMBER(osborne1_state::osborne1_video_callback)
/* Display a scanline of a character */
*p++ = BIT(gfx, 7) ? ( dim ? 2 : 1 ) : 0;
+ if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
*p++ = BIT(gfx, 6) ? ( dim ? 2 : 1 ) : 0;
+ if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
*p++ = BIT(gfx, 5) ? ( dim ? 2 : 1 ) : 0;
+ if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
*p++ = BIT(gfx, 4) ? ( dim ? 2 : 1 ) : 0;
+ if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
*p++ = BIT(gfx, 3) ? ( dim ? 2 : 1 ) : 0;
+ if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
*p++ = BIT(gfx, 2) ? ( dim ? 2 : 1 ) : 0;
+ if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
*p++ = BIT(gfx, 1) ? ( dim ? 2 : 1 ) : 0;
+ if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
*p++ = BIT(gfx, 0) ? ( dim ? 2 : 1 ) : 0;
+ if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
}
}
@@ -409,6 +423,8 @@ void osborne1_state::machine_reset()
m_pia_1_irq_state = FALSE;
m_in_irq_handler = 0;
+ m_screen_pac = 0 != (m_cnf->read() & 0x01);
+ m_resolution = 0;
m_p_chargen = memregion( "chargen" )->base();
memset( m_ram->pointer() + 0x10000, 0xFF, 0x1000 );
diff --git a/src/mame/video/champbas.c b/src/mame/video/champbas.c
index ac60f292273..7f864aafd92 100644
--- a/src/mame/video/champbas.c
+++ b/src/mame/video/champbas.c
@@ -1,5 +1,11 @@
// license:BSD-3-Clause
// copyright-holders:Ernesto Corvi, Jarek Parchanski, Nicola Salmoria
+/*************************************************************************
+
+ Talbot - Champion Base Ball - Exciting Soccer
+
+*************************************************************************/
+
#include "emu.h"
#include "video/resnet.h"
#include "includes/champbas.h"
@@ -28,7 +34,6 @@ PALETTE_INIT_MEMBER(champbas_state,champbas)
static const int resistances_rg[3] = { 1000, 470, 220 };
static const int resistances_b [2] = { 470, 220 };
double rweights[3], gweights[3], bweights[2];
- int i;
/* compute the color output resistor weights */
compute_resistor_weights(0, 255, -1.0,
@@ -37,7 +42,7 @@ PALETTE_INIT_MEMBER(champbas_state,champbas)
2, &resistances_b[0], bweights, 0, 0);
/* create a lookup table for the palette */
- for (i = 0; i < 0x20; i++)
+ for (int i = 0; i < 0x20; i++)
{
int bit0, bit1, bit2;
int r, g, b;
@@ -64,7 +69,7 @@ PALETTE_INIT_MEMBER(champbas_state,champbas)
color_prom += 0x20;
- for (i = 0; i < 0x200; i++)
+ for (int i = 0; i < 0x200; i++)
{
UINT8 ctabentry = (color_prom[i & 0xff] & 0x0f) | ((i & 0x100) >> 4);
palette.set_pen_indirect(i, ctabentry);
@@ -75,10 +80,9 @@ PALETTE_INIT_MEMBER(champbas_state,champbas)
PALETTE_INIT_MEMBER(champbas_state,exctsccr)
{
const UINT8 *color_prom = memregion("proms")->base();
- int i;
/* create a lookup table for the palette */
- for (i = 0; i < 0x20; i++)
+ for (int i = 0; i < 0x20; i++)
{
int bit0, bit1, bit2;
int r, g, b;
@@ -108,7 +112,7 @@ PALETTE_INIT_MEMBER(champbas_state,exctsccr)
color_prom += 0x20;
/* characters / sprites (3bpp) */
- for (i = 0; i < 0x100; i++)
+ for (int i = 0; i < 0x100; i++)
{
int swapped_i = BITSWAP8(i, 2, 7, 6, 5, 4, 3, 1, 0);
UINT8 ctabentry = (color_prom[swapped_i] & 0x0f) | ((i & 0x80) >> 3);
@@ -116,7 +120,7 @@ PALETTE_INIT_MEMBER(champbas_state,exctsccr)
}
/* sprites (4bpp) */
- for (i = 0; i < 0x100; i++)
+ for (int i = 0; i < 0x100; i++)
{
UINT8 ctabentry = (color_prom[0x100 + i] & 0x0f) | 0x10;
palette.set_pen_indirect(i + 0x100, ctabentry);
@@ -186,10 +190,9 @@ WRITE8_MEMBER(champbas_state::champbas_flipscreen_w)
void champbas_state::champbas_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
{
- int offs;
gfx_element* const gfx = m_gfxdecode->gfx(1);
- for (offs = m_spriteram.bytes() - 2; offs >= 0; offs -= 2)
+ for (int offs = m_spriteram.bytes() - 2; offs >= 0; offs -= 2)
{
int code = (m_spriteram[offs] >> 2) | (m_gfx_bank << 6);
int color = (m_spriteram[offs + 1] & 0x1f) | (m_palette_bank << 6);
@@ -198,32 +201,29 @@ void champbas_state::champbas_draw_sprites( bitmap_ind16 &bitmap, const rectangl
int sx = m_spriteram_2[offs + 1] - 16;
int sy = 255 - m_spriteram_2[offs];
-
- gfx->transmask(bitmap,cliprect,
- code, color,
- flipx, flipy,
- sx, sy,
- m_palette->transpen_mask(*gfx, color, 0));
+ gfx->transmask(bitmap,cliprect,
+ code, color,
+ flipx, flipy,
+ sx, sy,
+ m_palette->transpen_mask(*gfx, color, 0));
// wraparound
-
- gfx->transmask(bitmap,cliprect,
- code, color,
- flipx, flipy,
- sx + 256, sy,
- m_palette->transpen_mask(*gfx, color, 0));
+ gfx->transmask(bitmap,cliprect,
+ code, color,
+ flipx, flipy,
+ sx + 256, sy,
+ m_palette->transpen_mask(*gfx, color, 0));
}
}
void champbas_state::exctsccr_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
{
- int offs;
UINT8 *obj1, *obj2;
obj1 = m_bg_videoram;
obj2 = &(m_spriteram[0x20]);
- for (offs = 0x0e; offs >= 0; offs -= 2)
+ for (int offs = 0x0e; offs >= 0; offs -= 2)
{
int sx, sy, code, bank, flipx, flipy, color;
@@ -236,18 +236,17 @@ void champbas_state::exctsccr_draw_sprites( bitmap_ind16 &bitmap, const rectangl
color = (obj1[offs + 1]) & 0x0f;
bank = ((obj1[offs + 1] >> 4) & 1);
-
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
- code + (bank << 6),
- color,
- flipx, flipy,
- sx,sy,0);
+ m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ code + (bank << 6),
+ color,
+ flipx, flipy,
+ sx,sy,0);
}
obj1 = m_spriteram_2;
obj2 = m_spriteram;
- for (offs = 0x0e; offs >= 0; offs -= 2)
+ for (int offs = 0x0e; offs >= 0; offs -= 2)
{
int sx, sy, code, flipx, flipy, color;
@@ -259,13 +258,12 @@ void champbas_state::exctsccr_draw_sprites( bitmap_ind16 &bitmap, const rectangl
flipy = (~obj1[offs]) & 0x02;
color = (obj1[offs + 1]) & 0x0f;
-
- m_gfxdecode->gfx(2)->transmask(bitmap,cliprect,
- code,
- color,
- flipx, flipy,
- sx,sy,
- m_palette->transpen_mask(*m_gfxdecode->gfx(2), color, 0x10));
+ m_gfxdecode->gfx(2)->transmask(bitmap,cliprect,
+ code,
+ color,
+ flipx, flipy,
+ sx,sy,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(2), color, 0x10));
}
}
diff --git a/src/osd/windows/input.c b/src/osd/windows/input.c
index 3099f5e5f20..078fa665098 100644
--- a/src/osd/windows/input.c
+++ b/src/osd/windows/input.c
@@ -1832,7 +1832,7 @@ static device_info *rawinput_device_create(running_machine &machine, device_info
if ((*get_rawinput_device_info)(device->hDevice, RIDI_DEVICENAME, NULL, &name_length) != 0)
goto error;
tname = global_alloc_array_clear(TCHAR, name_length+1);
- if (name_length != 1 && (*get_rawinput_device_info)(device->hDevice, RIDI_DEVICENAME, tname, &name_length) == -1)
+ if (name_length > 1 && (*get_rawinput_device_info)(device->hDevice, RIDI_DEVICENAME, tname, &name_length) == -1)
goto error;
// if this is an RDP name, skip it