diff options
author | 2016-10-05 14:35:33 +0100 | |
---|---|---|
committer | 2016-10-05 14:35:33 +0100 | |
commit | 1f10ae9609894aa77aa0f47df3e5c2c15cf7b718 (patch) | |
tree | 9d83b14b121feb27a95c8f3e36a9b81c22f03779 | |
parent | fb89088f3fca7efedb40843daef2babdbdc5a62d (diff) |
new NOT WORKING
Mahjong Senpu [system11. David Haywood]
displays the game image, upside down, no palette for now, no inputs for now, no sound for now, going to continue work on it.
-rw-r--r-- | scripts/target/mame/arcade.lua | 1 | ||||
-rw-r--r-- | src/mame/drivers/mjsenpu.cpp | 176 | ||||
-rw-r--r-- | src/mame/mame.lst | 3 |
3 files changed, 180 insertions, 0 deletions
diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index 83e7050110d..4b3473ab579 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -4502,6 +4502,7 @@ files { MAME_DIR .. "src/mame/drivers/midas.cpp", MAME_DIR .. "src/mame/drivers/miniboy7.cpp", MAME_DIR .. "src/mame/drivers/mirax.cpp", + MAME_DIR .. "src/mame/drivers/mjsenpu.cpp", MAME_DIR .. "src/mame/drivers/mole.cpp", MAME_DIR .. "src/mame/drivers/mosaic.cpp", MAME_DIR .. "src/mame/includes/mosaic.h", diff --git a/src/mame/drivers/mjsenpu.cpp b/src/mame/drivers/mjsenpu.cpp new file mode 100644 index 00000000000..758f754cdbc --- /dev/null +++ b/src/mame/drivers/mjsenpu.cpp @@ -0,0 +1,176 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood +/******************************************************************** + + PCB is marked 'Ver 1.8 B/D-' on 2 of the edges + + Custom chip marked + ORIENTAL SOFT + SPR800F1 + 0011E + +*********************************************************************/ + +#include "emu.h" +#include "cpu/e132xs/e132xs.h" +#include "sound/okim6295.h" +#include "machine/nvram.h" + +class mjsenpu_state : public driver_device +{ +public: + mjsenpu_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_oki(*this, "oki"), + m_vram(*this, "vram"), + m_palette(*this, "palette") + { + } + + /* devices */ + required_device<e132xt_device> m_maincpu; + required_device<okim6295_device> m_oki; + + required_shared_ptr<UINT32> m_vram; + + DECLARE_DRIVER_INIT(mjsenpu); + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; + UINT32 screen_update_mjsenpu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + required_device<palette_device> m_palette; +}; + + +static ADDRESS_MAP_START( mjsenpu_32bit_map, AS_PROGRAM, 32, mjsenpu_state ) + AM_RANGE(0x00000000, 0x003fffff) AM_RAM + AM_RANGE(0x40000000, 0x401fffff) AM_ROM AM_REGION("user2",0) // main game rom + + AM_RANGE(0x80000000, 0x8001ffff) AM_RAM AM_SHARE("vram") + + AM_RANGE(0xffc00000, 0xffc000ff) AM_RAM + AM_RANGE(0xffd00000, 0xffd000ff) AM_RAM + + + AM_RANGE(0xffe00000, 0xffe0ffff) AM_RAM + + AM_RANGE(0xfff80000, 0xffffffff) AM_ROM AM_REGION("user1",0) // boot rom +ADDRESS_MAP_END + + +static ADDRESS_MAP_START( mjsenpu_io, AS_IO, 32, mjsenpu_state ) +// AM_RANGE(0x000c, 0x000f) AM_READ(unk_r) +ADDRESS_MAP_END + +static INPUT_PORTS_START( mjsenpu ) +INPUT_PORTS_END + + +void mjsenpu_state::video_start() +{ +} + + + +UINT32 mjsenpu_state::screen_update_mjsenpu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + int x,y,count; + int color; + + count = 0; + for (y=0;y < 256;y++) + { + for (x=0;x < 512/4;x++) + { + color = m_vram[count] & 0x000000ff; + bitmap.pix16(y, x*4 + 2) = color; + + color = (m_vram[count] & 0x0000ff00) >> 8; + bitmap.pix16(y, x*4 + 3) = color; + + color = (m_vram[count] & 0x00ff0000) >> 16; + bitmap.pix16(y, x*4 + 0) = color; + + color = (m_vram[count] & 0xff000000) >> 24; + bitmap.pix16(y, x*4 + 1) = color; + + count++; + } + } + return 0; + + return 0; +} + + +void mjsenpu_state::machine_start() +{ +} + +void mjsenpu_state::machine_reset() +{ +} + +/* +following clocks are on the PCB + +22.1184 +27.000 +1.0000000 + +*/ + +static MACHINE_CONFIG_START( mjsenpu, mjsenpu_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", E132XT, 27000000) /* ?? Mhz */ + MCFG_CPU_PROGRAM_MAP(mjsenpu_32bit_map) + MCFG_CPU_IO_MAP(mjsenpu_io) + MCFG_CPU_VBLANK_INT_DRIVER("screen", mjsenpu_state, irq0_line_hold) + +// MCFG_NVRAM_ADD_1FILL("nvram") + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(512, 256) + MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) + MCFG_SCREEN_UPDATE_DRIVER(mjsenpu_state, screen_update_mjsenpu) + MCFG_SCREEN_PALETTE("palette") + + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(BBBBBGGGGGGRRRRR) + + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) /* 1 Mhz? */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) +MACHINE_CONFIG_END + + +ROM_START( mjsenpu ) + ROM_REGION32_BE( 0x80000, "user1", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "U1", 0x000000, 0x080000, CRC(ebfb1079) SHA1(9d676c635d5ee464df5730518399e141ebc515ed) ) + + ROM_REGION32_BE( 0x200000, "user2", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD16_WORD_SWAP( "U13", 0x000000, 0x200000, CRC(a803c5a5) SHA1(61c7386a1bb6224b788de01293697d0e896839a8) ) + + ROM_REGION( 0x080000, "oki", 0 ) + ROM_LOAD( "SU2", 0x000000, 0x080000, CRC(848045d5) SHA1(4d32e1a5bd0937069dd8d50dfd8b63d4a45e40e6) ) +ROM_END + + + + + +DRIVER_INIT_MEMBER(mjsenpu_state,mjsenpu) +{ +} + + + + +GAME( 2002, mjsenpu, 0, mjsenpu, mjsenpu, mjsenpu_state, mjsenpu, ROT0, "Oriental Soft", "Mahjong Senpu", MACHINE_NOT_WORKING ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 7c5c38c50c1..33f558dfb9b 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -20316,6 +20316,9 @@ mits680b // @source:mjkjidai.cpp mjkjidai // (c) 1986 Sanritsu +@source:mjsenpu.cpp +mjsenpu + @source:mjsister.cpp mjsister // (c) 1986 Toaplan |