notes (nw)

This commit is contained in:
David Haywood 2015-10-09 01:50:30 +01:00
parent 8167704ef0
commit 565b835ee1

View File

@ -60,13 +60,18 @@ M82 - board made for Major Title, Z80 has a rom, no MCU
M84 - 2 PCB stack
functionally same as M82 but without the extra sprite hw??
M84-A-A (bottom board)
M84-A-A (bottom board) (most games)
supports
4 program roms
8 tile roms
1 snd prg, 1 voice rom
CPUs and some customs etc.
M84-D-B (bottom board) (found on lightning swords / kengo)
redesigned version of above but
for V35 CPU? (seems to lack the UPD71059C interrupt
controller which isn't needed when with the V35)
M84-C-A (top board) (listed as for Hammering Harry)
4 sprite roms (in a row)
6 larger chips with detail removed
@ -91,6 +96,7 @@ M84 - 2 PCB stack
M85 - Pound for Pound uses this, possibly just M84 with
a modified sound section?
- not Jamma, trackball input only
Year Board Protected?
@ -882,7 +888,7 @@ READ16_MEMBER(m72_state::poundfor_trackball_r)
}
#define CPU1_MEMORY(NAME,ROMSIZE,WORKRAM) \
#define M72_CPU1_MEMORY(NAME,ROMSIZE,WORKRAM) \
static ADDRESS_MAP_START( NAME##_map, AS_PROGRAM, 16 , m72_state ) \
AM_RANGE(0x00000, ROMSIZE-1) AM_ROM \
AM_RANGE(WORKRAM, WORKRAM+0x3fff) AM_RAM /* work RAM */ \
@ -896,50 +902,55 @@ static ADDRESS_MAP_START( NAME##_map, AS_PROGRAM, 16 , m72_state ) \
ADDRESS_MAP_END
/* ROMSIZE WORKRAM */
CPU1_MEMORY( m72, 0x80000, 0xa0000 )
CPU1_MEMORY( rtype, 0x40000, 0x40000 )
CPU1_MEMORY( xmultiplm72, 0x80000, 0x80000 )
CPU1_MEMORY( dbreedm72, 0x80000, 0x90000 )
/* ROMSIZE WORKRAM */
M72_CPU1_MEMORY( m72, 0x80000, 0xa0000 )
M72_CPU1_MEMORY( rtype, 0x40000, 0x40000 )
M72_CPU1_MEMORY( xmultiplm72, 0x80000, 0x80000 )
M72_CPU1_MEMORY( dbreedm72, 0x80000, 0x90000 )
static ADDRESS_MAP_START( xmultipl_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0x9c000, 0x9ffff) AM_RAM /* work RAM */
AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xc8000, 0xc8bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram")
AM_RANGE(0xcc000, 0xccbff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1")
AM_RANGE(0xd8000, 0xdbfff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( dbreed_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0x88000, 0x8bfff) AM_RAM /* work RAM */
AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xc8000, 0xc8bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram")
AM_RANGE(0xcc000, 0xccbff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1")
AM_RANGE(0xd8000, 0xdbfff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
#define M81_CPU1_MEMORY(NAME,WORKRAM) \
static ADDRESS_MAP_START( NAME##_map, AS_PROGRAM, 16 , m72_state ) \
AM_RANGE(0x00000, 0x7ffff) AM_ROM \
AM_RANGE(WORKRAM, WORKRAM+0x3fff) AM_RAM /* work RAM */ \
AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */ \
AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram") \
AM_RANGE(0xc8000, 0xc8bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram") \
AM_RANGE(0xcc000, 0xccbff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2") \
AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1") \
AM_RANGE(0xd8000, 0xdbfff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2") \
AM_RANGE(0xffff0, 0xfffff) AM_ROM \
ADDRESS_MAP_END \
static ADDRESS_MAP_START( rtype2_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xb0000, 0xb0001) AM_WRITE(irq_line_w)
AM_RANGE(0xbc000, 0xbc001) AM_WRITE(dmaon_w)
AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xc8000, 0xc8bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram")
AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1")
AM_RANGE(0xd4000, 0xd7fff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0xd8000, 0xd8bff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
AM_RANGE(0xe0000, 0xe3fff) AM_RAM /* work RAM */
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
/* WORKRAM */
M81_CPU1_MEMORY( xmultipl, 0x9c000 )
M81_CPU1_MEMORY( dbreed, 0x88000 )
M81_CPU1_MEMORY( hharry, 0xa0000 )
static ADDRESS_MAP_START( majtitle_map, AS_PROGRAM, 16, m72_state )
#define M84_CPU1_MEMORY(NAME,VIDEORAM,PALETTERAM1,PALETTERAM2) \
static ADDRESS_MAP_START( NAME##_map, AS_PROGRAM, 16 , m72_state ) \
AM_RANGE(0x00000, 0x7ffff) AM_ROM \
AM_RANGE(0xb0000, 0xb0001) AM_WRITE(irq_line_w) \
AM_RANGE(0xb4000, 0xb4001) AM_WRITENOP /* ??? */ \
AM_RANGE(0xbc000, 0xbc001) AM_WRITE(dmaon_w) \
AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */ \
AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram") \
AM_RANGE(VIDEORAM+0x0000, VIDEORAM+0x3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1") \
AM_RANGE(VIDEORAM+0x4000, VIDEORAM+0x7fff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2") \
AM_RANGE(PALETTERAM1, PALETTERAM1+0xbff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram") \
AM_RANGE(PALETTERAM2, PALETTERAM2+0xbff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2") \
AM_RANGE(0xe0000, 0xe3fff) AM_RAM /* work RAM */ \
AM_RANGE(0xffff0, 0xfffff) AM_ROM \
ADDRESS_MAP_END \
M84_CPU1_MEMORY( rtype2, 0xd0000, 0xc8000, 0xd8000 )
M84_CPU1_MEMORY( hharryu, 0xd0000, 0xa0000, 0xa8000 )
M84_CPU1_MEMORY( kengo, 0x80000, 0xa0000, 0xa8000 )
static ADDRESS_MAP_START( m82_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xa0000, 0xa03ff) AM_RAM AM_SHARE("majtitle_rowscr")
AM_RANGE(0xa4000, 0xa4bff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
@ -955,46 +966,8 @@ static ADDRESS_MAP_START( majtitle_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( hharry_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xa0000, 0xa3fff) AM_RAM /* work RAM */
AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xc8000, 0xc8bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram")
AM_RANGE(0xcc000, 0xccbff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1")
AM_RANGE(0xd8000, 0xdbfff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( hharryu_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xa0000, 0xa0bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram")
AM_RANGE(0xa8000, 0xa8bff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
AM_RANGE(0xb0000, 0xb0001) AM_WRITE(irq_line_w)
AM_RANGE(0xbc000, 0xbc001) AM_WRITE(dmaon_w)
AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1")
AM_RANGE(0xd4000, 0xd7fff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0xe0000, 0xe3fff) AM_RAM /* work RAM */
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( kengo_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xa0000, 0xa0bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram")
AM_RANGE(0xa8000, 0xa8bff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
AM_RANGE(0xb0000, 0xb0001) AM_WRITE(irq_line_w)
AM_RANGE(0xb4000, 0xb4001) AM_WRITENOP /* ??? */
AM_RANGE(0xbc000, 0xbc001) AM_WRITE(dmaon_w)
AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x80000, 0x83fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1")
AM_RANGE(0x84000, 0x87fff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0xe0000, 0xe3fff) AM_RAM /* work RAM */
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( m72_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
@ -1012,7 +985,7 @@ static ADDRESS_MAP_START( m72_portmap, AS_IO, 16, m72_state )
/* { 0xc0, 0xc0 trigger sample, filled by init_ function */
ADDRESS_MAP_END
static ADDRESS_MAP_START( rtype2_portmap, AS_IO, 16, m72_state )
static ADDRESS_MAP_START( m84_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
@ -1025,6 +998,20 @@ static ADDRESS_MAP_START( rtype2_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x86, 0x87) AM_WRITE(scrollx2_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( m84_v33_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
AM_RANGE(0x00, 0x01) AM_DEVWRITE("m72", m72_audio_device, sound_command_w)
AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w)
AM_RANGE(0x80, 0x81) AM_WRITE(scrolly1_w)
AM_RANGE(0x82, 0x83) AM_WRITE(scrollx1_w)
AM_RANGE(0x84, 0x85) AM_WRITE(scrolly2_w)
AM_RANGE(0x86, 0x87) AM_WRITE(scrollx2_w)
// AM_RANGE(0x8c, 0x8f) AM_WRITENOP /* ??? */
ADDRESS_MAP_END
static ADDRESS_MAP_START( poundfor_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
@ -1070,18 +1057,6 @@ static ADDRESS_MAP_START( m81_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x86, 0x87) AM_WRITE(scrollx2_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( kengo_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
AM_RANGE(0x00, 0x01) AM_DEVWRITE("m72", m72_audio_device, sound_command_w)
AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w)
AM_RANGE(0x80, 0x81) AM_WRITE(scrolly1_w)
AM_RANGE(0x82, 0x83) AM_WRITE(scrollx1_w)
AM_RANGE(0x84, 0x85) AM_WRITE(scrolly2_w)
AM_RANGE(0x86, 0x87) AM_WRITE(scrollx2_w)
// AM_RANGE(0x8c, 0x8f) AM_WRITENOP /* ??? */
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_ram_map, AS_PROGRAM, 8, m72_state )
@ -1989,7 +1964,7 @@ static MACHINE_CONFIG_START( rtype2, m72_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
MCFG_CPU_PROGRAM_MAP(rtype2_map)
MCFG_CPU_IO_MAP(rtype2_portmap)
MCFG_CPU_IO_MAP(m84_portmap)
MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)
MCFG_CPU_ADD("soundcpu", Z80, SOUND_CLOCK)
@ -2032,7 +2007,7 @@ static MACHINE_CONFIG_START( cosmccop, m72_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", V35,MASTER_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(kengo_map)
MCFG_CPU_IO_MAP(kengo_portmap)
MCFG_CPU_IO_MAP(m84_v33_portmap)
MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)
MCFG_CPU_ADD("soundcpu", Z80, SOUND_CLOCK)
@ -2078,7 +2053,7 @@ static MACHINE_CONFIG_START( m82, m72_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
MCFG_CPU_PROGRAM_MAP(majtitle_map)
MCFG_CPU_PROGRAM_MAP(m82_map)
MCFG_CPU_IO_MAP(m82_portmap)
MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)