summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/pinkiri8.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/pinkiri8.cpp')
-rw-r--r--src/mame/drivers/pinkiri8.cpp1264
1 files changed, 0 insertions, 1264 deletions
diff --git a/src/mame/drivers/pinkiri8.cpp b/src/mame/drivers/pinkiri8.cpp
deleted file mode 100644
index 0506ded4247..00000000000
--- a/src/mame/drivers/pinkiri8.cpp
+++ /dev/null
@@ -1,1264 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood
-/***************************************************************************
-
-Janshi / Pinkiri 8 / Ron Jan
- - Wing / Eagle Mahjong board using HD647180X0P6 with internal ROM
-
-
- Todo:
- - background tilemap is not fully understood, we lack evidence to support
- it properly, all the games here just do a solid fill of one tile!
-
- - sprite heights?!
-
-============================================================================
-Janshi
-(c)1992 Eagle
-
-CPU: HD647180X0P6 (16K EPROM internal rom)
-Sound: AY-3-8910, M6295
-Others: Battery
-OSC: 32MHz, 21MHz & 12.2880MHz
-
-ROMs:
-1.1A [92b140a5]
-2.1B [6de7e086]
-3.1D [4e94d8f2]
-4.1F [a5f6e3ef]
-5.1H [ff2cc769]
-6.1K [8197034d]
-11.1L [a7692ddf]
-
-
-
---- Team Japump!!! ---
-Dumped by Chackn
-04/May/2007
-
-***************************************************************************/
-
-#include "emu.h"
-#include "cpu/z180/hd647180x.h"
-#include "sound/okim6295.h"
-#include "emupal.h"
-#include "screen.h"
-#include "speaker.h"
-
-/* VDP device to give us our own memory map */
-class janshi_vdp_device : public device_t, public device_memory_interface
-{
-public:
- janshi_vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-
- void map(address_map &map);
-
-protected:
- virtual void device_validity_check(validity_checker &valid) const override;
- virtual void device_start() override;
- virtual void device_reset() override;
- virtual space_config_vector memory_space_config() const override;
-
-private:
- address_space_config m_space_config;
-};
-
-class pinkiri8_state : public driver_device
-{
-public:
- pinkiri8_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_janshi_back_vram(*this, "janshivdp:back_vram"),
- m_janshi_vram1(*this, "janshivdp:vram1"),
- m_janshi_unk1(*this, "janshivdp:unk1"),
- m_janshi_widthflags(*this, "janshivdp:widthflags"),
- m_janshi_unk2(*this, "janshivdp:unk2"),
- m_janshi_vram2(*this, "janshivdp:vram2"),
- m_janshi_paletteram(*this, "janshivdp:paletteram"),
- m_janshi_paletteram2(*this, "janshivdp:paletteram2"),
- m_janshi_crtc_regs(*this, "janshivdp:crtc_regs"),
- m_maincpu(*this, "maincpu"),
- m_vdp(*this, "janshivdp"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette")
- { }
-
- void pinkiri8(machine_config &config);
- void ronjan(machine_config &config);
-
-protected:
- DECLARE_WRITE8_MEMBER(output_regs_w);
- DECLARE_WRITE8_MEMBER(pinkiri8_vram_w);
- DECLARE_WRITE8_MEMBER(mux_w);
- DECLARE_READ8_MEMBER(mux_p2_r);
- DECLARE_READ8_MEMBER(mux_p1_r);
- DECLARE_READ8_MEMBER(ronjan_prot_r);
- DECLARE_WRITE8_MEMBER(ronjan_prot_w);
- DECLARE_READ8_MEMBER(ronjan_prot_status_r);
- DECLARE_READ8_MEMBER(ronjan_patched_prot_r);
- virtual void video_start() override;
- uint32_t screen_update_pinkiri8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-
- void draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect);
- void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
-
- void pinkiri8_io(address_map &map);
- void pinkiri8_map(address_map &map);
- void ronjan_io(address_map &map);
-
-private:
- required_shared_ptr<uint8_t> m_janshi_back_vram;
- required_shared_ptr<uint8_t> m_janshi_vram1;
- required_shared_ptr<uint8_t> m_janshi_unk1;
- required_shared_ptr<uint8_t> m_janshi_widthflags;
- required_shared_ptr<uint8_t> m_janshi_unk2;
- required_shared_ptr<uint8_t> m_janshi_vram2;
- required_shared_ptr<uint8_t> m_janshi_paletteram;
- required_shared_ptr<uint8_t> m_janshi_paletteram2;
- required_shared_ptr<uint8_t> m_janshi_crtc_regs;
- uint32_t m_vram_addr;
- int m_prev_writes;
- uint8_t m_mux_data;
- uint8_t m_prot_read_index;
- uint8_t m_prot_char[5];
- uint8_t m_prot_index;
-
- required_device<hd647180x_device> m_maincpu;
- required_device<janshi_vdp_device> m_vdp;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
-};
-
-
-
-
-
-void janshi_vdp_device::map(address_map &map)
-{
- map(0xfc0000, 0xfc1fff).ram().share("back_vram"); // bg tilemap?
- map(0xfc2000, 0xfc2fff).ram().share("vram1"); // xpos, colour, tile number etc.
-
- map(0xfc3700, 0xfc377f).ram().share("unk1"); // ?? height related?
- map(0xfc3780, 0xfc37bf).ram().share("widthflags");
- map(0xfc37c0, 0xfc37ff).ram().share("unk2"); // 2x increasing tables 00 10 20 30 etc.
-
- map(0xfc3800, 0xfc3fff).ram().share("vram2"); // y pos + unknown
-
- map(0xff0000, 0xff07ff).ram().share("paletteram"); //ram().w(FUNC(janshi_vdp_device::paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w));
- map(0xff2000, 0xff27ff).ram().share("paletteram2"); //ram().w(FUNC(janshi_vdp_device::paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w));
-
- map(0xff6000, 0xff601f).ram().share("crtc_regs");
-}
-
-DEFINE_DEVICE_TYPE(JANSHIVDP, janshi_vdp_device, "janshi_vdp", "Janshi VDP")
-
-janshi_vdp_device::janshi_vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, JANSHIVDP, tag, owner, clock)
- , device_memory_interface(mconfig, *this)
- , m_space_config("janshi_vdp", ENDIANNESS_LITTLE, 8,24, 0, address_map_constructor(FUNC(janshi_vdp_device::map), this))
-{
-}
-
-void janshi_vdp_device::device_validity_check(validity_checker &valid) const {}
-void janshi_vdp_device::device_start() {}
-void janshi_vdp_device::device_reset() {}
-
-device_memory_interface::space_config_vector janshi_vdp_device::memory_space_config() const
-{
- return space_config_vector {
- std::make_pair(0, &m_space_config)
- };
-}
-
-void pinkiri8_state::video_start() {}
-
-
-void pinkiri8_state::draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- gfx_element *gfx = m_gfxdecode->gfx(0);
-
- /* FIXME: color is a bit of a mystery */
- {
- int x, y, col, tile, count, attr;
-
- count = 0;
-
- for (y = 0; y < 64; y++)
- {
- for (x = 0; x < 32; x++)
- {
- tile = m_janshi_back_vram[count + 1] << 8 | m_janshi_back_vram[count + 0];
- attr = m_janshi_back_vram[count + 2] ^ 0xf0;
- col = (attr >> 4) | 0x10;
-
- gfx->transpen(bitmap,cliprect, tile, col, 0, 0, x * 16, y * 8, 0);
-
- count += 4;
- }
- }
- }
-}
-
-void pinkiri8_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- int MACHINE_TYPE_hack = 0;
- int col_bank;
- gfx_element *gfx = m_gfxdecode->gfx(0);
-
- if (!strcmp(machine().system().name,"janshi")) MACHINE_TYPE_hack = 1;
-
- //popmessage("%02x",m_janshi_crtc_regs[0x0a]);
- col_bank = (m_janshi_crtc_regs[0x0a] & 0x40) >> 6;
-
-
- int x,y; //,unk2;
- int col;
-
- int spr_offs,i;
-
- int width, height;
-
-
-
- for(i=(0x1000/4)-4;i>=0;i--)
- {
- /* "vram1" (video map 0xfc2000)
-
- tttt tttt | 00tt tttt | cccc c000 | xxxx xxxx |
-
- "vram2" (video map 0xfc3800)
-
- yyyy yyyy | ???? ???? |
-
-
- widths come from "widthflags" (0xfc3780)
- "unk1" (0xfc3700) and "unk2" (0xfc37c0) are a mystery
-
- */
-
- spr_offs = ((m_janshi_vram1[(i*4)+0] & 0xff) | (m_janshi_vram1[(i*4)+1]<<8)) & 0xffff;
- col = (m_janshi_vram1[(i*4)+2] & 0xf8) >> 3;
- x = m_janshi_vram1[(i*4)+3] * 2;
-
-// unk2 = m_janshi_vram2[(i*2)+1];
- y = (m_janshi_vram2[(i*2)+0]);
-
- y = 0x100-y;
-
- col|= col_bank<<5;
-
- // width = 0; height = 0;
-
- width = 2;
- height = 2;
-
-
- // this bit determines the sprite width, one bit is used in each word, each bit is used for a range of sprites
- int bit = m_janshi_widthflags[(i/0x20)*2 + 1];
-
- if (bit)
- {
- //col = machine().rand();
- width = 2;
- }
- else
- {
- width = 1;
- height = 2;
- }
-
- // hacks!
- if (MACHINE_TYPE_hack==1) // janshi
- {
- if (spr_offs<0x400)
- {
- height = 4;
- }
- else if (spr_offs<0x580)
- {
- // height = 2;
- }
- else if (spr_offs<0x880)
- {
- height = 4;
- }
- else if (spr_offs<0x1000)
- {
- // height = 2;
- }
- else if (spr_offs<0x1080)
- {
- // height = 2;
- }
- else if (spr_offs<0x1700)
- {
- height = 4;
- }
- else if (spr_offs<0x1730)
- {
- // height = 2;
- }
- else if (spr_offs<0x1930)
- {
- height = 4;
- }
- else if (spr_offs<0x19c0)
- {
- height = 1;
- }
- else
- {
- height = 4;
- }
-
-
- }
-
-
-
-
-
-
- if (height==1)
- y+=16;
-
-
- // hmm...
- if (height==2)
- y+=16;
-
-
-
- {
- int count = 0;
-
-
- for (int yy=0;yy<height;yy++)
- {
- for (int xx=0;xx<width;xx++)
- {
- gfx->transpen(bitmap,cliprect,spr_offs+count,col,0,0,(x+xx*16) -7 ,(y+yy*8)-33,0);
- count++;
- }
- }
- }
- }
-}
-
-uint32_t pinkiri8_state::screen_update_pinkiri8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- /* update palette */
- for (int pen = 0; pen < 0x800 ; pen++)
- {
- uint16_t val = (m_janshi_paletteram[pen]) | (m_janshi_paletteram2[pen]<<8);
- int r = (val & 0x001f) >> 0;
- int g = (val & 0x03e0) >> 5;
- int b = (val & 0x7c00) >> 10;
- m_palette->set_pen_color(pen, pal5bit(r), pal5bit(g), pal5bit(b));
- }
-
-
-
-#if 0
- if ( machine().input().code_pressed_once(KEYCODE_W) )
- {
- int i;
- int count2;
- printf("-------------------------------\n");
- count2=0;
- for (i=0x00;i<0x40;i+=2)
- {
- printf("%02x, ", m_janshi_widthflags[i+1]);
-
- count2++;
-
- if (count2==0x10)
- {
- printf("\n");
- count2 = 0;
- }
- }
- }
-#endif
-
-
- bitmap.fill(m_palette->black_pen(), cliprect);
-
- draw_background(bitmap, cliprect);
-
- draw_sprites(bitmap, cliprect);
-
- return 0;
-}
-
-void pinkiri8_state::pinkiri8_map(address_map &map)
-{
- map(0x00000, 0x0bfff).rom();
- map(0x0c000, 0x0dfff).ram();
- map(0x0e000, 0x0ffff).rom();
- map(0x10000, 0x1ffff).rom();
-}
-
-WRITE8_MEMBER(pinkiri8_state::output_regs_w)
-{
- if(data & 0x40)
- m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
- //data & 0x80 is probably NMI mask
-}
-
-
-#define LOG_VRAM 0
-
-WRITE8_MEMBER(pinkiri8_state::pinkiri8_vram_w)
-{
- switch(offset)
- {
- case 0:
- m_vram_addr = (data << 0) | (m_vram_addr&0xffff00);
- if (LOG_VRAM) printf("\n prev writes was %04x\n\naddress set to %04x -\n", m_prev_writes, m_vram_addr );
- m_prev_writes = 0;
- break;
-
- case 1:
- m_vram_addr = (data << 8) | (m_vram_addr & 0xff00ff);
- if (LOG_VRAM)printf("\naddress set to %04x\n", m_vram_addr);
- break;
-
- case 2:
- m_vram_addr = (data << 16) | (m_vram_addr & 0x00ffff);
- if (LOG_VRAM)printf("\naddress set to %04x\n", m_vram_addr);
- break;
-
- case 3:
- {
- address_space &vdp_space = m_vdp->space();
-
- if (LOG_VRAM) printf("%02x ", data);
- m_prev_writes++;
- m_vram_addr++;
-
- vdp_space.write_byte(m_vram_addr, data);
- break;
- }
- }
-}
-
-
-WRITE8_MEMBER(pinkiri8_state::mux_w)
-{
- m_mux_data = data;
-}
-
-READ8_MEMBER(pinkiri8_state::mux_p2_r)
-{
- switch(m_mux_data)
- {
- case 0x01: return ioport("PL2_01")->read();
- case 0x02: return ioport("PL2_02")->read();
- case 0x04: return ioport("PL2_03")->read();
- case 0x08: return ioport("PL2_04")->read();
- case 0x10: return ioport("PL2_05")->read();
- }
-
- return 0xff;
-}
-
-READ8_MEMBER(pinkiri8_state::mux_p1_r)
-{
- switch(m_mux_data)
- {
- case 0x01: return ioport("PL1_01")->read();
- case 0x02: return ioport("PL1_02")->read();
- case 0x04: return ioport("PL1_03")->read();
- case 0x08: return ioport("PL1_04")->read();
- case 0x10: return ioport("PL1_05")->read();
- }
-
- return 0xff;
-}
-
-void pinkiri8_state::pinkiri8_io(address_map &map)
-{
- map.global_mask(0xff);
- map(0x00, 0x3f).ram(); //Z180 internal I/O
- map(0x60, 0x60).nopw();
- map(0x80, 0x83).w(FUNC(pinkiri8_state::pinkiri8_vram_w));
-
- map(0xa0, 0xa0).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); //correct?
- map(0xb0, 0xb0).w(FUNC(pinkiri8_state::mux_w)); //mux
- map(0xb0, 0xb0).r(FUNC(pinkiri8_state::mux_p2_r)); // mux inputs
- map(0xb1, 0xb1).r(FUNC(pinkiri8_state::mux_p1_r)); // mux inputs
- map(0xb2, 0xb2).portr("SYSTEM");
- map(0xf8, 0xf8).portr("DSW1");
- map(0xf9, 0xf9).portr("DSW2");
- map(0xfa, 0xfa).portr("DSW3");
- map(0xfb, 0xfb).portr("DSW4");
-
- /* Wing custom sound chip, same as Lucky Girl Z180 */
- map(0xc3, 0xc3).nopw();
- map(0xc7, 0xc7).nopw();
- map(0xcb, 0xcb).nopw();
- map(0xcf, 0xcf).nopw();
-
- map(0xd3, 0xd3).nopw();
- map(0xd7, 0xd7).nopw();
- map(0xdb, 0xdb).nopw();
- map(0xdf, 0xdf).nopw();
-
- map(0xe3, 0xe3).nopw();
- map(0xe7, 0xe7).nopw();
- map(0xeb, 0xeb).nopw();
- map(0xef, 0xef).nopw();
-
- map(0xf3, 0xf3).nopw();
- map(0xf7, 0xf7).nopw();
-}
-
-void pinkiri8_state::ronjan_io(address_map &map)
-{
- pinkiri8_io(map);
- map(0x90, 0x90).rw(FUNC(pinkiri8_state::ronjan_prot_r), FUNC(pinkiri8_state::ronjan_prot_w));
- map(0x9f, 0x9f).r(FUNC(pinkiri8_state::ronjan_patched_prot_r));
-}
-
-static INPUT_PORTS_START( base_inputs )
- PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Reset SW")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Books SW")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1) //ron jan needs this
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN )
- PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PL1_01")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
-
- PORT_START("PL1_02")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
-
- PORT_START("PL1_03")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PL1_04")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PL1_05")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL )
-
- PORT_START("PL2_01")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_PLAYER(2)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_PLAYER(2)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_PLAYER(2)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("PL2_02")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) PORT_PLAYER(2)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_PLAYER(2)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_PLAYER(2)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(2)
-
- PORT_START("PL2_03")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_PLAYER(2)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_PLAYER(2)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_PLAYER(2)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PL2_04")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_PLAYER(2)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_PLAYER(2)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PL2_05")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) PORT_PLAYER(2)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(2)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) PORT_PLAYER(2)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) PORT_PLAYER(2)
-
- PORT_START("DSW1")
- PORT_DIPNAME( 0x01, 0x01, "DSW1" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW2")
- PORT_DIPNAME( 0x01, 0x01, "DSW2" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW3")
- PORT_DIPNAME( 0x01, 0x01, "DSW3" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW4")
- PORT_DIPNAME( 0x01, 0x01, "DSW4" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( janshi )
- PORT_INCLUDE( base_inputs )
-
- PORT_MODIFY("DSW1")
- PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x05, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x04, "1 Coin/10 Credits")
- PORT_DIPNAME( 0x08, 0x08, "Round Up Bonus" ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x08, "500" )
- PORT_DIPSETTING( 0x00, "1000" )
- PORT_DIPNAME( 0x30, 0x00, "Base Score" ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x00, "5000 / 8000" )
- PORT_DIPSETTING( 0x10, "4000 / 8000" )
- PORT_DIPSETTING( 0x20, "3000 / 8000" )
- PORT_DIPSETTING( 0x30, "2000 / 8000" )
- PORT_DIPNAME( 0xc0, 0x80, "Win Rate" ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0xc0, DEF_STR( Very_Easy ) )
-
- PORT_MODIFY("DSW2")
- PORT_DIPNAME( 0x03, 0x01, "Play Time" ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x00, "12 Seconds" )
- PORT_DIPSETTING( 0x01, "10 Seconds" )
- PORT_DIPSETTING( 0x02, "8 Seconds" )
- PORT_DIPSETTING( 0x03, "6 Seconds" )
- PORT_DIPNAME( 0x04, 0x04, "Yakuman Bonus" ) PORT_DIPLOCATION("SW2:3")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:4")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x10, 0x10, "BGM" ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x20, 0x20, "Voice" ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x40, 0x40, "Nudity" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
-
- PORT_MODIFY("DSW3")
- PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW3:1" )
- PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW3:2" )
- PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW3:3" )
- PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW3:4" )
- PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW3:5" )
- PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW3:6" )
- PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW3:7" )
- PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW3:8" )
-
- PORT_MODIFY("DSW4")
- PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW4:1" )
- PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW4:2" )
- PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW4:3" )
- PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW4:4" )
- PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW4:5" )
- PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW4:6" )
- PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW4:7" )
- PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW4:8" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( ronjan )
- PORT_INCLUDE( base_inputs )
-
- PORT_MODIFY("DSW1")
- PORT_DIPNAME( 0x03, 0x00, "Play Time Limit" ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x00, "16 Seconds" )
- PORT_DIPSETTING( 0x01, "13 Seconds" )
- PORT_DIPSETTING( 0x02, "10 Seconds" )
- PORT_DIPSETTING( 0x03, "7 Seconds" )
- PORT_DIPNAME( 0x04, 0x04, "Coin Payment" ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x04, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x00, "Auto" )
- //FIXME: Bet Min can't be higher than Bet Max, needs a conditional dip here (or maybe, unified dips)
- PORT_DIPNAME( 0x38, 0x38, "Bet Min" ) PORT_DIPLOCATION("SW1:4,5,6")
- PORT_DIPSETTING( 0x38, "1" )
- PORT_DIPSETTING( 0x30, "2" )
- PORT_DIPSETTING( 0x28, "3" )
- PORT_DIPSETTING( 0x20, "4" )
- PORT_DIPSETTING( 0x18, "5" )
- PORT_DIPSETTING( 0x10, "6" )
- PORT_DIPSETTING( 0x08, "8" )
- PORT_DIPSETTING( 0x00, "10" )
- PORT_DIPNAME( 0xc0, 0x00, "Bet Max" ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0xc0, "5" )
- PORT_DIPSETTING( 0x80, "10" )
- PORT_DIPSETTING( 0x40, "15" )
- PORT_DIPSETTING( 0x00, "20" )
-
- PORT_MODIFY("DSW2")
- PORT_DIPNAME( 0x0f, 0x00, "Rate of Win" ) PORT_DIPLOCATION("SW2:1,2,3,4")
- PORT_DIPSETTING( 0x00, "98%" )
- PORT_DIPSETTING( 0x01, "95%" )
- PORT_DIPSETTING( 0x02, "92%" )
- PORT_DIPSETTING( 0x03, "89%" )
- PORT_DIPSETTING( 0x04, "86%" )
- PORT_DIPSETTING( 0x05, "83%" )
- PORT_DIPSETTING( 0x06, "80%" )
- PORT_DIPSETTING( 0x07, "77%" )
- PORT_DIPSETTING( 0x08, "74%" )
- PORT_DIPSETTING( 0x09, "71%" )
- PORT_DIPSETTING( 0x0a, "68%" )
- PORT_DIPSETTING( 0x0b, "65%" )
- PORT_DIPSETTING( 0x0c, "62%" )
- PORT_DIPSETTING( 0x0d, "59%" )
- PORT_DIPSETTING( 0x0e, "56%" )
- PORT_DIPSETTING( 0x0f, "53%" )
- PORT_DIPNAME( 0x10, 0x10, "Limit Display" ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
- PORT_DIPNAME( 0xe0, 0xe0, "Credit Limit" ) PORT_DIPLOCATION("SW2:6,7,8")
- PORT_DIPSETTING( 0x00, "50000" )
- PORT_DIPSETTING( 0x20, "40000" )
- PORT_DIPSETTING( 0x40, "30000" )
- PORT_DIPSETTING( 0x60, "20000" )
- PORT_DIPSETTING( 0x80, "15000" )
- PORT_DIPSETTING( 0xa0, "10000" )
- PORT_DIPSETTING( 0xc0, "5000" )
- PORT_DIPSETTING( 0xe0, "No Limit" )
-
- PORT_MODIFY("DSW3")
- PORT_DIPNAME( 0x07, 0x07, "Key In Coinage" ) PORT_DIPLOCATION("SW3:1,2,3")
- PORT_DIPSETTING( 0x00, "1 Coin/500 Credits" )
- PORT_DIPSETTING( 0x01, "1 Coin/200 Credits" )
- PORT_DIPSETTING( 0x02, "1 Coin/100 Credits" )
- PORT_DIPSETTING( 0x03, "1 Coin/50 Credits" )
- PORT_DIPSETTING( 0x04, "1 Coin/25 Credits" )
- PORT_DIPSETTING( 0x05, "1 Coin/20 Credits" )
- PORT_DIPSETTING( 0x06, "1 Coin/10 Credits" )
- PORT_DIPSETTING( 0x07, DEF_STR( 1C_5C ) )
- PORT_DIPNAME( 0x78, 0x40, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW3:4,5,6,7")
- PORT_DIPSETTING( 0x78, "10 Coins/1 Credit" )
- PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x68, "5 Coins/2 Credits" )
- PORT_DIPSETTING( 0x60, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x58, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x50, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x48, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x38, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x28, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x20, "1 Coin/10 Credits" )
- PORT_DIPSETTING( 0x18, "1 Coin/20 Credits" )
- PORT_DIPSETTING( 0x10, "1 Coin/25 Credits" )
- PORT_DIPSETTING( 0x08, "1 Coin/50 Credits" )
- PORT_DIPSETTING( 0x00, "1 Coin/100 Credits" )
- PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW3:8" )
-
- PORT_MODIFY("DSW4")
- PORT_DIPNAME( 0x01, 0x01, "Odds Type" ) PORT_DIPLOCATION("SW4:1")
- PORT_DIPSETTING( 0x01, "A" )
- PORT_DIPSETTING( 0x00, "B" )
- PORT_DIPNAME( 0x02, 0x02, "Special Bonus Odds" ) PORT_DIPLOCATION("SW4:2")
- PORT_DIPSETTING( 0x02, "A" )
- PORT_DIPSETTING( 0x00, "B" )
- PORT_DIPNAME( 0x04, 0x00, "Kind Mark of Back" ) PORT_DIPLOCATION("SW4:3")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x08, 0x08, "Nudity" ) PORT_DIPLOCATION("SW4:4")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x10, 0x10, "BGM" ) PORT_DIPLOCATION("SW4:5")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x20, 0x20, "Voice" ) PORT_DIPLOCATION("SW4:6")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x40, 0x40, "Double Up Game" ) PORT_DIPLOCATION("SW4:7")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x80, 0x80, "Double Up Limit" ) PORT_DIPLOCATION("SW4:8")
- PORT_DIPSETTING( 0x80, "6" )
- PORT_DIPSETTING( 0x00, "No Limit" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( pinkiri8 )
- PORT_INCLUDE( base_inputs )
-
- /* standard mahjong panel converted to a hanafuda one */
- PORT_MODIFY("PL1_01")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_E )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_YES )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
-
- PORT_MODIFY("PL1_02")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_B )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_F )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_NO )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
-
- PORT_MODIFY("PL1_03")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_C )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_G )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_MODIFY("PL1_04")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_D )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_H )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_MODIFY("PL1_05")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_MODIFY("PL2_01")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_E ) PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_YES ) PORT_PLAYER(2)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_MODIFY("PL2_02")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_B ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_F ) PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_NO ) PORT_PLAYER(2)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(2)
-
- PORT_MODIFY("PL2_03")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_C ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_G ) PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_MODIFY("PL2_04")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_D ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_H ) PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_MODIFY("PL2_05")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(2)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_MODIFY("DSW1")
- PORT_DIPNAME( 0x01, 0x01, "Game Style" ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x01, "Win / Bet" )
- PORT_DIPSETTING( 0x00, "Out / In" )
- PORT_DIPNAME( 0x02, 0x02, "Premium Hand" ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x04, 0x04, "Coin Payment" ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x04, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x00, "Auto" )
- //FIXME: Bet Min can't be higher than Bet Max, needs a conditional dip here (or maybe, unified dips)
- PORT_DIPNAME( 0x38, 0x38, "Bet Min" ) PORT_DIPLOCATION("SW1:4,5,6")
- PORT_DIPSETTING( 0x38, "1" )
- PORT_DIPSETTING( 0x30, "2" )
- PORT_DIPSETTING( 0x28, "3" )
- PORT_DIPSETTING( 0x20, "4" )
- PORT_DIPSETTING( 0x18, "5" )
- PORT_DIPSETTING( 0x10, "6" )
- PORT_DIPSETTING( 0x08, "8" )
- PORT_DIPSETTING( 0x00, "10" )
- PORT_DIPNAME( 0xc0, 0x00, "Bet Max" ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0xc0, "5" )
- PORT_DIPSETTING( 0x80, "10" )
- PORT_DIPSETTING( 0x40, "15" )
- PORT_DIPSETTING( 0x00, "20" )
-
- PORT_MODIFY("DSW2")
- PORT_DIPNAME( 0x0f, 0x00, "Rate of Win" ) PORT_DIPLOCATION("SW2:1,2,3,4")
- PORT_DIPSETTING( 0x00, "90%" )
- PORT_DIPSETTING( 0x01, "86%" )
- PORT_DIPSETTING( 0x02, "82%" )
- PORT_DIPSETTING( 0x03, "78%" )
- PORT_DIPSETTING( 0x04, "74%" )
- PORT_DIPSETTING( 0x05, "70%" )
- PORT_DIPSETTING( 0x06, "66%" )
- PORT_DIPSETTING( 0x07, "62%" )
- PORT_DIPSETTING( 0x08, "58%" )
- PORT_DIPSETTING( 0x09, "54%" )
- PORT_DIPSETTING( 0x0a, "50%" )
- PORT_DIPSETTING( 0x0b, "46%" )
- PORT_DIPSETTING( 0x0c, "42%" )
- PORT_DIPSETTING( 0x0d, "38%" )
- PORT_DIPSETTING( 0x0e, "34%" )
- PORT_DIPSETTING( 0x0f, "30%" )
- PORT_DIPNAME( 0x10, 0x10, "Odds Type" ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x10, "A" )
- PORT_DIPSETTING( 0x00, "B" )
- PORT_DIPNAME( 0x20, 0x20, "BGM" ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x40, 0x00, "Oya (Owner)" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x40, "CPU Only" )
- PORT_DIPSETTING( 0x00, "Winner" )
- PORT_DIPNAME( 0x80, 0x00, "Koi Time Limit" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x80, "15 Seconds" )
- PORT_DIPSETTING( 0x00, "30 Seconds" )
-
- PORT_MODIFY("DSW3")
- PORT_DIPNAME( 0x07, 0x07, "Key In Coinage" ) PORT_DIPLOCATION("SW3:1,2,3")
- PORT_DIPSETTING( 0x00, "1 Coin/500 Credits" )
- PORT_DIPSETTING( 0x01, "1 Coin/200 Credits" )
- PORT_DIPSETTING( 0x02, "1 Coin/100 Credits" )
- PORT_DIPSETTING( 0x03, "1 Coin/50 Credits" )
- PORT_DIPSETTING( 0x04, "1 Coin/25 Credits" )
- PORT_DIPSETTING( 0x05, "1 Coin/20 Credits" )
- PORT_DIPSETTING( 0x06, "1 Coin/10 Credits" )
- PORT_DIPSETTING( 0x07, DEF_STR( 1C_5C ) )
- PORT_DIPNAME( 0x78, 0x40, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW3:4,5,6,7")
- PORT_DIPSETTING( 0x78, "10 Coins/1 Credit" )
- PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x68, "5 Coins/2 Credits" )
- PORT_DIPSETTING( 0x60, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x58, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x50, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x48, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x38, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x28, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x20, "1 Coin/10 Credits" )
- PORT_DIPSETTING( 0x18, "1 Coin/20 Credits" )
- PORT_DIPSETTING( 0x10, "1 Coin/25 Credits" )
- PORT_DIPSETTING( 0x08, "1 Coin/50 Credits" )
- PORT_DIPSETTING( 0x00, "1 Coin/100 Credits" )
- PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW3:8" )
-
- PORT_MODIFY("DSW4")
- PORT_DIPNAME( 0x01, 0x01, "Pinkiri Bonus" ) PORT_DIPLOCATION("SW4:1")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x02, 0x02, "Same Month Bonus" ) PORT_DIPLOCATION("SW4:2")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x04, 0x00, "Play Time Limit" ) PORT_DIPLOCATION("SW4:3")
- PORT_DIPSETTING( 0x04, "7 Seconds" )
- PORT_DIPSETTING( 0x00, "12 Seconds" )
- PORT_DIPNAME( 0x18, 0x00, "Credit Clear" ) PORT_DIPLOCATION("SW4:4,5")
- PORT_DIPSETTING( 0x00, "300 Seconds" )
- PORT_DIPSETTING( 0x08, "180 Seconds" )
- PORT_DIPSETTING( 0x10, "120 Seconds" )
- PORT_DIPSETTING( 0x18, "60 Seconds" )
- PORT_DIPNAME( 0x20, 0x20, "Panel Type" ) PORT_DIPLOCATION("SW4:6") // no real difference?
- PORT_DIPSETTING( 0x20, "Mahjong" )
- PORT_DIPSETTING( 0x00, "Hanafuda" )
- PORT_DIPNAME( 0x40, 0x40, "Flip Flop Button" ) PORT_DIPLOCATION("SW4:7")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
- PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW4:8" )
-INPUT_PORTS_END
-
-static const gfx_layout charlayout =
-{
- 16,8,
- RGN_FRAC(1,5),
- 5,
- { RGN_FRAC(4,5),RGN_FRAC(3,5),RGN_FRAC(2,5),RGN_FRAC(1,5),RGN_FRAC(0,5) },
- { 0, 1, 2, 3, 4, 5, 6, 7, 8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 },
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
- 8*16
-};
-
-static GFXDECODE_START( gfx_pinkiri8 )
- GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 0x100 )
-GFXDECODE_END
-
-void pinkiri8_state::pinkiri8(machine_config &config)
-{
- HD647180X(config, m_maincpu, XTAL(32'000'000)/2);
- m_maincpu->set_addrmap(AS_PROGRAM, &pinkiri8_state::pinkiri8_map);
- m_maincpu->set_addrmap(AS_IO, &pinkiri8_state::pinkiri8_io);
- m_maincpu->set_vblank_int("screen", FUNC(pinkiri8_state::nmi_line_assert));
- m_maincpu->out_pa_callback().set(FUNC(pinkiri8_state::output_regs_w));
-
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 64*8);
- screen.set_visarea(0*8, 62*8-1, 0*8, 32*8-1);
- screen.set_screen_update(FUNC(pinkiri8_state::screen_update_pinkiri8));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_pinkiri8);
- PALETTE(config, m_palette).set_entries(0x2000);
-
- JANSHIVDP(config, m_vdp, 0);
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); // clock frequency & pin 7 not verified
-}
-
-void pinkiri8_state::ronjan(machine_config &config)
-{
- pinkiri8(config);
-
- m_maincpu->set_addrmap(AS_IO, &pinkiri8_state::ronjan_io);
- m_maincpu->in_pg_callback().set(FUNC(pinkiri8_state::ronjan_prot_status_r));
-}
-
-/***************************************************************************
-
- Game driver(s)
-
-***************************************************************************/
-
-ROM_START( pinkiri8 )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "pinkiri8-ver.1.02.l1", 0x0000, 0x20000, CRC(f2df5b12) SHA1(e374e184a6a1e932550516011ec09a5accec9b03) )
- ROM_LOAD( "bios.rom", 0x0000, 0x4000, CRC(399df1ee) SHA1(8251f3aa7da4c7899c8e739c10b61260f4471311) ) //overlapped internal ROM
-
- ROM_REGION( 0x20000*5, "gfx1", 0 )
- ROM_LOAD( "pinkiri8-chr-01.a1", 0x00000, 0x20000, CRC(8ec73662) SHA1(9098348e519ce753dd7f38f0d855181bfc65aa42) )
- ROM_LOAD( "pinkiri8-chr-02.bc1", 0x20000, 0x20000, CRC(8dc20a65) SHA1(4062510fe06e8844a732754b7915a3b67ba2a3c5) )
- ROM_LOAD( "pinkiri8-chr-03.d1", 0x40000, 0x20000, CRC(bd5f269a) SHA1(7dfd039227551f0f0ed4afaafc76ca64a39a9b83) )
- ROM_LOAD( "pinkiri8-chr-04.ef1", 0x60000, 0x20000, CRC(4d0e5005) SHA1(4b90119c359c4de576131fd0e28d2fe1482ce74f) )
- ROM_LOAD( "pinkiri8-chr-05.h1", 0x80000, 0x20000, CRC(036ca165) SHA1(c4a2d6e394bbabcae1413d8a2916a19c90687edf) )
-
- ROM_REGION( 0x40000, "oki", ROMREGION_ERASE00 )
-ROM_END
-
-
-ROM_START( janshi )
- ROM_REGION( 0x24000, "maincpu", 0 )
- ROM_LOAD( "11.1l", 0x00000, 0x20000, CRC(a7692ddf) SHA1(5e7f43d8337583977baf22a28bbcd9b2182c0cde) )
- ROM_LOAD( "=3= 9009 1992.1 new jansh.bin", 0x0000, 0x4000, CRC(63cd3f12) SHA1(aebac739bffaf043e6acffa978e935f73ee1385f) ) //overlapped internal ROM
-
- ROM_REGION( 0x140000, "gfx1", 0 )
- ROM_LOAD( "1.1a", 0x000000, 0x40000, CRC(92b140a5) SHA1(f3b38563f74650604ed0faaf84460e0b04b386b7) )
- ROM_LOAD( "2.1b", 0x040000, 0x40000, CRC(6de7e086) SHA1(e87426264f0181c17383ffe0f7ec7ff5fce3d809) )
- ROM_LOAD( "3.1d", 0x080000, 0x40000, CRC(4e94d8f2) SHA1(a25f542943d74915fc82910baafb9ff9db1ffd70) )
- ROM_LOAD( "4.1f", 0x0c0000, 0x40000, CRC(a5f6e3ef) SHA1(f1f3d28b27eea682aa71855a311fb3abdf9af2cd) )
- ROM_LOAD( "5.1h", 0x100000, 0x40000, CRC(ff2cc769) SHA1(ba4cf2923cf3d4d815a9327595f8e1801c3c8a2b) )
-
- ROM_REGION( 0x40000, "oki", 0 )
- ROM_LOAD( "6.1k", 0x00000, 0x40000, CRC(8197034d) SHA1(b501dc7a27b1faad1361c309afd726da14b8b5f5) )
-ROM_END
-
-ROM_START( ronjans )
- ROM_REGION( 0x24000, "maincpu", 0 )
- ROM_LOAD( "ver201.bin", 0x00000, 0x20000, CRC(caa98c79) SHA1(e18f52fc910e3a77142ad2a3167805cfd664f0f4) )
- ROM_LOAD( "9009 1996.08 ron jan.bin", 0x00000, 0x4000, CRC(4eb74322) SHA1(84f864c0da3fb69948f6eb7ffecf0e722a882efc) ) //overlapped internal ROM
-
- ROM_REGION( 0x140000, "gfx1", 0 )
- ROM_LOAD( "eagle.1", 0x000000, 0x40000, CRC(11cef2c4) SHA1(fcd46bfa123cd91053f8d49892778e02a275ffdd) )
- ROM_LOAD( "eagle.2", 0x040000, 0x40000, CRC(177c444c) SHA1(5af0f6040ba121c90b3480ce636885cce535d3ea) )
- ROM_LOAD( "eagle.3", 0x080000, 0x40000, CRC(5b15b99f) SHA1(b99e2fa4cde7c8661d1a81ce5045f5df4f1de9f2) )
- ROM_LOAD( "eagle.4", 0x0c0000, 0x40000, CRC(d6797340) SHA1(0394ba570f2008f5a16e7c0a4dc67b1182be8899) )
- ROM_LOAD( "eagle.5", 0x100000, 0x40000, CRC(1aa42eaf) SHA1(edae2d1b58429e09ecfcaa5bcf4a9bfd5fb7cbea) )
-
- ROM_REGION( 0x40000, "oki", 0 )
- ROM_LOAD( "eagle.6", 0x00000, 0x40000, CRC(8197034d) SHA1(b501dc7a27b1faad1361c309afd726da14b8b5f5) )
-ROM_END
-
-ROM_START( ronjan ) // the Z180 internal ROM wasn't extracted from this PCB. Using the one from the above set for the time being, which might be the same but should be checked.
- ROM_REGION( 0x24000, "maincpu", 0 )
- ROM_LOAD( "9.l1", 0x00000, 0x20000, CRC(1bc4468e) SHA1(5b317c922d9a6f533958526e676f95af0ee6a19f) )
- ROM_LOAD( "9009 1991.11 ron jan.bin", 0x00000, 0x4000, BAD_DUMP CRC(4eb74322) SHA1(84f864c0da3fb69948f6eb7ffecf0e722a882efc) ) //overlapped internal ROM
-
- ROM_REGION( 0x140000, "gfx1", 0 )
- ROM_LOAD( "1.a1", 0x000000, 0x20000, CRC(8242a791) SHA1(bb753e81293685499513e83b7a103396b3a32ad8) )
- ROM_LOAD( "2.c1", 0x040000, 0x20000, CRC(4b25c09a) SHA1(edbe1907c300f12bf65c81b2d9e034d6f5545bd0) )
- ROM_LOAD( "3.d1", 0x080000, 0x20000, CRC(7b956af6) SHA1(4a661d5cc5b06658804c8d377d5a266f5bd9ce85) )
- ROM_LOAD( "4.f1", 0x0c0000, 0x20000, CRC(4bebed0b) SHA1(f6e95b3aad1905a397b594db43c65902330945f4) )
- ROM_LOAD( "5.h1", 0x100000, 0x20000, CRC(ec1d36bf) SHA1(5db8cfeea40a85ba62730976b15e8ed00e541dd2) )
-
- ROM_REGION( 0x40000, "oki", 0 )
- ROM_LOAD( "6.j1", 0x00000, 0x20000, CRC(d0b53513) SHA1(e94402f494adae741989c98a8c9587f464f144d2) )
-ROM_END
-
-READ8_MEMBER(pinkiri8_state::ronjan_prot_r)
-{
- static const char wing_str[6] = { 'W', 'I', 'N', 'G', '8', '9' };
-
- m_prot_read_index++;
-
- if(m_prot_read_index & 1)
- return 0xff; //value is discarded
-
- return wing_str[(m_prot_read_index >> 1)-1];
-}
-
-WRITE8_MEMBER(pinkiri8_state::ronjan_prot_w)
-{
- if(data == 0)
- {
- m_prot_index = 0;
- }
- else
- {
- if(m_prot_index == 5)
- return;
-
- m_prot_char[m_prot_index++] = data;
-
- if(m_prot_char[0] == 'E' && m_prot_char[1] == 'R' && m_prot_char[2] == 'R' && m_prot_char[3] == 'O' && m_prot_char[4] == 'R')
- m_prot_read_index = 0;
- }
-}
-
-READ8_MEMBER(pinkiri8_state::ronjan_prot_status_r)
-{
- return 0; //bit 0 seems a protection status bit
-}
-
-READ8_MEMBER(pinkiri8_state::ronjan_patched_prot_r)
-{
- return 0; //value is read then discarded
-}
-
-GAME( 1992, janshi, 0, pinkiri8, janshi, pinkiri8_state, empty_init, ROT0, "Eagle", "Janshi", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
-GAME( 1991, ronjan, ronjans, ronjan, ronjan, pinkiri8_state, empty_init, ROT0, "Wing Co., Ltd", "Ron Jan", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
-GAME( 1994, ronjans, 0, ronjan, ronjan, pinkiri8_state, empty_init, ROT0, "Wing Co., Ltd", "Ron Jan Super", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // 'SUPER' flashes in the middle of the screen
-GAME( 1994, pinkiri8, 0, pinkiri8, pinkiri8, pinkiri8_state, empty_init, ROT0, "Alta", "Pinkiri 8", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )