summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Cowering <cowering@users.noreply.github.com>2014-10-22 11:48:39 -0500
committer Cowering <cowering@users.noreply.github.com>2014-10-22 11:48:39 -0500
commitabd3f590e4ccd2f34647fb9854f2a65d90ab77fc (patch)
tree9d65372a5f3a942dd4ced15ac05385e06e70cc1b
parent3d2bf25dcf04a92c444c092dbb6bb00c08f1716f (diff)
parent3fbe8c843fce686d1d6af78b6bed8d7cb4f64a61 (diff)
Merge branch 'master' of https://github.com/mamedev/mame
-rw-r--r--.gitattributes1
-rw-r--r--.gitignore1
-rw-r--r--hash/megadriv.xml72
-rw-r--r--src/emu/bus/coco/coco_dwsock.c4
-rw-r--r--src/emu/bus/intv/ecs.c2
-rw-r--r--src/emu/machine/diablo_hd.h4
-rw-r--r--src/emu/sound/ay8910.c39
-rw-r--r--src/emu/video/upd7220.c2
-rw-r--r--src/mame/drivers/champbwl.c31
-rw-r--r--src/mame/drivers/mcr.c32
-rw-r--r--src/mame/drivers/naomi.c8
-rw-r--r--src/mame/drivers/rainbow.c4
-rw-r--r--src/mame/drivers/suna8.c119
-rw-r--r--src/mame/drivers/tmnt.c37
-rw-r--r--src/mame/includes/suna8.h9
-rw-r--r--src/mame/mame.lst2
-rw-r--r--src/mame/video/n64.c1
-rw-r--r--src/mess/drivers/apple2.c2
-rw-r--r--src/mess/drivers/pentagon.c8
-rw-r--r--src/mess/video/nes.c2
-rw-r--r--src/mess/video/spectrum.c13
-rw-r--r--src/osd/windows/windows.mak2
22 files changed, 248 insertions, 147 deletions
diff --git a/.gitattributes b/.gitattributes
index 5af4f0b6df5..8ed64ccc8cf 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,4 +1,5 @@
* text=auto !eol
+*.jed binary
*.png -text svneol=unset#image/png
*.txt svneol=native#text/plain
*.xml svneol=native#text/xml
diff --git a/.gitignore b/.gitignore
index 7b159471fc4..25555ffc5eb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@
/cfg
/depend_*.mak
/diff
+/ini
/nvram
/obj
/snap
diff --git a/hash/megadriv.xml b/hash/megadriv.xml
index f2b3dee340a..cc17ffcfa1a 100644
--- a/hash/megadriv.xml
+++ b/hash/megadriv.xml
@@ -17338,18 +17338,18 @@ but dumps still have to be confirmed.
<software name="madden98">
<description>Madden NFL 98 (USA)</description>
- <year>1997</year>
- <publisher>Electronic Arts</publisher>
- <part name="cart" interface="megadriv_cart">
- <feature name="slot" value="rom_sram"/>
- <dataarea name="rom" width="16" endianness="big" size="2097152">
- <rom name="madden nfl 98 (usa).bin" size="2097152" crc="e051ea62" sha1="761e0903798a8d0ad9e7ab72e6d2762fc9d366d2" offset="0x000000"/>
- </dataarea>
- <dataarea name="sram" size="65536"> <!-- Size to be confirmed. It does not work without SRAM. -->
- </dataarea>
- </part>
- </software>
-
+ <year>1997</year>
+ <publisher>Electronic Arts</publisher>
+ <part name="cart" interface="megadriv_cart">
+ <feature name="slot" value="rom_sram"/>
+ <dataarea name="rom" width="16" endianness="big" size="2097152">
+ <rom name="madden nfl 98 (usa).bin" size="2097152" crc="e051ea62" sha1="761e0903798a8d0ad9e7ab72e6d2762fc9d366d2" offset="0x000000"/>
+ </dataarea>
+ <dataarea name="sram" size="65536"> <!-- Size to be confirmed. It does not work without SRAM. -->
+ </dataarea>
+ </part>
+ </software>
+
<software name="madoumon">
<description>Madou Monogatari I (Jpn)</description>
<year>1996</year>
@@ -19663,18 +19663,18 @@ Notice that these are not working on real hardware due to bugged code with VDP i
<software name="nhl98">
<description>NHL 98 (USA)</description>
- <year>1997</year>
- <publisher>Electronic Arts</publisher>
- <part name="cart" interface="megadriv_cart">
- <feature name="slot" value="rom_sram"/>
- <dataarea name="rom" width="16" endianness="big" size="2097152">
- <rom name="nhl 98 (usa).bin" size="2097152" crc="7b64cd98" sha1="6771e9b660bde010cf28656cafb70f69249a3591" offset="0x000000"/>
- </dataarea>
- <dataarea name="sram" size="65536"> <!-- Size to be confirmed. It does not work without SRAM. -->
- </dataarea>
- </part>
- </software>
-
+ <year>1997</year>
+ <publisher>Electronic Arts</publisher>
+ <part name="cart" interface="megadriv_cart">
+ <feature name="slot" value="rom_sram"/>
+ <dataarea name="rom" width="16" endianness="big" size="2097152">
+ <rom name="nhl 98 (usa).bin" size="2097152" crc="7b64cd98" sha1="6771e9b660bde010cf28656cafb70f69249a3591" offset="0x000000"/>
+ </dataarea>
+ <dataarea name="sram" size="65536"> <!-- Size to be confirmed. It does not work without SRAM. -->
+ </dataarea>
+ </part>
+ </software>
+
<software name="nhlasp03" cloneof="nhlas">
<description>NHL All-Star Hockey '95 (Prototype, 19941201-B)</description>
<year>1994</year>
@@ -30698,18 +30698,18 @@ Notice that these are not working on real hardware due to bugged code with VDP i
<software name="nhlpa2k3" cloneof="nhl98">
<description>NHLPA 2003 (Rus)</description>
- <year>199?</year>
- <publisher>&lt;unknown&gt;</publisher>
- <part name="cart" interface="megadriv_cart">
- <feature name="slot" value="rom_sram"/>
- <dataarea name="rom" width="16" endianness="big" size="2097152">
- <rom name="nhlpa 2003 (unl).bin" size="2097152" crc="4591571b" sha1="4e6dd50d0f671b89c4ce3f7d1a63ecb68208dc8e" offset="0x000000"/>
- </dataarea>
- <dataarea name="sram" size="65536"> <!-- Size to be confirmed. It does not work without SRAM. -->
- </dataarea>
- </part>
- </software>
-
+ <year>199?</year>
+ <publisher>&lt;unknown&gt;</publisher>
+ <part name="cart" interface="megadriv_cart">
+ <feature name="slot" value="rom_sram"/>
+ <dataarea name="rom" width="16" endianness="big" size="2097152">
+ <rom name="nhlpa 2003 (unl).bin" size="2097152" crc="4591571b" sha1="4e6dd50d0f671b89c4ce3f7d1a63ecb68208dc8e" offset="0x000000"/>
+ </dataarea>
+ <dataarea name="sram" size="65536"> <!-- Size to be confirmed. It does not work without SRAM. -->
+ </dataarea>
+ </part>
+ </software>
+
<software name="pcarib" cloneof="unchartd">
<description>Pirates of the Caribbean (Rus)</description>
<year>199?</year>
diff --git a/src/emu/bus/coco/coco_dwsock.c b/src/emu/bus/coco/coco_dwsock.c
index 176404da309..898872f645a 100644
--- a/src/emu/bus/coco/coco_dwsock.c
+++ b/src/emu/bus/coco/coco_dwsock.c
@@ -1,6 +1,8 @@
#include <stdio.h>
#include <stdlib.h>
+#ifdef __GNUC__
#include <unistd.h>
+#endif
#include <fcntl.h>
#include <sys/types.h>
@@ -23,7 +25,7 @@ const device_type COCO_DWSOCK = &device_creator<beckerport_device>;
INPUT_PORTS_START( coco_drivewire )
PORT_START(DRIVEWIRE_PORT_TAG)
PORT_CONFNAME( 0xffff, 65504, "Drivewire Server TCP Port")
- PORT_CHANGED_MEMBER(DEVICE_SELF, beckerport_device, beckerport_device::drivewire_port_changed, NULL )
+ PORT_CHANGED_MEMBER(DEVICE_SELF, beckerport_device, drivewire_port_changed, NULL )
PORT_CONFSETTING( 65500, "65500" )
PORT_CONFSETTING( 65501, "65501" )
PORT_CONFSETTING( 65502, "65502" )
diff --git a/src/emu/bus/intv/ecs.c b/src/emu/bus/intv/ecs.c
index 4400b5e8839..d9146a73495 100644
--- a/src/emu/bus/intv/ecs.c
+++ b/src/emu/bus/intv/ecs.c
@@ -151,7 +151,7 @@ UINT8 intv_ecs_device::intv_control_r(int hand)
}
break;
- case 1: /* disc == _fake_ analog */
+ case 4: /* disc == _fake_ analog */
x = m_discx[hand]->read();
y = m_discy[hand]->read();
diff --git a/src/emu/machine/diablo_hd.h b/src/emu/machine/diablo_hd.h
index 0de3970b5c9..f6ef1ab9ce2 100644
--- a/src/emu/machine/diablo_hd.h
+++ b/src/emu/machine/diablo_hd.h
@@ -175,6 +175,6 @@ private:
};
#define MCFG_DIABLO_DRIVES_ADD() \
- MCFG_DEVICE_ADD(DIABLO_HD_0, DIABLO_HD, ATTOSECONDS_TO_HZ(attotime::from_nsec(300).as_double())) \
- MCFG_DEVICE_ADD(DIABLO_HD_1, DIABLO_HD, ATTOSECONDS_TO_HZ(attotime::from_nsec(300).as_double()))
+ MCFG_DEVICE_ADD(DIABLO_HD_0, DIABLO_HD, 3333333) \
+ MCFG_DEVICE_ADD(DIABLO_HD_1, DIABLO_HD, 3333333)
#endif // !defined(_DIABLO_HD_DEVICE_)
diff --git a/src/emu/sound/ay8910.c b/src/emu/sound/ay8910.c
index 4dc95182a1d..ab954219845 100644
--- a/src/emu/sound/ay8910.c
+++ b/src/emu/sound/ay8910.c
@@ -431,17 +431,21 @@ static const ay8910_device::mosfet_param ay8910_mosfet_param =
INLINE void build_3D_table(double rl, const ay8910_device::ay_ym_param *par, const ay8910_device::ay_ym_param *par_env, int normalize, double factor, int zero_is_off, INT32 *tab)
{
- int j, j1, j2, j3, e, indx;
- double rt, rw, n;
double min = 10.0, max = 0.0;
dynamic_array<double> temp(8*32*32*32);
- for (e=0; e < 8; e++)
- for (j1=0; j1 < 32; j1++)
- for (j2=0; j2 < 32; j2++)
- for (j3=0; j3 < 32; j3++)
+ for (int e=0; e < 8; e++)
+ {
+ const ay8910_device::ay_ym_param *par_ch1 = (e & 0x01) ? par_env : par;
+ const ay8910_device::ay_ym_param *par_ch2 = (e & 0x02) ? par_env : par;
+ const ay8910_device::ay_ym_param *par_ch3 = (e & 0x04) ? par_env : par;
+
+ for (int j1=0; j1 < par_ch1->res_count; j1++)
+ for (int j2=0; j2 < par_ch2->res_count; j2++)
+ for (int j3=0; j3 < par_ch3->res_count; j3++)
{
+ double n;
if (zero_is_off)
{
n = (j1 != 0 || (e & 0x01)) ? 1 : 0;
@@ -451,32 +455,33 @@ INLINE void build_3D_table(double rl, const ay8910_device::ay_ym_param *par, con
else
n = 3.0;
- rt = n / par->r_up + 3.0 / par->r_down + 1.0 / rl;
- rw = n / par->r_up;
+ double rt = n / par->r_up + 3.0 / par->r_down + 1.0 / rl;
+ double rw = n / par->r_up;
- rw += 1.0 / ( (e & 0x01) ? par_env->res[j1] : par->res[j1]);
- rt += 1.0 / ( (e & 0x01) ? par_env->res[j1] : par->res[j1]);
- rw += 1.0 / ( (e & 0x02) ? par_env->res[j2] : par->res[j2]);
- rt += 1.0 / ( (e & 0x02) ? par_env->res[j2] : par->res[j2]);
- rw += 1.0 / ( (e & 0x04) ? par_env->res[j3] : par->res[j3]);
- rt += 1.0 / ( (e & 0x04) ? par_env->res[j3] : par->res[j3]);
+ rw += 1.0 / par_ch1->res[j1];
+ rt += 1.0 / par_ch1->res[j1];
+ rw += 1.0 / par_ch2->res[j2];
+ rt += 1.0 / par_ch2->res[j2];
+ rw += 1.0 / par_ch3->res[j3];
+ rt += 1.0 / par_ch3->res[j3];
- indx = (e << 15) | (j3<<10) | (j2<<5) | j1;
+ int indx = (e << 15) | (j3<<10) | (j2<<5) | j1;
temp[indx] = rw / rt;
if (temp[indx] < min)
min = temp[indx];
if (temp[indx] > max)
max = temp[indx];
}
+ }
if (normalize)
{
- for (j=0; j < 32*32*32*8; j++)
+ for (int j=0; j < 32*32*32*8; j++)
tab[j] = MAX_OUTPUT * (((temp[j] - min)/(max-min))) * factor;
}
else
{
- for (j=0; j < 32*32*32*8; j++)
+ for (int j=0; j < 32*32*32*8; j++)
tab[j] = MAX_OUTPUT * temp[j];
}
diff --git a/src/emu/video/upd7220.c b/src/emu/video/upd7220.c
index f211eb84854..9d1ff062c09 100644
--- a/src/emu/video/upd7220.c
+++ b/src/emu/video/upd7220.c
@@ -1587,7 +1587,7 @@ void upd7220_device::update_graphics(bitmap_rgb32 &bitmap, const rectangle &clip
addr = ((sad << 1) & 0x3ffff) + (y * m_pitch * 2);
if (!m_display_cb.isnull())
- draw_graphics_line(bitmap, addr, y + (bsy >> !im), wd);
+ draw_graphics_line(bitmap, addr, y + (im ? bsy : (bsy >> 1)), wd);
}
}
else
diff --git a/src/mame/drivers/champbwl.c b/src/mame/drivers/champbwl.c
index 4213cac3398..89ddec1af4d 100644
--- a/src/mame/drivers/champbwl.c
+++ b/src/mame/drivers/champbwl.c
@@ -155,15 +155,23 @@ Notes:
#include "sound/x1_010.h"
#include "machine/nvram.h"
#include "machine/ticket.h"
-#include "includes/tnzs.h"
+#include "video/seta001.h"
-class champbwl_state : public tnzs_state
+class champbwl_state : public driver_device
{
public:
champbwl_state(const machine_config &mconfig, device_type type, const char *tag)
- : tnzs_state(mconfig, type, tag),
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_seta001(*this, "spritegen"),
+ m_palette(*this, "palette"),
m_x1(*this, "x1snd") { }
+ int m_screenflip;
+
+ required_device<cpu_device> m_maincpu;
+ required_device<seta001_device> m_seta001;
+ required_device<palette_device> m_palette;
required_device<x1_010_device> m_x1;
UINT8 m_last_trackball_val[2];
DECLARE_READ8_MEMBER(trackball_r);
@@ -172,12 +180,24 @@ public:
DECLARE_MACHINE_START(champbwl);
DECLARE_MACHINE_RESET(champbwl);
DECLARE_MACHINE_START(doraemon);
+ DECLARE_PALETTE_INIT(champbwl);
UINT32 screen_update_champbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_doraemon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void screen_eof_champbwl(screen_device &screen, bool state);
void screen_eof_doraemon(screen_device &screen, bool state);
};
+PALETTE_INIT_MEMBER(champbwl_state,champbwl)
+{
+ const UINT8 *color_prom = memregion("proms")->base();
+ int i, col;
+
+ for (i = 0; i < palette.entries(); i++)
+ {
+ col = (color_prom[i] << 8) + color_prom[i + 512];
+ palette.set_pen_color(i, pal5bit(col >> 10), pal5bit(col >> 5), pal5bit(col >> 0));
+ }
+}
READ8_MEMBER(champbwl_state::trackball_r)
@@ -443,7 +463,6 @@ MACHINE_START_MEMBER(champbwl_state,champbwl)
MACHINE_RESET_MEMBER(champbwl_state,champbwl)
{
m_screenflip = 0;
- m_mcu_type = -1;
m_last_trackball_val[0] = 0;
m_last_trackball_val[1] = 0;
@@ -497,7 +516,7 @@ static MACHINE_CONFIG_START( champbwl, champbwl_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", champbwl)
MCFG_PALETTE_ADD("palette", 512)
- MCFG_PALETTE_INIT_OWNER(champbwl_state,arknoid2)
+ MCFG_PALETTE_INIT_OWNER(champbwl_state,champbwl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -562,7 +581,7 @@ static MACHINE_CONFIG_START( doraemon, champbwl_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", champbwl)
MCFG_PALETTE_ADD("palette", 512)
- MCFG_PALETTE_INIT_OWNER(champbwl_state,arknoid2)
+ MCFG_PALETTE_INIT_OWNER(champbwl_state,champbwl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c
index ecb9b296f7e..667bd80399e 100644
--- a/src/mame/drivers/mcr.c
+++ b/src/mame/drivers/mcr.c
@@ -2248,6 +2248,37 @@ ROM_START( tron4 )
ROM_LOAD( "0066-314bx-xxqx.g12.bin", 0x0000, 0x0001, NO_DUMP)
ROM_END
+ROM_START( tronger )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* ROM's located on the Super CPU Board (90010) */
+ ROM_LOAD( "pro0.d2", 0x0000, 0x2000, CRC(ba14603d) SHA1(1cc30c4ea659926314343f00ccbcfe9021f4de26) )
+ ROM_LOAD( "scpu_pgb.d3", 0x2000, 0x2000, CRC(063a748f) SHA1(aefe647e9b562d6a9da1ec32a9d403fce7e62012) )// sldh
+ ROM_LOAD( "scpu_pgc.d4", 0x4000, 0x2000, CRC(6ca50365) SHA1(76e17284da7c3ddf752d67b5e80d3c145f64068e) )// sldh
+ ROM_LOAD( "scpu_pgd.d5", 0x6000, 0x2000, CRC(b5b241c9) SHA1(4a9bde02387365912b3e9878428c8aa1f87a365a) )// sldh
+ ROM_LOAD( "scpu_pge.d6", 0x8000, 0x2000, CRC(04597abe) SHA1(7a896b9415a2479da8519329568e5fb8a429d03e) )// sldh
+ ROM_LOAD( "scpu_pgf.d7", 0xa000, 0x2000, CRC(3908e404) SHA1(d61b73c87ba4b0ab8751d9c653b663b1342d5d73) )// sldh
+
+ ROM_REGION( 0x10000, "ssio:cpu", 0 ) /* ROM's located on the Super Sound I/O Board (90913) */
+ ROM_LOAD( "ssi_0a.a7", 0x0000, 0x1000, CRC(765e6eba) SHA1(42efeefc8571dfc237c0be3368248f1e56add92e) )
+ ROM_LOAD( "ssi_0b.a8", 0x1000, 0x1000, CRC(1b90ccdd) SHA1(0876e5eeaa63bb8cc97f3634a6ddd8a29a9b012f) )
+ ROM_LOAD( "ssi_0c.a9", 0x2000, 0x1000, CRC(3a4bc629) SHA1(ce8452a99a313ae7429de471bbea39de08c9fd4b) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 ) /* ROM's located on the Super CPU Board (90010) */
+ ROM_LOAD( "scpu_bgg.g3", 0x0000, 0x2000, CRC(1a9ed2f5) SHA1(b0d85b47873ac8ad475da18b9540d37232cb2b7c) )
+ ROM_LOAD( "scpu_bgh.g4", 0x2000, 0x2000, CRC(3220f974) SHA1(a38ea5f1db27f05d9689db838ce7a8de98f34837) )
+
+ ROM_REGION( 0x08000, "gfx2", 0 ) /* ROM's located on the MCR/II Video Gen Board (91399) */
+ ROM_LOAD( "vga.e1", 0x0000, 0x2000, CRC(bc036d1d) SHA1(c5d54d0b80ac768ccf6fdd32cad1ef6359fa324c) )
+ ROM_LOAD( "vgb.dc1", 0x2000, 0x2000, CRC(58ee14d3) SHA1(5fb4268c9c73bdfc3b1e866618979aea3f219bbc) )
+ ROM_LOAD( "vgc.cb1", 0x4000, 0x2000, CRC(3329f9d4) SHA1(11f4d744374e475d2c5b195a9f70888414529dd3) )
+ ROM_LOAD( "vga.a1", 0x6000, 0x2000, CRC(9743f873) SHA1(71ed80ecd8caaf9fce1d7010f95c4678c9bd7102) )
+
+ ROM_REGION( 0x0005, "scpu_pals", 0) /* PAL's located on the Super CPU Board (90010) */
+ ROM_LOAD( "0066-313bx-xxqx.a12.bin", 0x0000, 0x0001, NO_DUMP)
+ ROM_LOAD( "0066-315bx-xxqx.b12.bin", 0x0000, 0x0001, NO_DUMP)
+ ROM_LOAD( "0066-322bx-xx0x.e3.bin", 0x0000, 0x0001, NO_DUMP)
+ ROM_LOAD( "0066-316bx-xxqx.g11.bin", 0x0000, 0x0001, NO_DUMP)
+ ROM_LOAD( "0066-314bx-xxqx.g12.bin", 0x0000, 0x0001, NO_DUMP)
+ROM_END
ROM_START( kroozr )
ROM_REGION( 0x10000, "maincpu", 0 )
@@ -2903,6 +2934,7 @@ GAME( 1982, tron, 0, mcr_90010, tron, mcr_state, mcr_90010, R
GAME( 1982, tron2, tron, mcr_90010, tron, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (6/25)", GAME_SUPPORTS_SAVE )
GAME( 1982, tron3, tron, mcr_90010, tron3, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (6/17)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
GAME( 1982, tron4, tron, mcr_90010, tron3, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (6/15)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
+GAME( 1982, tronger, tron, mcr_90010, tron3, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (Germany)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
GAME( 1982, domino, 0, mcr_90010, domino, mcr_state, mcr_90010, ROT0, "Bally Midway", "Domino Man", GAME_SUPPORTS_SAVE )
GAME( 1982, wacko, 0, mcr_90010, wacko, mcr_state, wacko, ROT0, "Bally Midway", "Wacko", GAME_SUPPORTS_SAVE )
GAME( 1984, twotigerc,twotiger, mcr_90010, twotigrc, mcr_state, mcr_90010, ROT0, "Bally Midway", "Two Tigers (Tron conversion)", GAME_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c
index ad63aacc3d5..1e439fd66be 100644
--- a/src/mame/drivers/naomi.c
+++ b/src/mame/drivers/naomi.c
@@ -438,7 +438,7 @@ Games known to use this PCB include....
Sticker EPROM MASKROMs 25LC040 A54SX32
Game on cart IC11# # of SOP44 IC13S# IC1# Notes
----------------------------------------------------------------------------------------------------------------------------
-Club Kart Prize 840-0129C ? 16 (64Mb) present 317-0368-COM no sticker on ic11
+Club Kart Prize 840-0129C 24082A 16 (64Mb) present 317-0368-COM
Club Kart Prize Ver. B 840-0137C 24149 16 (64Mb) present 317-0368-COM
Giant Gram 2000 840-0039C 23377 20 (64Mb) present 317-0296-COM
Kick '4' Cash 840-0140C 24212 16 (64Mb) present 317-0397-COM
@@ -2852,7 +2852,9 @@ Scan ROM for the text string "LOADING TEST MODE NOW" back up four (4) bytes for
ROM_SYSTEM_BIOS( 0, "bios0", "HOTD2 (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 0, "epr-21331.ic27", 0x000000, 0x200000, CRC(065f8500) SHA1(49a3881e8d76f952ef5e887200d77b4a415d47fe) ) \
ROM_SYSTEM_BIOS( 1, "bios1", "HOTD2 (USA)" ) \
- ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-21330.ic27", 0x000000, 0x200000, CRC(9e3bfa1b) SHA1(b539d38c767b0551b8e7956c1ff795de8bbe2fbc) )
+ ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-21330.ic27", 0x000000, 0x200000, CRC(9e3bfa1b) SHA1(b539d38c767b0551b8e7956c1ff795de8bbe2fbc) ) \
+ ROM_SYSTEM_BIOS( 2, "bios2", "HOTD2 (Proto)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 2, "hotd2biosproto.ic27", 0x000000, 0x200000, CRC(ea74e967) SHA1(e4d037480eb6555d335a8ab9cd6c56122335586d) )
#define F355_BIOS \
ROM_REGION( 0x200000, "maincpu", 0) \
@@ -7937,7 +7939,7 @@ ROM_START( clubkprz )
NAOMI_DEFAULT_EEPROM
ROM_REGION( 0x9000000, "rom_board", ROMREGION_ERASEFF)
- ROM_LOAD( "epr-24065.ic11", 0x000000, 0x400000, CRC(7c331cb8) SHA1(f7e1cffbad576482a91bc1dc9129c689f0bebb25) )
+ ROM_LOAD( "epr-24082a.ic11", 0x000000, 0x400000, CRC(7c331cb8) SHA1(f7e1cffbad576482a91bc1dc9129c689f0bebb25) )
ROM_LOAD32_WORD( "opr-24066.17s", 0x1000000, 0x800000, CRC(b22cfa7b) SHA1(e0f795dc9d3a2dd1869f85f3eedd0f8d703a1be8) )
ROM_LOAD32_WORD( "opr-24067.18", 0x1000002, 0x800000, CRC(0d2d1290) SHA1(a26fa82fc87d6ed60095b2e778b649fcbb8bb1ee) )
ROM_LOAD32_WORD( "opr-24068.19s", 0x2000000, 0x800000, CRC(d320009b) SHA1(76677eacd18770d091fc19e31be3d84410ed3256) )
diff --git a/src/mame/drivers/rainbow.c b/src/mame/drivers/rainbow.c
index 7f1910b8da5..9d3e275e6ad 100644
--- a/src/mame/drivers/rainbow.c
+++ b/src/mame/drivers/rainbow.c
@@ -842,6 +842,7 @@ ROM_START( jumping )
ROM_REGION( 0x200, "pals", 0 )
ROM_LOAD( "jumping-pal16r6.bin", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) )
ROM_LOAD( "jumping-pal20l8.bin", 0x000, 0x144, CRC(76944f81) SHA1(ab78e4e157ffdc13aea5dc360268b2640e60d19c) )
+ ROM_LOAD( "pal16l8a.ic51.bin", 0x000, 0x104, CRC(c1e6cb8f) SHA1(9908e62bb9b806047b7a344bb62334bd696b9fc8) ) // z80 address decoder?
ROM_END
ROM_START( jumpinga )
@@ -873,7 +874,7 @@ ROM_START( jumpinga )
ROM_REGION( 0xa0000, "gfx2", ROMREGION_INVERT )
ROM_LOAD( "jb2_ic62", 0x00000, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
- ROM_LOAD( "jb2_ic61", 0x10000, 0x10000, CRC(37c5923b) SHA1(c83ef45564c56ef62d7019aecbd79dccc671deee) )
+ ROM_LOAD( "20.bin", 0x10000, 0x10000, CRC(89b3d8ee) SHA1(8491de6e8292e58b9a8696be15827bcb1ea42845) ) // dumped multiple times, always the same
ROM_LOAD( "jb2_ic60", 0x20000, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
ROM_LOAD( "jb2_ic78", 0x28000, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
ROM_LOAD( "jb2_ic77", 0x38000, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
@@ -888,6 +889,7 @@ ROM_START( jumpinga )
ROM_REGION( 0x200, "pals", 0 )
ROM_LOAD( "jumping-pal16r6.bin", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) )
ROM_LOAD( "jumping-pal20l8.bin", 0x000, 0x144, CRC(76944f81) SHA1(ab78e4e157ffdc13aea5dc360268b2640e60d19c) )
+ ROM_LOAD( "pal16l8a.ic51.bin", 0x000, 0x104, CRC(c1e6cb8f) SHA1(9908e62bb9b806047b7a344bb62334bd696b9fc8) ) // z80 address decoder?
ROM_END
diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c
index 450f7046d3c..3d3cb21d812 100644
--- a/src/mame/drivers/suna8.c
+++ b/src/mame/drivers/suna8.c
@@ -86,14 +86,11 @@ DRIVER_INIT_MEMBER(suna8_state,hardhedb)
UINT8 *suna8_state::brickzn_decrypt()
{
- address_space &space = m_maincpu->space(AS_PROGRAM);
UINT8 *RAM = memregion("maincpu")->base();
size_t size = memregion("maincpu")->bytes();
UINT8 *decrypt = auto_alloc_array(machine(), UINT8, size);
int i;
- space.set_decrypted_region(0x0000, 0x7fff, decrypt);
-
/* Opcodes and data */
for (i = 0; i < 0x50000; i++)
{
@@ -133,80 +130,59 @@ UINT8 *suna8_state::brickzn_decrypt()
DRIVER_INIT_MEMBER(suna8_state,brickzn)
{
- UINT8 *RAM = memregion("maincpu")->base();
- UINT8 *decrypt = brickzn_decrypt();
- int i;
-
- // Opcodes decrypted as data (to do: activated at run-time)
- for (i = 0; i < 0x8000; i++)
- {
- if ( ((i >= 0x072b) && (i <= 0x076f)) ||
- ((i >= 0x45c5) && (i <= 0x45e4)) ||
- ((i >= 0x7393) && (i <= 0x73ba)) ||
- ((i >= 0x7a79) && (i <= 0x7aa9)) )
- {
- decrypt[i] = RAM[i];
- }
- }
+ m_decrypt = brickzn_decrypt();
// !!!!!! PATCHES !!!!!!
// To do: ROM banking should be disabled here
- decrypt[0x11bb] = 0x00; // LD ($C040),A -> NOP
- decrypt[0x11bc] = 0x00; // LD ($C040),A -> NOP
- decrypt[0x11bd] = 0x00; // LD ($C040),A -> NOP
+ m_decrypt[0x11bb] = 0x00; // LD ($C040),A -> NOP
+ m_decrypt[0x11bc] = 0x00; // LD ($C040),A -> NOP
+ m_decrypt[0x11bd] = 0x00; // LD ($C040),A -> NOP
- decrypt[0x3349] = 0xc9; // RET Z -> RET (to avoid: jp $C800)
+ m_decrypt[0x3349] = 0xc9; // RET Z -> RET (to avoid: jp $C800)
// NMI enable / source??
- decrypt[0x1431] = 0xc9; // HALT -> RET
- decrypt[0x24b5] = 0x00; // HALT -> NOP
- decrypt[0x2593] = 0x00; // HALT -> NOP
+ m_decrypt[0x1431] = 0xc9; // HALT -> RET
+ m_decrypt[0x24b5] = 0x00; // HALT -> NOP
+ m_decrypt[0x2593] = 0x00; // HALT -> NOP
+
+ // Non-banked opcodes
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ space.set_decrypted_region(0x0000, 0x7fff, m_decrypt);
// Data banks: 00-0f normal data decryption, 10-1f alternate data decryption:
membank("bank1")->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000);
// Opcode banks: 00-1f normal opcode decryption:
- membank("bank1")->configure_decrypted_entries(0, 16, decrypt + 0x10000, 0x4000);
- membank("bank1")->configure_decrypted_entries(16, 16, decrypt + 0x10000, 0x4000);
+ membank("bank1")->configure_decrypted_entries(0, 16, m_decrypt + 0x10000, 0x4000);
+ membank("bank1")->configure_decrypted_entries(16, 16, m_decrypt + 0x10000, 0x4000);
}
DRIVER_INIT_MEMBER(suna8_state,brickznv4)
{
- UINT8 *RAM = memregion("maincpu")->base();
- UINT8 *decrypt = brickzn_decrypt();
- int i;
-
- // Opcodes decrypted as data (to do: activated at run-time)
- for (i = 0; i < 0x8000; i++)
- {
- if ( ((i >= 0x072b) && (i <= 0x076f)) ||
- ((i >= 0x4541) && (i <= 0x4560)) ||
- ((i >= 0x72f3) && (i <= 0x7322)) ||
- ((i >= 0x79d9) && (i <= 0x7a09)) )
- {
- decrypt[i] = RAM[i];
- }
- }
-
+ m_decrypt = brickzn_decrypt();
// !!!!!! PATCHES !!!!!!
// To do: ROM banking should be disabled here
- decrypt[0x1190] = 0x00; // LD ($C040),A -> NOP
- decrypt[0x1191] = 0x00; // LD ($C040),A -> NOP
- decrypt[0x1192] = 0x00; // LD ($C040),A -> NOP
+ m_decrypt[0x1190] = 0x00; // LD ($C040),A -> NOP
+ m_decrypt[0x1191] = 0x00; // LD ($C040),A -> NOP
+ m_decrypt[0x1192] = 0x00; // LD ($C040),A -> NOP
- decrypt[0x3337] = 0xc9; // RET Z -> RET (to avoid: jp $C800)
+ m_decrypt[0x3337] = 0xc9; // RET Z -> RET (to avoid: jp $C800)
// NMI enable / source??
- decrypt[0x1406] = 0xc9; // HALT -> RET
- decrypt[0x2487] = 0x00; // HALT -> NOP
- decrypt[0x256c] = 0x00; // HALT -> NOP
+ m_decrypt[0x1406] = 0xc9; // HALT -> RET
+ m_decrypt[0x2487] = 0x00; // HALT -> NOP
+ m_decrypt[0x256c] = 0x00; // HALT -> NOP
+
+ // Non-banked opcodes
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ space.set_decrypted_region(0x0000, 0x7fff, m_decrypt);
// Data banks: 00-0f normal data decryption, 10-1f alternate data decryption:
membank("bank1")->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000);
// Opcode banks: 00-1f normal opcode decryption:
- membank("bank1")->configure_decrypted_entries(0, 16, decrypt + 0x10000, 0x4000);
- membank("bank1")->configure_decrypted_entries(16, 16, decrypt + 0x10000, 0x4000);
+ membank("bank1")->configure_decrypted_entries(0, 16, m_decrypt + 0x10000, 0x4000);
+ membank("bank1")->configure_decrypted_entries(16, 16, m_decrypt + 0x10000, 0x4000);
}
@@ -700,7 +676,9 @@ READ8_MEMBER(suna8_state::brickzn_cheats_r)
*/
WRITE8_MEMBER(suna8_state::brickzn_multi_w)
{
- if ((m_protection_val & 0xfc) == 0x88 || (m_protection_val & 0xfc) == 0x8c)
+ int protselect = m_protection_val & 0xfc;
+
+ if ((protselect == 0x88) || (protselect == 0x8c))
{
m_palettebank = data & 0x01;
@@ -713,7 +691,7 @@ WRITE8_MEMBER(suna8_state::brickzn_multi_w)
logerror("CPU #0 - PC %04X: soundlatch = %02X\n",space.device().safe_pc(),data);
}
- else if ((m_protection_val & 0xfc) == 0x04)
+ else if (protselect == 0x04)
{
set_led_status(machine(), 0, data & 0x01);
set_led_status(machine(), 1, data & 0x02);
@@ -722,16 +700,7 @@ WRITE8_MEMBER(suna8_state::brickzn_multi_w)
logerror("CPU #0 - PC %04X: leds = %02X\n",space.device().safe_pc(),data);
if (data & ~0x07) logerror("CPU #0 - PC %04X: unknown leds bits: %02X\n",space.device().safe_pc(),data);
}
- else if ((m_protection_val & 0xfc) == 0x9c)
- {
- // controls opcode decryption
- // see code at 71b, 45b7, 7380, 7a6b
-
- // To be done: run-time opcode decryption change. Done in driver_init for now.
-
- logerror("CPU #0 - PC %04X: op-decrypt = %02X\n",space.device().safe_pc(),data);
- }
- else if ((m_protection_val & 0xfc) == 0x80)
+ else if (protselect == 0x80)
{
// disables rom banking?
// see code at 11b1:
@@ -742,6 +711,28 @@ WRITE8_MEMBER(suna8_state::brickzn_multi_w)
{
logerror("CPU #0 - PC %04X: ignore = %02X\n",space.device().safe_pc(),data);
}
+
+ if ((m_protection_val & 0x1f) == 0x1c)
+ {
+ // controls opcode decryption
+ // see code at 71b, 45b7, 7380, 7a6b
+ //printf("CPU #0 - PC %04X: alt op-decrypt tog = %02X\n",space.device().safe_pc(),data);
+ m_prot_opcode_toggle ^= 1;
+
+ if (m_prot_opcode_toggle == 0)
+ {
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ space.set_decrypted_region(0x0000, 0x7fff, m_decrypt);
+ }
+ else
+ {
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ space.set_decrypted_region(0x0000, 0x7fff, memregion("maincpu")->base());
+ }
+
+
+ }
+
}
/*
diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c
index 987bcab55fe..55b83b16dad 100644
--- a/src/mame/drivers/tmnt.c
+++ b/src/mame/drivers/tmnt.c
@@ -2894,6 +2894,42 @@ ROM_START( tmhta )
ROM_LOAD( "963a25.d5", 0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) )
ROM_END
+
+ROM_START( tmhtb ) // the code is closest to tmntua near the start, and the data is closest to all the UK sets, especially tmhta, so I'm guessing it's a UK revision of the tmntua codebase
+ ROM_REGION( 0x60000, "maincpu", 0 ) /* 2*128k and 2*64k for 68000 code */
+ ROM_LOAD16_BYTE( "unk3.i17", 0x00000, 0x20000, CRC(537eb047) SHA1(97e6dbc486c7d057355db7fcbdc0a2c2cad2c653) )
+ ROM_LOAD16_BYTE( "unk4.k17", 0x00001, 0x20000, CRC(5afae564) SHA1(8d5fbf9530ad8d095c12b7e0f8c499c1436c4d47) )
+ ROM_LOAD16_BYTE( "unk2.j15", 0x40000, 0x10000, CRC(ee34de05) SHA1(507d7fb178dbbe87dd373a81ad3f350ee2f7d923))
+ ROM_LOAD16_BYTE( "unk1.k15", 0x40001, 0x10000, NO_DUMP )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "963e20.g13", 0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) )
+
+ ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
+ ROM_LOAD32_WORD( "963a28.h27", 0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) )
+ ROM_LOAD32_WORD( "963a29.k27", 0x000002, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) )
+
+ ROM_REGION( 0x200000, "k051960", 0 ) /* sprites */
+ ROM_LOAD32_WORD( "963a17.h4", 0x000000, 0x80000, CRC(b5239a44) SHA1(84e94807e7c51aa652b4e4b827b36be59a53d0d6) )
+ ROM_LOAD32_WORD( "963a15.k4", 0x000002, 0x80000, CRC(1f324eed) SHA1(971a675578518fffa341a943d0cc4fdea005fde0) )
+ ROM_LOAD32_WORD( "963a18.h6", 0x100000, 0x80000, CRC(dd51adef) SHA1(5010c0911b0b9e4f23a785e8a751a0bde5be5be0) )
+ ROM_LOAD32_WORD( "963a16.k6", 0x100002, 0x80000, CRC(d4bd9984) SHA1(d780ae7f72e16767c3a492544f02f0f1a332ab22) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "963a30.g7", 0x0000, 0x0100, CRC(abd82680) SHA1(945a71e6ec65202f13209b45d45b616372d6c0f5) ) /* sprite address decoder */
+ ROM_LOAD( "963a31.g19", 0x0100, 0x0100, CRC(f8004a1c) SHA1(ed6694b8eebfe0238b50ebd05007d519f6e57b1b) ) /* priority encoder (not used) */
+
+ ROM_REGION( 0x20000, "k007232", 0 ) /* 128k for the samples */
+ ROM_LOAD( "963a26.c13", 0x00000, 0x20000, CRC(e2ac3063) SHA1(5bb294c46fb5eaba9935a18c0aa5d3931168f474) ) /* samples for 007232 */
+
+ ROM_REGION( 0x20000, "upd", 0 ) /* 128k for the samples */
+ ROM_LOAD( "963a27.d18", 0x00000, 0x20000, CRC(2dfd674b) SHA1(bbec5896c70056964fbc972a84bd5b0dfc6af257) ) /* samples for UPD7759C */
+
+ ROM_REGION( 0x80000, "title", 0 ) /* 512k for the title music sample */
+ ROM_LOAD( "963a25.d5", 0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) )
+ROM_END
+
+
ROM_START( tmntj )
ROM_REGION( 0x60000, "maincpu", 0 ) /* 2*128k and 2*64k for 68000 code */
ROM_LOAD16_BYTE( "963_223.j17", 0x00000, 0x20000, CRC(0d34a5ff) SHA1(a387f3e7c727dc66ebb0e1f40e4ab8dc83f647e5) )
@@ -4066,6 +4102,7 @@ GAME( 1989, tmntu, tmnt, tmnt, tmnt, tmnt_state, tmnt,
GAME( 1989, tmntua, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, set 2)", GAME_SUPPORTS_SAVE )
GAME( 1989, tmht, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 1)", GAME_SUPPORTS_SAVE )
GAME( 1989, tmhta, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1989, tmhtb, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK?, unknown revision)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // incomplete dump
GAME( 1990, tmntj, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Japan 4 Players)", GAME_SUPPORTS_SAVE )
GAME( 1989, tmht2p, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, set 1)", GAME_SUPPORTS_SAVE )
GAME( 1989, tmht2pa, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, set 2)", GAME_SUPPORTS_SAVE )
diff --git a/src/mame/includes/suna8.h b/src/mame/includes/suna8.h
index 466471c0cb4..2b886eebe95 100644
--- a/src/mame/includes/suna8.h
+++ b/src/mame/includes/suna8.h
@@ -16,7 +16,10 @@ public:
m_samples(*this, "samples"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+
+ m_prot_opcode_toggle(0)
+ { }
required_device<cpu_device> m_maincpu;
optional_shared_ptr<UINT8> m_hardhead_ip;
@@ -41,7 +44,9 @@ public:
UINT8 m_nmi_enable;
UINT8 m_spritebank_latch;
UINT8 m_write_disable;
-
+ UINT8 m_prot_opcode_toggle;
+ UINT8* m_decrypt;
+
enum GFXBANK_TYPE_T
{
GFXBANK_TYPE_SPARKMAN,
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 9fbf1e7f640..25ab653103d 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -1646,6 +1646,7 @@ tron // (c) 1982
tron2 // (c) 1982
tron3 // (c) 1982
tron4 // (c) 1982
+tronger // (c) 1982
kroozr // (c) 1982
domino // (c) 1982
wacko // (c) 1982
@@ -6437,6 +6438,7 @@ tmntu // GX963 (c) 1989 (US)
tmntua // GX963 (c) 1989 (US)
tmht // GX963 (c) 1989 (UK)
tmhta // GX963 (c) 1989 (UK)
+tmhtb // GX963 (c) 1989 (UK?)
tmntj // GX963 (c) 1990 (Japan)
tmht2p // GX963 (c) 1989 (UK)
tmht2pa // GX963 (c) 1989 (UK)
diff --git a/src/mame/video/n64.c b/src/mame/video/n64.c
index 3d5592c1fa0..6edb92cb2c9 100644
--- a/src/mame/video/n64.c
+++ b/src/mame/video/n64.c
@@ -23,7 +23,6 @@ TODO:
*******************************************************************************/
#include "emu.h"
-#include "includes/n64.h"
#include "video/n64.h"
#define LOG_RDP_EXECUTION 0
diff --git a/src/mess/drivers/apple2.c b/src/mess/drivers/apple2.c
index e69ecef172c..ba8766c5cd4 100644
--- a/src/mess/drivers/apple2.c
+++ b/src/mess/drivers/apple2.c
@@ -1790,7 +1790,7 @@ COMP( 1988, las128e2, apple2c, 0, laser128ex2, apple2e, driver_device,
COMP( 1985, apple2c0, apple2c, 0, apple2c_iwm, apple2e, driver_device, 0, "Apple Computer", "Apple //c (UniDisk 3.5)", GAME_SUPPORTS_SAVE )
COMP( 1986, apple2c3, apple2c, 0, apple2c_iwm, apple2e, driver_device, 0, "Apple Computer", "Apple //c (Original Memory Expansion)", GAME_SUPPORTS_SAVE )
COMP( 1986, apple2c4, apple2c, 0, apple2c_iwm, apple2e, driver_device, 0, "Apple Computer", "Apple //c (rev 4)", GAME_SUPPORTS_SAVE )
-COMP( 1988, apple2cp, apple2c, 0, apple2cp, apple2e, driver_device, 0, "Apple Computer", "Apple //c Plus", GAME_SUPPORTS_SAVE )
+COMP( 1988, apple2cp, apple2c, 0, apple2cp, apple2e, driver_device, 0, "Apple Computer", "Apple //c Plus", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
COMP( 1984, ivelultr, apple2, 0, apple2p, apple2p, driver_device, 0, "Ivasim", "Ivel Ultra", GAME_SUPPORTS_SAVE )
COMP( 1983, agat7, apple2, 0, apple2p, apple2p, driver_device, 0, "Agat", "Agat-7", GAME_NOT_WORKING) // disk controller ROM JSRs to $FCA8 which is a delay on apple II, illegal instruction crash here :(
COMP( 1984, agat9, apple2, 0, apple2p, apple2p, driver_device, 0, "Agat", "Agat-9", GAME_NOT_WORKING)
diff --git a/src/mess/drivers/pentagon.c b/src/mess/drivers/pentagon.c
index bce9ba0f1fc..7a0be7731fe 100644
--- a/src/mess/drivers/pentagon.c
+++ b/src/mess/drivers/pentagon.c
@@ -234,6 +234,14 @@ static MACHINE_CONFIG_DERIVED_CLASS( pentagon, spectrum_128, pentagon_state )
MCFG_BETA_DISK_ADD(BETA_DISK_TAG)
MCFG_GFXDECODE_MODIFY("gfxdecode", pentagon)
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+
+ MCFG_SOUND_REPLACE("ay8912", AY8912, XTAL_14MHz / 8)
+ MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
+ MCFG_SOUND_ROUTE(1, "lspeaker", 0.25)
+ MCFG_SOUND_ROUTE(1, "rspeaker", 0.25)
+ MCFG_SOUND_ROUTE(2, "rspeaker", 0.50)
+
MCFG_SOFTWARE_LIST_ADD("cass_list_pen","pentagon_cass")
MACHINE_CONFIG_END
diff --git a/src/mess/video/nes.c b/src/mess/video/nes.c
index 64cb116df1e..0105c740e2b 100644
--- a/src/mess/video/nes.c
+++ b/src/mess/video/nes.c
@@ -50,7 +50,7 @@ UINT32 nes_state::screen_update_nes(screen_device &screen, bitmap_ind16 &bitmap,
m_last_frame_flip = 1;
}
- if (!m_io_disksel->read_safe(1) & 0x01)
+ if (!(m_io_disksel->read_safe(1) & 0x01))
m_last_frame_flip = 0;
}
return 0;
diff --git a/src/mess/video/spectrum.c b/src/mess/video/spectrum.c
index 886974452c1..f26edf19cd0 100644
--- a/src/mess/video/spectrum.c
+++ b/src/mess/video/spectrum.c
@@ -197,22 +197,17 @@ void spectrum_state::spectrum_UpdateBorderBitmap()
do
{
- if (m_previous_border_y < height)
- {
- UINT16* bm = &m_border_bitmap.pix16(m_previous_border_y);
-
- if (m_previous_border_x < width)
- bm[m_previous_border_x] = colour;
- }
+ UINT16* bm = &m_border_bitmap.pix16(m_previous_border_y);
+ bm[m_previous_border_x] = colour;
m_previous_border_x += 1;
- if (m_previous_border_x > width)
+ if (m_previous_border_x >= width)
{
m_previous_border_x = 0;
m_previous_border_y += 1;
- if (m_previous_border_y > height)
+ if (m_previous_border_y >= height)
{
m_previous_border_y = 0;
}
diff --git a/src/osd/windows/windows.mak b/src/osd/windows/windows.mak
index fd06d406632..c4408475554 100644
--- a/src/osd/windows/windows.mak
+++ b/src/osd/windows/windows.mak
@@ -185,7 +185,7 @@ endif
endif
ifdef MSVC_ANALYSIS
-CCOMFLAGS += /analyze /wd6011 /wd6328 /wd6204 /wd6244 /wd6385 /wd6308 /wd6246 /wd6031 /wd6326 /wd6255 /wd6330 /wd28251 /wd6054 /wd6340 /wd28125 /wd6053 /wd6001 /wd6386 /wd28278 /wd6297 /wd28183 /wd28159 /wd28182 /wd6237 /wd6239 /wd6240 /wd6323 /wd28199 /wd6235 /wd6285 /wd6286 /wd6384 /wd6293 /analyze:stacksize384112
+CCOMFLAGS += /analyze /wd6011 /wd6328 /wd6204 /wd6244 /wd6385 /wd6308 /wd6246 /wd6031 /wd6326 /wd6255 /wd6330 /wd28251 /wd6054 /wd6340 /wd28125 /wd6053 /wd6001 /wd6386 /wd28278 /wd6297 /wd28183 /wd28159 /wd28182 /wd6237 /wd6239 /wd6240 /wd6323 /wd28199 /wd6235 /wd6285 /wd6286 /wd6384 /wd6293 /analyze:stacksize1070232
endif
# enable exception handling for C++