summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2008-02-05 08:20:32 +0000
committer Aaron Giles <aaron@aarongiles.com>2008-02-05 08:20:32 +0000
commiteff321318a186c422d1daf8abfd8c7527d1733dd (patch)
tree58dfd7cf174ace1616ca52531a79ca7798cff4b5
parent662dea1a211f74a73f3e9e5f749fa819ec9cdb5d (diff)
Small collection of fixes from post-0.122u8:
r573 | andrewga | 2008-02-03 01:14:51 -0800 (Sun, 03 Feb 2008) | 5 lines Fixes error: pool_object_add (via src/emu/debug/debugcmt.c:107): Attempted to add a NULL object of size 0 This was happening when mame_debug_init was being called with 0 CPUs (eg. when starting MAME from the command line without a ROMset specified). -- r579 | rbelmont | 2008-02-03 13:20:45 -0800 (Sun, 03 Feb 2008) | 2 lines [ARM7] Fixed PSR transfers. -- r580 | aarongil | 2008-02-03 13:27:10 -0800 (Sun, 03 Feb 2008) | 2 lines Minor typo wreaks major havoc. Story at 11. -- r581 | aarongil | 2008-02-03 13:38:52 -0800 (Sun, 03 Feb 2008) | 2 lines Fixed ADPCM in m62 games. Some additional cleanup. -- r583 | pierpaol | 2008-02-03 15:04:55 -0800 (Sun, 03 Feb 2008) | 1 line Fixed palette gradient for promutrv -- r584 | nathanwo | 2008-02-03 16:02:55 -0800 (Sun, 03 Feb 2008) | 3 lines Fixing #include order in sid.c -- r592 | aarongil | 2008-02-04 23:45:17 -0800 (Mon, 04 Feb 2008) | 2 lines Fixed watchdogs when not explicitly specified. -- r593 | aarongil | 2008-02-04 23:50:37 -0800 (Mon, 04 Feb 2008) | 2 lines Fix sprite placement again in chinagat drivers. -- r594 | aarongil | 2008-02-04 23:57:36 -0800 (Mon, 04 Feb 2008) | 2 lines Fixed incorrect default screen size computations.
-rw-r--r--src/emu/cpu/arm7/arm7core.c4
-rw-r--r--src/emu/cpuexec.c3
-rw-r--r--src/emu/debug/debugcmt.c15
-rw-r--r--src/emu/sound/sid.c2
-rw-r--r--src/mame/audio/irem.c153
-rw-r--r--src/mame/drivers/chinagat.c4
-rw-r--r--src/mame/drivers/ettrivia.c20
-rw-r--r--src/mame/drivers/midyunit.c4
-rw-r--r--src/mame/drivers/ms32.c48
-rw-r--r--src/mame/mamedriv.c2
-rw-r--r--src/mame/video/ddragon.c2
-rw-r--r--src/mame/video/ms32.c1
12 files changed, 199 insertions, 59 deletions
diff --git a/src/emu/cpu/arm7/arm7core.c b/src/emu/cpu/arm7/arm7core.c
index 71c881fd4b8..7ca7873ae14 100644
--- a/src/emu/cpu/arm7/arm7core.c
+++ b/src/emu/cpu/arm7/arm7core.c
@@ -1202,10 +1202,10 @@ static void HandlePSRTransfer( UINT32 insn )
newval |= 0x10;
//Update the Register
- SET_REGISTER(reg, val);
+ SET_REGISTER(reg, newval);
//Switch to new mode if changed
- if( (val & MODE_FLAG) != oldmode)
+ if( (newval & MODE_FLAG) != oldmode)
SwitchMode(GET_MODE);
}
diff --git a/src/emu/cpuexec.c b/src/emu/cpuexec.c
index f0f311a5c7e..11d0eb766ee 100644
--- a/src/emu/cpuexec.c
+++ b/src/emu/cpuexec.c
@@ -261,6 +261,7 @@ static void cpuexec_reset(running_machine *machine)
/* set up the watchdog timer; only start off enabled if explicitly configured */
watchdog_enabled = (machine->drv->watchdog_vblank_count != 0 || attotime_compare(machine->drv->watchdog_time, attotime_zero) != 0);
watchdog_reset(machine);
+ watchdog_enabled = TRUE;
/* first pass over CPUs */
for (cpunum = 0; cpunum < cpu_gettotalcpu(); cpunum++)
@@ -653,7 +654,7 @@ static void cpunum_suspend_until_trigger(int cpunum, int trigger, int eatcycles)
cpunum_suspend(cpunum, SUSPEND_REASON_TRIGGER, eatcycles);
/* set the trigger */
- cpu[cpunum].trigger = TRIGGER_TIMESLICE;
+ cpu[cpunum].trigger = trigger;
}
diff --git a/src/emu/debug/debugcmt.c b/src/emu/debug/debugcmt.c
index 0a61da1d022..e8ce725d924 100644
--- a/src/emu/debug/debugcmt.c
+++ b/src/emu/debug/debugcmt.c
@@ -103,14 +103,17 @@ static void debug_comment_free(void);
int debug_comment_init(running_machine *machine)
{
- /* allocate enough comment groups for the total # of cpu's */
- debug_comments = (comment_group*) auto_malloc(cpu_gettotalcpu() * sizeof(comment_group));
- memset(debug_comments, 0, cpu_gettotalcpu() * sizeof(comment_group));
+ if (cpu_gettotalcpu() > 0)
+ {
+ /* allocate enough comment groups for the total # of cpu's */
+ debug_comments = (comment_group*) auto_malloc(cpu_gettotalcpu() * sizeof(comment_group));
+ memset(debug_comments, 0, cpu_gettotalcpu() * sizeof(comment_group));
- /* automatically load em up */
- debug_comment_load();
+ /* automatically load em up */
+ debug_comment_load();
- add_exit_callback(machine, debug_comment_exit);
+ add_exit_callback(machine, debug_comment_exit);
+ }
return 1;
}
diff --git a/src/emu/sound/sid.c b/src/emu/sound/sid.c
index ac61b278666..f56be4e3c40 100644
--- a/src/emu/sound/sid.c
+++ b/src/emu/sound/sid.c
@@ -12,11 +12,11 @@
MOS-8580 R5 combined waveforms recorded by Dennis "Deadman" Lindroos.
*/
-#include "deprecat.h"
#include "sndintrf.h"
#include "sidvoice.h"
#include "sidenvel.h"
#include "sid.h"
+#include "deprecat.h"
static float *filterTable;
static float *bandPassParam;
diff --git a/src/mame/audio/irem.c b/src/mame/audio/irem.c
index 5851f813923..e537038cdea 100644
--- a/src/mame/audio/irem.c
+++ b/src/mame/audio/irem.c
@@ -1,3 +1,9 @@
+/***************************************************************************
+
+ Irem M52/M62 sound hardware
+
+***************************************************************************/
+
#include "driver.h"
#include "deprecat.h"
#include "irem.h"
@@ -5,9 +11,15 @@
#include "sound/ay8910.h"
#include "sound/msm5205.h"
-static UINT8 port1,port2;
+static UINT8 port1, port2;
+/*************************************
+ *
+ * Sound board initialization
+ *
+ *************************************/
+
static SOUND_START( irem_audio )
{
state_save_register_global(port1);
@@ -15,6 +27,14 @@ static SOUND_START( irem_audio )
}
+
+/*************************************
+ *
+ * External writes to the sound
+ * command register
+ *
+ *************************************/
+
WRITE8_HANDLER( irem_sound_cmd_w )
{
if ((data & 0x80) == 0)
@@ -24,18 +44,20 @@ WRITE8_HANDLER( irem_sound_cmd_w )
}
-static WRITE8_HANDLER( irem_sound_irq_ack_w )
-{
- cpunum_set_input_line(Machine, 1, 0, CLEAR_LINE);
-}
+/*************************************
+ *
+ * 6803 output ports
+ *
+ *************************************/
-static WRITE8_HANDLER( irem_port1_w )
+static WRITE8_HANDLER( m6803_port1_w )
{
port1 = data;
}
-static WRITE8_HANDLER( irem_port2_w )
+
+static WRITE8_HANDLER( m6803_port2_w )
{
/* write latch */
if ((port2 & 0x01) && !(data & 0x01))
@@ -62,7 +84,14 @@ static WRITE8_HANDLER( irem_port2_w )
}
-static READ8_HANDLER( irem_port1_r )
+
+/*************************************
+ *
+ * 6803 input ports ports
+ *
+ *************************************/
+
+static READ8_HANDLER( m6803_port1_r )
{
/* PSG 0 or 1? */
if (port2 & 0x08)
@@ -72,25 +101,54 @@ static READ8_HANDLER( irem_port1_r )
return 0xff;
}
-static READ8_HANDLER( irem_port2_r )
+
+static READ8_HANDLER( m6803_port2_r )
{
return 0;
}
-static WRITE8_HANDLER( irem_msm5205_w )
+/*************************************
+ *
+ * AY-8910 output ports
+ *
+ *************************************/
+
+static WRITE8_HANDLER( ay8910_0_portb_w )
{
/* bits 2-4 select MSM5205 clock & 3b/4b playback mode */
- MSM5205_playmode_w(0,(data >> 2) & 7);
- MSM5205_playmode_w(1,((data >> 2) & 4) | 3); /* always in slave mode */
+ MSM5205_playmode_w(0, (data >> 2) & 7);
+ MSM5205_playmode_w(1, ((data >> 2) & 4) | 3); /* always in slave mode */
/* bits 0 and 1 reset the two chips */
- MSM5205_reset_w(0,data & 1);
- MSM5205_reset_w(1,data & 2);
+ MSM5205_reset_w(0, data & 1);
+ MSM5205_reset_w(1, data & 2);
}
-static WRITE8_HANDLER( irem_adpcm_w )
+
+static WRITE8_HANDLER( ay8910_1_porta_w )
+{
+#ifdef MAME_DEBUG
+ if (data & 0x0f) popmessage("analog sound %x",data&0x0f);
+#endif
+}
+
+
+
+/*************************************
+ *
+ * Memory-mapped accesses
+ *
+ *************************************/
+
+static WRITE8_HANDLER( sound_irq_ack_w )
+{
+ cpunum_set_input_line(Machine, 1, 0, CLEAR_LINE);
+}
+
+
+static WRITE8_HANDLER( m52_adpcm_w )
{
if (offset & 1)
MSM5205_data_w(0, data);
@@ -98,7 +156,21 @@ static WRITE8_HANDLER( irem_adpcm_w )
MSM5205_data_w(1, data);
}
-static void irem_adpcm_int(int data)
+
+static WRITE8_HANDLER( m62_adpcm_w )
+{
+ MSM5205_data_w(offset, data);
+}
+
+
+
+/*************************************
+ *
+ * MSM5205 data ready signals
+ *
+ *************************************/
+
+static void adpcm_int(int data)
{
cpunum_set_input_line(Machine, 1, INPUT_LINE_NMI, PULSE_LINE);
@@ -107,33 +179,33 @@ static void irem_adpcm_int(int data)
MSM5205_vclk_w(1,0);
}
-static WRITE8_HANDLER( irem_analog_w )
-{
-#ifdef MAME_DEBUG
-if (data&0x0f) popmessage("analog sound %x",data&0x0f);
-#endif
-}
+/*************************************
+ *
+ * Sound interfaces
+ *
+ *************************************/
+
static const struct AY8910interface irem_ay8910_interface_1 =
{
soundlatch_r,
0,
0,
- irem_msm5205_w
+ ay8910_0_portb_w
};
static const struct AY8910interface irem_ay8910_interface_2 =
{
0,
0,
- irem_analog_w,
+ ay8910_1_porta_w,
0
};
static const struct MSM5205interface irem_msm5205_interface_1 =
{
- irem_adpcm_int, /* interrupt function */
+ adpcm_int, /* interrupt function */
MSM5205_S96_4B /* default to 4KHz, but can be changed at run time */
};
@@ -145,36 +217,49 @@ static const struct MSM5205interface irem_msm5205_interface_2 =
+/*************************************
+ *
+ * Address maps
+ *
+ *************************************/
+
/* complete address map verified from Moon Patrol/10 Yard Fight schematics */
/* large map uses 8k ROMs, small map uses 4k ROMs; this is selected via a jumper */
static ADDRESS_MAP_START( m52_small_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
- AM_RANGE(0x0000, 0x0fff) AM_WRITE(irem_adpcm_w)
- AM_RANGE(0x1000, 0x1fff) AM_WRITE(irem_sound_irq_ack_w)
+ AM_RANGE(0x0000, 0x0fff) AM_WRITE(m52_adpcm_w)
+ AM_RANGE(0x1000, 0x1fff) AM_WRITE(sound_irq_ack_w)
AM_RANGE(0x2000, 0x7fff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( m52_large_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_WRITE(irem_adpcm_w)
- AM_RANGE(0x2000, 0x3fff) AM_WRITE(irem_sound_irq_ack_w)
+ AM_RANGE(0x0000, 0x1fff) AM_WRITE(m52_adpcm_w)
+ AM_RANGE(0x2000, 0x3fff) AM_WRITE(sound_irq_ack_w)
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
/* complete address map verified from Kid Niki schematics */
static ADDRESS_MAP_START( m62_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0800, 0x0800) AM_MIRROR(0xf7fc) AM_WRITE(irem_sound_irq_ack_w)
- AM_RANGE(0x0801, 0x0802) AM_MIRROR(0xf7fc) AM_WRITE(irem_adpcm_w)
+ AM_RANGE(0x0800, 0x0800) AM_MIRROR(0xf7fc) AM_WRITE(sound_irq_ack_w)
+ AM_RANGE(0x0801, 0x0802) AM_MIRROR(0xf7fc) AM_WRITE(m62_adpcm_w)
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( irem_sound_portmap, ADDRESS_SPACE_IO, 8 )
- AM_RANGE(M6803_PORT1, M6803_PORT1) AM_READWRITE(irem_port1_r, irem_port1_w)
- AM_RANGE(M6803_PORT2, M6803_PORT2) AM_READWRITE(irem_port2_r, irem_port2_w)
+ AM_RANGE(M6803_PORT1, M6803_PORT1) AM_READWRITE(m6803_port1_r, m6803_port1_w)
+ AM_RANGE(M6803_PORT2, M6803_PORT2) AM_READWRITE(m6803_port2_r, m6803_port2_w)
ADDRESS_MAP_END
+
+/*************************************
+ *
+ * Machine drivers
+ *
+ *************************************/
+
MACHINE_DRIVER_START( irem_audio_base )
MDRV_SOUND_START(irem_audio)
@@ -229,5 +314,3 @@ MACHINE_DRIVER_START( m62_audio )
MDRV_CPU_MODIFY("iremsound")
MDRV_CPU_PROGRAM_MAP(m62_sound_map,0)
MACHINE_DRIVER_END
-
-
diff --git a/src/mame/drivers/chinagat.c b/src/mame/drivers/chinagat.c
index 59901cf98e1..694db04c890 100644
--- a/src/mame/drivers/chinagat.c
+++ b/src/mame/drivers/chinagat.c
@@ -560,7 +560,7 @@ static MACHINE_DRIVER_START( saiyugb1 )
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_SIZE(32*8, 32*8)
- MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
+ MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 29*8-1)
MDRV_GFXDECODE(chinagat)
MDRV_PALETTE_LENGTH(384)
@@ -603,7 +603,7 @@ static MACHINE_DRIVER_START( saiyugb2 )
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_SIZE(32*8, 32*8)
- MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
+ MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 29*8-1)
MDRV_GFXDECODE(chinagat)
MDRV_PALETTE_LENGTH(384)
diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c
index cf4c248a74e..4aac48bdaea 100644
--- a/src/mame/drivers/ettrivia.c
+++ b/src/mame/drivers/ettrivia.c
@@ -278,8 +278,8 @@ ROM_START( promutrv )
ROM_LOAD( "mt50ic.50", 0x1000, 0x1000, CRC(ee89d24e) SHA1(e3536df549278040255657201433ab23e0386533) )
ROM_REGION( 0x0200, REGION_PROMS, 0 )
- ROM_LOAD( "ic63.prm", 0x0000, 0x0100, CRC(749da5a8) SHA1(8e30f5b014bc8ff2dc4986ef35a979e525681cb9) ) /* palette low bits */
- ROM_LOAD( "ic64.prm", 0x0100, 0x0100, CRC(1cf9c914) SHA1(4c39b10c1be889d6ef4313b2112f4216d34f7327) ) /* palette high bits */
+ ROM_LOAD( "ic64.prm", 0x0000, 0x0100, CRC(1cf9c914) SHA1(4c39b10c1be889d6ef4313b2112f4216d34f7327) ) /* palette low bits */
+ ROM_LOAD( "ic63.prm", 0x0100, 0x0100, CRC(749da5a8) SHA1(8e30f5b014bc8ff2dc4986ef35a979e525681cb9) ) /* palette high bits */
ROM_REGION( 0x40000, REGION_USER1, 0 ) /* Question roms */
ROM_LOAD( "movie-tv.lo0", 0x00000, 0x8000, CRC(dbf03e62) SHA1(0210442ff80cce8fe39ba5e373bca0f47bb389c4) )
@@ -305,8 +305,8 @@ ROM_START( promutra )
ROM_LOAD( "mt50ic.50", 0x1000, 0x1000, CRC(ee89d24e) SHA1(e3536df549278040255657201433ab23e0386533) )
ROM_REGION( 0x0200, REGION_PROMS, 0 )
- ROM_LOAD( "ic63.prm", 0x0000, 0x0100, CRC(749da5a8) SHA1(8e30f5b014bc8ff2dc4986ef35a979e525681cb9) ) /* palette low bits */
- ROM_LOAD( "ic64.prm", 0x0100, 0x0100, CRC(1cf9c914) SHA1(4c39b10c1be889d6ef4313b2112f4216d34f7327) ) /* palette high bits */
+ ROM_LOAD( "ic64.prm", 0x0000, 0x0100, CRC(1cf9c914) SHA1(4c39b10c1be889d6ef4313b2112f4216d34f7327) ) /* palette low bits */
+ ROM_LOAD( "ic63.prm", 0x0100, 0x0100, CRC(749da5a8) SHA1(8e30f5b014bc8ff2dc4986ef35a979e525681cb9) ) /* palette high bits */
ROM_REGION( 0x40000, REGION_USER1, 0 ) /* Question roms */
ROM_LOAD( "movie-tv.lo0", 0x00000, 0x8000, CRC(dbf03e62) SHA1(0210442ff80cce8fe39ba5e373bca0f47bb389c4) )
@@ -332,8 +332,8 @@ ROM_START( promutrb )
ROM_LOAD( "mt50.ic50", 0x1000, 0x1000, CRC(ee89d24e) SHA1(e3536df549278040255657201433ab23e0386533) )
ROM_REGION( 0x0200, REGION_PROMS, 0 )
- ROM_LOAD( "dm74s287n.ic63", 0x0000, 0x0100, CRC(749da5a8) SHA1(8e30f5b014bc8ff2dc4986ef35a979e525681cb9) ) /* palette low bits */
- ROM_LOAD( "dm74s287n.ic64", 0x0100, 0x0100, CRC(1cf9c914) SHA1(4c39b10c1be889d6ef4313b2112f4216d34f7327) ) /* palette high bits */
+ ROM_LOAD( "dm74s287n.ic64", 0x0000, 0x0100, CRC(1cf9c914) SHA1(4c39b10c1be889d6ef4313b2112f4216d34f7327) ) /* palette low bits */
+ ROM_LOAD( "dm74s287n.ic63", 0x0100, 0x0100, CRC(749da5a8) SHA1(8e30f5b014bc8ff2dc4986ef35a979e525681cb9) ) /* palette high bits */
ROM_REGION( 0x40000, REGION_USER1, 0 ) /* Question roms */
ROM_LOAD( "movie-tv.lo0.u8", 0x00000, 0x8000, CRC(dbf03e62) SHA1(0210442ff80cce8fe39ba5e373bca0f47bb389c4) )
@@ -363,8 +363,8 @@ ROM_START( promutrc )
ROM_LOAD( "mt50.ic50", 0x1000, 0x1000, CRC(ee89d24e) SHA1(e3536df549278040255657201433ab23e0386533) )
ROM_REGION( 0x0200, REGION_PROMS, 0 )
- ROM_LOAD( "dm74s287n.ic63", 0x0000, 0x0100, CRC(749da5a8) SHA1(8e30f5b014bc8ff2dc4986ef35a979e525681cb9) ) /* palette low bits */
- ROM_LOAD( "dm74s287n.ic64", 0x0100, 0x0100, CRC(1cf9c914) SHA1(4c39b10c1be889d6ef4313b2112f4216d34f7327) ) /* palette high bits */
+ ROM_LOAD( "dm74s287n.ic64", 0x0000, 0x0100, CRC(1cf9c914) SHA1(4c39b10c1be889d6ef4313b2112f4216d34f7327) ) /* palette low bits */
+ ROM_LOAD( "dm74s287n.ic63", 0x0100, 0x0100, CRC(749da5a8) SHA1(8e30f5b014bc8ff2dc4986ef35a979e525681cb9) ) /* palette high bits */
ROM_REGION( 0x40000, REGION_USER1, 0 ) /* Question roms */
ROM_LOAD( "sports.lo0.u8", 0x00000, 0x8000, CRC(bb28fa92) SHA1(a3c4c67be0e31793d68b0b048f3a73e9ce1d5859) )
@@ -394,8 +394,8 @@ ROM_START( strvmstr )
ROM_LOAD( "stm50.rom", 0x1000, 0x1000, CRC(cfc1a1d1) SHA1(9ef38f12360dd946651e67770742ca72fa6846f1) )
ROM_REGION( 0x0200, REGION_PROMS, 0 )
- ROM_LOAD( "stm63.prm", 0x0000, 0x0100, BAD_DUMP CRC(305271cf) SHA1(6fd5fe085d79ca7aa57010cffbdb2a85b9c24701) ) /* palette low bits */
- ROM_LOAD( "stm64.prm", 0x0100, 0x0100, BAD_DUMP CRC(69ebc0b8) SHA1(de2b936e3246e3bfc7e2ff9546c1854ec3504cc2) ) /* palette high bits */
+ ROM_LOAD( "stm64.prm", 0x0000, 0x0100, BAD_DUMP CRC(69ebc0b8) SHA1(de2b936e3246e3bfc7e2ff9546c1854ec3504cc2) ) /* palette low bits */
+ ROM_LOAD( "stm63.prm", 0x0100, 0x0100, BAD_DUMP CRC(305271cf) SHA1(6fd5fe085d79ca7aa57010cffbdb2a85b9c24701) ) /* palette high bits */
ROM_REGION( 0x40000, REGION_USER1, 0 ) /* Question roms */
ROM_LOAD( "sex2.lo0", 0x00000, 0x8000, CRC(9c68b277) SHA1(34bc9d7b973fe482abd5e34a058b72eb5ec8db64) )
diff --git a/src/mame/drivers/midyunit.c b/src/mame/drivers/midyunit.c
index d292db82733..520ce0fbf1d 100644
--- a/src/mame/drivers/midyunit.c
+++ b/src/mame/drivers/midyunit.c
@@ -1022,7 +1022,7 @@ static MACHINE_DRIVER_START( zunit )
MDRV_SCREEN_ADD("main", 0)
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
- MDRV_SCREEN_RAW_PARAMS(MEDRES_PIXEL_CLOCK, 673, 0, 511, 433, 0, 399)
+ MDRV_SCREEN_RAW_PARAMS(MEDRES_PIXEL_CLOCK*2, 673, 0, 511, 433, 0, 399)
MDRV_VIDEO_START(midzunit)
MDRV_VIDEO_UPDATE(tms340x0)
@@ -1055,7 +1055,7 @@ static MACHINE_DRIVER_START( yunit_core )
MDRV_SCREEN_ADD("main", 0)
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
- MDRV_SCREEN_RAW_PARAMS(STDRES_PIXEL_CLOCK, 505, 0, 399, 289, 0, 253)
+ MDRV_SCREEN_RAW_PARAMS(STDRES_PIXEL_CLOCK*2, 505, 0, 399, 289, 0, 253)
MDRV_VIDEO_UPDATE(tms340x0)
MACHINE_DRIVER_END
diff --git a/src/mame/drivers/ms32.c b/src/mame/drivers/ms32.c
index 04141ba6eee..aeb574a4a9f 100644
--- a/src/mame/drivers/ms32.c
+++ b/src/mame/drivers/ms32.c
@@ -1,5 +1,8 @@
/* Jaleco MegaSystem 32 (Preliminary Driver)
+--- this driver is about to undergo a major update
+ based on actual hardware tests ---
+
Used by Jaleco in the Mid-90's this system, based on the V70 processor consisted
of a two board set up, the first a standard mainboard and the second a 'cartridge'
@@ -1999,6 +2002,42 @@ ROM_START( tp2m32 )
ROM_LOAD( "tp2m3205.22", 0x000000, 0x200000, CRC(74aa5c31) SHA1(7e3f86198fb678244fab76bee9c72bbdfc818118) )
ROM_END
+
+
+ROM_START( bnstars ) /* ver 1.1 */
+ ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
+ ROM_LOAD32_BYTE( "vsjanshi26.37", 0x000003, 0x80000, CRC(75eeec8f) SHA1(26315381baa0abb470203dc565ad98c52fe17b20) )
+ ROM_LOAD32_BYTE( "vsjanshi27.38", 0x000002, 0x80000, CRC(69f24ab9) SHA1(e019a444111e4ed7f9a378d6e2d13ddb9324bc49) )
+ ROM_LOAD32_BYTE( "vsjanshi28.39", 0x000001, 0x80000, CRC(d075cfb6) SHA1(f70741e9f536d5c7604126d36c7aa8ed8f25c329) )
+ ROM_LOAD32_BYTE( "vsjanshi29.40", 0x000000, 0x80000, CRC(bc395b50) SHA1(84d7cc492a11a5a9402e929f0bd138ad63e3d079) )
+
+ ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
+ ROM_LOAD32_WORD( "mr96004-01.13", 0x000000, 0x200000, CRC(3366d104) SHA1(2de0cabe2ead777b5b02cade7f2003ef7f90b75b) )
+ ROM_LOAD32_WORD( "mr96004-02.1", 0x000002, 0x200000, CRC(ad556664) SHA1(4b36f8d8d9efa37cf515af41d14433e7eafa27a2) )
+ ROM_LOAD32_WORD( "mr96004-03.14", 0x400000, 0x200000, CRC(b399e2b1) SHA1(9b6a00a219db8d66dcf592160b7b5f7a86b8f0c9) )
+ ROM_LOAD32_WORD( "mr96004-04.2", 0x400002, 0x200000, CRC(f4f4cf4a) SHA1(fe497989cf96c68602f68f14920aed44fd934573) )
+ ROM_LOAD32_WORD( "mr96004-05.15", 0x800000, 0x200000, CRC(cd6c357e) SHA1(44cd2d0607c7ccd80f701cf1675fd283acb07252) )
+ ROM_LOAD32_WORD( "mr96004-06.3", 0x800002, 0x200000, CRC(fc6daad7) SHA1(99f14ac6b06ad9a8a3d2e9f69b693c7ce420a47d) )
+ ROM_LOAD32_WORD( "mr96004-07.16", 0xc00000, 0x200000, CRC(177e32fa) SHA1(3ca1f397dc28f1fa3a4136705b92c63e4e438f05) )
+ ROM_LOAD32_WORD( "mr96004-08.4", 0xc00002, 0x200000, CRC(f6df27b2) SHA1(60590976020d86bdccd4eaf57b349ea31bec6830) )
+
+ ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
+ ROM_LOAD( "mr96004-09.11", 0x000000, 0x400000, CRC(7f8ea9f0) SHA1(f1fe682dcb884f1aa4a5536e17ab94157a99f519) )
+
+ ROM_REGION( 0x200000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
+ ROM_LOAD( "mr96004-11.10", 0x000000, 0x200000, CRC(e6da552c) SHA1(69a5af3015883793c7d1343243ccae23db9ef77c) )
+
+ ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
+ ROM_LOAD( "vsjanshi30.41", 0x000000, 0x080000, CRC(fdbbac21) SHA1(c77d852e53126cc8ebfe1e79d1134e42b54d1aab) )
+
+ ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
+ ROM_LOAD( "vsjanshi21.30", 0x000000, 0x040000, CRC(d622bce1) SHA1(059fcc3c7216d3ea4f3a4226a06219375ce8c2bf) )
+ ROM_RELOAD( 0x010000, 0x40000 )
+
+ ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* samples - 8-bit signed PCM */
+ ROM_LOAD( "mr96004-10.22", 0x000000, 0x400000, CRC(83f4303a) SHA1(90ee010591afe1d35744925ef0e8d9a7e2ef3378) )
+ROM_END
+
/********** DECRYPT **********/
/* 4 known types */
@@ -2216,6 +2255,14 @@ static DRIVER_INIT (f1superb)
DRIVER_INIT_CALL(ss92046_01);
}
+static DRIVER_INIT (bnstars)
+{
+// { 0xfcc00004, 0xfcc00007, ms32_mahjong_read_inputs1 }
+ memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0xfcc00004, 0xfcc00007, 0, 0, ms32_mahjong_read_inputs1 );
+
+ DRIVER_INIT_CALL(ss92046_01);
+}
+
/********** GAME DRIVERS **********/
@@ -2234,6 +2281,7 @@ GAME( 1996, gratia, 0, ms32, gratia, ss92047_01, ROT0, "Jaleco", "G
GAME( 1996, gratiaa, gratia, ms32, gratia, ss91022_10, ROT0, "Jaleco", "Gratia - Second Earth (91022-10 version)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
GAME( 1996, kirarast, 0, ms32, kirarast, kirarast, ROT0, "Jaleco", "Ryuusei Janshi Kirara Star", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
GAME( 1997, tp2m32, tetrisp2, ms32, tp2m32, ss91022_10, ROT0, "Jaleco", "Tetris Plus 2 (MegaSystem 32 Version)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1997, bnstars, bnstars1, ms32, 47pie2, bnstars, ROT0, "Jaleco", "Vs. Janshi Brandnew Stars (MegaSystem32 Version)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
/* these boot and show something */
GAME( 1994, f1superb, 0, ms32, f1superb, f1superb, ROT0, "Jaleco", "F1 Super Battle", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
diff --git a/src/mame/mamedriv.c b/src/mame/mamedriv.c
index b725c96ac96..92397c1d204 100644
--- a/src/mame/mamedriv.c
+++ b/src/mame/mamedriv.c
@@ -6367,6 +6367,8 @@ BOMULEUL CHAJARA SEGA ST-V 1997/04/11
DRIVER( gratiaa ) /* (c) 1996 */
DRIVER( kirarast ) /* (c) 1996 */
DRIVER( tp2m32 ) /* (c) 1997 */
+ DRIVER( bnstars ) /* (c) 1997 */
+
DRIVER( f1superb ) /* (c) 1994 */
DRIVER( bnstars1 ) /* (c) 1994 */
diff --git a/src/mame/video/ddragon.c b/src/mame/video/ddragon.c
index 956990e09c5..c156cc59d48 100644
--- a/src/mame/video/ddragon.c
+++ b/src/mame/video/ddragon.c
@@ -124,6 +124,8 @@ VIDEO_START( chinagat )
fg_tilemap = tilemap_create(get_fg_16color_tile_info,tilemap_scan_rows,TILEMAP_TYPE_PEN, 8, 8,32,32);
tilemap_set_transparent_pen(fg_tilemap,0);
+ tilemap_set_scrolldy(fg_tilemap, -8, -8);
+ tilemap_set_scrolldy(bg_tilemap, -8, -8);
state_save_register_global(ddragon_scrollx_hi);
state_save_register_global(ddragon_scrolly_hi);
diff --git a/src/mame/video/ms32.c b/src/mame/video/ms32.c
index a20d0c5a0f5..18474974033 100644
--- a/src/mame/video/ms32.c
+++ b/src/mame/video/ms32.c
@@ -88,6 +88,7 @@ VIDEO_START( ms32 )
if (!strcmp(machine->gamedrv->name,"47pie2")) ms32_reverse_sprite_order = 0;
if (!strcmp(machine->gamedrv->name,"47pie2o")) ms32_reverse_sprite_order = 0;
if (!strcmp(machine->gamedrv->name,"hayaosi3")) ms32_reverse_sprite_order = 0;
+ if (!strcmp(machine->gamedrv->name,"bnstars")) ms32_reverse_sprite_order = 0;
// tp2m32 doesn't set the brightness registers so we need sensible defaults
brt[0] = brt[1] = 0xffff;