summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/armedf.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/armedf.cpp')
-rw-r--r--src/mame/drivers/armedf.cpp46
1 files changed, 42 insertions, 4 deletions
diff --git a/src/mame/drivers/armedf.cpp b/src/mame/drivers/armedf.cpp
index 3c72af762e7..32f9c931f16 100644
--- a/src/mame/drivers/armedf.cpp
+++ b/src/mame/drivers/armedf.cpp
@@ -292,6 +292,7 @@ Notes:
#include "includes/armedf.h"
#include "cpu/m68000/m68000.h"
#include "cpu/z80/z80.h"
+#include "cpu/mcs51/mcs51.h"
#include "sound/3812intf.h"
#include "sound/dac.h"
#include "sound/volt_reg.h"
@@ -312,6 +313,7 @@ Notes:
---- -x-- ---- ---- disable fg layer
---- --x- ---- ---- disable sprite
---- ---x ---- ---- disable tx layer
+ ---- ---- ---x ---- unknown, used by big fighter
---- ---- ---- --x- coin counter 1
---- ---- ---- ---x coin counter 0
*/
@@ -330,6 +332,13 @@ WRITE16_MEMBER(armedf_state::terraf_io_w)
flip_screen_set(m_vreg & 0x1000);
}
+WRITE16_MEMBER(bigfghtr_state::bigfghtr_io_w)
+{
+ //if(data & 0x10)
+ // m_mcu->set_input_line(MCS51_INT0_LINE, HOLD_LINE);
+ terraf_io_w(space,offset,data,mem_mask);
+}
+
WRITE16_MEMBER(armedf_state::terrafjb_io_w)
{
if(data & 0x4000 && ((m_vreg & 0x4000) == 0)) //0 -> 1 transition
@@ -522,9 +531,12 @@ ADDRESS_MAP_END
READ16_MEMBER(bigfghtr_state::latch_r)
{
m_read_latch = 1;
+ m_mcu->set_input_line(MCS51_INT0_LINE, HOLD_LINE);
return 0;
}
+#if 0
+// reference code, in case anything goes bad
WRITE16_MEMBER(bigfghtr_state::sharedram_w)
{
data &= mem_mask;
@@ -667,11 +679,22 @@ READ16_MEMBER(bigfghtr_state::sharedram_r)
return m_sharedram[offset];
}
+#endif
+
+READ8_MEMBER(bigfghtr_state::main_sharedram_r)
+{
+ return m_sharedram[offset];
+}
+
+WRITE8_MEMBER(bigfghtr_state::main_sharedram_w)
+{
+ m_sharedram[offset] = data;
+}
static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16, bigfghtr_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x0805ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x080600, 0x083fff) AM_READWRITE(sharedram_r, sharedram_w) AM_SHARE("sharedram")
+ AM_RANGE(0x080600, 0x083fff) AM_READWRITE8(main_sharedram_r,main_sharedram_w,0xffff)
AM_RANGE(0x084000, 0x085fff) AM_RAM //work ram
AM_RANGE(0x086000, 0x086fff) AM_RAM_WRITE(armedf_bg_videoram_w) AM_SHARE("bg_videoram")
AM_RANGE(0x087000, 0x087fff) AM_RAM_WRITE(armedf_fg_videoram_w) AM_SHARE("fg_videoram")
@@ -682,7 +705,7 @@ static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16, bigfghtr_state )
AM_RANGE(0x08c002, 0x08c003) AM_READ_PORT("P2")
AM_RANGE(0x08c004, 0x08c005) AM_READ_PORT("DSW0")
AM_RANGE(0x08c006, 0x08c007) AM_READ_PORT("DSW1")
- AM_RANGE(0x08d000, 0x08d001) AM_WRITE(terraf_io_w) //807b0
+ AM_RANGE(0x08d000, 0x08d001) AM_WRITE(bigfghtr_io_w) //807b0
AM_RANGE(0x08d002, 0x08d003) AM_WRITE(armedf_bg_scrollx_w)
AM_RANGE(0x08d004, 0x08d005) AM_WRITE(armedf_bg_scrolly_w)
AM_RANGE(0x08d006, 0x08d007) AM_WRITE(armedf_fg_scrollx_w)
@@ -694,6 +717,16 @@ static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16, bigfghtr_state )
AM_RANGE(0x400000, 0x400001) AM_READ(latch_r)
ADDRESS_MAP_END
+static ADDRESS_MAP_START( bigfghtr_mcu_map, AS_PROGRAM, 8, bigfghtr_state )
+ AM_RANGE(0x0000, 0x0fff) AM_ROM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( bigfghtr_mcu_io_map, AS_IO, 8, bigfghtr_state )
+// AM_RANGE(0x00000, 0x005ff) Sprite RAM, guess shared as well
+ AM_RANGE(0x00600, 0x03fff) AM_RAM AM_SHARE("sharedram")
+// AM_RANGE(MCS51_PORT_P1,MCS51_PORT_P1) bit 5: bus contention related?
+ADDRESS_MAP_END
+
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, armedf_state )
AM_RANGE(0x0000, 0xf7ff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_RAM
@@ -1544,6 +1577,10 @@ static MACHINE_CONFIG_START( bigfghtr, bigfghtr_state )
MCFG_CPU_IO_MAP(sound_portmap)
MCFG_CPU_PERIODIC_INT_DRIVER(armedf_state, irq0_line_hold, XTAL_8MHz/2/512) // ?
+ MCFG_CPU_ADD("mcu", I8751, XTAL_16MHz/4) /* ??? */
+ MCFG_CPU_PROGRAM_MAP(bigfghtr_mcu_map)
+ MCFG_CPU_IO_MAP(bigfghtr_mcu_io_map)
+
MCFG_MACHINE_START_OVERRIDE(bigfghtr_state,bigfghtr)
MCFG_MACHINE_RESET_OVERRIDE(bigfghtr_state,bigfghtr)
@@ -2048,7 +2085,8 @@ ROM_START( skyrobo )
ROM_LOAD( "8.17k", 0x00000, 0x10000, CRC(0aeab61e) SHA1(165e0ad58542b65383fef714578da21f62df7b74) )
ROM_REGION( 0x10000, "mcu", 0 ) /* Intel C8751 read protected MCU */
- ROM_LOAD( "i8751.mcu", 0x00000, 0x1000, NO_DUMP )
+ // coming from Takatae Big Fighter, might or might not be correct for this version
+ ROM_LOAD( "i8751.bin", 0x00000, 0x1000, BAD_DUMP CRC(64a0d225) SHA1(ccc5c33c0c412bf9e3a4f7de5e39b042e00c41dd) )
ROM_REGION( 0x08000, "gfx1", 0 )
ROM_LOAD( "7", 0x00000, 0x08000, CRC(f556ef28) SHA1(2acb83cdf23356091056f2cfbbc2b9828ee25b6f) ) /* Rom location 11C */
@@ -2080,7 +2118,7 @@ ROM_START( bigfghtr )
ROM_LOAD( "8.17k", 0x00000, 0x10000, CRC(0aeab61e) SHA1(165e0ad58542b65383fef714578da21f62df7b74) )
ROM_REGION( 0x10000, "mcu", 0 ) /* Intel C8751 read protected MCU */
- ROM_LOAD( "i8751.mcu", 0x00000, 0x1000, NO_DUMP )
+ ROM_LOAD( "i8751.bin", 0x00000, 0x1000, CRC(64a0d225) SHA1(ccc5c33c0c412bf9e3a4f7de5e39b042e00c41dd) )
ROM_REGION( 0x08000, "gfx1", 0 )
ROM_LOAD( "7.11c", 0x00000, 0x08000, CRC(1809e79f) SHA1(730547771f803857acb552a84a8bc21bd3bda33f) )