From ea464791ead97d624379812a647b3d6f977ca88f Mon Sep 17 00:00:00 2001 From: Shideravan Date: Sun, 25 Oct 2015 17:56:24 -0200 Subject: [PATCH 1/8] Adding preliminary support for cd-rom in 3do_m2 Also, compatibility with 3do_m2 softwarelist --- src/mame/drivers/konamim2.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 From 67aca10f7037d38105780fed1273fe0381073813 Mon Sep 17 00:00:00 2001 From: Shideravan Date: Sun, 25 Oct 2015 21:08:25 -0200 Subject: [PATCH 2/8] Preliminary support for cd-rom images in Pippin Also, softwarelist support --- src/mame/drivers/macpci.c | 2 ++ 1 file changed, 2 insertions(+) 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") From 1ab609cc107e0984aa2ebf4c5958172c19aaea8e Mon Sep 17 00:00:00 2001 From: kazblox Date: Mon, 26 Oct 2015 00:43:11 -0400 Subject: [PATCH 3/8] nothing to see here; move along --- src/devices/cpu/i86/i86.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; From 399d56f82f7f0ffd1871985131b34789d6ebcddb Mon Sep 17 00:00:00 2001 From: David Haywood Date: Mon, 26 Oct 2015 12:15:02 +0000 Subject: [PATCH 4/8] new clones Gardia (Japan, 317-0006) [Shousama, system11] --- src/mame/arcade.lst | 1 + src/mame/drivers/system1.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/src/mame/arcade.lst b/src/mame/arcade.lst index f51f67df1eb..613a4b29a54 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/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 ) From ff4a8e0b4c29ecd7594975706911553bb0445798 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Mon, 26 Oct 2015 13:17:08 +0000 Subject: [PATCH 5/8] some interesting prototype / homebrew stuff for the SLs (nw) --- hash/a5200.xml | 14 +++++++ hash/megadriv.xml | 15 ++++++- hash/spectrum_cass.xml | 90 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 118 insertions(+), 1 deletion(-) 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 + + + + + + + + + From 6c82e26492588d50670beb0ee7beb2c1cda5bd51 Mon Sep 17 00:00:00 2001 From: Nigel Barnes Date: Mon, 26 Oct 2015 13:23:40 +0000 Subject: [PATCH 6/8] bbc: fixed view rom and reinstated sound in bbcmet (nw) --- src/mame/drivers/bbc.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) 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) From 3275317261dd3566a982bb384f51e879d42a26ce Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Tue, 27 Oct 2015 01:12:43 +1100 Subject: [PATCH 7/8] Add preliminary Osborne 1 SCREEN-PAC support Select Standard or SCREEN-PAC video output in Machine Configuration SCREEN-PAC is correctly detected, 104-column text is displayed 80-column display and scrolling in 104-column mode are likely broken Based entirely on schematics since I have no real machine to compare to --- src/mame/drivers/osborne1.c | 7 ++++++- src/mame/includes/osborne1.h | 4 ++++ src/mame/machine/osborne1.c | 18 +++++++++++++++++- 3 files changed, 27 insertions(+), 2 deletions(-) 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/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 ); From a6094ce5aa1fcabf389197a2af5f71eb1c24f753 Mon Sep 17 00:00:00 2001 From: hap Date: Mon, 26 Oct 2015 18:18:42 +0100 Subject: [PATCH 8/8] champbas.c driver needs cleanup, i'll continue on that if i can sort out MCU emulation for it (via hmcs40 instead simulation) --- src/emu/machine.c | 1 + src/emu/machine.h | 1 + src/mame/drivers/champbas.c | 14 ++++--- src/mame/includes/champbas.h | 8 ++-- src/mame/video/champbas.c | 72 ++++++++++++++++++------------------ src/osd/windows/input.c | 2 +- 6 files changed, 50 insertions(+), 48 deletions(-) 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/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/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/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