mirror of
https://github.com/holub/mame
synced 2025-05-28 16:43:04 +03:00
Merge branch 'master' of https://github.com/mamedev/mame
This commit is contained in:
commit
57503a8b88
@ -1472,4 +1472,18 @@ Possible Undumped protos: -
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="5200temp">
|
||||
<description>5200 Tempest</description>
|
||||
<year>2012</year>
|
||||
<publisher>Atariage</publisher> <!-- unlicensed? -->
|
||||
<info name="developer" value="Keithen" />
|
||||
<part name="cart" interface="a8bit_cart">
|
||||
<feature name="slot" value="a5200" />
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="tempest (atariage).bin" size="32768" crc="a6400e17" sha1="0cb2bd6ed89ce6710ac092533a24f1248688c88c" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
||||
|
@ -21791,7 +21791,20 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="putter">
|
||||
|
||||
<software name="puttsqup" >
|
||||
<description>Putty Squad (prototype)</description>
|
||||
<year>1992</year>
|
||||
<publisher>System 3 / Ocean</publisher>
|
||||
<part name="cart" interface="megadriv_cart">
|
||||
<dataarea name="rom" width="16" endianness="big" size="0x100000">
|
||||
<rom name="PS-md.BIN" size="0x100000" crc="2348da80" sha1="f529598f56c581854d2bde2ee960100273813539" offset="0x000000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="putter">
|
||||
<description>Putter Golf (Jpn, SegaNet)</description>
|
||||
<year>1991</year>
|
||||
<publisher>Sega</publisher>
|
||||
|
@ -709,7 +709,97 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Homebrew released at http://spectralinterlude.com/#download for use on real systems & emulators -->
|
||||
<software name="castlvsi">
|
||||
<description>Castlevania - Spectral Interlude (v1.1, English, 128K)</description>
|
||||
<year>2015</year>
|
||||
<publisher>Rewind</publisher>
|
||||
<part name="cass" interface="spectrum_cass">
|
||||
<dataarea name="cass" size="126394">
|
||||
<rom name="castlevania_si_en_v11.tap" size="126394" crc="c100bb38" sha1="ba89e73dbc16621fc52f886c6b1abb2d6a93ffc7" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="castlvsiru" cloneof="castlevsi">
|
||||
<description>Castlevania - Spectral Interlude (v1.1, Russian, 128K)</description>
|
||||
<year>2015</year>
|
||||
<publisher>Rewind</publisher>
|
||||
<part name="cass" interface="spectrum_cass">
|
||||
<dataarea name="cass" size="127054">
|
||||
<rom name="castlevania_si_ru_v11.tap" size="127054" crc="45561b70" sha1="b44b7e93c8fbf74d23ad694182d99e5a5ec01f98" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="castlvsipl" cloneof="castlevsi">
|
||||
<description>Castlevania - Spectral Interlude (v1.1, Polish, 128K)</description>
|
||||
<year>2015</year>
|
||||
<publisher>Rewind</publisher>
|
||||
<part name="cass" interface="spectrum_cass">
|
||||
<dataarea name="cass" size="127378">
|
||||
<rom name="castlevania_si_pl_v11.tap" size="127378" crc="2f11f5bd" sha1="4f4448f6f70eebdf6af81977cac61d0f41b7744f" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="castlvsies" cloneof="castlevsi">
|
||||
<description>Castlevania - Spectral Interlude (v1.1, Spanish, 128K)</description>
|
||||
<year>2015</year>
|
||||
<publisher>Rewind</publisher>
|
||||
<part name="cass" interface="spectrum_cass">
|
||||
<dataarea name="cass" size="126950">
|
||||
<rom name="castlevania_si_es_v11.tap" size="126950" crc="27e8ae63" sha1="1dced2991e51854fdf31fe323aa6ee75b25d55a2" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="castlvsiit" cloneof="castlevsi">
|
||||
<description>Castlevania - Spectral Interlude (v1.1, Italian, 128K)</description>
|
||||
<year>2015</year>
|
||||
<publisher>Rewind</publisher>
|
||||
<part name="cass" interface="spectrum_cass">
|
||||
<dataarea name="cass" size="127355">
|
||||
<rom name="castlevania_si_it_v11.tap" size="127355" crc="d9a89fc5" sha1="885d3489c94937b0db8a536a1aa6435629942d77" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="castlvsi10" cloneof="castlevsi">
|
||||
<description>Castlevania - Spectral Interlude (v1.0, English, 128K)</description>
|
||||
<year>2015</year>
|
||||
<publisher>Rewind</publisher>
|
||||
<part name="cass" interface="spectrum_cass">
|
||||
<dataarea name="cass" size="126410">
|
||||
<rom name="castlevania_si_en_v10.tap" size="126410" crc="0d022bc5" sha1="450dfd57ea7407f47bbfd785d981e4a92e166029" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="castlvsiru10" cloneof="castlevsi">
|
||||
<description>Castlevania - Spectral Interlude (v1.0, Russian, 128K)</description>
|
||||
<year>2015</year>
|
||||
<publisher>Rewind</publisher>
|
||||
<part name="cass" interface="spectrum_cass">
|
||||
<dataarea name="cass" size="127066">
|
||||
<rom name="castlevania_si_ru_v10.tap" size="127066" crc="2dceb444" sha1="10ca28195652a9f3f20a48e8e761f0dd138abcf6" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="castlvsipl10" cloneof="castlevsi">
|
||||
<description>Castlevania - Spectral Interlude (v1.0, Polish, 128K)</description>
|
||||
<year>2015</year>
|
||||
<publisher>Rewind</publisher>
|
||||
<part name="cass" interface="spectrum_cass">
|
||||
<dataarea name="cass" size="127361">
|
||||
<rom name="castlevania_si_pl_v10.tap" size="127361" crc="e8dc0e6b" sha1="4802a4cef916466ccbf25cabb3f447db17b802bd" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- V1.0 doesn't exist in Spanish? or Italian (translations were made after the 1.1 release) -->
|
||||
|
||||
</softwarelist>
|
||||
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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));
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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")
|
||||
|
@ -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")
|
||||
|
@ -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 )
|
||||
|
@ -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<UINT8> m_bg_videoram;
|
||||
|
@ -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;
|
||||
|
@ -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 );
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user