summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/royalmah.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/royalmah.cpp')
-rw-r--r--src/mame/drivers/royalmah.cpp5496
1 files changed, 0 insertions, 5496 deletions
diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp
deleted file mode 100644
index 51e421b98a5..00000000000
--- a/src/mame/drivers/royalmah.cpp
+++ /dev/null
@@ -1,5496 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Zsolt Vasvari, Nicola Salmoria, Luca Elia
-/****************************************************************************
-
-Royal Mahjong (c) 1981 Nichibutsu
-and many other Dyna/Dynax games running in similar bare-bones hardware
-
-driver by Zsolt Vasvari, Nicola Salmoria, Luca Elia
-
-CPU: Z80 or TLCS-90
-Video: Framebuffer
-Sound: AY-3-8910 (or YM2149)
-OSC: 18.432MHz and 8MHz
-
------------------------------------------------------------------------------------------------------------------------
-Year + Game Board(s) CPU Company Notes
------------------------------------------------------------------------------------------------------------------------
-81 Royal Mahjong Z80 Nichibutsu
-81? Open Mahjong Z80 Sapporo Mechanic
-82 Royal Mahjong ? + FRM-03 Z80 Falcon bootleg
-83 Janyou Part II Z80 Cosmo Denshi
-84? Jan Oh FRM-00? Z80 Toaplan Incomplete program roms
-84? Challenge Girl FRM-03 + SK-1B Z80 Paradise Denshi The dumped set is a bootleg by Falcon
-86 Ippatsu Gyakuten Z80 Public/Paradais
-86 Don Den Mahjong D039198L-0 Z80 Dyna Electronics
-86 Jong Shin D8702158L1-0 Z80 Dyna Electronics
-86 Watashiha Suzumechan D8803288L1-0 Z80 Dyna Electronics
-86 Mahjong Shiyou (BET) S-0086-001-00 Z80 Visco Extra Z80 + MSM5205
-86 Mahjong Yarou FRM-00 (modified) Z80 Visco
-86 Mahjong Senka FRM-00? Z80 Visco
-87 Mahjong Diplomat D0706088L1-0 Z80 Dynax
-87 Mahjong Studio 101 D1708228L1 Z80 Dynax
-87 Tonton D0908288L1-0 Z80 Dynax
-88 Almond Pinky D1401128L-0 + RM-1D Z80 Dynax
-89 Mahjong Shinkirou D210301BL2 + FRM-00? TLCS-90 Dynax
-89 Mahjong Derringer D2203018L Z80 Dynax Larger palette
-90 Mahjong If..? D2909278L TLCS-90 Dynax Larger palette
-91 Mahjong Vegas D5011308L1 + FRM-00 TLCS-90 Dynax Undumped internal rom (mjvegas set)
-92 Mahjong Cafe Time D6310128L1-1 TLCS-90 Dynax Larger palette, RTC
-93 Mahjong Cafe Doll D76052208L-2 TLCS-90 Dynax Larger palette, RTC, Undumped internal rom
-95 Mahjong Tensinhai D10010318L1 TLCS-90 Dynax Larger palette, RTC
-96 Janputer '96 NS503X0727 Z80 Dynax Larger palette, RTC
-97 Janputer Special CS166P008 + NS5110207 Z80 Dynax Larger palette, RTC
-99 Mahjong Cafe Break NS528-9812 TLCS-90 Nakanihon / Dynax Undumped internal rom
-99 Mahjong Cafe Paradise ? + TSS001-0001 TLCS-90 Techno-Top Undumped internal rom
------------------------------------------------------------------------------------------------------------------------
-
-TODO:
-
-- dip switches and inputs in dondenmj, suzume, mjderngr...
-
-- there's something fishy with the bank switching in tontonb/mjdiplob
-
-- majs101b: service mode doesn't work
-
-- mjtensin: random crashes, interrupts related
-
-- convert the remaining set_base calls to configured banking and enable save state support
-
-Stephh's notes (based on the games Z80 code and some tests) :
-
-1) 'royalmah'
-
- - COIN1 doesn't work correctly, the screen goes black instead of showing the
- credits, and you can start a game but the "phantom" credit is not subtracted;
- with NVRAM support, this means the game would always boot to a black screen.
- - The doesn't seem to be any possibility to play a 2 players game
- (but the inputs are mapped so you can test them in the "test mode").
- P1 IN4 doesn't seem to be needed outside the "test mode" either.
-
-2) 'tontonb'
-
- - The doesn't seem to be any possibility to play a 2 players game
- (but the inputs are mapped so you can test them in the "test mode")
- P1 IN4 doesn't seem to be needed outside the "test mode" either.
-
- - I've DELIBERATELY mapped DSW3 before DSW2 to try to spot the common
- things with the other Dynax mahjong games ! Please don't change this !
-
- - When "Special Combinations" Dip Switch is ON, there is a marker in
- front of a random combination. It's value is *2 then.
-
-3) 'mjdiplob'
-
- - The doesn't seem to be any possibility to play a 2 players game
- (but the inputs are mapped so you can test them in the "test mode")
- P1 IN4 doesn't seem to be needed outside the "test mode" either.
-
- - When "Special Combinations" Dip Switch is ON, there is a marker in
- front of a random combination. It's value remains *1 though.
- Could it be a leftover from another game ('tontonb' for exemple) ?
-
-- janptr96, janptrsp: in service mode press in sequence N,Ron,Ron,N to access some
- hidden options. (thanks bnathan)
-
-2009-03-25 FP: fixed verified DSW and default settings for mjclub (thanks to
- translation from manual by Yasu)
-
-****************************************************************************/
-
-#include "emu.h"
-#include "cpu/z80/z80.h"
-#include "cpu/z80/tmpz84c015.h"
-#include "cpu/tlcs90/tlcs90.h"
-#include "machine/gen_latch.h"
-#include "machine/msm6242.h"
-#include "machine/nvram.h"
-#include "sound/ay8910.h"
-#include "sound/dac.h"
-#include "sound/msm5205.h"
-#include "video/mc6845.h"
-#include "emupal.h"
-#include "screen.h"
-#include "speaker.h"
-
-
-namespace {
-
-class royalmah_state : public driver_device
-{
-public:
- royalmah_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_palette(*this, "palette"),
- m_ay(*this, "aysnd"),
- m_videoram(*this, "videoram"),
- m_audiocpu(*this, "audiocpu"),
- m_rtc(*this, "rtc"),
- m_soundlatch(*this, "soundlatch"),
- m_mainbank(*this, "mainbank"),
- m_mainopbank(*this, "mainopbank"),
- m_decrypted_opcodes(*this, "decrypted_opcodes"),
- m_mainview(*this, "mainview")
- { }
-
- void mjdiplob(machine_config &config);
- void tahjong(machine_config &config);
- void tontonb(machine_config &config);
- void mjderngr(machine_config &config);
- void mjsenka(machine_config &config);
- void mjyarou(machine_config &config);
- void janoh(machine_config &config);
- void janoha(machine_config &config);
- void mjtensin(machine_config &config);
- void mjvegasa(machine_config &config);
- void jansou(machine_config &config);
- void cafetime(machine_config &config);
- void seljan(machine_config &config);
- void majs101b(machine_config &config);
- void dondenmj(machine_config &config);
- void daisyari(machine_config &config);
- void mjdejavu(machine_config &config);
- void mjapinky(machine_config &config);
- void royalmah(machine_config &config);
- void mjifb(machine_config &config);
- void janptr96(machine_config &config);
- void ippatsu(machine_config &config);
- void suzume(machine_config &config);
- void jongshin(machine_config &config);
- void mjclub(machine_config &config);
- void makaijan(machine_config &config);
- void janyoup2(machine_config &config);
- void chalgirl(machine_config &config);
- void mjsiyoub(machine_config &config);
- void rkjanoh2(machine_config &config);
-
- void init_tahjong();
- void init_dynax();
- void init_jansou();
- void init_suzume();
- void init_jongshin();
- void init_ippatsu();
- void init_mjifb();
- void init_tontonb();
- void init_janptr96();
- void init_mjsenka();
- void init_mjsiyoub();
- void init_chalgirl();
-
-protected:
- virtual void machine_start() override;
-
-private:
- uint8_t player_1_port_r();
- uint8_t player_2_port_r();
- void input_port_select_w(uint8_t data);
-
- void royalmah_palbank_w(uint8_t data);
-
- void tahjong_bank_w(uint8_t data);
-
- void mjderngr_coin_w(uint8_t data);
- void mjderngr_palbank_w(uint8_t data);
-
- uint8_t majs101b_dsw_r();
-
- uint8_t suzume_dsw_r();
- void suzume_bank_w(uint8_t data);
-
- void jongshin_bank_w(uint8_t data);
-
- void mjapinky_bank_w(uint8_t data);
- void mjapinky_palbank_w(uint8_t data);
- uint8_t mjapinky_dsw_r();
-
- void chalgirl_bank_w(uint8_t data);
-
- void mjyarou_bank_w(offs_t offset, uint8_t data);
-
- void tontonb_bank_w(uint8_t data);
-
- void dynax_bank_w(uint8_t data);
-
- uint8_t daisyari_dsw_r();
- void daisyari_bank_w(uint8_t data);
-
- uint8_t mjclub_dsw_r();
- void mjclub_bank_w(uint8_t data);
-
- void jansou_dsw_sel_w(uint8_t data);
- uint8_t jansou_dsw_r();
- void jansou_colortable_w(offs_t offset, uint8_t data);
- void jansou_6400_w(uint8_t data);
- void jansou_6401_w(uint8_t data);
- void jansou_6402_w(uint8_t data);
- uint8_t jansou_6403_r();
- uint8_t jansou_6404_r();
- uint8_t jansou_6405_r();
- void jansou_sound_w(uint8_t data);
-
- void janptr96_dswsel_w(uint8_t data);
- uint8_t janptr96_dsw_r();
- void janptr96_rombank_w(uint8_t data);
- void janptr96_rambank_w(uint8_t data);
- uint8_t janptr96_unknown_r();
- void janptr96_coin_counter_w(uint8_t data);
-
- void mjifb_coin_counter_w(uint8_t data);
- uint8_t mjifb_p8_r();
- void mjifb_p3_w(uint8_t data);
- void mjifb_p4_w(uint8_t data);
- void mjifb_p8_w(uint8_t data);
-
- uint8_t mjtensin_p3_r();
- void mjtensin_p4_w(uint8_t data);
- void mjtensin_6ff3_w(uint8_t data);
-
- void cafetime_p4_w(uint8_t data);
- void cafetime_p3_w(uint8_t data);
- void cafetime_dsw_w(uint8_t data);
- uint8_t cafetime_dsw_r();
- uint8_t cafetime_7fe4_r();
- void cafetime_7fe3_w(uint8_t data);
-
- void mjvegasa_p4_w(uint8_t data);
- void mjvegasa_p3_w(uint8_t data);
- void mjvegasa_rombank_w(uint8_t data);
- uint8_t mjvegasa_rom_io_r(offs_t offset);
- void mjvegasa_rom_io_w(offs_t offset, uint8_t data);
- void mjvegasa_coin_counter_w(uint8_t data);
- void mjvegasa_12400_w(uint8_t data);
- uint8_t mjvegasa_12500_r();
-
- void royalmah_palette(palette_device &palette) const;
- void mjderngr_palette(palette_device &palette) const;
-
- uint32_t screen_update_royalmah(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
-
- INTERRUPT_GEN_MEMBER(suzume_irq);
-
-
- void cafetime_map(address_map &map);
- void chalgirl_map(address_map &map);
- void chalgirl_iomap(address_map &map);
- void daisyari_iomap(address_map &map);
- void dondenmj_iomap(address_map &map);
- void ippatsu_iomap(address_map &map);
- void janoh_map(address_map &map);
- void janoh_sub_iomap(address_map &map);
- void janoh_sub_map(address_map &map);
- void janptr96_iomap(address_map &map);
- void janptr96_map(address_map &map);
- void jansou_map(address_map &map);
- void jansou_sub_iomap(address_map &map);
- void jansou_sub_map(address_map &map);
- void janyoup2_iomap(address_map &map);
- void jongshin_iomap(address_map &map);
- void majs101b_iomap(address_map &map);
- void makaijan_iomap(address_map &map);
- void mjapinky_iomap(address_map &map);
- void mjapinky_map(address_map &map);
- void mjclub_iomap(address_map &map);
- void mjdejavu_map(address_map &map);
- void mjderngr_iomap(address_map &map);
- void mjdiplob_iomap(address_map &map);
- void mjifb_map(address_map &map);
- void mjsenka_opcodes_map(address_map &map);
- void mjsiyoub_audio_prg_map(address_map &map);
- void mjsiyoub_iomap(address_map &map);
- void mjsiyoub_map(address_map &map);
- void mjtensin_map(address_map &map);
- void mjvegasa_map(address_map &map);
- void mjyarou_iomap(address_map &map);
- void rkjanoh2_iomap(address_map &map);
- void royalmah_iomap(address_map &map);
- void royalmah_map(address_map &map);
- void seljan_iomap(address_map &map);
- void seljan_map(address_map &map);
- void suzume_iomap(address_map &map);
- void tahjong_iomap(address_map &map);
- void tahjong_map(address_map &map);
- void tontonb_iomap(address_map &map);
-
- required_device<cpu_device> m_maincpu;
- required_device<palette_device> m_palette;
- required_device<ay8910_device> m_ay;
- required_shared_ptr<uint8_t> m_videoram;
- optional_device<cpu_device> m_audiocpu;
- optional_device<msm6242_device> m_rtc;
- optional_device<generic_latch_8_device> m_soundlatch;
- optional_memory_bank m_mainbank;
- optional_memory_bank m_mainopbank;
- optional_shared_ptr<uint8_t> m_decrypted_opcodes;
- memory_view m_mainview;
-
- // used by most games
- uint8_t m_input_port_select;
- uint8_t m_dsw_select;
- uint8_t m_rombank;
- uint8_t m_palette_base;
- uint8_t m_flip_screen;
-
- // game specific
- std::unique_ptr<uint8_t[]> m_janptr96_nvram;
-
- uint8_t m_suzume_bank;
- uint8_t m_mjyarou_bank;
-
- uint8_t m_gfx_adr_l;
- uint8_t m_gfx_adr_m;
- uint8_t m_gfx_adr_h;
- uint32_t m_gfx_adr;
- uint8_t m_gfxdata0;
- uint8_t m_gfxdata1;
- uint8_t m_jansou_colortable[16];
-
- void mjtensin_update_rombank();
- void cafetime_update_rombank();
-};
-
-
-void royalmah_state::machine_start()
-{
- save_item(NAME(m_input_port_select));
- save_item(NAME(m_dsw_select));
- save_item(NAME(m_rombank));
- save_item(NAME(m_palette_base));
- save_item(NAME(m_flip_screen));
-
- m_palette_base = 0;
-}
-
-void royalmah_state::royalmah_palette(palette_device &palette) const
-{
- uint8_t const *const prom = memregion("proms")->base();
-
- offs_t const len(memregion("proms")->bytes());
- for (offs_t i = 0; i < len; i++)
- {
- uint8_t bit0, bit1, bit2;
-
- uint8_t const data = prom[i];
-
- // red component
- bit0 = BIT(data, 0);
- bit1 = BIT(data, 1);
- bit2 = BIT(data, 2);
- uint8_t const r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- // green component
- bit0 = BIT(data, 3);
- bit1 = BIT(data, 4);
- bit2 = BIT(data, 5);
- uint8_t const g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- // blue component
- bit0 = 0;
- bit1 = BIT(data, 6);
- bit2 = BIT(data, 7);
- uint8_t const b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- palette.set_pen_color(i, r, g, b);
- }
-}
-
-void royalmah_state::mjderngr_palette(palette_device &palette) const
-{
- uint8_t const *const prom = memregion("proms")->base();
-
- offs_t const len(memregion("proms")->bytes());
- for (offs_t i = 0; i < (len / 2); i++)
- {
- uint16_t const data = (prom[i] << 8) | prom[i + 0x200];
-
- // the bits are in reverse order
- uint8_t const r = bitswap<5>((data >> 0) & 0x1f, 0, 1, 2, 3, 4);
- uint8_t const g = bitswap<5>((data >> 5) & 0x1f, 0, 1, 2, 3, 4);
- uint8_t const b = bitswap<5>((data >> 10) & 0x1f, 0, 1, 2, 3, 4);
-
- palette.set_pen_color(i, pal5bit(r), pal5bit(g), pal5bit(b));
- }
-}
-
-void royalmah_state::royalmah_palbank_w(uint8_t data)
-{
- /* bit 1 = coin counter */
- machine().bookkeeping().coin_counter_w(0,data & 2);
-
- /* bit 2 = flip screen */
- m_flip_screen = (data & 4) >> 2;
-
- /* bit 3 = palette bank */
- m_palette_base = (data >> 3) & 0x01;
-}
-
-
-void royalmah_state::mjderngr_coin_w(uint8_t data)
-{
- /* bit 1 = coin counter */
- machine().bookkeeping().coin_counter_w(0,data & 2);
-
- /* bit 2 = flip screen */
- m_flip_screen = (data & 4) >> 2;
-}
-
-
-void royalmah_state::mjderngr_palbank_w(uint8_t data)
-{
- m_palette_base = data;
-}
-
-
-uint32_t royalmah_state::screen_update_royalmah(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
-{
- for (offs_t offs = 0; offs < 0x4000; offs++)
- {
- uint8_t data1 = m_videoram[offs + 0x0000];
- uint8_t data2 = m_videoram[offs + 0x4000];
-
- uint8_t y = (m_flip_screen) ? 255 - (offs >> 6) : (offs >> 6);
- uint8_t x = (m_flip_screen) ? 255 - (offs << 2) : (offs << 2);
-
- for (int i = 0; i < 4; i++)
- {
- uint8_t pen = ((data2 >> 1) & 0x08) | ((data2 << 2) & 0x04) | ((data1 >> 3) & 0x02) | ((data1 >> 0) & 0x01);
-
- bitmap.pix(y, x) = m_palette->pen((m_palette_base << 4) | pen);
-
- x = (m_flip_screen) ? x - 1 : x + 1;
- data1 = data1 >> 1;
- data2 = data2 >> 1;
- }
- }
-
- return 0;
-}
-
-void royalmah_state::input_port_select_w(uint8_t data)
-{
- m_input_port_select = data;
-}
-
-uint8_t royalmah_state::player_1_port_r()
-{
- int ret = (ioport("KEY0")->read() & 0xc0) | 0x3f;
-
- if ((m_input_port_select & 0x01) == 0) ret &= ioport("KEY0")->read();
- if ((m_input_port_select & 0x02) == 0) ret &= ioport("KEY1")->read();
- if ((m_input_port_select & 0x04) == 0) ret &= ioport("KEY2")->read();
- if ((m_input_port_select & 0x08) == 0) ret &= ioport("KEY3")->read();
- if ((m_input_port_select & 0x10) == 0) ret &= ioport("KEY4")->read();
-
- return ret;
-}
-
-uint8_t royalmah_state::player_2_port_r()
-{
- int ret = (ioport("KEY5")->read() & 0xc0) | 0x3f;
-
- if ((m_input_port_select & 0x01) == 0) ret &= ioport("KEY5")->read();
- if ((m_input_port_select & 0x02) == 0) ret &= ioport("KEY6")->read();
- if ((m_input_port_select & 0x04) == 0) ret &= ioport("KEY7")->read();
- if ((m_input_port_select & 0x08) == 0) ret &= ioport("KEY8")->read();
- if ((m_input_port_select & 0x10) == 0) ret &= ioport("KEY9")->read();
-
- return ret;
-}
-
-
-
-uint8_t royalmah_state::majs101b_dsw_r()
-{
- switch (m_dsw_select)
- {
- case 0x00: return ioport("DSW3")->read(); /* DSW3 */
- case 0x20: return ioport("DSW4")->read(); /* DSW4 */
- case 0x40: return ioport("DSW2")->read(); /* DSW2 */
- }
- return 0;
-}
-
-
-
-uint8_t royalmah_state::suzume_dsw_r()
-{
- if (m_suzume_bank & 0x40)
- {
- return m_suzume_bank;
- }
- else
- {
- switch (m_suzume_bank)
- {
- case 0x08: return ioport("DSW4")->read(); /* DSW4 */
- case 0x10: return ioport("DSW3")->read(); /* DSW3 */
- case 0x18: return ioport("DSW2")->read(); /* DSW2 */
- }
- return 0;
- }
-}
-
-void royalmah_state::tahjong_bank_w(uint8_t data)
-{
- m_mainbank->set_entry(data & 0x01);
-}
-
-void royalmah_state::chalgirl_bank_w(uint8_t data) // TODO: verify behaviour by finishing the game
-{
- logerror("chalgirl_bank_w: %02x\n", data);
-
- // bit 7: only set at start up, then always 0?
- // bit 6: always set?
- // bit 5, 4: always 0?
- // bit 3: alway set?
- // bit 2, 1, 0: ROM bank?
-
- m_mainbank->set_entry(data & 0x07);
-}
-
-void royalmah_state::mjyarou_bank_w(offs_t offset, uint8_t data) // TODO: taken from jongkyo.cpp, verify
-{
- uint8_t mask = 1 << (offset >> 1);
-
- m_mjyarou_bank &= ~mask;
-
- if (offset & 1)
- m_mjyarou_bank |= mask;
-
- m_mainbank->set_entry(m_mjyarou_bank);
-
- if (m_mainopbank)
- m_mainopbank->set_entry(m_mjyarou_bank);
-}
-
-void royalmah_state::suzume_bank_w(uint8_t data)
-{
- m_suzume_bank = data;
-
- logerror("%04x: bank %02x\n",m_maincpu->pc(),data);
-
- /* bits 6, 4 and 3 used for something input related? */
-
- m_mainbank->set_entry(data & 0x07);
-}
-
-void royalmah_state::jongshin_bank_w(uint8_t data)
-{
- logerror("%04x: bank %02x\n",m_maincpu->pc(),data);
-
- m_mainbank->set_entry((data & 0x07) >> 1);
-}
-
-void royalmah_state::mjapinky_bank_w(uint8_t data)
-{
- m_rombank = data;
-
- m_mainbank->set_entry(data & 0x0f);
-}
-
-void royalmah_state::mjapinky_palbank_w(uint8_t data)
-{
- m_flip_screen = (data & 4) >> 2;
- m_palette_base = (data >> 3) & 0x01;
- machine().bookkeeping().coin_counter_w(0,data & 2); // in
- machine().bookkeeping().coin_counter_w(1,data & 1); // out
-}
-
-uint8_t royalmah_state::mjapinky_dsw_r()
-{
- if (m_rombank == 0x0e) return ioport("DSW3")->read();
- else return *(memregion("maincpu")->base() + 0x10000 + 0x8000 * m_rombank);
-}
-
-void royalmah_state::tontonb_bank_w(uint8_t data)
-{
- logerror("%04x: bank %02x\n",m_maincpu->pc(),data);
-
- if (data == 0) return; // tontonb fix?
-
- m_mainbank->set_entry(data & 0x0f);
-}
-
-
-/* bits 5 and 6 seem to affect which Dip Switch to read in 'majs101b' */
-void royalmah_state::dynax_bank_w(uint8_t data)
-{
-//logerror("%04x: bank %02x\n",m_maincpu->pc(),data);
-
- m_dsw_select = data & 0x60;
-
- m_mainbank->set_entry(data & 0x1f);
-}
-
-uint8_t royalmah_state::daisyari_dsw_r()
-{
- switch (m_dsw_select)
- {
- case 0x00: return ioport("DSW4")->read();
- case 0x04: return ioport("DSW1")->read();
- case 0x08: return ioport("DSW2")->read();
- case 0x0c: return ioport("DSW3")->read();
- }
-
- return 0;
-}
-
-void royalmah_state::daisyari_bank_w(uint8_t data)
-{
- uint8_t *rom = memregion("maincpu")->base();
- int address;
-
- m_dsw_select = (data & 0xc);
-
- address = 0x10000 + ((data & 0x30)>>4) * 0x10000 + (data & 0x1) * 0x8000;
-// printf("%08x %02x\n",address,data);
-
- m_mainbank->set_base(&rom[address]);
-
- /* bit 1 used too but unknown purpose. */
-}
-
-uint8_t royalmah_state::mjclub_dsw_r()
-{
- switch (m_dsw_select)
- {
-// case 0x00: return ioport("DSW4")->read();
- case 0x40: return ioport("DSW2")->read();
- case 0x80: return ioport("DSW3")->read();
- case 0xc0: return ioport("DSW4")->read();
- }
-
- return 0;
-}
-
-void royalmah_state::mjclub_bank_w(uint8_t data)
-{
- m_dsw_select = data & 0xc0;
-
- m_mainbank->set_entry(data & 0x0f);
-
- /* bit 5 used too but unknown purpose. */
-}
-
-
-void royalmah_state::royalmah_map(address_map &map)
-{
- map(0x0000, 0x6fff).rom().nopw();
- map(0x7000, 0x7fff).ram().share("nvram");
- map(0x8000, 0xffff).bankr(m_mainbank); // banked ROMs not present in royalmah
- map(0x8000, 0xffff).writeonly().share("videoram");
-}
-
-void royalmah_state::mjapinky_map(address_map &map)
-{
- map(0x0000, 0x6fff).rom().nopw();
- map(0x7000, 0x77ff).ram().share("nvram");
- map(0x7800, 0x7fff).ram();
- map(0x8000, 0xffff).bankr(m_mainbank);
- map(0x8000, 0xffff).writeonly().share("videoram");
- map(0x8000, 0x8000).r(FUNC(royalmah_state::mjapinky_dsw_r));
-}
-
-void royalmah_state::tahjong_map(address_map &map)
-{
- map(0x0000, 0x3fff).rom().nopw();
- map(0x4000, 0x6fff).bankr(m_mainbank);
- map(0x7000, 0x7fff).ram().share("nvram");
- map(0x8000, 0xffff).writeonly().share("videoram");
-}
-
-void royalmah_state::chalgirl_map(address_map &map) // TODO: guesswork, needs verifying
-{
- map(0x0000, 0x6bff).rom().nopw();
- map(0x6c00, 0x6fff).bankr(m_mainbank);
- map(0x7000, 0x7fff).ram().share("nvram");
- map(0x8000, 0xffff).rom();
- map(0x8000, 0xffff).writeonly().share("videoram");
-}
-
-void royalmah_state::mjsiyoub_map(address_map &map)
-{
- map(0x0000, 0x6bff).rom().nopw();
- map(0x6c00, 0x6fff).bankr(m_mainbank);
- map(0x7000, 0x77ff).ram().share("nvram");
- map(0x7800, 0x7fff).rom().nopw();
- map(0x8000, 0xffff).nopr().writeonly().share("videoram");
-}
-
-void royalmah_state::mjsenka_opcodes_map(address_map &map)
-{
- map(0x0000, 0x6bff).rom().share(m_decrypted_opcodes);
- map(0x6c00, 0x6fff).bankr(m_mainopbank);
- map(0x8000, 0xffff).rom().region("maincpu", 0x8000);
-}
-
-void royalmah_state::royalmah_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10, 0x10).portr("DSW1").w(FUNC(royalmah_state::royalmah_palbank_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
-}
-
-void royalmah_state::ippatsu_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10, 0x10).portr("DSW1").w(FUNC(royalmah_state::royalmah_palbank_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0x12, 0x12).portr("DSW2");
- map(0x13, 0x13).portr("DSW3");
-}
-
-void royalmah_state::janyoup2_iomap(address_map &map)
-{
- ippatsu_iomap(map);
- map(0x20, 0x20).w("crtc", FUNC(mc6845_device::address_w));
- map(0x21, 0x21).w("crtc", FUNC(mc6845_device::register_w));
-}
-
-void royalmah_state::chalgirl_iomap(address_map &map)
-{
- royalmah_iomap(map);
-
- map(0x10, 0x10).w(FUNC(royalmah_state::mjderngr_coin_w));
- map(0x40, 0x40).w(FUNC(royalmah_state::chalgirl_bank_w));
-}
-
-void royalmah_state::seljan_map(address_map &map)
-{
- map(0x0000, 0x8fff).rom().nopw();
- map(0xe000, 0xefff).ram().share("nvram");
-}
-
-void royalmah_state::seljan_iomap(address_map &map)
-{
- map(0x0001, 0x0001).mirror(0x7f00).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x0002, 0x0003).mirror(0x7f00).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x0010, 0x0010).mirror(0x7f00).portr("DSW1").w(FUNC(royalmah_state::royalmah_palbank_w));
- map(0x0011, 0x0011).mirror(0x7f00).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0x0012, 0x0012).mirror(0x7f00).portr("DSW2").w("crtc", FUNC(mc6845_device::address_w));
- map(0x0013, 0x0013).mirror(0x7f00).portr("DSW3").w("crtc", FUNC(mc6845_device::register_w));
-
- // TODO: following actually starts at 0x8000, needs custom 6845 routine because it uses start address register.
- map(0x7e00, 0xffff).ram().share("videoram");
-}
-
-void royalmah_state::tahjong_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10, 0x10).portr("DSW1").w(FUNC(royalmah_state::royalmah_palbank_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0x12, 0x12).w(FUNC(royalmah_state::tahjong_bank_w));
- map(0x13, 0x13).portr("DSW2");
-}
-
-void royalmah_state::suzume_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10, 0x10).portr("DSW1").w(FUNC(royalmah_state::royalmah_palbank_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0x80, 0x80).r(FUNC(royalmah_state::suzume_dsw_r));
- map(0x81, 0x81).w(FUNC(royalmah_state::suzume_bank_w));
-}
-
-void royalmah_state::jongshin_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10, 0x10).portr("DSW1").w(FUNC(royalmah_state::royalmah_palbank_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- // map(0x80, 0x80).w(FUNC(royalmah_state::???)); // set to 1 at start-up, then never changed?
- map(0x81, 0x81).portr("DSW2");
- map(0x82, 0x82).portr("DSW3");
- map(0xc0, 0xc0).w(FUNC(royalmah_state::jongshin_bank_w));
-}
-
-void royalmah_state::rkjanoh2_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10, 0x10).portr("DSW1").w(FUNC(royalmah_state::mjderngr_coin_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0x50, 0x55).w(FUNC(royalmah_state::mjyarou_bank_w));
-}
-
-void royalmah_state::mjyarou_iomap(address_map &map)
-{
- rkjanoh2_iomap(map);
- map(0x12, 0x12).portr("DSW2");
-}
-
-void royalmah_state::mjsiyoub_iomap(address_map &map)
-{
- royalmah_iomap(map);
- map(0x13, 0x13).portr("DSW2");
- map(0x40, 0x49).w(FUNC(royalmah_state::mjyarou_bank_w));
-}
-
-void royalmah_state::dondenmj_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10, 0x10).portr("DSW1").w(FUNC(royalmah_state::royalmah_palbank_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0x85, 0x85).portr("DSW2"); // DSW2
- map(0x86, 0x86).portr("DSW3"); // DSW3
- map(0x87, 0x87).w(FUNC(royalmah_state::dynax_bank_w));
-}
-
-void royalmah_state::makaijan_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10, 0x10).portr("DSW1").w(FUNC(royalmah_state::royalmah_palbank_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0x84, 0x84).portr("DSW2"); // DSW2
- map(0x85, 0x85).portr("DSW3"); // DSW3
- map(0x86, 0x86).w(FUNC(royalmah_state::dynax_bank_w));
-}
-
-void royalmah_state::daisyari_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10, 0x10).w(FUNC(royalmah_state::royalmah_palbank_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0xc0, 0xc0).rw(FUNC(royalmah_state::daisyari_dsw_r), FUNC(royalmah_state::daisyari_bank_w));
-}
-
-void royalmah_state::mjclub_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x00, 0x00).rw(FUNC(royalmah_state::mjclub_dsw_r), FUNC(royalmah_state::mjclub_bank_w));
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10, 0x10).portr("DSW1").w(FUNC(royalmah_state::royalmah_palbank_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
-}
-
-void royalmah_state::mjdiplob_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10, 0x10).portr("DSW1").w(FUNC(royalmah_state::royalmah_palbank_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0x61, 0x61).w(FUNC(royalmah_state::tontonb_bank_w));
- map(0x62, 0x62).portr("DSW2"); // DSW2
- map(0x63, 0x63).portr("DSW3"); // DSW3
-}
-
-void royalmah_state::tontonb_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10, 0x10).portr("DSW1").w(FUNC(royalmah_state::royalmah_palbank_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0x44, 0x44).w(FUNC(royalmah_state::tontonb_bank_w));
- map(0x46, 0x46).portr("DSW2"); // DSW2
- map(0x47, 0x47).portr("DSW3"); // DSW3
-}
-
-void royalmah_state::majs101b_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10, 0x10).portr("DSW1").w(FUNC(royalmah_state::royalmah_palbank_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0x00, 0x00).rw(FUNC(royalmah_state::majs101b_dsw_r), FUNC(royalmah_state::dynax_bank_w));
-}
-
-void royalmah_state::mjderngr_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
-// map(0x10, 0x10).portr("DSW1");
- map(0x10, 0x10).w(FUNC(royalmah_state::mjderngr_coin_w)); // palette bank is set separately
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0x20, 0x20).w(FUNC(royalmah_state::dynax_bank_w));
- map(0x40, 0x40).portr("DSW2");
- map(0x4c, 0x4c).portr("DSW1");
- map(0x60, 0x60).w(FUNC(royalmah_state::mjderngr_palbank_w));
-}
-
-void royalmah_state::mjapinky_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x00, 0x00).w(FUNC(royalmah_state::mjapinky_bank_w));
- map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x04, 0x04).portr("DSW2");
- map(0x10, 0x10).portr("DSW1").w(FUNC(royalmah_state::mjapinky_palbank_w));
- map(0x11, 0x11).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
-}
-
-void royalmah_state::janoh_map(address_map &map)
-{
- map(0x0000, 0x6fff).rom().nopw();
- map(0x7000, 0x7fff).ram().share("nvram");
- map(0x8000, 0xffff).writeonly().share("videoram");
-}
-
-
-/* this CPU makes little sense - what is it for? why so many addresses accessed?
- -- it puts a value in shared ram to allow the main CPU to boot, then.. ?
-*/
-void royalmah_state::janoh_sub_map(address_map &map)
-{
- map(0x0000, 0x3fff).rom();
- map(0x4100, 0x413f).ram();
- map(0x6000, 0x607f).ram();
- map(0x7000, 0x7000).nopr();
- map(0x7200, 0x7200).nopw();
- map(0xf000, 0xffff).ram().share("nvram");
-}
-
-void royalmah_state::janoh_sub_iomap(address_map &map)
-{
-}
-
-void royalmah_state::mjsiyoub_audio_prg_map(address_map &map)
-{
- map(0x0000, 0xbfff).rom();
-}
-
-/****************************************************************************
- Jansou
-****************************************************************************/
-
-
-
-void royalmah_state::jansou_dsw_sel_w(uint8_t data)
-{
- m_dsw_select = data;
-}
-
-uint8_t royalmah_state::jansou_dsw_r()
-{
- switch (m_dsw_select & 7)
- {
- case 1: return ioport("DSW1")->read();
- case 2: return ioport("DSW2")->read();
- case 4: return ioport("DSW3")->read();
- }
-
- return 0xff;
-}
-
-void royalmah_state::jansou_colortable_w(offs_t offset, uint8_t data)
-{
- m_jansou_colortable[offset] = data;
-}
-
-void royalmah_state::jansou_6400_w(uint8_t data)
-{
- m_gfx_adr_l = data;
- m_gfx_adr = m_gfx_adr_h*0x10000 + m_gfx_adr_m*0x100 + m_gfx_adr_l;
-}
-
-void royalmah_state::jansou_6401_w(uint8_t data)
-{
- m_gfx_adr_m = data;
- m_gfx_adr = m_gfx_adr_h*0x10000 + m_gfx_adr_m*0x100 + m_gfx_adr_l;
-}
-
-void royalmah_state::jansou_6402_w(uint8_t data)
-{
- m_gfx_adr_h = data & 1;
- m_gfx_adr = m_gfx_adr_h*0x10000 + m_gfx_adr_m*0x100 + m_gfx_adr_l;
-}
-
-uint8_t royalmah_state::jansou_6403_r()
-{
- uint8_t *GFXROM = memregion("gfx1")->base();
- int d0 = GFXROM[m_gfx_adr];
- int d1 = GFXROM[m_gfx_adr+1];
- int c0 = m_jansou_colortable[d1 & 0x0f] & 0x0f;
- int c1 = m_jansou_colortable[(d1 & 0xf0) >> 4] >> 4;
- int c2 = m_jansou_colortable[d0 & 0x0f] & 0x0f;
- int c3 = m_jansou_colortable[(d0 & 0xf0) >> 4] >> 4;
-
- m_gfx_adr += 2;
-
- m_gfxdata0 = (c3 & 1) << 0 | ((c2 & 1) << 1) | ((c1 & 1) << 2) | ((c0 & 1) << 3)
- | ((c3 & 2) << 3) | ((c2 & 2) << 4) | ((c1 & 2) << 5) | ((c0 & 2) << 6);
- m_gfxdata1 = (c3 & 4) >> 2 | ((c2 & 4) >> 1) | (c1 & 4) | ((c0 & 4) << 1)
- | ((c3 & 8) << 1) | ((c2 & 8) << 2) | ((c1 & 8) << 3) | ((c0 & 8) << 4);
-
- return 0xff;
-}
-
-uint8_t royalmah_state::jansou_6404_r()
-{
- return m_gfxdata0;
-}
-
-uint8_t royalmah_state::jansou_6405_r()
-{
- return m_gfxdata1;
-}
-
-void royalmah_state::jansou_sound_w(uint8_t data)
-{
- m_soundlatch->write(data);
- m_audiocpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
-}
-
-void royalmah_state::jansou_map(address_map &map)
-{
- map(0x0000, 0x3fff).rom().nopw();
-
- map(0x6000, 0x600f).w(FUNC(royalmah_state::jansou_colortable_w));
- map(0x6400, 0x6400).w(FUNC(royalmah_state::jansou_6400_w));
- map(0x6401, 0x6401).w(FUNC(royalmah_state::jansou_6401_w));
- map(0x6402, 0x6402).w(FUNC(royalmah_state::jansou_6402_w));
- map(0x6403, 0x6403).r(FUNC(royalmah_state::jansou_6403_r));
- map(0x6404, 0x6404).r(FUNC(royalmah_state::jansou_6404_r));
- map(0x6405, 0x6405).r(FUNC(royalmah_state::jansou_6405_r));
- map(0x6406, 0x6406).w(FUNC(royalmah_state::jansou_dsw_sel_w));
- map(0x6407, 0x6407).r(FUNC(royalmah_state::jansou_dsw_r));
- map(0x6800, 0x6800).w(FUNC(royalmah_state::jansou_sound_w));
-
- map(0x7000, 0x77ff).ram().share("nvram");
- map(0x8000, 0xffff).writeonly().share("videoram");
-}
-
-void royalmah_state::jansou_sub_map(address_map &map)
-{
- map(0x0000, 0xffff).rom().nopw(); // tries to write to the stack at irq generation
-}
-
-
-void royalmah_state::jansou_sub_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x00, 0x00).r(m_soundlatch, FUNC(generic_latch_8_device::read)).w("dac", FUNC(dac_byte_interface::data_w));
-}
-
-
-/****************************************************************************
- Janputer '96
-****************************************************************************/
-
-void royalmah_state::janptr96_map(address_map &map)
-{
- map(0x0000, 0x5fff).rom();
- map(0x6000, 0x6fff).bankrw("bank3").share("nvram"); // nvram
- map(0x7000, 0x7fff).bankrw("rambank"); // banked nvram
- map(0x8000, 0xffff).bankr(m_mainbank);
- map(0x8000, 0xffff).writeonly().share("videoram");
-}
-
-void royalmah_state::janptr96_dswsel_w(uint8_t data)
-{
- // 0x20 = 0 -> hopper on
- // 0x40 ?
- m_dsw_select = data;
-}
-
-uint8_t royalmah_state::janptr96_dsw_r()
-{
- if (~m_dsw_select & 0x01) return ioport("DSW4")->read();
- if (~m_dsw_select & 0x02) return ioport("DSW3")->read();
- if (~m_dsw_select & 0x04) return ioport("DSW2")->read();
- if (~m_dsw_select & 0x08) return ioport("DSW1")->read();
- if (~m_dsw_select & 0x10) return ioport("DSWTOP")->read();
- return 0xff;
-}
-
-void royalmah_state::janptr96_rombank_w(uint8_t data)
-{
- m_mainbank->set_entry(data & 0x3f);
-}
-
-void royalmah_state::janptr96_rambank_w(uint8_t data)
-{
- membank("rambank")->set_entry(data & 0x07);
-}
-
-uint8_t royalmah_state::janptr96_unknown_r()
-{
- // 0x08 = 0 makes the game crash (e.g. in the m-ram test: nested interrupts?)
- return 0xff;
-}
-
-void royalmah_state::janptr96_coin_counter_w(uint8_t data)
-{
- m_flip_screen = (data & 4) >> 2;
- machine().bookkeeping().coin_counter_w(0,data & 2); // in
- machine().bookkeeping().coin_counter_w(1,data & 1); // out
-}
-
-void royalmah_state::janptr96_iomap(address_map &map)
-{
- map.global_mask(0xff);
- map(0x00, 0x00).w(FUNC(royalmah_state::janptr96_rombank_w)); // BANK ROM Select
- map(0x20, 0x20).rw(FUNC(royalmah_state::janptr96_unknown_r), FUNC(royalmah_state::janptr96_rambank_w));
- map(0x50, 0x50).w(FUNC(royalmah_state::mjderngr_palbank_w));
- map(0x60, 0x6f).rw(m_rtc, FUNC(msm6242_device::read), FUNC(msm6242_device::write));
- map(0x81, 0x81).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x82, 0x83).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x93, 0x93).w(FUNC(royalmah_state::input_port_select_w));
- map(0xd8, 0xd8).w(FUNC(royalmah_state::janptr96_coin_counter_w));
- map(0xd9, 0xd9).portr("SYSTEM").nopw(); // second input select?
-}
-
-/****************************************************************************
- Mahjong If
-****************************************************************************/
-
-
-void royalmah_state::mjifb_coin_counter_w(uint8_t data)
-{
- m_flip_screen = ((data & 4) >> 2) ^ 1;
- machine().bookkeeping().coin_counter_w(0,data & 2); // in
- machine().bookkeeping().coin_counter_w(1,data & 1); // out
-}
-
-void royalmah_state::mjifb_map(address_map &map)
-{
- map(0x0000, 0x6fff).rom();
- map(0x7000, 0x7fff).ram().share("nvram");
- map(0x8000, 0xffff).writeonly().share(m_videoram);
- map(0x8000, 0xbfff).view(m_mainview);
- m_mainview[0](0x8000, 0x8000).portr("DSW4");
- m_mainview[0](0x8200, 0x8200).portr("DSW3");
- m_mainview[0](0x8e00, 0x8e00).lw8(NAME([this] (uint8_t data) { m_palette_base = data & 0x1f; }));
- m_mainview[0](0x9001, 0x9001).r(m_ay, FUNC(ay8910_device::data_r));
- m_mainview[0](0x9002, 0x9002).w(m_ay, FUNC(ay8910_device::data_w));
- m_mainview[0](0x9003, 0x9003).w(m_ay, FUNC(ay8910_device::address_w));
- m_mainview[0](0x9010, 0x9010).w(FUNC(royalmah_state::mjifb_coin_counter_w));
- m_mainview[0](0x9011, 0x9011).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- m_mainview[1](0x8000, 0xbfff).bankr(m_mainbank).lw8(NAME([this] (offs_t offset, uint8_t data) { m_videoram[offset] = data; }));
- map(0xc000, 0xffff).rom();
-}
-
-uint8_t royalmah_state::mjifb_p8_r()
-{
- return 0xff;
-}
-
-void royalmah_state::mjifb_p3_w(uint8_t data)
-{
- m_rombank = (m_rombank & 0x0f) | ((data & 0x0c) << 2);
- m_mainbank->set_entry(m_rombank);
-}
-void royalmah_state::mjifb_p4_w(uint8_t data)
-{
- m_rombank = (m_rombank & 0xf0) | (data & 0x0f);
- m_mainbank->set_entry(m_rombank);
-}
-void royalmah_state::mjifb_p8_w(uint8_t data)
-{
- m_mainview.select(BIT(data, 3));
-}
-
-
-/****************************************************************************
- Mahjong Shinkirou Deja Vu
-****************************************************************************/
-
-void royalmah_state::mjdejavu_map(address_map &map)
-{
- map(0x0000, 0x6fff).rom();
- map(0x7000, 0x7fff).ram().share("nvram");
- map(0x8000, 0xffff).writeonly().share(m_videoram);
- map(0x8000, 0xbfff).view(m_mainview);
- m_mainview[0](0x8000, 0x8000).portr("DSW2");
- m_mainview[0](0x8001, 0x8001).portr("DSW1");
- m_mainview[0](0x8802, 0x8802).lw8(NAME([this] (uint8_t data) { m_palette_base = data & 0x1f; }));
- m_mainview[0](0x9001, 0x9001).r(m_ay, FUNC(ay8910_device::data_r));
- m_mainview[0](0x9002, 0x9002).w(m_ay, FUNC(ay8910_device::data_w));
- m_mainview[0](0x9003, 0x9003).w(m_ay, FUNC(ay8910_device::address_w));
- m_mainview[0](0x9010, 0x9010).w(FUNC(royalmah_state::janptr96_coin_counter_w));
- m_mainview[0](0x9011, 0x9011).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- m_mainview[1](0x8000, 0xbfff).bankr(m_mainbank).lw8(NAME([this] (offs_t offset, uint8_t data) { m_videoram[offset] = data; }));
- map(0xc000, 0xffff).rom();
-}
-
-
-/****************************************************************************
- Mahjong Tensinhai
-****************************************************************************/
-
-uint8_t royalmah_state::mjtensin_p3_r()
-{
- return 0xff;
-}
-
-void royalmah_state::mjtensin_update_rombank()
-{
- m_mainbank->set_base(memregion("maincpu")->base() + 0x10000 + m_rombank * 0x8000 );
-}
-void royalmah_state::mjtensin_p4_w(uint8_t data)
-{
- m_rombank = (m_rombank & 0xf0) | (data & 0x0f);
- mjtensin_update_rombank();
-}
-void royalmah_state::mjtensin_6ff3_w(uint8_t data)
-{
- m_rombank = (data << 4) | (m_rombank & 0x0f);
- mjtensin_update_rombank();
-}
-
-void royalmah_state::mjtensin_map(address_map &map)
-{
- map(0x0000, 0x5fff).rom();
- map(0x6000, 0x6fbf).ram();
- map(0x6fc1, 0x6fc1).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x6fc2, 0x6fc3).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x6fd0, 0x6fd0).w(FUNC(royalmah_state::janptr96_coin_counter_w));
- map(0x6fd1, 0x6fd1).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0x6fe0, 0x6fef).rw(m_rtc, FUNC(msm6242_device::read), FUNC(msm6242_device::write));
- map(0x6ff0, 0x6ff0).rw(FUNC(royalmah_state::janptr96_dsw_r), FUNC(royalmah_state::janptr96_dswsel_w));
- map(0x6ff1, 0x6ff1).w(FUNC(royalmah_state::mjderngr_palbank_w));
- map(0x6ff3, 0x6ff3).w(FUNC(royalmah_state::mjtensin_6ff3_w));
- map(0x7000, 0x7fff).ram().share("nvram");
- map(0x8000, 0xffff).bankr(m_mainbank);
- map(0x8000, 0xffff).writeonly().share("videoram");
-}
-
-
-/****************************************************************************
- Mahjong Cafe Time
-****************************************************************************/
-
-void royalmah_state::cafetime_update_rombank()
-{
- m_mainbank->set_base(memregion("maincpu")->base() + 0x10000 + m_rombank * 0x8000 );
-}
-void royalmah_state::cafetime_p4_w(uint8_t data)
-{
- m_rombank = (m_rombank & 0xf0) | (data & 0x0f);
- cafetime_update_rombank();
-}
-void royalmah_state::cafetime_p3_w(uint8_t data)
-{
- m_rombank = (m_rombank & 0x0f) | ((data & 0x0c) << 2);
- cafetime_update_rombank();
-}
-
-void royalmah_state::cafetime_dsw_w(uint8_t data)
-{
- m_dsw_select = data;
-}
-uint8_t royalmah_state::cafetime_dsw_r()
-{
- switch( m_dsw_select )
- {
- case 0x00: return ioport("DSW1")->read();
- case 0x01: return ioport("DSW2")->read();
- case 0x02: return ioport("DSW3")->read();
- case 0x03: return ioport("DSW4")->read();
- case 0x04: return ioport("DSWTOP")->read();
- }
- logerror("%04X: unmapped dsw read %02X\n", m_maincpu->pc(), m_dsw_select);
- return 0xff;
-}
-
-uint8_t royalmah_state::cafetime_7fe4_r()
-{
- return 0xff;
-}
-void royalmah_state::cafetime_7fe3_w(uint8_t data)
-{
-// popmessage("%02x",data);
-}
-
-void royalmah_state::cafetime_map(address_map &map)
-{
- map(0x0000, 0x5fff).rom();
- map(0x6000, 0x7eff).ram().share("nvram");
- map(0x7fc1, 0x7fc1).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x7fc2, 0x7fc3).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x7fd0, 0x7fd0).w(FUNC(royalmah_state::janptr96_coin_counter_w));
- map(0x7fd1, 0x7fd1).portr("SYSTEM").nopw();
- map(0x7fd3, 0x7fd3).w(FUNC(royalmah_state::input_port_select_w));
- map(0x7fe0, 0x7fe0).r(FUNC(royalmah_state::cafetime_dsw_r));
- map(0x7fe1, 0x7fe1).w(FUNC(royalmah_state::cafetime_dsw_w));
- map(0x7fe2, 0x7fe2).w(FUNC(royalmah_state::mjderngr_palbank_w));
- map(0x7fe3, 0x7fe3).w(FUNC(royalmah_state::cafetime_7fe3_w));
- map(0x7fe4, 0x7fe4).r(FUNC(royalmah_state::cafetime_7fe4_r));
- map(0x7ff0, 0x7fff).rw(m_rtc, FUNC(msm6242_device::read), FUNC(msm6242_device::write));
- map(0x8000, 0xffff).bankr(m_mainbank);
- map(0x8000, 0xffff).writeonly().share("videoram");
-}
-
-
-/****************************************************************************
- Mahjong Vegas
-****************************************************************************/
-
-void royalmah_state::mjvegasa_p4_w(uint8_t data)
-{
- m_rombank = (m_rombank & 0xf8) | ((data & 0x0e) >> 1);
-}
-void royalmah_state::mjvegasa_p3_w(uint8_t data)
-{
- m_rombank = (m_rombank & 0xf7) | ((data & 0x04) << 1);
-}
-void royalmah_state::mjvegasa_rombank_w(uint8_t data)
-{
- m_rombank = (m_rombank & 0x0f) | ((data & 0x0f) << 4);
-}
-
-uint8_t royalmah_state::mjvegasa_rom_io_r(offs_t offset)
-{
- if ((m_rombank & 0x70) != 0x70)
- return memregion("maincpu")->base()[0x10000 + m_rombank * 0x8000 + offset];
-
- offset += 0x8000;
-
- if((offset & 0xfff0) == 0x8000)
- {
- return m_rtc->read(offset & 0xf);
- }
-
- logerror("%04X: unmapped IO read at %04X\n", m_maincpu->pc(), offset);
- return 0xff;
-}
-
-void royalmah_state::mjvegasa_rom_io_w(offs_t offset, uint8_t data)
-{
- if ((m_rombank & 0x70) != 0x70)
- {
- m_videoram[offset] = data;
- return;
- }
-
- offset += 0x8000;
-
- if((offset & 0xfff0) == 0x8000)
- {
- m_rtc->write(offset & 0xf, data);
- return;
- }
-
- logerror("%04X: unmapped IO write at %04X = %02X\n", m_maincpu->pc(), offset,data);
-}
-
-void royalmah_state::mjvegasa_coin_counter_w(uint8_t data)
-{
- m_flip_screen = (data & 4) >> 2;
- machine().bookkeeping().coin_counter_w(0,data & 2); // in
- machine().bookkeeping().coin_counter_w(1,data & 1); // out
-}
-
-// hopper?
-void royalmah_state::mjvegasa_12400_w(uint8_t data)
-{
- // bits 0 & 1
-// popmessage("UNK: %02x",data);
-}
-uint8_t royalmah_state::mjvegasa_12500_r()
-{
- // bits 0 & 2
- return 0xff;
-}
-
-void royalmah_state::mjvegasa_map(address_map &map)
-{
-
- map(0x00000, 0x05fff).rom();
- map(0x06000, 0x07fff).ram().share("nvram");
- map(0x08000, 0x0ffff).rw(FUNC(royalmah_state::mjvegasa_rom_io_r), FUNC(royalmah_state::mjvegasa_rom_io_w)).share("videoram");
-
- map(0x10001, 0x10001).r(m_ay, FUNC(ay8910_device::data_r));
- map(0x10002, 0x10003).w(m_ay, FUNC(ay8910_device::data_address_w));
- map(0x10010, 0x10010).w(FUNC(royalmah_state::mjvegasa_coin_counter_w));
- map(0x10011, 0x10011).portr("SYSTEM").w(FUNC(royalmah_state::input_port_select_w));
- map(0x10013, 0x10013).w(FUNC(royalmah_state::input_port_select_w));
-
- map(0x12000, 0x12000).w(FUNC(royalmah_state::mjvegasa_rombank_w));
- map(0x12100, 0x12100).r(FUNC(royalmah_state::cafetime_dsw_r));
- map(0x12200, 0x12200).w(FUNC(royalmah_state::cafetime_dsw_w));
- map(0x12300, 0x12300).w(FUNC(royalmah_state::mjderngr_palbank_w));
- map(0x12400, 0x12400).w(FUNC(royalmah_state::mjvegasa_12400_w));
- map(0x12500, 0x12500).r(FUNC(royalmah_state::mjvegasa_12500_r));
-
-}
-
-
-
-static INPUT_PORTS_START( mjctrl1 )
- PORT_START("KEY0") /* P1 IN0 */
- 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_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Credit Clear") PORT_CODE(KEYCODE_O)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Credit Clear") PORT_CODE(KEYCODE_8)
-
- PORT_START("KEY1") /* P1 IN1 */
- 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_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("KEY2") /* P1 IN2 */
- 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( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("KEY3") /* P1 IN3 */
- 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( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("KEY4") /* P1 IN4 */
- 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_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("KEY5") /* P2 IN0 */
- 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_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY6") /* P2 IN1 */
- 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_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("KEY7") /* P2 IN2 */
- 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( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("KEY8") /* P2 IN3 */
- 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( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("KEY9") /* P2 IN4 */
- 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_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("SYSTEM") /* IN10 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) /* "Note" ("Paper Money") = 10 Credits */
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_MEMORY_RESET ) /* Memory Reset */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) /* Analizer (Statistics) */
- PORT_SERVICE( 0x08, IP_ACTIVE_HIGH )
- PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( mjctrl2 )
- PORT_INCLUDE( mjctrl1 )
-
- PORT_MODIFY("KEY0")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Payout") PORT_CODE(KEYCODE_O)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( royalmah )
- PORT_INCLUDE( mjctrl1 )
-
- PORT_MODIFY("KEY5")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // "COIN2"
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) // "COIN1", but not working
-
- PORT_START("DSW1") /* DSW (inport $10) */
- PORT_DIPNAME( 0x0f, 0x0f, "Pay Out Rate" )
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x30, 0x30, "Maximum Bet" )
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x10, "5" )
- PORT_DIPSETTING( 0x20, "10" )
- PORT_DIPSETTING( 0x30, "20" )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( tahjong )
- PORT_INCLUDE( mjctrl1 )
-
- PORT_MODIFY("KEY5")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // "COIN2"
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) // "COIN1", but not working
-
- PORT_START("DSW1") // port $10
- PORT_DIPNAME( 0x07, 0x07, "SWB:1,2,3" ) PORT_DIPLOCATION("SWB:1,2,3") // only with bets on
- PORT_DIPSETTING( 0x00, "0" )
- PORT_DIPSETTING( 0x01, "1" )
- PORT_DIPSETTING( 0x02, "2" )
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPSETTING( 0x04, "4" )
- PORT_DIPSETTING( 0x05, "5" )
- PORT_DIPSETTING( 0x06, "5 (6)" )
- PORT_DIPSETTING( 0x07, "5 (7)" )
- PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SWB:4")
- PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SWB:5")
- PORT_DIPNAME( 0x60, 0x60, "Winnings" ) PORT_DIPLOCATION("SWB:6,7")
- PORT_DIPSETTING( 0x40, "30 30 10 10 5 5 1 1" )
- PORT_DIPSETTING( 0x20, "32 24 16 12 8 4 2 1" )
- PORT_DIPSETTING( 0x60, "100 50 30 10 5 4 3 2" )
- PORT_DIPSETTING( 0x00, "200 50 30 10 5 4 3 2" )
- PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SWB:8")
-
- PORT_START("DSW2") // port $13
- PORT_DIPNAME( 0x07, 0x07, "Pay Out Rate" ) PORT_DIPLOCATION("SWA:1,2,3")
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x02, "68%" )
- PORT_DIPSETTING( 0x06, "71%" )
- PORT_DIPSETTING( 0x01, "75%" )
- PORT_DIPSETTING( 0x05, "78%" )
- PORT_DIPSETTING( 0x03, "81%" )
- PORT_DIPSETTING( 0x07, "90%" )
- PORT_DIPNAME( 0x18, 0x18, "Maximum Bet" ) PORT_DIPLOCATION("SWA:4,5")
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x08, "5" )
- PORT_DIPSETTING( 0x10, "10" )
- PORT_DIPSETTING( 0x18, "20" )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SWA:6")
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0x40, 0x40, "Allow Bets" ) PORT_DIPLOCATION("SWA:7")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x80, 0x80, "Note Rate" ) PORT_DIPLOCATION("SWA:8")
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPSETTING( 0x80, "10" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( janyoup2 )
- PORT_INCLUDE( royalmah )
-
- PORT_START("DSW2") /* DSW (inport $12) */
- PORT_DIPNAME( 0x01, 0x01, "Unknown 1-0" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Unknown 1-1" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "Unknown 1-2" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "Unknown 1-3" )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Unknown 1-4" )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "Unknown 1-5" )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 1-6" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 1-7" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW3") /* DSW (inport $13) */
- PORT_DIPNAME( 0x01, 0x01, "Unknown 2-0" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Unknown 2-1" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "Unknown 2-2" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "Unknown 2-3" )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Unknown 2-4" )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "Unknown 2-5" )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 2-6" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 2-7" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( seljan )
- PORT_INCLUDE( royalmah )
-
- PORT_START("DSW2") /* DSW (inport $12) */
- PORT_DIPNAME( 0x01, 0x01, "Unknown 1-0" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Unknown 1-1" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "Unknown 1-2" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "Unknown 1-3" )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Unknown 1-4" )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, "Unknown 1-5" ) // these two activates credit analyzer if they are off
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, "Unknown 1-6" ) // ^
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 1-7" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW3") /* DSW (inport $13) */
- PORT_DIPNAME( 0x01, 0x01, "Unknown 2-0" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Unknown 2-1" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "Unknown 2-2" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "Unknown 2-3" )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Unknown 2-4" )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "Unknown 2-5" )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 2-6" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 2-7" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( suzume )
- PORT_INCLUDE( mjctrl2 )
-
- PORT_START("DSW1") /* DSW1 */
- PORT_DIPNAME( 0x0f, 0x0f, "Pay Out Rate" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPNAME( 0x30, 0x30, "Maximum Bet" )
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x10, "5" )
- PORT_DIPSETTING( 0x20, "10" )
- PORT_DIPSETTING( 0x30, "20" )
- 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") /* DSW2 */
- PORT_DIPNAME( 0x03, 0x03, "Winnings" )
- PORT_DIPSETTING( 0x03, "50 30 15 8 5 3 2 1" )
- PORT_DIPSETTING( 0x00, "50 30 20 15 8 6 3 2" )
- PORT_DIPSETTING( 0x02, "100 50 25 10 5 3 2 1" )
- PORT_DIPSETTING( 0x01, "200 100 50 10 5 3 2 1" )
- 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") /* DSW3 */
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, "2" )
- PORT_DIPSETTING( 0x01, "4" )
- PORT_DIPSETTING( 0x02, "6" )
- PORT_DIPSETTING( 0x03, "8" )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "Background" )
- PORT_DIPSETTING( 0x08, "Black" )
- PORT_DIPSETTING( 0x00, "Green" )
- 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, "Girls" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_START("DSW4") /* DSW4 */
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
- 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( 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( jongshin )
- PORT_INCLUDE( mjctrl2 )
-
- PORT_START("DSW1")
- PORT_DIPUNKNOWN_DIPLOC(0x01, 0x00, "SW1:1")
- PORT_DIPUNKNOWN_DIPLOC(0x02, 0x00, "SW1:2")
- PORT_DIPUNKNOWN_DIPLOC(0x04, 0x00, "SW1:3")
- PORT_DIPUNKNOWN_DIPLOC(0x08, 0x00, "SW1:4")
- PORT_DIPUNKNOWN_DIPLOC(0x10, 0x00, "SW1:5")
- PORT_DIPUNKNOWN_DIPLOC(0x20, 0x00, "SW1:6")
- PORT_DIPUNKNOWN_DIPLOC(0x40, 0x00, "SW1:7")
- PORT_DIPUNKNOWN_DIPLOC(0x80, 0x00, "SW1:8")
-
- PORT_START("DSW2")
- PORT_DIPUNKNOWN_DIPLOC(0x01, 0x00, "SW2:1")
- PORT_DIPUNKNOWN_DIPLOC(0x02, 0x00, "SW2:2")
- PORT_DIPUNKNOWN_DIPLOC(0x04, 0x00, "SW2:3")
- PORT_DIPUNKNOWN_DIPLOC(0x08, 0x00, "SW2:4")
- PORT_DIPUNKNOWN_DIPLOC(0x10, 0x00, "SW2:5")
- PORT_DIPUNKNOWN_DIPLOC(0x20, 0x00, "SW2:6")
- PORT_DIPUNKNOWN_DIPLOC(0x40, 0x00, "SW2:7")
- PORT_DIPUNKNOWN_DIPLOC(0x80, 0x00, "SW2:8") // setting this causes the game to continually reset on title screen
-
- PORT_START("DSW3")
- PORT_DIPUNKNOWN_DIPLOC(0x01, 0x00, "SW3:1")
- PORT_DIPUNKNOWN_DIPLOC(0x02, 0x00, "SW3:2")
- PORT_DIPUNKNOWN_DIPLOC(0x04, 0x00, "SW3:3")
- PORT_DIPUNKNOWN_DIPLOC(0x08, 0x00, "SW3:4")
- PORT_DIPUNKNOWN_DIPLOC(0x10, 0x00, "SW3:5")
- PORT_DIPUNKNOWN_DIPLOC(0x20, 0x00, "SW3:6")
- PORT_DIPUNKNOWN_DIPLOC(0x40, 0x00, "SW3:7")
- PORT_DIPUNKNOWN_DIPLOC(0x80, 0x00, "SW3:8")
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( mjyarou )
- PORT_INCLUDE( royalmah )
-
- PORT_START("DSW2")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
- 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( 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( tontonb )
- PORT_INCLUDE( mjctrl2 )
-
- PORT_START("DSW1") /* DSW1 (inport $10 -> 0x73b0) */
- PORT_DIPNAME( 0x0f, 0x0f, "Pay Out Rate" )
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x30, 0x30, "Maximum Bet" )
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x10, "5" )
- PORT_DIPSETTING( 0x20, "10" )
- PORT_DIPSETTING( 0x30, "20" )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) // affects videoram - flip screen ?
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Debug Mode ?" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW3") /* DSW3 (inport $47 -> 0x73b1) */
- PORT_DIPNAME( 0x03, 0x03, "Winnings" ) // check code at 0x0e6d
- PORT_DIPSETTING( 0x00, "32 24 16 12 8 4 2 1" ) // table at 0x4e7d
- PORT_DIPSETTING( 0x03, "50 30 15 8 5 3 2 1" ) // table at 0x4e4d
- PORT_DIPSETTING( 0x02, "100 50 25 10 5 3 2 1" ) // table at 0x4e5d
- PORT_DIPSETTING( 0x01, "200 100 50 10 5 3 2 1" ) // table at 0x4e6d
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) // check code at 0x5184
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) // stores something at 0x76ff
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) // check code at 0x1482, 0x18c2, 0x1a1d, 0x1a83, 0x2d2f and 0x2d85
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x60, 0x60, "Maximum Payout ?" ) // check code at 0x1ab7
- PORT_DIPSETTING( 0x00, "100" )
- PORT_DIPSETTING( 0x20, "200" )
- PORT_DIPSETTING( 0x40, "300" )
- PORT_DIPSETTING( 0x60, "500" )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) // check code at 0x18c2, 0x1a1d, 0x2d2f and 0x2d85
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_START("DSW2") /* DSW2 (inport $46 -> 0x73b2) */
- PORT_DIPNAME( 0x01, 0x00, "Special Combinations" ) // see notes
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) // check code at 0x07c5
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) // check code at 0x5375
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) // check code at 0x5241
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) // untested ?
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) // check code at 0x13aa
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Full Tests" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-INPUT_PORTS_END
-
-/* TODO: check dip-switches */
-static INPUT_PORTS_START( makaijan )
- PORT_INCLUDE( mjctrl2 )
-
- PORT_START("DSW1")
- PORT_DIPNAME( 0x0f, 0x0f, "Pay Out Rate" )
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x30, 0x30, "Maximum Bet" )
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x10, "5" )
- PORT_DIPSETTING( 0x20, "10" )
- PORT_DIPSETTING( 0x30, "20" )
- PORT_DIPNAME( 0x40, 0x00, "Background Color" )
- PORT_DIPSETTING( 0x00, "Green" )
- PORT_DIPSETTING( 0x40, "Black" )
- PORT_DIPNAME( 0x80, 0x80, "Debug Mode ?" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW3")
- PORT_DIPNAME( 0x01, 0x00, "Special Combinations" )
- 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, "Full Tests" )
- 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 ) )
-INPUT_PORTS_END
-
-/* TODO: check dip-switches */
-static INPUT_PORTS_START( daisyari )
- PORT_INCLUDE( mjctrl2 )
-
- PORT_START("DSW1")
- PORT_DIPNAME( 0x0f, 0x0f, "Pay Out Rate" )
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x30, 0x30, "Maximum Bet" )
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x10, "5" )
- PORT_DIPSETTING( 0x20, "10" )
- PORT_DIPSETTING( 0x30, "20" )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_START("DSW3")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Full Tests" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW2")
- PORT_DIPNAME( 0x01, 0x00, "DSW2" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_START("DSW4")
- PORT_DIPNAME( 0x01, 0x00, "DSW4" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( mjclub )
- PORT_INCLUDE( mjctrl2 )
-
- /* On the main board */
- PORT_START("DSW1")
- PORT_DIPNAME( 0x0f, 0x08, "Pay Out Rate" ) PORT_DIPLOCATION("SW4:1,2,3,4")
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x30, 0x20, "Maximum Bet" ) PORT_DIPLOCATION("SW4:5,6")
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x10, "5" )
- PORT_DIPSETTING( 0x20, "10" )
- PORT_DIPSETTING( 0x30, "20" )
- PORT_DIPNAME( 0x40, 0x40, "Note Rate" ) PORT_DIPLOCATION("SW4:7")
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPSETTING( 0x40, "10" )
- PORT_DIPNAME( 0x80, 0x80, "Data Display" ) PORT_DIPLOCATION("SW4:8")
- PORT_DIPSETTING( 0x80, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
-
- /* On the subboard */
- PORT_START("DSW3")
- PORT_DIPNAME( 0x03, 0x00, "Game Type" ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x00, "A" )
- PORT_DIPSETTING( 0x02, "B" )
- PORT_DIPSETTING( 0x01, "C" )
- PORT_DIPSETTING( 0x03, "D" )
- PORT_DIPUNUSED_DIPLOC( 0x0c, 0x08, "SW2:3,4" ) PORT_CONDITION("DSW3", 0x03, EQUALS, 0x00)
- PORT_DIPUNUSED_DIPLOC( 0x0c, 0x08, "SW2:3,4" ) PORT_CONDITION("DSW3", 0x03, EQUALS, 0x02)
- PORT_DIPNAME( 0x0c, 0x08, "Bonus Rate (3renchan bonus)" ) PORT_DIPLOCATION("SW2:3,4") PORT_CONDITION("DSW3", 0x03, EQUALS, 0x01)
- PORT_DIPSETTING( 0x00, "A (1 2 2 3 pts.)" )
- PORT_DIPSETTING( 0x04, "B (1 2 2 5 pts.)" )
- PORT_DIPSETTING( 0x08, "C (1 2 3 6 pts.)" )
- PORT_DIPSETTING( 0x0c, "D (1 2 6 10 pts.)" )
- PORT_DIPNAME( 0x0c, 0x08, "Bonus Rate (5renchan bonus)" ) PORT_DIPLOCATION("SW2:3,4") PORT_CONDITION("DSW3", 0x03, EQUALS, 0x03)
- PORT_DIPSETTING( 0x00, "A (5 pts.)" )
- PORT_DIPSETTING( 0x04, "B (10 pts.)" )
- PORT_DIPSETTING( 0x08, "C (15 pts.)" )
- PORT_DIPSETTING( 0x0c, "D (20 pts.)" )
- PORT_DIPNAME( 0x30, 0x00, "CPU Houjuu Pattern" ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x00, "100% Free" )
- PORT_DIPSETTING( 0x10, "75% Free" )
- PORT_DIPSETTING( 0x20, "50% Free" )
- PORT_DIPSETTING( 0x30, "25% Free" )
- PORT_DIPNAME( 0x40, 0x00, "Payout Rate Autochange" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x40, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x80, 0x80, "Test Mode" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- /* On the subboard */
- PORT_START("DSW2")
- PORT_DIPNAME( 0x01, 0x00, "Double Odds Bonus" ) PORT_DIPLOCATION("SW3:1")
- PORT_DIPSETTING( 0x01, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x02, 0x00, "Extra Bet" ) PORT_DIPLOCATION("SW3:2")
- PORT_DIPSETTING( 0x02, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x04, 0x00, "Color Hai Bonus" ) PORT_DIPLOCATION("SW3:3")
- PORT_DIPSETTING( 0x04, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x08, 0x00, "Sangenhai Bonus" ) PORT_DIPLOCATION("SW3:4")
- PORT_DIPSETTING( 0x08, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPUNUSED_DIPLOC( 0x70, 0x00, "SW3:5,6,7" )
- PORT_DIPNAME( 0x80, 0x00, "Coin Needed for Last Chance" ) PORT_DIPLOCATION("SW3:8")
- PORT_DIPSETTING( 0x80, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
-
- /* On the subboard */
- PORT_START("DSW4")
- PORT_DIPNAME( 0x03, 0x00, "Odds Rate" ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x03, "A (50 30 15 8 5 4 3 2)" )
- PORT_DIPSETTING( 0x02, "B (100 40 20 10 5 4 3 2)" )
- PORT_DIPSETTING( 0x01, "C (150 70 30 10 5 4 3 2)" )
- PORT_DIPSETTING( 0x00, "D (32 24 16 12 8 4 2 1)" )
- PORT_DIPNAME( 0x3c, 0x3c, "Bonus Awarded at:" ) PORT_DIPLOCATION("SW1:3,4,5,6")
- PORT_DIPSETTING( 0x00, "1st Time Only" )
- PORT_DIPSETTING( 0x20, "200 Coins" )
- PORT_DIPSETTING( 0x10, "300 Coins" )
- PORT_DIPSETTING( 0x30, "400 Coins" )
- PORT_DIPSETTING( 0x08, "500 Coins" )
- PORT_DIPSETTING( 0x28, "600 Coins" )
- PORT_DIPSETTING( 0x18, "700 Coins" )
- PORT_DIPSETTING( 0x38, "1000 Coins" )
- PORT_DIPSETTING( 0x3c, "Never" )
- PORT_DIPNAME( 0x40, 0x40, "Bonus Occurrence" ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x00, "Once" )
- PORT_DIPSETTING( 0x40, "Twice" )
- PORT_DIPNAME( 0x80, 0x80, "Background Color" ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x00, "White" ) // Black according to manual
- PORT_DIPSETTING( 0x80, "Green" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( mjdiplob )
- PORT_INCLUDE( mjctrl2 )
-
- PORT_START("DSW1") /* DSW1 (inport $10 -> 0x76fa) */
- PORT_DIPNAME( 0x0f, 0x0f, "Pay Out Rate" ) PORT_DIPLOCATION("SW1:1,2,3,4")
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x30, 0x30, "Maximum Bet" ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x10, "5" )
- PORT_DIPSETTING( 0x20, "10" )
- PORT_DIPSETTING( 0x30, "20" )
- PORT_DIPNAME( 0x40, 0x00, "Table Color" ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x00, "Green" )
- PORT_DIPSETTING( 0x40, "Black" )
- PORT_DIPNAME( 0x80, 0x80, "Debug Mode ?" ) PORT_DIPLOCATION("SW1:8") // check code at 0x0b94 and 0x0de2
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW2") /* DSW2 (inport $62 -> 0x76fb) */
- PORT_DIPNAME( 0x03, 0x03, "Winnings" ) PORT_DIPLOCATION("SW2:1,2") // check code at 0x09cd
- PORT_DIPSETTING( 0x00, "32 24 16 12 8 4 2 1" ) // table at 0x4b82
- PORT_DIPSETTING( 0x03, "50 30 15 8 5 3 2 1" ) // table at 0x4b52
- PORT_DIPSETTING( 0x02, "100 50 25 10 5 3 2 1" ) // table at 0x4b62
- PORT_DIPSETTING( 0x01, "200 100 50 10 5 3 2 1" ) // table at 0x4b72
- PORT_DIPNAME( 0x04, 0x00, "Yakuman Bonus" ) PORT_DIPLOCATION("SW2:3")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "Yakuman Bonus Period Control" ) PORT_DIPLOCATION("SW2:4")
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPSETTING( 0x08, "First time only" )
- PORT_DIPNAME( 0x30, 0x30, "Yakuman Bonus Timing Control" ) PORT_DIPLOCATION("SW2:5,6") // check code at 0x166c, Yakuman Bonus every x coins in
- PORT_DIPSETTING( 0x00, "100" )
- PORT_DIPSETTING( 0x10, "200" )
- PORT_DIPSETTING( 0x20, "300" )
- PORT_DIPSETTING( 0x30, "500" )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:7") // check code at 0x2c64, unused according to manual
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8") // check code at 0x2c64, unused according to manual
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_START("DSW3") /* DSW3 (inport $63 -> 0x76fc), switches 5-7 could do with verifying by someone who understands Japanese and mahjong (see MT05553 for manual) */
- PORT_DIPNAME( 0x01, 0x00, "Baibai Bonus" ) PORT_DIPLOCATION("SW3:1") // see notes about 'Special Combinations'
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "Don Den" ) PORT_DIPLOCATION("SW3:2")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, "W-Bet" ) PORT_DIPLOCATION("SW3:3") // check code at 0x531f and 0x5375
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "Last Chance" ) PORT_DIPLOCATION("SW3:4") // check code at 0x5240
- PORT_DIPSETTING( 0x08, "Free" )
- PORT_DIPSETTING( 0x00, "Charge" )
- PORT_DIPNAME( 0x10, 0x00, "Renchan Rate" ) PORT_DIPLOCATION("SW3:5") // check code at 0x2411
- PORT_DIPSETTING( 0x00, "Good" )
- PORT_DIPSETTING( 0x10, DEF_STR( Normal ) )
- PORT_DIPNAME( 0x20, 0x00, "Renchan" ) PORT_DIPLOCATION("SW3:6") // check code at 0x2411 and 0x4beb
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, "Auto Tsumo?" ) PORT_DIPLOCATION("SW3:7") // check code at 0x24ff, 0x25f2, 0x3fcf and 0x45d7
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Full Tests" ) PORT_DIPLOCATION("SW3:8") // seems to hang after the last animation, unused according to manual
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( mjderngr )
- PORT_INCLUDE( mjctrl2 )
-
- PORT_START("DSW1")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
- 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, "ROM & Animation Test" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW2")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
- 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( majs101b )
- PORT_INCLUDE( mjctrl2 )
-
- PORT_START("DSW1") /* DSW1 (inport $10 -> 0x76fd) */
- PORT_DIPNAME( 0x0f, 0x0f, "Pay Out Rate" )
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x30, 0x30, "Maximum Bet" )
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x10, "5" )
- PORT_DIPSETTING( 0x20, "10" )
- PORT_DIPSETTING( 0x30, "20" )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Debug Mode ?" ) // check code at 0x1635
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW2") /* DSW2 (inport $00 (after out 0,$40) -> 0x76fa) */
- PORT_DIPNAME( 0x03, 0x03, "Winnings" ) // check code at 0x14e4
- PORT_DIPSETTING( 0x00, "32 24 16 12 8 4 2 1" ) // table at 0x1539
- PORT_DIPSETTING( 0x03, "50 30 15 8 5 3 2 1" ) // table at 0x1509
- PORT_DIPSETTING( 0x02, "100 50 25 10 5 3 2 1" ) // table at 0x1519
- PORT_DIPSETTING( 0x01, "200 100 50 10 5 3 2 1" ) // table at 0x1529
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) // check code at 0x1220, 0x128d, 0x13b1, 0x13cb and 0x2692
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x38, 0x00, "Maximum Payout ?" ) // check code at 0x12c1
- PORT_DIPSETTING( 0x20, "200" )
- PORT_DIPSETTING( 0x10, "300" )
- PORT_DIPSETTING( 0x30, "400" )
- PORT_DIPSETTING( 0x08, "500" )
- PORT_DIPSETTING( 0x28, "600" )
- PORT_DIPSETTING( 0x18, "700" )
- PORT_DIPSETTING( 0x00, "1000" )
-// PORT_DIPSETTING( 0x38, "1000" )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) // check code at 0x1333
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Background" )
- PORT_DIPSETTING( 0x00, "Black" )
- PORT_DIPSETTING( 0x80, "Gray" )
-
- PORT_START("DSW3") /* DSW3 (inport $00 (after out 0,$00) -> 0x76fc) */
- PORT_DIPNAME( 0x01, 0x00, "Special Combinations" ) // see notes
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) // check code at 0x1cf9
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) // check code at 0x21a9, 0x21dc and 0x2244
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) // check code at 0x2b7f
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) // check code at 0x50ba
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) // check code at 0x1f65
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) // check code at 0x6412
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) // check code at 0x2cb2 and 0x2d02
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW4") /* DSW4 (inport $00 (after out 0,$20) -> 0x76fb) */
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Unknown ) ) // stored at 0x702f - check code at 0x1713,
- PORT_DIPSETTING( 0x00, "0" ) // 0x33d1, 0x3408, 0x3415, 0x347c, 0x3492, 0x350d,
- PORT_DIPSETTING( 0x01, "1" ) // 0x4af9, 0x4b1f and 0x61f6
- PORT_DIPSETTING( 0x02, "2" )
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPNAME( 0x0c, 0x00, "Difficulty ?" ) // check code at 0x4b5c and 0x6d72
- PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) // 0x05 - 0x03, 0x02, 0x02, 0x01
- PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) // 0x0a - 0x05, 0x02, 0x02, 0x01
- PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) // 0x0f - 0x06, 0x03, 0x02, 0x01
- PORT_DIPSETTING( 0x0c, DEF_STR( Hardest ) ) // 0x14 - 0x0a, 0x06, 0x02, 0x01
- PORT_DIPNAME( 0x30, 0x00, DEF_STR( Unknown ) ) // check code at 0x228e
- PORT_DIPSETTING( 0x00, "0x00" )
- PORT_DIPSETTING( 0x10, "0x10" )
- PORT_DIPSETTING( 0x20, "0x20" )
- PORT_DIPSETTING( 0x30, "0x30" )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) // check code at 0x11e4
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Full Tests" ) // check code at 0x006d
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( mjapinky )
- PORT_INCLUDE( mjctrl2 )
-
- PORT_START("DSW1") /* IN11 */
- PORT_DIPNAME( 0x01, 0x01, "Unknown 1-0" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Unknown 1-1" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "Unknown 1-2" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "Unknown 1-3" )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x30, 0x30, "Maximum Bet" )
- PORT_DIPSETTING( 0x30, "1" )
- PORT_DIPSETTING( 0x20, "5" )
- PORT_DIPSETTING( 0x10, "10" )
- PORT_DIPSETTING( 0x00, "20" )
- PORT_DIPNAME( 0x40, 0x00, "Background" )
- PORT_DIPSETTING( 0x40, "Black" )
- PORT_DIPSETTING( 0x00, "Green" )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 1-7" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW2") /* IN12 */
- PORT_DIPNAME( 0x03, 0x03, "Unknown 2-0&1" )
- PORT_DIPSETTING( 0x03, "0" )
- PORT_DIPSETTING( 0x02, "1" )
- PORT_DIPSETTING( 0x01, "2" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPNAME( 0x04, 0x04, "Unknown 2-2" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "Unknown 2-3" )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x30, 0x30, "Unknown 2-4&5" )
- PORT_DIPSETTING( 0x30, "0" )
- PORT_DIPSETTING( 0x20, "1" )
- PORT_DIPSETTING( 0x10, "2" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPNAME( 0xc0, 0xc0, "Unknown 2-6&7" )
- PORT_DIPSETTING( 0xc0, "0" )
- PORT_DIPSETTING( 0x80, "1" )
- PORT_DIPSETTING( 0x40, "2" )
- PORT_DIPSETTING( 0x00, "3" )
-
- PORT_START("DSW3") /* IN13 */
- PORT_DIPNAME( 0x01, 0x01, "Unknown 3-0" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Unknown 3-1" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "Unknown 3-2" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "Unknown 3-3" )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Unknown 3-4" )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "Unknown 3-5" )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 3-6" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Full Test" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( janptr96 )
- PORT_INCLUDE( mjctrl1 )
-
- PORT_START("DSW4") /* IN11 */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "In Game Music" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, "Girls (Demo)" )
- 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, "Don Den Key" )
- PORT_DIPSETTING( 0x80, "Start" )
- PORT_DIPSETTING( 0x00, "Flip/Flop" )
-
- PORT_START("DSW3") /* IN12 */
- PORT_DIPNAME( 0x07, 0x07, "YAKUMAN Bonus" )
- PORT_DIPSETTING( 0x07, "Cut" )
- PORT_DIPSETTING( 0x06, "1 T" )
- PORT_DIPSETTING( 0x05, "300" )
- PORT_DIPSETTING( 0x04, "500" )
- PORT_DIPSETTING( 0x03, "700" )
- PORT_DIPSETTING( 0x02, "1000" )
- PORT_DIPSETTING( 0x01, "1000?" )
- PORT_DIPSETTING( 0x00, "1000?" )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x30, 0x30, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x30, "0" )
- PORT_DIPSETTING( 0x20, "1" )
- PORT_DIPSETTING( 0x10, "2" )
- PORT_DIPSETTING( 0x00, "3" )
- 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") /* IN13 */
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
- PORT_DIPNAME( 0x0c, 0x0c, "Min Credits To Start" )
- PORT_DIPSETTING( 0x0c, "1" )
- PORT_DIPSETTING( 0x08, "2" )
- PORT_DIPSETTING( 0x04, "3" )
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPNAME( 0x30, 0x30, "Payout" )
- PORT_DIPSETTING( 0x30, "300" )
- PORT_DIPSETTING( 0x20, "500" )
- PORT_DIPSETTING( 0x10, "700" )
- PORT_DIPSETTING( 0x00, "1000" )
- PORT_DIPNAME( 0x40, 0x40, "W-BET" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Last Chance" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW1") /* IN14 */
- PORT_DIPNAME( 0x0f, 0x0f, "Pay Out Rate" )
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x30, 0x30, "Odds Rate" )
- PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" )
- PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
- PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
- PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
- PORT_DIPNAME( 0xc0, 0xc0, "Maximum Bet" )
- PORT_DIPSETTING( 0xc0, "1" )
- PORT_DIPSETTING( 0x80, "5" )
- PORT_DIPSETTING( 0x40, "10" )
- PORT_DIPSETTING( 0x00, "20" )
-
- PORT_START("DSWTOP") /* IN15 */
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Debug Mode" )
- 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, "Credits Per Note" )
- PORT_DIPSETTING( 0x40, "5" )
- PORT_DIPSETTING( 0x00, "10" )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( mjifb )
- PORT_INCLUDE( mjctrl2 )
-
- // Default dip-switch settings taken from manual for "single type" cabinet
- // When they differ for "corner type" cabinet, it's noted in a comment near the dip-switch
-
- PORT_START("PORT3_5") // IN10 - DSW1 (P3 & P5)
- PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate" ) PORT_DIPLOCATION("DSW1:1,2,3,4")
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" ) // default for "corner type" cabinet
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x30, 0x10, "Maximum Bet" ) PORT_DIPLOCATION("DSW1:5,6")
- PORT_DIPSETTING( 0x30, "1" )
- PORT_DIPSETTING( 0x20, "5" )
- PORT_DIPSETTING( 0x10, "10" )
- PORT_DIPSETTING( 0x00, "20" )
- PORT_DIPNAME( 0xc0, 0xc0, "Minimum Rate to Play" ) PORT_DIPLOCATION("DSW1:7,8")
- PORT_DIPSETTING( 0xc0, "1" )
- PORT_DIPSETTING( 0x80, "2" )
- PORT_DIPSETTING( 0x40, "3" )
- PORT_DIPSETTING( 0x00, "4" )
-
- PORT_START("PORT6_7") // IN11 - DSW2 (P6 & P7)
- PORT_DIPNAME( 0x03, 0x00, "Winnings" ) PORT_DIPLOCATION("DSW2:1,2")
- PORT_DIPSETTING( 0x03, "32 24 16 12 8 4 2 1" )
- PORT_DIPSETTING( 0x00, "50 30 15 8 5 3 2 1" )
- PORT_DIPSETTING( 0x01, "100 50 25 10 5 3 2 1" )
- PORT_DIPSETTING( 0x02, "200 100 50 10 5 3 2 1" )
- PORT_DIPNAME( 0x04, 0x00, "Credits Per Note" ) PORT_DIPLOCATION("DSW2:3")
- PORT_DIPSETTING( 0x04, "5" )
- PORT_DIPSETTING( 0x00, "10" )
- PORT_DIPNAME( 0x38, 0x20, "YAKUMAN Bonus" ) PORT_DIPLOCATION("DSW2:4,5,6")
- PORT_DIPSETTING( 0x38, "None" ) // default for "corner type" cabinet
- PORT_DIPSETTING( 0x30, "Once at start" )
- PORT_DIPSETTING( 0x28, "Every 300 coins" )
- PORT_DIPSETTING( 0x20, "Every 500 coins" )
- PORT_DIPSETTING( 0x18, "Every 700 coins" )
- PORT_DIPSETTING( 0x10, "Every 1000 coins" )
-// PORT_DIPSETTING( 0x08, "Every 1000 coins?" )
-// PORT_DIPSETTING( 0x00, "Every 1000 coins?" )
- PORT_DIPNAME( 0x40, 0x40, "YAKUMAN Bonus Frequency" ) PORT_DIPLOCATION("DSW2:7")
- PORT_DIPSETTING( 0x00, "Once" )
- PORT_DIPSETTING( 0x40, "Twice" )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSW2:8")
- PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Hard ) )
-
- PORT_START("DSW3") // IN13 - DSW3 ($8200)
- PORT_DIPNAME( 0x01, 0x00, "Automatic Rate Change" ) PORT_DIPLOCATION("DSW3:1")
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) // default for "corner type" cabinet
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "Service Count" ) PORT_DIPLOCATION("DSW3:2")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) // default for "corner type" cabinet
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, "Renchan Rate" ) PORT_DIPLOCATION("DSW3:3")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "W-Bet" ) PORT_DIPLOCATION("DSW3:4")
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, "Bye-Bye Bonus" ) PORT_DIPLOCATION("DSW3:5")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, "Last Chance" ) PORT_DIPLOCATION("DSW3:6")
- PORT_DIPSETTING( 0x20, "Free" )
- PORT_DIPSETTING( 0x00, "Charge" )
- PORT_DIPNAME( 0x40, 0x00, "Auto Tsumo" ) PORT_DIPLOCATION("DSW3:7")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, "Background Color" ) PORT_DIPLOCATION("DSW3:8")
- PORT_DIPSETTING( 0x80, "Black" )
- PORT_DIPSETTING( 0x00, "Blue" ) // gray according to manual?!?!
-
- PORT_START("DSW4") // IN14 - DSW4 ($8000)
- PORT_DIPNAME( 0x01, 0x00, "Double-tile exchange" ) PORT_DIPLOCATION("DSW4:1")
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "Double hand-tile game" ) PORT_DIPLOCATION("DSW4:2")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, "Blind-tile game" ) PORT_DIPLOCATION("DSW4:3")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "Don Den Button" ) PORT_DIPLOCATION("DSW4:4")
- PORT_DIPSETTING( 0x08, "F/F Button" )
- PORT_DIPSETTING( 0x00, "A Button" )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DSW4:5")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // default for "corner type" cabinet
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSW4:6")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Animation" ) PORT_DIPLOCATION("DSW4:7") // marked as "unused" in manual
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Full Tests" ) PORT_DIPLOCATION("DSW4:8") // marked as "unused" in manual
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( mjtensin )
- PORT_INCLUDE( mjctrl1 )
-
- PORT_START("DSW4") /* IN11 */
- PORT_DIPNAME( 0x0f, 0x0f, "Pay Out Rate" )
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x30, 0x30, "Odds Rate" )
- PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" )
- PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
- PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
- PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
- PORT_DIPNAME( 0xc0, 0xc0, "Maximum Bet" )
- PORT_DIPSETTING( 0xc0, "1" )
- PORT_DIPSETTING( 0x80, "5" )
- PORT_DIPSETTING( 0x40, "10" )
- PORT_DIPSETTING( 0x00, "20" )
-
- PORT_START("DSW3") /* IN12 */
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
- PORT_DIPNAME( 0x0c, 0x0c, "Min Credits To Start" )
- PORT_DIPSETTING( 0x0c, "1" )
- PORT_DIPSETTING( 0x08, "2" )
- PORT_DIPSETTING( 0x04, "3" )
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPNAME( 0x30, 0x30, "Payout" )
- PORT_DIPSETTING( 0x30, "300" )
- PORT_DIPSETTING( 0x20, "500" )
- PORT_DIPSETTING( 0x10, "700" )
- PORT_DIPSETTING( 0x00, "1000" )
- PORT_DIPNAME( 0x40, 0x40, "W-BET" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Last Chance" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW2") /* IN13 */
- PORT_DIPNAME( 0x03, 0x03, "YAKUMAN Bonus" )
- PORT_DIPSETTING( 0x03, "Cut" )
- PORT_DIPSETTING( 0x02, "500" )
- PORT_DIPSETTING( 0x01, "700" )
- PORT_DIPSETTING( 0x00, "1000" )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x04, "2" )
- PORT_DIPNAME( 0x18, 0x18, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x18, "0" )
- PORT_DIPSETTING( 0x10, "1" )
- PORT_DIPSETTING( 0x80, "2" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPNAME( 0x60, 0x60, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x60, "0" )
- PORT_DIPSETTING( 0x40, "1" )
- PORT_DIPSETTING( 0x20, "2" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW1") /* IN14 */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "In Game Music" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, "Girls (Demo)" )
- 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, "Show Clock" )
- PORT_DIPSETTING( 0x80, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
-
- PORT_START("DSWTOP") /* IN15 */
- PORT_DIPNAME( 0x01, 0x01, "Credits Per Note" )
- PORT_DIPSETTING( 0x01, "5" )
- PORT_DIPSETTING( 0x00, "10" )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
- 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( cafetime ) // dips definitions and defaults taken from MT05580, this uses 10 switch dip banks
- PORT_INCLUDE( mjctrl2 )
-
- PORT_START("DSW1") // IN11
- PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate" ) PORT_DIPLOCATION("SW1:1,2,3,4")
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x30, 0x00, "Odds Rate" ) PORT_DIPLOCATION("SW1:5,6") // Yakuman - Triple - Double - Haneman - Mangan - 3 Han - 2 Han - 1 Han
- PORT_DIPSETTING( 0x30, "32-24-16-12-8-4-2-1" )
- PORT_DIPSETTING( 0x00, "50-30-15-8-5-3-2-1" )
- PORT_DIPSETTING( 0x10, "100-50-25-10-5-3-2-1" )
- PORT_DIPSETTING( 0x20, "200-100-50-10-5-3-2-1" )
- PORT_DIPNAME( 0xc0, 0x40, "Maximum Bet" ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0xc0, "1" )
- PORT_DIPSETTING( 0x80, "5" )
- PORT_DIPSETTING( 0x40, "10" )
- PORT_DIPSETTING( 0x00, "20" )
-
- PORT_START("DSW2") // IN12, defaults for 'single type'
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x00, "1C_10C" )
- PORT_DIPNAME( 0x0c, 0x0c, "Minimum Rate" ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0c, "1" )
- PORT_DIPSETTING( 0x08, "2" )
- PORT_DIPSETTING( 0x04, "3" )
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPNAME( 0x70, 0x40, "Yakuman Bonus" ) PORT_DIPLOCATION("SW2:5,6,7") // default for 'corner type' would be 0x20
- PORT_DIPSETTING( 0x70, DEF_STR( No ) )
- PORT_DIPSETTING( 0x60, "Once on Start" )
- PORT_DIPSETTING( 0x50, "Every 300 Coins" )
- PORT_DIPSETTING( 0x40, "Every 500 Coins" )
- PORT_DIPSETTING( 0x30, "Every 700 Coins" )
- PORT_DIPSETTING( 0x20, "Every 1000 Coins" )
- PORT_DIPSETTING( 0x10, DEF_STR( Unknown ) ) // not listed on dip sheet
- PORT_DIPSETTING( 0x00, DEF_STR( Unknown ) ) // not listed on dip sheet
- PORT_DIPNAME( 0x80, 0x00, "Yakuman Bonus Cycle" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x00, "Once" )
- PORT_DIPSETTING( 0x80, "Twice" )
-
- PORT_START("DSW3") // IN13
- PORT_DIPNAME( 0x01, 0x01, "Payout Type" ) PORT_DIPLOCATION("SW3:1")
- PORT_DIPSETTING( 0x01, "Credits" )
- PORT_DIPSETTING( 0x00, "Hopper" )
- PORT_DIPNAME( 0x02, 0x02, "Hopper Type" ) PORT_DIPLOCATION("SW3:2")
- PORT_DIPSETTING( 0x02, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x00, "Reversed" )
- PORT_DIPNAME( 0x04, 0x00, "W-Bet" ) PORT_DIPLOCATION("SW3:3")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "Renchan Rate" ) PORT_DIPLOCATION("SW3:4")
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, "Last Chance" ) PORT_DIPLOCATION("SW3:5")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, "Good Time Timer" ) PORT_DIPLOCATION("SW3:6")
- PORT_DIPSETTING( 0x00, "3 Minutes" )
- PORT_DIPSETTING( 0x20, "5 Minutes" )
- PORT_DIPNAME( 0x40, 0x00, "Quiz Bonus" ) PORT_DIPLOCATION("SW3:7")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Quiz Bonus Points" ) PORT_DIPLOCATION("SW3:8")
- PORT_DIPSETTING( 0x00, "2" )
- PORT_DIPSETTING( 0x80, "3" )
-
- PORT_START("DSW4") // IN14, defaults for 'single type'
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW4:1") // Should be off for 'single type' and on for 'corner type', left on for easier regression testing
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "BGM during Gameplay" ) PORT_DIPLOCATION("SW4:2")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, "Don Den Button" ) PORT_DIPLOCATION("SW4:3") // Off for 'corner type'
- PORT_DIPSETTING( 0x04, "Start Button" )
- PORT_DIPSETTING( 0x00, "F/F Button" )
- PORT_DIPNAME( 0x08, 0x00, "Auto Reach" ) PORT_DIPLOCATION("SW4:4")
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, "Full Test" ) PORT_DIPLOCATION("SW4:5") // 4 koma comic test
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, "Background" ) PORT_DIPLOCATION("SW4:6")
- PORT_DIPSETTING( 0x20, "Black" )
- PORT_DIPSETTING( 0x00, "Green" )
- PORT_DIPNAME( 0x40, 0x40, "Book (Stage) Select" ) PORT_DIPLOCATION("SW4:7")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, "Yakuman Match" ) PORT_DIPLOCATION("SW4:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSWTOP") // IN15, actually dips 9-10 of the first 4 banks
- PORT_DIPNAME( 0x01, 0x00, "Credits Per Note" ) PORT_DIPLOCATION("SW1:9")
- PORT_DIPSETTING( 0x01, "5" )
- PORT_DIPSETTING( 0x00, "10" )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:10")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:9")
- PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Hard ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:10") // listed as Unused OFF
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x30, 0x30, "Quiz Questions Table" ) PORT_DIPLOCATION("SW3:9,10")
- PORT_DIPSETTING( 0x30, "A" )
- PORT_DIPSETTING( 0x20, "B" )
- PORT_DIPSETTING( 0x10, "C" )
- PORT_DIPSETTING( 0x00, "D" )
- PORT_DIPNAME( 0x40, 0x40, "Yakuman Match Frequency" ) PORT_DIPLOCATION("SW4:9")
- PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x40, "Often" )
- PORT_DIPNAME( 0x80, 0x80, "4 Koma Comic Type" ) PORT_DIPLOCATION("SW4:10")
- PORT_DIPSETTING( 0x00, "A" )
- PORT_DIPSETTING( 0x80, "B" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( ippatsu )
- PORT_INCLUDE( mjctrl1 )
-
- PORT_MODIFY("KEY5")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // "COIN2"
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) // "COIN1", but not working
-
-
- PORT_START("DSW1") /* DSW (inport $10) */
- PORT_DIPNAME( 0x0f, 0x0f, "Pay Out Rate" )
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x60, 0x60, "Maximum Bet" )
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x20, "5" )
- PORT_DIPSETTING( 0x40, "7" )
- PORT_DIPSETTING( 0x60, "10" )
- PORT_DIPNAME( 0x80, 0x80, "First Chance" )
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
-
- PORT_START("DSW2") /* DSW (inport $12) */
- PORT_DIPNAME( 0x03, 0x03, "Cut" )
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x02, "2 Bai" )
- PORT_DIPSETTING( 0x01, "3 Bai" )
- PORT_DIPSETTING( 0x03, "Yakuman" )
- PORT_DIPNAME( 0x0c, 0x0c, "Yakuman Bonus" )
- PORT_DIPSETTING( 0x00, "32" )
- PORT_DIPSETTING( 0x04, "100" )
- PORT_DIPSETTING( 0x08, "200" )
- PORT_DIPSETTING( 0x0c, "300" )
- PORT_DIPNAME( 0x30, 0x30, "Unknown 1-4&5*" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x10, "4" )
- PORT_DIPSETTING( 0x20, "5" )
- PORT_DIPSETTING( 0x30, "6" )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 1-6*" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x40, "5" )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 1-7" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW3") /* DSW (inport $13) */
- PORT_DIPNAME( 0x01, 0x01, "Unknown 2-0*" )
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x02, 0x02, "Second Bonus" )
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x04, 0x04, "Allow Bets" )
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x18, 0x18, "Unknown 2-3&4*" )
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x18, "2" )
- PORT_DIPSETTING( 0x10, "4" )
- PORT_DIPSETTING( 0x08, "8" )
- PORT_DIPNAME( 0x20, 0x20, "Unknown 2-5" )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 2-6" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 2-7" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( mjdejavu )
- PORT_INCLUDE( mjctrl2 )
-
- PORT_START("PORT3_5") // IN11 - DSW3 (P3 & P5)
- PORT_DIPNAME( 0x03, 0x03, "Unknown 3-0&1*" )
- PORT_DIPSETTING( 0x00, "1 1" )
- PORT_DIPSETTING( 0x02, "3 4" )
- PORT_DIPSETTING( 0x01, "1 2" )
- PORT_DIPSETTING( 0x03, "1 4" )
- PORT_DIPNAME( 0x04, 0x04, "Unknown 3-2" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "Unknown 3-3" )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Unknown 3-4" )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "Unknown 3-5" )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 3-6" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 3-7" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("PORT6_7") // IN12 - DSW4 (P6 & P7)
- PORT_DIPNAME( 0x01, 0x01, "Unknown 4-0" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Unknown 4-1" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "Unknown 4-2" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "Unknown 4-3" )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Unknown 4-4" )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "Unknown 4-5" )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 4-6" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Full Tests" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW1") // IN13 - DSW1 ($8001)
- PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate" )
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x30, 0x30, "Maximum Bet" )
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x10, "5" )
- PORT_DIPSETTING( 0x20, "10" )
- PORT_DIPSETTING( 0x30, "20" )
- PORT_DIPNAME( 0x40, 0x40, "Credits Per Note" )
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPSETTING( 0x40, "10" )
- PORT_DIPNAME( 0x80, 0x80, "Background" )
- PORT_DIPSETTING( 0x80, "Gray" )
- PORT_DIPSETTING( 0x00, "Black" )
-
- PORT_START("DSW2") // IN14 - DSW2 ($8000)
- PORT_DIPNAME( 0x03, 0x03, "Winnings" )
- PORT_DIPSETTING( 0x00, "32 24 16 12 8 4 2 1" )
- PORT_DIPSETTING( 0x03, "50 30 15 8 5 3 2 1" )
- PORT_DIPSETTING( 0x02, "100 50 25 10 5 3 2 1" )
- PORT_DIPSETTING( 0x01, "200 100 50 10 5 3 2 1" )
- PORT_DIPNAME( 0x3c, 0x3c, "YAKUMAN Bonus" )
- PORT_DIPSETTING( 0x3c, "Cut" )
- PORT_DIPSETTING( 0x20, "300" )
- PORT_DIPSETTING( 0x10, "500" )
- PORT_DIPSETTING( 0x08, "700" )
- PORT_DIPSETTING( 0x00, "1000" )
-// PORT_DIPSETTING( 0x04, "1000?" )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x40, "2" )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, "1/4" )
- PORT_DIPSETTING( 0x80, "2/4" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( jansou )
- PORT_INCLUDE( mjctrl2 )
-
- PORT_START("DSW1")
- PORT_DIPNAME( 0x0f, 0x00, "Pay Out Rate" ) PORT_DIPLOCATION("SW1:1,2,3,4")
- PORT_DIPSETTING( 0x0f, "50%" )
- PORT_DIPSETTING( 0x0e, "53%" )
- PORT_DIPSETTING( 0x0d, "56%" )
- PORT_DIPSETTING( 0x0c, "59%" )
- PORT_DIPSETTING( 0x0b, "62%" )
- PORT_DIPSETTING( 0x0a, "65%" )
- PORT_DIPSETTING( 0x09, "68%" )
- PORT_DIPSETTING( 0x08, "71%" )
- PORT_DIPSETTING( 0x07, "74%" )
- PORT_DIPSETTING( 0x06, "77%" )
- PORT_DIPSETTING( 0x05, "80%" )
- PORT_DIPSETTING( 0x04, "83%" )
- PORT_DIPSETTING( 0x03, "86%" )
- PORT_DIPSETTING( 0x02, "89%" )
- PORT_DIPSETTING( 0x01, "92%" )
- PORT_DIPSETTING( 0x00, "95%" )
- PORT_DIPNAME( 0x30, 0x00, "Maximum Bet" ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x30, "1" )
- PORT_DIPSETTING( 0x20, "5" )
- PORT_DIPSETTING( 0x10, "10" )
- PORT_DIPSETTING( 0x00, "20" )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 1-7" ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 1-8" ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW2")
- PORT_DIPNAME( 0x03, 0x00, "First Chance" ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x03, DEF_STR( None ) )
- PORT_DIPSETTING( 0x02, "3" )
- PORT_DIPSETTING( 0x01, "4" )
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPNAME( 0x0c, 0x00, "Last Chance" ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0c, DEF_STR( None ) )
- PORT_DIPSETTING( 0x08, "3" )
- PORT_DIPSETTING( 0x04, "4" )
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPNAME( 0x10, 0x10, "Unknown 2-5" ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "Unknown 2-6" ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 2-7" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, "Middle Chance" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW3")
- PORT_DIPNAME( 0x01, 0x01, "Unknown 3-1" ) PORT_DIPLOCATION("SW3:1")
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Unknown 3-2" ) PORT_DIPLOCATION("SW3:2")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "Unknown 3-3" ) PORT_DIPLOCATION("SW3:3")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "Unknown 3-4" ) PORT_DIPLOCATION("SW3:4")
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Unknown 3-5" ) PORT_DIPLOCATION("SW3:5")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, "Girl" ) PORT_DIPLOCATION("SW3:6")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 3-7" ) PORT_DIPLOCATION("SW3:7")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 3-8" ) PORT_DIPLOCATION("SW3:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( mjvegasa )
- PORT_INCLUDE( mjctrl2 )
-
- PORT_START("DSW1") // 6810
- PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate" )
- PORT_DIPSETTING( 0x0f, "96%" )
- PORT_DIPSETTING( 0x0e, "93%" )
- PORT_DIPSETTING( 0x0d, "90%" )
- PORT_DIPSETTING( 0x0c, "87%" )
- PORT_DIPSETTING( 0x0b, "84%" )
- PORT_DIPSETTING( 0x0a, "81%" )
- PORT_DIPSETTING( 0x09, "78%" )
- PORT_DIPSETTING( 0x08, "75%" )
- PORT_DIPSETTING( 0x07, "71%" )
- PORT_DIPSETTING( 0x06, "68%" )
- PORT_DIPSETTING( 0x05, "65%" )
- PORT_DIPSETTING( 0x04, "62%" )
- PORT_DIPSETTING( 0x03, "59%" )
- PORT_DIPSETTING( 0x02, "56%" )
- PORT_DIPSETTING( 0x01, "53%" )
- PORT_DIPSETTING( 0x00, "50%" )
- PORT_DIPNAME( 0x30, 0x30, "Odds Rate" )
- PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" )
- PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
- PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
- PORT_DIPSETTING( 0x20, "1 2 3 5 10 50 100 200" )
- PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" )
- PORT_DIPSETTING( 0xc0, "1" )
- PORT_DIPSETTING( 0x80, "5" )
- PORT_DIPSETTING( 0x40, "10" )
- PORT_DIPSETTING( 0x00, "20" )
-
- PORT_START("DSW2") // 6811
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
- PORT_DIPNAME( 0x0c, 0x0c, "YAKUMAN Times" )
- PORT_DIPSETTING( 0x0c, "1" )
- PORT_DIPSETTING( 0x08, "2" )
- PORT_DIPSETTING( 0x04, "3" )
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPNAME( 0x70, 0x70, "YAKUMAN Bonus" )
- PORT_DIPSETTING( 0x70, "Cut" )
- PORT_DIPSETTING( 0x60, "100?" )
- PORT_DIPSETTING( 0x50, "300" )
- PORT_DIPSETTING( 0x40, "500" )
- PORT_DIPSETTING( 0x30, "700" )
- PORT_DIPSETTING( 0x20, "1000" )
-// PORT_DIPSETTING( 0x10, "1000" )
-// PORT_DIPSETTING( 0x00, "1000" )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 2-7" )
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x80, "2" )
-
- PORT_START("DSW3") // 6812
- PORT_DIPNAME( 0x01, 0x01, "Unknown 3-0" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Unknown 3-1" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "3 BAI In YAKUMAN Bonus Chance" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "Unknown 3-3" )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Unknown 3-4" )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "Unknown 3-5" )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 3-6" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 3-7" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW4") // 6813
- PORT_DIPNAME( 0x01, 0x01, "Unknown 4-0" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Show Clock" )
- PORT_DIPSETTING( 0x02, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x04, 0x00, "Girls" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "Background" )
- PORT_DIPSETTING( 0x08, "Black" )
- PORT_DIPSETTING( 0x00, "Green" )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "Unknown 4-5" )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 4-6" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 4-7" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSWTOP") // 6814
- PORT_DIPNAME( 0x01, 0x01, "Credits Per Note" )
- PORT_DIPSETTING( 0x01, "5" )
- PORT_DIPSETTING( 0x00, "10" )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "Unknown 2-8" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "Unknown 2-9" )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Flip-Flop Key" )
- PORT_DIPSETTING( 0x00, "Flip-Flop" )
- PORT_DIPSETTING( 0x10, "Start" )
- PORT_DIPNAME( 0x20, 0x20, "Don Den Times" )
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPSETTING( 0x20, "8" )
- PORT_DIPNAME( 0x40, 0x40, "Unknown 4-8" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Debug Mode" ) // e.g. press start in bet screen
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-void royalmah_state::royalmah(machine_config &config)
-{
- /* basic machine hardware */
- Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::royalmah_map);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::royalmah_iomap);
- m_maincpu->set_vblank_int("screen", FUNC(royalmah_state::irq0_line_hold));
-
- NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-
- /* video hardware */
- PALETTE(config, "palette", FUNC(royalmah_state::royalmah_palette), 16*4);
-
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_size(256, 256);
- screen.set_visarea(0, 255, 8, 247);
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
- screen.set_screen_update(FUNC(royalmah_state::screen_update_royalmah));
-
- /* sound hardware */
- SPEAKER(config, "speaker").front_center();
-
- AY8910(config, m_ay, 18432000/12);
- m_ay->port_a_read_callback().set(FUNC(royalmah_state::player_1_port_r));
- m_ay->port_b_read_callback().set(FUNC(royalmah_state::player_2_port_r));
- m_ay->add_route(ALL_OUTPUTS, "speaker", 0.33);
-}
-
-
-void royalmah_state::janoh(machine_config &config)
-{
- royalmah(config);
- m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
- m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::janoh_map);
-}
-
-void royalmah_state::janoha(machine_config &config)
-{
- royalmah(config);
- m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
- m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::janoh_map);
-
- z80_device &sub(Z80(config, "sub", 4000000)); /* 4 MHz ? */
- sub.set_addrmap(AS_PROGRAM, &royalmah_state::janoh_sub_map);
- sub.set_addrmap(AS_IO, &royalmah_state::janoh_sub_iomap);
- sub.set_vblank_int("screen", FUNC(royalmah_state::irq0_line_hold));
-}
-
-void royalmah_state::jansou(machine_config &config)
-{
- royalmah(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::jansou_map);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::royalmah_iomap);
-
- Z80(config, m_audiocpu, 4000000); /* 4.000 MHz */
- m_audiocpu->set_addrmap(AS_PROGRAM, &royalmah_state::jansou_sub_map);
- m_audiocpu->set_addrmap(AS_IO, &royalmah_state::jansou_sub_iomap);
- m_audiocpu->set_periodic_int(FUNC(royalmah_state::irq0_line_hold), attotime::from_hz(4000000/512));
-
- GENERIC_LATCH_8(config, m_soundlatch);
-
- DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
-}
-
-void royalmah_state::dondenmj(machine_config &config)
-{
- royalmah(config);
- m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::dondenmj_iomap);
-}
-
-void royalmah_state::tahjong(machine_config &config)
-{
- royalmah(config);
- m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
- m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::tahjong_map);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::tahjong_iomap);
-}
-
-void royalmah_state::makaijan(machine_config &config)
-{
- royalmah(config);
- m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::makaijan_iomap);
-}
-
-void royalmah_state::daisyari(machine_config &config)
-{
- royalmah(config);
- m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::daisyari_iomap);
-}
-
-void royalmah_state::mjclub(machine_config &config)
-{
- royalmah(config);
- m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjclub_iomap);
-}
-
-void royalmah_state::chalgirl(machine_config &config)
-{
- royalmah(config);
- m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::chalgirl_map);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::chalgirl_iomap);
-}
-
-void royalmah_state::rkjanoh2(machine_config &config)
-{
- chalgirl(config);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::rkjanoh2_iomap);
-}
-
-void royalmah_state::mjyarou(machine_config &config)
-{
- chalgirl(config);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjyarou_iomap);
-}
-
-void royalmah_state::mjsenka(machine_config &config)
-{
- mjyarou(config);
- m_maincpu->set_addrmap(AS_OPCODES, &royalmah_state::mjsenka_opcodes_map);
-}
-
-void royalmah_state::mjsiyoub(machine_config &config)
-{
- royalmah(config);
- m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::mjsiyoub_map);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjsiyoub_iomap);
-
- // TODO: implement extra sound chips. Z80 ROM is scrambled.
- Z80(config, m_audiocpu, 18.432_MHz_XTAL / 6); // divider not verified
- m_audiocpu->set_addrmap(AS_PROGRAM, &royalmah_state::mjsiyoub_audio_prg_map);
- m_audiocpu->set_disable(); // until it's decrypted, to avoid clogging the error log
-
-
- MSM5205(config, "msm", 400_kHz_XTAL);
-}
-
-void royalmah_state::ippatsu(machine_config &config)
-{
- dondenmj(config);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::ippatsu_iomap);
-}
-
-void royalmah_state::janyoup2(machine_config &config)
-{
- ippatsu(config);
- m_maincpu->set_clock(XTAL(18'432'000)/4); // unknown divider
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::janyoup2_iomap);
-
- hd6845s_device &crtc(HD6845S(config, "crtc", XTAL(18'432'000)/12)); // unknown divider
- crtc.set_screen("screen");
- crtc.set_show_border_area(false);
- crtc.set_char_width(4);
-}
-
-void royalmah_state::seljan(machine_config &config)
-{
- janyoup2(config);
- m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::seljan_map);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::seljan_iomap);
-}
-
-INTERRUPT_GEN_MEMBER(royalmah_state::suzume_irq)
-{
- if ( m_suzume_bank & 0x40 )
- device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero);
-}
-
-void royalmah_state::suzume(machine_config &config)
-{
- dondenmj(config);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::suzume_iomap);
- m_maincpu->set_vblank_int("screen", FUNC(royalmah_state::suzume_irq));
-}
-
-void royalmah_state::jongshin(machine_config &config)
-{
- dondenmj(config);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::jongshin_iomap);
-}
-
-void royalmah_state::tontonb(machine_config &config)
-{
- dondenmj(config);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::tontonb_iomap);
-}
-
-void royalmah_state::mjdiplob(machine_config &config)
-{
- dondenmj(config);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjdiplob_iomap);
-}
-
-void royalmah_state::majs101b(machine_config &config)
-{
- dondenmj(config);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::majs101b_iomap);
-}
-
-void royalmah_state::mjapinky(machine_config &config)
-{
- dondenmj(config);
- m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::mjapinky_map);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjapinky_iomap);
-}
-
-void royalmah_state::mjderngr(machine_config &config)
-{
- dondenmj(config);
- m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjderngr_iomap);
-
- /* video hardware */
- auto &palette(*subdevice<palette_device>("palette"));
- palette.set_entries(16*32);
- palette.set_init(FUNC(royalmah_state::mjderngr_palette));
-}
-
-void royalmah_state::janptr96(machine_config &config)
-{
- mjderngr(config);
-
- tmpz84c015_device &maincpu(TMPZ84C015(config.replace(), "maincpu", XTAL(16'000'000)/2)); /* 8 MHz? */
- maincpu.set_addrmap(AS_PROGRAM, &royalmah_state::janptr96_map);
- maincpu.set_addrmap(AS_IO, &royalmah_state::janptr96_iomap);
- maincpu.in_pa_callback().set(FUNC(royalmah_state::janptr96_dsw_r));
- maincpu.out_pb_callback().set(FUNC(royalmah_state::janptr96_dswsel_w));
- // internal CTC channels 0 & 1 have falling edge triggers
-
- screen_device &screen(*subdevice<screen_device>("screen"));
- screen.set_visarea(0, 255, 8, 255-8);
- screen.screen_vblank().set(m_maincpu, FUNC(tmpz84c015_device::trg0)).invert();
-
- /* devices */
- MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set(m_maincpu, FUNC(tmpz84c015_device::trg1)).invert();
-}
-
-
-void royalmah_state::mjifb(machine_config &config)
-{
- mjderngr(config);
- tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */
- tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjifb_map);
- tmp.port_read<3>().set_ioport("PORT3_5").rshift(6);
- tmp.port_write<3>().set(FUNC(royalmah_state::mjifb_p3_w));
- tmp.port_write<4>().set(FUNC(royalmah_state::mjifb_p4_w));
- tmp.port_read<5>().set_ioport("PORT3_5");
- tmp.port_read<6>().set_ioport("PORT6_7");
- tmp.port_read<7>().set_ioport("PORT6_7").rshift(4);
- tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r));
- tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w));
-
- screen_device &screen(*subdevice<screen_device>("screen"));
- screen.set_visarea(0, 255, 8, 255-8);
- screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
-}
-
-
-void royalmah_state::mjdejavu(machine_config &config)
-{
- mjderngr(config);
- tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */
- tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjdejavu_map);
- tmp.port_read<3>().set_ioport("PORT3_5").rshift(6);
- tmp.port_write<3>().set(FUNC(royalmah_state::mjifb_p3_w));
- tmp.port_write<4>().set(FUNC(royalmah_state::mjifb_p4_w));
- tmp.port_read<5>().set_ioport("PORT3_5");
- tmp.port_read<6>().set_ioport("PORT6_7");
- tmp.port_read<7>().set_ioport("PORT6_7").rshift(4);
- tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r));
- tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w));
-
- screen_device &screen(*subdevice<screen_device>("screen"));
- screen.set_visarea(0, 255, 8, 255-8);
- screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
-}
-
-
-void royalmah_state::mjtensin(machine_config &config)
-{
- mjderngr(config);
- tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */
- tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjtensin_map);
- tmp.port_read<3>().set(FUNC(royalmah_state::mjtensin_p3_r));
- tmp.port_write<4>().set(FUNC(royalmah_state::mjtensin_p4_w));
-
- screen_device &screen(*subdevice<screen_device>("screen"));
- screen.set_visarea(0, 255, 8, 255-8);
- screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
-
- /* devices */
- MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
-}
-
-void royalmah_state::cafetime(machine_config &config)
-{
- mjderngr(config);
- tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */
- tmp.set_addrmap(AS_PROGRAM, &royalmah_state::cafetime_map);
- tmp.port_write<3>().set(FUNC(royalmah_state::cafetime_p3_w));
- tmp.port_write<4>().set(FUNC(royalmah_state::cafetime_p4_w));
-
- screen_device &screen(*subdevice<screen_device>("screen"));
- screen.set_visarea(0, 255, 8, 255-8);
- screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
-
- /* devices */
- MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
-}
-
-void royalmah_state::mjvegasa(machine_config &config)
-{
- mjderngr(config);
- tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, XTAL(8'000'000))); /* ? */
- tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjvegasa_map);
- tmp.port_read<3>().set(FUNC(royalmah_state::mjtensin_p3_r));
- tmp.port_write<3>().set(FUNC(royalmah_state::mjvegasa_p3_w));
- tmp.port_write<4>().set(FUNC(royalmah_state::mjvegasa_p4_w));
-
- screen_device &screen(*subdevice<screen_device>("screen"));
- screen.set_visarea(0, 255, 8, 255-8);
- screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
-
- /* devices */
- MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
-}
-
-
-/***************************************************************************
-
- Game driver(s)
-
-***************************************************************************/
-
-/***************************************************************************
-
-Royal Mahjong
-(c)1981 Nichibutsu
-
-CPU: Z80
-Sound: AY-3-8910
-OSC: 18.432MHz
-
-***************************************************************************/
-
-ROM_START( royalmj )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "1.p1", 0x0000, 0x1000, CRC(549544bb) SHA1(dfb221572c7bfd267a22c0a944830d5f127f9942) )
- ROM_LOAD( "2.p2", 0x1000, 0x1000, CRC(afc8a61e) SHA1(4134f6404f955838fc48fd0f87b83ebc75c1a021) )
- ROM_LOAD( "3.p3", 0x2000, 0x1000, CRC(5d33e54d) SHA1(bf5e0ad5177c086f1cea5c90d7273a841db941bc) )
- ROM_LOAD( "4.p4", 0x3000, 0x1000, CRC(91339560) SHA1(0fb4141e236ab57b3e915dadb982b28ca11d269f) )
- ROM_LOAD( "5.p5", 0x4000, 0x1000, CRC(cc9123a3) SHA1(75276045247a0c9ac5810be01f3b58ad63101f9b) )
- ROM_LOAD( "6.p6", 0x5000, 0x1000, CRC(92150a0f) SHA1(5c97ba5014abdba4afc78e02e7d90e6ca4d777ac) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "18s030n.6k", 0x0000, 0x0020, CRC(d3007282) SHA1(e4d863ab193e49208ed0f59dcddb1da0492314f6) ) // sldh w/tahjong
-ROM_END
-
-ROM_START( royalmah )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "rom1", 0x0000, 0x1000, CRC(69b37a62) SHA1(7792528754b0df4e11f4ebe33380b713ac7351a3) )
- ROM_LOAD( "rom2", 0x1000, 0x1000, CRC(0c8351b6) SHA1(9e6b48fd39dd98478d1e3557df839b09652c4349) )
- ROM_LOAD( "rom3", 0x2000, 0x1000, CRC(b7736596) SHA1(4b8bc175d945e695b767b9fb2227ffc1cd4b0547) )
- ROM_LOAD( "rom4", 0x3000, 0x1000, CRC(e3c7c15c) SHA1(a335374cc0f5b1d8e689cc304d006dd97f3e35e7) )
- ROM_LOAD( "rom5", 0x4000, 0x1000, CRC(16c09c73) SHA1(ea712f9ca3200ca27434e4200187b488e24f4c65) )
- ROM_LOAD( "rom6", 0x5000, 0x1000, CRC(92687327) SHA1(4fafba5881dca2a147616d94dd055eba6aa3c653) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "f-rom.bpr", 0x0000, 0x0020, CRC(d3007282) SHA1(e4d863ab193e49208ed0f59dcddb1da0492314f6) )
-ROM_END
-
-ROM_START( openmj )
- ROM_REGION( 0x7000, "maincpu", ROMREGION_ERASEFF )
- ROM_LOAD( "10", 0x0000, 0x2000, CRC(4042920e) SHA1(19753bcb27ebf391ab824a45c6e41d956826a263) )
- ROM_LOAD( "20", 0x2000, 0x2000, CRC(8fa0f735) SHA1(645154d51c0679b953b9ffc2f1d3b8f2752a0796) )
- ROM_LOAD( "30", 0x4000, 0x2000, CRC(00045cd7) SHA1(0c32995753c1da14dacc8bc6c12dbcbdcae4e1b0) )
-
- ROM_REGION( 0x20, "proms", 0 )
- ROM_LOAD( "82s123.prm", 0x00, 0x20, CRC(d3007282) SHA1(e4d863ab193e49208ed0f59dcddb1da0492314f6) )
-ROM_END
-
-ROM_START( tahjong )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "p1.bin", 0x00000, 0x1000, CRC(49c922b3) SHA1(6672a4f739d428b722ab22e7ca93064211557abc) )
- ROM_LOAD( "p2.bin", 0x01000, 0x1000, CRC(c33e3cc3) SHA1(707c437f180ddd2916b5806f208e0a478207d528) )
- ROM_LOAD( "p3.bin", 0x02000, 0x1000, CRC(9e741a74) SHA1(6c8e8eb04331d48b72e2be270c13dbf8deb76005) )
- ROM_LOAD( "p4.bin", 0x03000, 0x1000, CRC(dc6ae62b) SHA1(d0c51047f734c885b7f19972c1bf0408199fde51) )
- ROM_LOAD( "p5.bin", 0x04000, 0x1000, CRC(cc9123a3) SHA1(75276045247a0c9ac5810be01f3b58ad63101f9b) ) // same as royalmj (unused)
- ROM_LOAD( "p6.bin", 0x05000, 0x1000, CRC(92150a0f) SHA1(5c97ba5014abdba4afc78e02e7d90e6ca4d777ac) ) // ""
-
- ROM_LOAD( "s1.bin", 0x10000, 0x4000, CRC(beff21af) SHA1(4dc40a1ac4e36401b1ad8ae3954af6e5001e0a67) )
- ROM_LOAD( "s2.bin", 0x14000, 0x4000, CRC(fed42e7c) SHA1(31136dff07bd1883dc2d107823ba83a34abf003d) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "18s030n.6k", 0x0000, 0x0020, CRC(c074c0f0) SHA1(b62519d1496ea366b0ea8ed657bd758ce93875ec) ) // sldh w/royalmj
-ROM_END
-
-ROM_START( janputer )
- ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
- ROM_LOAD( "1.bin", 0x0000, 0x2000, CRC(f36f4222) SHA1(ce18c273a59f86cb17ea6ba8a3daefc3d750df1e) )
- ROM_LOAD( "2.bin", 0x2000, 0x2000, CRC(7d57cb48) SHA1(38b97c5d02e3ab6187e5e0f86c06b8a3747b51a8) )
- ROM_LOAD( "3.bin", 0x4000, 0x2000, CRC(fb481d9a) SHA1(122e2b0d11fe1fe8cf219da9c8f96fe5a1016bb6) )
- ROM_LOAD( "7.bin", 0x6000, 0x1000, CRC(bb00fb9e) SHA1(4d2965a0339328d1700b39c166a5a92a96b05e67) )
-
- ROM_REGION( 0x20, "proms", 0 )
- /* taken from Royal Mahjong, might or might not be the same. */
- ROM_LOAD( "82s123.prm", 0x00, 0x20, BAD_DUMP CRC(d3007282) SHA1(e4d863ab193e49208ed0f59dcddb1da0492314f6) )
-ROM_END
-
-/***************************************************************************
-Janyou Part II
-(c)1984 Cosmo Denshi
-
-CPU: Z80
-Sound: AY-3-8910
-Video: HD46505SP(HD6845SP)
-OSC: 18.432MHz
-
-ROMs:
-1.C110 [36ebb3d0]
-2.C109 [324426d4]
-3.C108 [e98b6d34]
-4.C107 [377b8ce9]
-
-N82S123N.C98 [d3007282]
-
-
-Others:
-Battery
-empty socket for MC68705
-***************************************************************************/
-
-ROM_START( janyoup2 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "1.c110", 0x0000, 0x2000, CRC(36ebb3d0) SHA1(39c0cdd1dc5878539768074dad3c39aac4ace8bf) )
- ROM_LOAD( "2.c109", 0x2000, 0x2000, CRC(324426d4) SHA1(409244c8458d9bafa325746c37de9e7b955b3787) )
- ROM_LOAD( "3.c108", 0x4000, 0x2000, CRC(e98b6d34) SHA1(e27ab9a03aff750df78c5db52a112247bdd31328) )
- ROM_LOAD( "4.c107", 0x6000, 0x1000, CRC(377b8ce9) SHA1(a5efc517ae975e54af5325b8b3f4867e9f449d4c) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "n82s123n.c98", 0x0000, 0x0020, CRC(d3007282) SHA1(e4d863ab193e49208ed0f59dcddb1da0492314f6) )
-ROM_END
-
-ROM_START( seljan ) // Z80A + HD46505SP + AY891X (a sticker covers the chip type)
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "2", 0x0000, 0x2000, CRC(8d26d334) SHA1(4ac0f0961f666954caf59336f8389312db9dc263) ) // ok
- ROM_LOAD( "1", 0x2000, 0x2000, CRC(d670d7c3) SHA1(2106ecf6ad675b8fd167f1f21d615afdfb5bca6d) )
- ROM_LOAD( "3", 0x4000, 0x2000, CRC(6c0dfd50) SHA1(1f91ff0ef2f24414888ae8e5ebac72a5bb48780b) )
- ROM_LOAD( "5", 0x6000, 0x2000, CRC(22eb98ee) SHA1(aae0ba5098852e6fef3dd7cc97dfad97ca444bb7) )
- ROM_LOAD( "4", 0x8000, 0x1000, CRC(d41e2a10) SHA1(9c24f89ba877ab599ea89961b5e705fa770867be) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "82s123_1", 0x0000, 0x0020, CRC(f1df0310) SHA1(cc7dd39a0aa10b57039143e587eee02cf5dd2e5c) )
-ROM_END
-
-/****************************************************************************
-
-Ippatsu Gyakuten
-(c)1986 Public Software / Paradais
-
-modified Royal Mahjong hardware
-
-CPU: Z80
-Sound: AY-3-8910
-
-ROMs:
-11(27256)
-12(27128)
-82S123AN
-
-dumped by sayu
-
-****************************************************************************/
-
-ROM_START( ippatsu )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "11", 0x0000, 0x8000, CRC(5f563be7) SHA1(2ce486777bd61a2de789683cd0c8abeefe31775b) )
- ROM_LOAD( "12", 0x8000, 0x4000, CRC(a09a43b0) SHA1(da12e669ccd036da817a69bd549e8668e6a45730) )
- ROM_RELOAD( 0xc000, 0x4000 )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "82s123an", 0x00, 0x20, CRC(3bde1bbd) SHA1(729498483943f960e38c4ada992b099b698b497a) )
-ROM_END
-
-ROM_START( suzume )
- ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD( "p1.bin", 0x00000, 0x1000, CRC(e9706967) SHA1(2e3d78178623de6552c9036da90e02f240d94055) )
- ROM_LOAD( "p2.bin", 0x01000, 0x1000, CRC(dd48cd62) SHA1(1ce7b515fabae5054f0ac284a9ed5760f59d18fa) )
- ROM_LOAD( "p3.bin", 0x02000, 0x1000, CRC(10a05c23) SHA1(f13ba660bc5eff9057b1ab46f564f586c76e945d) )
- ROM_LOAD( "p4.bin", 0x03000, 0x1000, CRC(267eaf52) SHA1(56e2f5d7080463dc0f11a2751590ac2b79eb02c5) )
- ROM_LOAD( "p5.bin", 0x04000, 0x1000, CRC(2fde346b) SHA1(7f45aa4427b4cb6bf6cc5919d397b25d53e133f3) )
- ROM_LOAD( "p6.bin", 0x05000, 0x1000, CRC(57f42ac7) SHA1(209b2f62a64ddf544578f144d9ec83478603c8b2) )
- /* bank switched ROMs follow */
- ROM_LOAD( "1.1a", 0x10000, 0x08000, CRC(f670dd47) SHA1(d0236021ae4dd5a10603dde038eb777feeff016f) ) // 0
- ROM_LOAD( "2.1c", 0x18000, 0x08000, CRC(140b11aa) SHA1(6f6a96135434324dcb486596920cb785fe2bf1a2) ) // 1
- ROM_LOAD( "3.1d", 0x20000, 0x08000, CRC(3d437b61) SHA1(175308086e1d7ab566c82dcaeef9f50690edf92a) ) // 2
- ROM_LOAD( "4.1e", 0x28000, 0x08000, CRC(9da8952e) SHA1(956d16b82ff8fe733a7b3135d082e18ea5167dfe) ) // 3
- ROM_LOAD( "5.1h", 0x30000, 0x08000, CRC(04a6f41a) SHA1(37117faf6bc823770413faa7618387ca6f16fa34) ) // 4
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "ic6k.bin", 0x0000, 0x0020, CRC(97e1defe) SHA1(b5002218b2292f7623dd9a205ce183dedeec03f1) )
-ROM_END
-
-ROM_START( jongshin )
- ROM_REGION( 0x28000, "maincpu", 0 ) // all 2732
- ROM_LOAD( "js1.p1", 0x00000, 0x1000, CRC(0c33eb1c) SHA1(4258f2df8e9d4d3fd3fd77c555bd36ced601c45f) )
- ROM_LOAD( "js2.p2", 0x01000, 0x1000, CRC(a74bfa19) SHA1(378ec5dcddbe1c1e66b9ec0576b898442e3ba89c) )
- ROM_LOAD( "js3.p3", 0x02000, 0x1000, CRC(7519804f) SHA1(4181e58964ae149e675c2aeb49edee6f5d06f6ed) )
- ROM_LOAD( "js4.p4", 0x03000, 0x1000, CRC(2d6b49bc) SHA1(4e75df252cc3af003a99cc9425980a9d2a457558) )
- ROM_LOAD( "js5.p5", 0x04000, 0x1000, CRC(4631153f) SHA1(d31e15de3d54118905946836e72b4794dae89004) )
- ROM_LOAD( "js6.p6", 0x05000, 0x1000, CRC(ed32bd57) SHA1(6d5d1ae959e07207146197c7c370810306dca462) )
- /* bank switched ROMs follow */
- ROM_LOAD( "dyna 1.8c", 0x10000, 0x08000, CRC(d2cea54a) SHA1(16143974731d3b81ad377ebe58c9253c127e5588) ) // 27256
- ROM_LOAD( "dyna 2.7c", 0x18000, 0x08000, CRC(9d7c62ff) SHA1(92de7bb84f6f64b887b5500a54ff6f0b84e0b07d) ) // 27256
- ROM_LOAD( "dyna 3.6c", 0x20000, 0x04000, CRC(b716f2e1) SHA1(f29617185771a43f057dff062a2493bcf281c85a) ) // 27128
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "82s123.6k", 0x0000, 0x0020, CRC(faa20ce5) SHA1(408e90c13d5bd5fefdd9767a7643808a3cd9c111) )
-ROM_END
-
-ROM_START( dondenmj )
- ROM_REGION( 0x90000, "maincpu", 0 )
- ROM_LOAD( "dn5.1h", 0x00000, 0x08000, CRC(3080252e) SHA1(e039087afc36a0c594da093ea599b81a1d757139) )
- /* bank switched ROMs follow */
- ROM_LOAD( "dn1.1e", 0x18000, 0x08000, CRC(1cd9c48a) SHA1(12bc519889dacea59ae49672ad5313fff3a99f12) ) // 1
- ROM_LOAD( "dn2.1d", 0x20000, 0x04000, CRC(7a72929d) SHA1(7955f41883fa53876172bac417955ed0b5eb43f4) ) // 2
- ROM_LOAD( "dn3.2h", 0x30000, 0x08000, CRC(b09d2897) SHA1(0cde3e16ca333be01a5ab3a232f2ea602faec7a2) ) // 4
- ROM_LOAD( "dn4.2e", 0x50000, 0x08000, CRC(67d7dcd6) SHA1(6b708a29de1f4738eb2d4e667327d9433ff7216c) ) // 8
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "ic6k.bin", 0x0000, 0x0020, CRC(97e1defe) SHA1(b5002218b2292f7623dd9a205ce183dedeec03f1) )
-ROM_END
-
-ROM_START( mjdiplob )
- ROM_REGION( 0x90000, "maincpu", 0 )
- ROM_LOAD( "071.4l", 0x00000, 0x10000, CRC(81a6d6b0) SHA1(c6169e6d5f35304a0c3efcc2175c3213650f179c) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x10000, 0x10000 ) // 0,1
- ROM_LOAD( "072.4k", 0x20000, 0x10000, CRC(a992bb85) SHA1(e60231e04831dac122d1d49a68641ee47b57faaf) ) // 2,3
- ROM_LOAD( "073.4j", 0x30000, 0x10000, CRC(562ed64f) SHA1(42b4a7e5a8de4dde83c12d7b9facf561bc872978) ) // 4,5
- ROM_LOAD( "074.4h", 0x40000, 0x10000, CRC(1eba0140) SHA1(0d0b95be338d7450ad3b24cc47e24e94f86dcefe) ) // 6,7
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "ic6k.bin", 0x0000, 0x0020, CRC(c1e427df) SHA1(9a9980d93dff4b87a940398b18277acaf946eeab) )
-ROM_END
-
-ROM_START( tontonb )
- ROM_REGION( 0x90000, "maincpu", 0 )
- ROM_LOAD( "091.5e", 0x00000, 0x10000, CRC(d8d67b59) SHA1(7e7a85df738f80fc031cda8a104ac9c7b3e24785) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x10000, 0x10000 ) // 0,1
- /**/ // 2,3 unused
- ROM_LOAD( "093.5b", 0x30000, 0x10000, CRC(24b6be55) SHA1(11390d6ed55d7d0b7b84c6d36d4ac5330a06abba) ) // 4,5
- /**/ // 6,7 unused
- ROM_LOAD( "092.5c", 0x50000, 0x10000, CRC(7ff2738b) SHA1(89a49f89705f499439dc024fc70c87141a84780b) ) // 8,9
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "ic6k.bin", 0x0000, 0x0020, CRC(97e1defe) SHA1(b5002218b2292f7623dd9a205ce183dedeec03f1) )
-ROM_END
-
-/***************************************************************************
-
-Makaijan
-(c)1987 Dynax
-
-***************************************************************************/
-
-ROM_START( makaijan )
- ROM_REGION( 0x90000, "maincpu", 0 )
- ROM_LOAD( "ic1h.bin", 0x00000, 0x10000, CRC(7448c220) SHA1(ebb6564b83ce4f40a6e50a1be734e2086d97f592) )
- /* bank switched ROMs follow */
- ROM_COPY( "maincpu", 0x08000, 0x10000, 0x8000 )
- ROM_COPY( "maincpu", 0x08000, 0x18000, 0x8000 )
- ROM_LOAD( "052.1e", 0x50000, 0x10000, CRC(a881ca93) SHA1(499e17d2f57caa49c391d57dd737399fe4672f78) )
- ROM_LOAD( "053.1d", 0x30000, 0x10000, CRC(5f1d3e88) SHA1(152fde9f8e506f7f4ca1b2ecf8a828ece0501f78) )
- ROM_LOAD( "054.2h", 0x70000, 0x10000, CRC(ebc387c7) SHA1(7dfc892a5cccde7494ed06bbab88b4ea320dffbc) )
- ROM_LOAD( "055.2e", 0x20000, 0x10000, CRC(e26852ae) SHA1(8f8edefe851fd3641a5b4b227fb4dd976cdfa3e9) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "ic6k.bin", 0x0000, 0x0020, CRC(97e1defe) SHA1(b5002218b2292f7623dd9a205ce183dedeec03f1) )
-ROM_END
-
-/***************************************************************************
-
-Daisyarin
-(c)1989 Best System
-
-***************************************************************************/
-
-ROM_START( daisyari )
- ROM_REGION( 0x50000, "maincpu", 0 )
- ROM_LOAD( "1a.bin", 0x00000, 0x10000, CRC(7d14f90c) SHA1(742684d0785a93a45de0467e004db00531d016e2) )
- /* bank switched ROMs follow */
- ROM_COPY( "maincpu", 0x00000, 0x10000, 0x10000 )
- ROM_LOAD( "1c.bin", 0x20000, 0x10000, CRC(edfe52b9) SHA1(704c107fc8b89f561d2031d10468c124ab3d007a) ) /*2*/
- ROM_LOAD( "1d.bin", 0x30000, 0x10000, CRC(38f54a98) SHA1(d06eb851c75bfb2d8dd99bf5072c7f359f1f17e2) ) /*3*/
- ROM_LOAD( "1f.bin", 0x40000, 0x10000, CRC(b635f295) SHA1(dba3a59133c33c915dba678c510f00fb476f24da) ) /*4*/
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "6k.bin", 0x0000, 0x0020, CRC(c1e427df) SHA1(9a9980d93dff4b87a940398b18277acaf946eeab) )
-ROM_END
-
-/***************************************************************************
-
-Mahjong Club
-(c)XEX
-
-Royal mahjong subboard
-
-1
-3
-4
-5
-63s081n
-
-6116 RAM
-surface scrached 40pin DIP (Z80?)
-4.000MHz
-
-***************************************************************************/
-
-ROM_START( mjclub )
- ROM_REGION( 0x80000, "maincpu", 0 )
- ROM_LOAD( "5", 0x00000, 0x10000, CRC(cd148465) SHA1(42d1848656e461cfbf3fc0ba88ef8f4e67425f8c) )
- /* bank switched ROMs follow */
- ROM_COPY( "maincpu", 0x00000, 0x10000, 0x10000 )
- ROM_LOAD( "1", 0x50000, 0x10000, CRC(d0131f4b) SHA1(aac40b47b48f0ebfb07aaf17cb2a080fdcaa4697) )
- ROM_LOAD( "3", 0x60000, 0x10000, CRC(25628c38) SHA1(5166934c488c2f91bd6026c7896ad3536727d950) )
- ROM_LOAD( "4", 0x70000, 0x10000, CRC(a6ada333) SHA1(5fd44bf298a6f327118b98641af1aa0910519ded) )
- ROM_COPY( "maincpu", 0x50000, 0x40000, 0x10000 ) /*guess*/
- ROM_COPY( "maincpu", 0x60000, 0x30000, 0x10000 )
- ROM_COPY( "maincpu", 0x70000, 0x20000, 0x10000 )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "63s081n", 0x0000, 0x0020, CRC(4add90c5) SHA1(de14abcba6eee53e73801ff12c45a75e875e6ca3) )
-ROM_END
-
-ROM_START( majs101b )
- ROM_REGION( 0x90000, "maincpu", 0 )
- ROM_LOAD( "171.3e", 0x00000, 0x10000, CRC(fa3c553b) SHA1(fda212559c4d55610a12ad2927afe21f9069c7b6) )
- /* bank switched ROMs follow */
- /**/ // 0,1 unused
- ROM_RELOAD( 0x20000, 0x10000 ) // 2,3
- ROM_LOAD( "172.3f", 0x30000, 0x20000, CRC(7da39a63) SHA1(34d07978a326c83e5b51ce19619d52a75a501795) ) // 4,5,6,7
- ROM_LOAD( "173.3h", 0x50000, 0x20000, CRC(7a9e71ae) SHA1(ce1bde6e05f81b7dbb14015514397ed72f8dd92a) ) // 8,9,a,b
- ROM_LOAD( "174.3j", 0x70000, 0x10000, CRC(972c2cc9) SHA1(ba78d29d1723783dbd0e8c754d2422caad5ab367) ) // c,d
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "ic6k.bin", 0x0000, 0x0020, CRC(c1e427df) SHA1(9a9980d93dff4b87a940398b18277acaf946eeab) )
-ROM_END
-
-ROM_START( mjderngr )
- ROM_REGION( 0xb0000, "maincpu", 0 )
- ROM_LOAD( "2201.1a", 0x00000, 0x08000, CRC(54ec531d) SHA1(c5d9c575f6bdc499bae35123d7ad5bd4869b6ed9) )
- /* bank switched ROMs follow */
- ROM_CONTINUE( 0x10000, 0x08000 ) // 0
- ROM_LOAD( "2202.1b", 0x30000, 0x10000, CRC(edcf97f2) SHA1(8143f41d511fa01bd86faf829eb2c139292d705f) ) // 4,5
- ROM_LOAD( "2203.1d", 0x50000, 0x10000, CRC(a33368c0) SHA1(e216b65d7ed59d7cbf2b5d078799915d707b5291) ) // 8,9
- ROM_LOAD( "2204.1e", 0x70000, 0x20000, CRC(ed5fde4b) SHA1(d55487ae1007d43b71f06ae5c407c75db7054515) ) // c,d,e,f
- ROM_LOAD( "2205.1f", 0x90000, 0x20000, CRC(cfb8075d) SHA1(31f613a1a9b5f4295b552aeeddb760605ce2ac70) ) // 0x10,0x11,0x12,0x13
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "ic3g.bin", 0x000, 0x200, CRC(d43f4c7c) SHA1(117d2e4e8d5bea3e5dc903a4b87bd71786ae009c) )
- ROM_LOAD( "ic4g.bin", 0x200, 0x200, CRC(30cf7831) SHA1(b4593d51c6ceb301279a01a98665e4be8a3c403d) )
-ROM_END
-
-/***************************************************************************
-
-Mahjong If (BET type)
-(c)1990 Dynax
-
-CPU: Unknown 64P(Toshiba TLCS-90 series?)
-Sound: AY-3-8910
-OSC: 8.000MHz
- 18.432MHz
-
-
-2911.1B prg.
-2902.1C
-2903.1D
-2904.1E
-2905.1F
-2906.1G
-
-D29-1.4C color
-D29-2.4D
-
-***************************************************************************/
-
-ROM_START( mjifb )
- ROM_REGION( 0xd0000, "maincpu", 0 )
- ROM_LOAD( "2911.1b", 0x00000, 0x10000, CRC(138a31a1) SHA1(7e77c63a968206b8e61aaa423e19a766e4142554) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x10000, 0x08000 ) // bank 0 = 8000-bfff
- ROM_CONTINUE( 0x10000, 0x08000 )
- ROM_LOAD( "2903.1d", 0x30000, 0x20000, CRC(90c44965) SHA1(6904bfa7475f9de921bc2abcfc337b3daf7e0fad) )
- ROM_LOAD( "2906.1g", 0x50000, 0x20000, CRC(ad469345) SHA1(914ea4c77a540467da779ea78c52e66b05c30475) )
- ROM_LOAD( "2904.1e", 0x70000, 0x20000, CRC(2791abfa) SHA1(a8fd1a7e1cf4441b447a4605ad2f1c13775f92da) )
- ROM_LOAD( "2905.1f", 0x90000, 0x20000, CRC(b7a73cf7) SHA1(d93111e6d5f84e331f8198d8c595e3500abed133) )
- ROM_LOAD( "2902.1c", 0xb0000, 0x10000, CRC(0ce02a98) SHA1(69f6bca9af8548038401839047a304a4aa97cfe6) )
- ROM_RELOAD( 0xc0000, 0x10000 )
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "d29-2.4d", 0x000, 0x200, CRC(78252f6a) SHA1(1869147bc6b7573c2543bdf6b17d6c3c1debdddb) )
- ROM_LOAD( "d29-1.4c", 0x200, 0x200, CRC(4aaec8cf) SHA1(fbe1c3729d078a422ffe68dfde495fcb9f329cdd) )
-ROM_END
-
-ROM_START( mjifb2 )
- ROM_REGION( 0xd0000, "maincpu", 0 )
- ROM_LOAD( "2921.bin", 0x00000, 0x10000, CRC(9f2bfa4e) SHA1(7d6ca22bf0a91d65fde34ae321054638df705eef) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x10000, 0x08000 ) // bank 0 = 8000-bfff
- ROM_CONTINUE( 0x10000, 0x08000 )
- ROM_LOAD( "2903.1d", 0x30000, 0x20000, CRC(90c44965) SHA1(6904bfa7475f9de921bc2abcfc337b3daf7e0fad) )
- ROM_LOAD( "2906.1g", 0x50000, 0x20000, CRC(ad469345) SHA1(914ea4c77a540467da779ea78c52e66b05c30475) )
- ROM_LOAD( "2904.1e", 0x70000, 0x20000, CRC(2791abfa) SHA1(a8fd1a7e1cf4441b447a4605ad2f1c13775f92da) )
- ROM_LOAD( "2905.1f", 0x90000, 0x20000, CRC(b7a73cf7) SHA1(d93111e6d5f84e331f8198d8c595e3500abed133) )
- ROM_LOAD( "2902.1c", 0xb0000, 0x10000, CRC(0ce02a98) SHA1(69f6bca9af8548038401839047a304a4aa97cfe6) )
- ROM_RELOAD( 0xc0000, 0x10000 )
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "d29-2.4d", 0x000, 0x200, CRC(78252f6a) SHA1(1869147bc6b7573c2543bdf6b17d6c3c1debdddb) )
- ROM_LOAD( "d29-1.4c", 0x200, 0x200, CRC(4aaec8cf) SHA1(fbe1c3729d078a422ffe68dfde495fcb9f329cdd) )
-ROM_END
-
-ROM_START( mjifb3 )
- ROM_REGION( 0xd0000, "maincpu", 0 )
- ROM_LOAD( "2931.bin", 0x00000, 0x10000, CRC(2a3133de) SHA1(9fdc8c145d3da17ec5f86810716f1b1a2abd8023) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x10000, 0x08000 ) // bank 0 = 8000-bfff
- ROM_CONTINUE( 0x10000, 0x08000 )
- ROM_LOAD( "2903.1d", 0x30000, 0x20000, CRC(90c44965) SHA1(6904bfa7475f9de921bc2abcfc337b3daf7e0fad) )
- ROM_LOAD( "2906.1g", 0x50000, 0x20000, CRC(ad469345) SHA1(914ea4c77a540467da779ea78c52e66b05c30475) )
- ROM_LOAD( "2904.1e", 0x70000, 0x20000, CRC(2791abfa) SHA1(a8fd1a7e1cf4441b447a4605ad2f1c13775f92da) )
- ROM_LOAD( "2905.1f", 0x90000, 0x20000, CRC(b7a73cf7) SHA1(d93111e6d5f84e331f8198d8c595e3500abed133) )
- ROM_LOAD( "2902.1c", 0xb0000, 0x10000, CRC(0ce02a98) SHA1(69f6bca9af8548038401839047a304a4aa97cfe6) )
- ROM_RELOAD( 0xc0000, 0x10000 )
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "d29-2.4d", 0x000, 0x200, CRC(78252f6a) SHA1(1869147bc6b7573c2543bdf6b17d6c3c1debdddb) )
- ROM_LOAD( "d29-1.4c", 0x200, 0x200, CRC(4aaec8cf) SHA1(fbe1c3729d078a422ffe68dfde495fcb9f329cdd) )
-ROM_END
-
-/***************************************************************************
-
-Janputer '96
-(c)1996 Dynax
-
-Colour proms are TBP28S42's
-
-***************************************************************************/
-
-ROM_START( janptr96 )
- ROM_REGION( 0x210000, "maincpu", 0 )
- ROM_LOAD( "503x-1.1h", 0x000000, 0x40000, CRC(39914ecd) SHA1(e5796a95a7e3e7b61da63d50fa089be2946ba611) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x010000, 0x40000 )
- ROM_RELOAD( 0x050000, 0x40000 )
- ROM_LOAD( "503x-2.1g", 0x090000, 0x80000, CRC(d4b1ed79) SHA1(e1e266339d1d05c0405bfd32b67f215807696c82) )
- ROM_LOAD( "503x-3.1f", 0x110000, 0x80000, CRC(9ba4deb0) SHA1(e9d44a6ed849ff90c0b1f9321cdd62e18c3fd35c) )
- ROM_LOAD( "503x-4.1e", 0x190000, 0x80000, CRC(e266ca0b) SHA1(d84608e7b474061a680510a266842e667bf2eab5) )
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "ns503b.3h", 0x000, 0x200, CRC(3b2a6b12) SHA1(ebd2929e6acbde989964bfef602b81f2f2fe04eb) )
- ROM_LOAD( "ns503a.3j", 0x200, 0x200, CRC(fe49b2f0) SHA1(a36ca005380cc92dfe473254c26be2cef2ced9b4) )
-ROM_END
-
-/***************************************************************************
-
-Janputer Special
-(c)1997 Dynax
-
-Colour proms are TBP28642's
-
-***************************************************************************/
-
-ROM_START( janptrsp )
- ROM_REGION( 0x210000, "maincpu", 0 )
- ROM_LOAD( "ns51101.1h", 0x000000, 0x80000, CRC(44492ca1) SHA1(49e3dc9872a26e446599deb47161b8f52e4968c4) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x010000, 0x80000 )
- ROM_LOAD( "ns51102.1g", 0x090000, 0x80000, CRC(01e6aa19) SHA1(a761fe69fb69c0bf101033e71813742c9fc2d747) )
- ROM_LOAD( "ns51103.1f", 0x110000, 0x80000, CRC(0fc94805) SHA1(035002e8354673a063faacd3cb91d0512cab677a) )
- ROM_LOAD( "ns51104.1e", 0x190000, 0x80000, CRC(00442508) SHA1(268cc0c76bb9c21213c941952dbc891778ad397e) )
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "ns511b.3h", 0x000, 0x200, CRC(1286434f) SHA1(6818549d0e8b231d7071e67923f47b96fc6e1bb6) )
- ROM_LOAD( "ns511a.3j", 0x200, 0x200, CRC(26b6714c) SHA1(0d110c1e3f7050a3c4ecbed630a0a8b522f1b0b0) )
-ROM_END
-
-/***************************************************************************
-
-Mahjong Tensinhai
-Dynax, 1995
-
-PCB Layout
-----------
-
-Top board
-
-D10010318L1
-|----------------------------------------|
-|DSW2(1) DSW4(10) DIP16|
-| |---| |
-|DSW1(10) DSW3(10)| * | |
-| |---| PROM2 |
-| |
-| PROM1 |
-| |
-| |
-| |
-| |
-| 1001.5E |
-| |-------------| |
-| | & | 1002.4E |---||
-| |-------------| | D ||
-|12MHz 1003.3E | I ||
-| | P ||
-|BATTERY 32.768kHz |40 ||
-| CLOCK 6264 |---||
-|----------------------------------------|
-Notes:
- Most of the chips have their surface scratched off.
- * - Unknown PLCC44 IC. Possibly Mach110 or similar CPLD
- & - Unknown SDIP64 IC. Possibly a Toshiba TMP91P640? Clock input 12.000MHz
- CLOCK - Some kind of clock IC, like Oki M6242 or similar
- PROM1 - 82S147 PROM labelled 'D100-1'
- PROM2 - 82S147 PROM labelled 'D100-2'
- DIP16 - Socket for cable that joins to lower board
- DIP40 - Socket for connector that joins to lower board
-
-
-Bottom board
-
-|--------------------------------------------------------|
-| BATTERY 6116 |
-| VOL |
-| |
-| DIP40 |
-| |
-| DSW(8) 18.432MHz|
-| |
-| |
-|M DIP16 |
-|A 4164 4164 |
-|H |
-|J 4164 4164 |
-|O |
-|N 4164 4164 |
-|G |
-|2 4164 4164 |
-|8 AY3-8910 |
-| 4164 4164 |
-| |
-| 4164 4164 |
-| |
-| 4164 4164 |
-| |
-| 4164 4164 |
-|--------------------------------------------------------|
-Notes:
- DIP16 - Socket for cable that joins to upper board
- DIP40 - Socket for connector that joins to upper board
- AY3-8910 clock - 1.536 [18.432/12]
- HSync - 15.5kHz
- VSync - 60Hz
-
-***************************************************************************/
-
-ROM_START( mjtensin )
- ROM_REGION( 0x290000, "maincpu", 0 )
- ROM_LOAD( "1001.5e", 0x000000, 0x80000, CRC(960e1fe9) SHA1(11f5164b2c75c0e684e910ee8e09de978bdaff2f) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x010000, 0x80000 )
- ROM_RELOAD( 0x090000, 0x80000 )
-
- ROM_LOAD( "1002.4e", 0x110000, 0x80000, CRC(240eb7af) SHA1(2309e1c251fe55f6e6b97b5db94fa2fe914b88f4) )
-
- ROM_LOAD( "1003.3e", 0x210000, 0x80000, CRC(876081bf) SHA1(fe962cfa9318a9444123bcaf3406e22fb08e8c4e) )
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "d100-2.7e", 0x000, 0x200, CRC(6edeed23) SHA1(f4420c473ebbe3df92b0f5b1f0e4d5495fcb9fda) )
- ROM_LOAD( "d100-1.6e", 0x200, 0x200, CRC(88befd59) SHA1(cbcb437f9f6b5e542dc69f5c9e85ccbae47080af) )
-ROM_END
-
-/***************************************************************************
-
-Almond Pinky
-Dynax, 1988
-
-This game runs on Royal Mahjong hardware.
-It appears Royal Mahjong was originally manufactured by Nichibutsu
-This PCB says "(C) 1983 Nichibutsu" on it.
-
-Top PCB
--------
-D1401128L-0
-|------------------------------------------|
-| |---------| |
-|DIP40 | | |
-| Z80A | & | |
-| |---------| |
-| 8MHz DSW1 |
-| |
-| |
-| |
-| |
-| DSW2 |
-| |
-| |
-| |
-|DYNAX DYNAX DYNAX DYNAX DYNAX DYNAX |
-| 146 145 144 143 142 141 6116 *|
-|------------------------------------------|
-Notes:
- Every chip has it's surface scratched
- * - 4 pin power connector joined to main PCB
- DSWx - have 8 switches each
- DIP40 - Socket joins to main PCB
- & - Large Dynax ceramic SIP module (DAC or similar)
- Z80 - clock 4MHz [8/2]
- All ROMs type 27512
-
-Note! On Royal Mahjong-based PCBs where there is a 3 pin RGB connector (3 wires) tied to the main
-board and joining to the top board, the color PROM is located on the top daughterboard. Usually that
-chip is an 82S123 (32 bytes), 82S129 (256 bytes) or 82S147 (512 bytes). In any case, you can be sure
-there is a PROM(s) on the PCB somewhere if the RGB connector cable is present.
-
-
-Main PCB
---------
-RM-1D (C) Nichibutsu 1983
-|------------------------------------------------|
-| 6116 DIP24 P6 P5 P4 P3 P2 P1 |
-|MB3712 |
-| BATTERY |
-| DSW(8) DIP40 |
-| |
-|1 18.432MHz|
-|8 TBP18S030.6K |
-|W |
-|A |
-|Y |
-| AY3-8910 |
-| 4116 4116 |
-|1 4116 4116 |
-|0 4116 4116 |
-|W 4116 4116 |
-|A 4116 4116 |
-|Y 4116 4116 |
-| 4116 4116 |
-| 4116 4116 |
-|------------------------------------------------|
-Notes:
- DIP40 - Socket joins to top PCB
- DIP24 - Unpopulated DIP24 position (no socket)
- TBP18S030.6K - Color PROM (32 bytes)
- P1-P6 - Program ROM sockets (DIP24)
-
-***************************************************************************/
-
-ROM_START( mjapinky )
- ROM_REGION( 0x90000, "maincpu", 0 )
- ROM_LOAD( "141.4d", 0x00000, 0x10000, CRC(0c4fb83a) SHA1(5d467e8fae715ca4acf88f8e9437c7cdf9f876bd) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x10000, 0x10000 )
- ROM_LOAD( "142.4e", 0x20000, 0x10000, CRC(129806f0) SHA1(d12d2c5bb0c653f2e4974c47004ada128ac30bea) )
- ROM_LOAD( "143.4f", 0x30000, 0x10000, CRC(3d0bc452) SHA1(ad61eaa892121f90f31a6baf83158a11e6051430) )
- ROM_LOAD( "144.4h", 0x40000, 0x10000, CRC(24509a18) SHA1(ab9daed2cbc72d02c2168a4c93f70ebfe3916ea2) )
- ROM_LOAD( "145.4j", 0x50000, 0x10000, CRC(fea3375a) SHA1(cbb89b72cfba9c0448d152dfdbedb20b9896516e) )
- ROM_LOAD( "146.4k", 0x60000, 0x10000, CRC(be27a9b9) SHA1(f12402182f598391e445245b345f49084a69620a) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "18s030n.clr", 0x0000, 0x0020, CRC(5736d0aa) SHA1(298b51340d2697347842cfaa5921f31c7b7f9748) )
-ROM_END
-
-/***************************************************************************
-
-Mahjong Cafe Time
-(c)1992 Dynax
-Modified Royal Mahjong PCB
-D6310128L1-1 (Sub PCB)
-
-CPU: Z80
-Sound: AY-3-8910
-
-ROMs:
-6301.2E [1fc10e7c]
-6302.3E [02bbdf78]
-6303.5E [0e71eea8]
-6304.6E [53c581d6]
-
-D63-1.7F [e7410136] MB7124H
-D63-2.8F [af735b42] /
-
-***************************************************************************/
-
-ROM_START( cafetime )
- ROM_REGION( 0x210000, "maincpu", 0 )
- ROM_LOAD( "6301.2e", 0x000000, 0x40000, CRC(1fc10e7c) SHA1(0ed6bfd4cc6fc64bbf55bd3c6bde2d8ba9da2afb) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x010000, 0x40000 )
- ROM_RELOAD( 0x050000, 0x40000 )
- ROM_LOAD( "6302.3e", 0x090000, 0x80000, CRC(02bbdf78) SHA1(e1e107541236ed92854fac4e12c9b300dbac9822) )
- ROM_LOAD( "6303.5e", 0x110000, 0x80000, CRC(0e71eea8) SHA1(f95c3b7acee6deabff4aca83b490e255648e2f19) )
- ROM_LOAD( "6304.6e", 0x190000, 0x80000, CRC(53c581d6) SHA1(d9cfda63a8f2e92873f69c673d3efe5c22cfa0de) )
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "d63-2.8f", 0x000, 0x200, CRC(af735b42) SHA1(deddde3e276d5b9de72e267f65399d80783c6244) )
- ROM_LOAD( "d63-1.7f", 0x200, 0x200, CRC(e7410136) SHA1(54d3aec0d11485d4f419e76f9c4071ab9b817937) )
-ROM_END
-
-/***************************************************************************
-
-Mahjong Cafe Doll
-Dynax, 1993
-
-This game runs on Royal Mahjong hardware.
-
-Top PCB
--------
-D76052208L-2
-|-----------------------------------|
-| 7601 6264 RTC BATTERY |
-|DIP40 |
-| 7602 8MHz |
-| PAL PAL |
-| 7603 |-----------| |
-| | CPU | |
-| DIP32 |-----------| |
-| |
-| |
-| |
-| |
-| |
-| 82s147.7F &|
-|* DSW3 DSW1 |
-| 82S147.9F % DSW4 DSW2 |
-|-----------------------------------|
-Notes:
- Every chip has it's surface scratched, except the PROMs
- * - Connector joined to main PCB
- & - Power input connector
- % - RGB Video output
- DIP32 - Empty DIP32 socket
- DSWx - have 10 switches each
- DIP40 - Socket joins to main PCB
- CPU - unknown SDIP64 chip. Possibly TMP90P640 or similar TLCS-90 type CPU
-
-
-Main PCB
---------
-no pcb number
-|------------------------------------------------|
-| 6116 DIP24 DIP24 DIP24 DIP28 DIP28 DIP28 |
-| DIP24 |
-|HA1368 |
-| DIP40 |
-| |
-| DSW(8) 18.432MHz|
-|M |
-|A |
-|H |
-|J |
-|O AY3-8910 |
-|N 4116 4116 |
-|G 4116 4116 |
-|2 4116 4116 |
-|8 4116 4116 |
-| 4116 4116 |
-| 4116 4116 |
-| 4116 4116 |
-| 4116 4116 |
-|------------------------------------------------|
-Notes:
- DIP40 - Sockets joins to top PCB
- DIP24/28 - Unpopulated sockets
-
-***************************************************************************/
-
-ROM_START( cafedoll )
- ROM_REGION( 0x190000, "maincpu", 0 )
- ROM_LOAD( "76xx.tmp90841", 0x00000, 0x02000, NO_DUMP )
- ROM_LOAD( "7601", 0x000000, 0x80000, CRC(20c80ad9) SHA1(e45edd101c6e26c0fa3c3f15f4a4152a853e41bd) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x010000, 0x80000 )
- ROM_LOAD( "7602", 0x090000, 0x80000, CRC(f472960c) SHA1(cc2feb4374ba94035101114c73e1690cfeac9b91) )
- ROM_LOAD( "7603", 0x110000, 0x80000, CRC(c4293019) SHA1(afd717844e9e681ada14e80cd10dce0ed60d4259) )
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "d76-2_82s147.9f", 0x000, 0x200, CRC(9c1d0512) SHA1(3ca82d4271badc890701ecc76b97e80b16509b50) )
- ROM_LOAD( "d76-1_82s147.7f", 0x200, 0x200, CRC(9a75349c) SHA1(2071132267aafd8facf1d7841093d9a45c30a8d3) )
-ROM_END
-
-/***************************************************************************
-
-Mahjong Cafe Paradise
-1999 Techno-Top
-
-Royal Mahjong board. No roms on the base board.
-
-Top board looks like typical Dynax with scratched SDIP64.
-It is marked 'TSS001-0001 - Techno Top Limited' and has just 2 eproms and 2 PROMs.
-Everything else is scratched but there's a 32.768kHz OSC, RTC and connected battery.
-Also, 4 DIP sw each with 10 switches and an 8MHz OSC next to the SDIP64 chip,
-and a PLCC68 chip (likely FPGA)
-
-***************************************************************************/
-
-ROM_START( cafepara )
- ROM_REGION( 0x290000, "maincpu", 0 )
- ROM_LOAD( "cafepara.tmp91640", 0x000000, 0x004000, NO_DUMP )
- // VIDEO & AM MICRO COMPUTER SYSTEMS 1999 TECHNO-TOP,LIMITED NAGOYA JAPAN MAHJONG CAFE PARADISE TSS001 VER. 1.00
- ROM_LOAD( "00101.1h", 0x000000, 0x080000, CRC(f5917280) SHA1(e6180e36643075ab9fa5bc27baef2a464a23f581) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x010000, 0x080000 )
- ROM_LOAD( "00102.1d", 0x090000, 0x200000, CRC(ed3b5447) SHA1(ac24e9c00c94c35d2b2ec35f0c4262ceeda5408f) )
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "ts001b.4h", 0x000, 0x200, CRC(b0019654) SHA1(78ba9b35744849c430f99137ea0da3d5564cc72a) )
- ROM_LOAD( "ts001a.4j", 0x200, 0x200, CRC(e89d4db0) SHA1(ff191a76fe1144e72a1cf3769f0156adf2d0507f) )
-ROM_END
-
-/***************************************************************************
-
-Mahjong Vegas
-Dynax, 199?
-
-This game runs on Royal Mahjong hardware.
-
-Top PCB
--------
-D5011308L1
-|-----------------------------------|
-| DIP32 DIP32 5003 5002 DIP32 5001A|
-|DIP40 62XX|
-| 32.768kHz |
-| RTC |
-| |-----------| |
-| | CPU | |
-| |-----------| |
-|DSW4 DSW2 |
-| DSW3 DSW1 PAL |
-| |
-| |
-| |
-| D50-2 |
-|* D50-1 8MHz |
-| % & BATTERY |
-|-----------------------------------|
-Notes:
- Every chip has it's surface scratched
- * - Cable connector joined to main PCB (to original PROM socket on main board)
- % - RGB Video output
- & - +12V input to top PCB
- DIP32 - Empty DIP32 socket
- DSWx - have 10 switches each
- DIP40 - Socket joins to main PCB
- CPU - unknown SDIP64 chip. Possibly TMP90P640 or similar TLCS-90 type CPU
- Pins 9-14 have been broken off and removed!
- 62XX - 6264 or 62256 SRAM
- D50-* - 82S147 color PROMs
-
-
-Main PCB
---------
-FRM-00 (with Falcon Logo.... PCB is made by Falcon)
-|------------------------------------------------|
-| 6116 DIP24 ROM6 ROM5 ROM4 ROM3 ROM2 ROM1 |
-|HA1368 |
-| |
-| VOL DIP40 |
-| |
-| DSW(8) 18.432MHz|
-|M |
-|A |
-|H |
-|J |
-|O AY3-8910 |
-|N 4116 4116 |
-|G 4116 4116 |
-|2 4116 4116 |
-|8 4116 4116 |
-| 4116 4116 |
-| 4116 4116 |
-| 4116 4116 |
-| 4116 4116 |
-|------------------------------------------------|
-Notes:
- DIP40 - Socket joins to top PCB
- DIP24 - Unpopulated socket
- AY-3-8910 - clock 1.536MHz (18.432/12]
- ROM* - Unpopulated DIP24 sockets
-
-***************************************************************************/
-
-ROM_START( mjvegas )
- ROM_REGION( 0xd0000, "maincpu", 0 )
- ROM_LOAD( "50xx.tmp90841", 0x00000, 0x02000, NO_DUMP )
- ROM_LOAD( "5001a.1b", 0x00000, 0x20000, CRC(91859a47) SHA1(3c452405bf28f5e7302eaccdf472e91b64629a67) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x10000, 0x20000 )
- ROM_LOAD( "5002.1d", 0x30000, 0x80000, CRC(016c0a32) SHA1(5c5fdd631eacb36a0ee7dba9e070c2d3d3d8fd5b) )
- ROM_LOAD( "5003.1e", 0xb0000, 0x20000, CRC(5323cc85) SHA1(58b75ba560f05a0568024f52ee89f54713219452) )
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "d50-2_82s147.4h", 0x000, 0x200, CRC(3c960ea2) SHA1(65e05e3f129e9e6fcb14b7d44a75a76919c54d52) )
- ROM_LOAD( "d50-1_82s147.4g", 0x200, 0x200, CRC(50c0d0ec) SHA1(222899456cd2e15391d8d0f771bbd5e5333d6ba3) )
-ROM_END
-
-ROM_START( mjvegasa )
- ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) // 100 banks
- ROM_LOAD( "5040.1b", 0x00000, 0x20000, CRC(c4f03128) SHA1(758567f74de333207dfe6c1cb72b2afffb0c8f4b) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x070000, 0x20000 ) // 0c-0f
- ROM_LOAD( "5002.1d", 0x210000, 0x80000, CRC(016c0a32) SHA1(5c5fdd631eacb36a0ee7dba9e070c2d3d3d8fd5b) ) // 40-4f
- ROM_LOAD( "5003.1e", 0x2f0000, 0x20000, CRC(5323cc85) SHA1(58b75ba560f05a0568024f52ee89f54713219452) ) // 5c-5f
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "d50-2_82s147.4h", 0x000, 0x200, CRC(3c960ea2) SHA1(65e05e3f129e9e6fcb14b7d44a75a76919c54d52) )
- ROM_LOAD( "d50-1_82s147.4g", 0x200, 0x200, CRC(50c0d0ec) SHA1(222899456cd2e15391d8d0f771bbd5e5333d6ba3) )
-ROM_END
-
-/***************************************************************************
-
-Mahjong Shinkirou Deja Vu (+ some roms from Jan Oh (Toapan) !?)
-
-This game runs on Royal Mahjong hardware.
-
-Top PCB
--------
-D210301BL2
-|-----------------------------------|
-| DIP32 DIP32 2104 2103 2102 2101 |
-|DIP40 6116|
-| |
-|DSW3 |
-| |-----------| |
-| | CPU | |
-| |-----------| |
-|DSW4 |
-| 8MHz |
-| DSW2 DSW1|
-| |
-| |
-| |
-|* |
-| % |
-|-----------------------------------|
-Notes:
- Every chip has it's surface scratched
- * - Connector joined to main PCB
- % - RGB Video output
- DIP32 - Empty DIP32 socket
- DSWx - have 8 switches each
- DIP40 - Socket joins to main PCB
- CPU - unknown SDIP64 chip. Possibly TMP90P640 or similar TLCS-90 type CPU
-
-
-Main PCB
---------
-FRM-00
-|------------------------------------------------|
-| 6116 DIP24 ROM6 ROM5 ROM4 ROM3 ROM2 ROM1 |
-|HA1368 |
-| |
-| DIP40 |
-| |
-| DSW(8) 18.432MHz|
-|M |
-|A |
-|H |
-|J |
-|O AY3-8910 |
-|N 4116 4116 |
-|G 4116 4116 |
-|2 4116 4116 |
-|8 4116 4116 |
-| 4116 4116 |
-| 4116 4116 |
-| 4116 4116 |
-| 4116 4116 |
-|------------------------------------------------|
-Notes:
- DIP40 - Sockets joins to top PCB
- DIP24 - Unpopulated socket
-
-***************************************************************************/
-
-ROM_START( mjdejavu )
- ROM_REGION( 0xd0000, "maincpu", 0 )
- ROM_LOAD( "2101.1b", 0x00000, 0x10000, CRC(b0426ea7) SHA1(ac39cbf5d78acdaa4b01d948917965c3aa2761b8) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x10000, 0x08000 )
- ROM_CONTINUE( 0x10000, 0x08000 ) // 0
- // unused
- ROM_LOAD( "2103.1d", 0x30000, 0x20000, CRC(ed5fde4b) SHA1(d55487ae1007d43b71f06ae5c407c75db7054515) ) // 8
- // unused
- ROM_LOAD( "2104.1e", 0x70000, 0x20000, CRC(cfb8075d) SHA1(31f613a1a9b5f4295b552aeeddb760605ce2ac70) ) // 18
- // unused
- ROM_LOAD( "2102.1c", 0xb0000, 0x20000, CRC(f461e422) SHA1(c3505feb32650fdd5c0d7f30faed69b65d94937a) ) // 28
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "82s147.4d", 0x000, 0x200, CRC(d43f4c7c) SHA1(117d2e4e8d5bea3e5dc903a4b87bd71786ae009c) )
- ROM_LOAD( "82s147.4c", 0x200, 0x200, CRC(30cf7831) SHA1(b4593d51c6ceb301279a01a98665e4be8a3c403d) )
-ROM_END
-
-ROM_START( mjdejav2 )
- ROM_REGION( 0xd0000, "maincpu", 0 )
- ROM_LOAD( "210a.1b", 0x00000, 0x10000, CRC(caa5c267) SHA1(c779f9217f56d9d3b1ee9fadca07f7917d203e8e) )
- /* bank switched ROMs follow */
- ROM_RELOAD( 0x10000, 0x08000 )
- ROM_CONTINUE( 0x10000, 0x08000 ) // 0
- // unused
- ROM_LOAD( "2103.1d", 0x30000, 0x20000, CRC(ed5fde4b) SHA1(d55487ae1007d43b71f06ae5c407c75db7054515) ) // 8
- // unused
- ROM_LOAD( "2104.1e", 0x70000, 0x20000, CRC(cfb8075d) SHA1(31f613a1a9b5f4295b552aeeddb760605ce2ac70) ) // 18
- // unused
- ROM_LOAD( "210b.1c", 0xb0000, 0x20000, CRC(d4383830) SHA1(491333277e5e2341d1c1cc20f8cc32aa6b020b6c) ) // 28
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "82s147.4d", 0x000, 0x200, CRC(d43f4c7c) SHA1(117d2e4e8d5bea3e5dc903a4b87bd71786ae009c) )
- ROM_LOAD( "82s147.4c", 0x200, 0x200, CRC(30cf7831) SHA1(b4593d51c6ceb301279a01a98665e4be8a3c403d) )
-ROM_END
-
-// Incomplete romset (missing rom7 at $6000): "Jan Oh" by Toaplan, on royalmah hardware (try pc=64f).
-ROM_START( janoh )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "rom1.p1", 0x0000, 0x1000, CRC(8fc19963) SHA1(309e941c059a97b117090fd9dd69a00031aa6109) ) // "1984 JAN OH"
- ROM_LOAD( "rom2.p12", 0x1000, 0x1000, CRC(e1141ae1) SHA1(38f7a71b367a607bb20a5cbe62e7c87c96c6997c) )
- ROM_LOAD( "rom3.p2", 0x2000, 0x1000, CRC(66e6d2f4) SHA1(d7e00e5bfee60daf844c46d36b1f4860fba70759) ) // "JANOH TOAPLAN 84"
- ROM_LOAD( "rom4.p3", 0x3000, 0x1000, CRC(9186f02c) SHA1(b7dc2d6c19e67dd3f841cbb56df9589e3e6941f7) )
- ROM_LOAD( "rom5.p4", 0x4000, 0x1000, CRC(f3c478a8) SHA1(02a8504457cbcdd3e67e7f5ba60fb789f198a51d) )
- ROM_LOAD( "rom6.p5", 0x5000, 0x1000, CRC(92687327) SHA1(4fafba5881dca2a147616d94dd055eba6aa3c653) )
- ROM_LOAD( "rom7.p6", 0x6000, 0x1000, NO_DUMP )
-
- ROM_REGION( 0x20, "proms", 0 )
- ROM_LOAD( "janho.color", 0x00, 0x20, NO_DUMP )
-ROM_END
-
-/***************************************************************************
-
-Mahjong Cafe Break
-Dynax/Nakanihon, 199?
-
-This game runs on Royal Mahjong hardware with a Nakanihon top board
-
-Top PCB Layout
---------------
-
-NS528-9812
-|-------------------------|
-|X NS528A2 |
-| NS528B2 PLCC84 528011|
-|RGB DIP32|
-| 8MHz DIP32|
-|DSW4(10) |
-|DSW3(10) SDIP64 6264 |
-|DSW2(10) |
-|DSW1(10) 52802 |
-| A3 |
-|BATTERY A1 A2 Y A4|
-|-------------------------|
-Notes:
- RGB 3 - wire cable tied to mainboard
- X - DIP16 socket with flat cable plugged in coming from main board PROM socket
- PLCC84 - unknown PLCC84 in a socket
- DIP32 - unpopulated DIP32 socket
- SDIP64 - unknown CPU, probably TLCS-90 (TMP91640)
- A1 - unknown DIP8 IC, possibly MB3771 reset/watchdog chip
- A2/A3 - unknown DIP14 ICs, probably logic
- A4 - unknown DIP18 IC, RTC IC
- Y - 32.768kHz OSC for RTC
-
-***************************************************************************/
-
-ROM_START( cafebrk )
- ROM_REGION( 0x280000, "maincpu", 0 )
- ROM_LOAD( "528.tmp91640", 0x000000, 0x004000, NO_DUMP )
- ROM_LOAD( "528011.1f", 0x000000, 0x080000, CRC(440ae60b) SHA1(c24efd76ba73adcb614b1974e8f92592800ba53c) )
- /* bank switched ROMs follow */
- ROM_LOAD( "52802.1d", 0x080000, 0x200000, CRC(bf4760fc) SHA1(d54ab9e298800a31d95a5f8b98ab9ba5b2866acf) )
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD( "ns528b2.4h", 0x000, 0x200, CRC(5699e69a) SHA1(fe13b93dd2c4a16865b4edcb0fee1390fdade725) )
- ROM_LOAD( "ns528a2.4j", 0x200, 0x200, CRC(b5a3a569) SHA1(8e31c600ae24b672b614908ee920a333ed600941) )
-ROM_END
-
-/*
-
-Janou
-(c)1985 Toaplan (distributed by SNK)
-
-RM-1C (modified Royal Mahjong hardware)
-
-CPU: Z80x2 (on subboard)
-Sound: AY-3-8910
-OSC: 18.432MHz
-
-ROMs:
-JO1
-JO2
-JO3
-JO4
-JO5
-JO6
-JO7
-
-
-Subboard GX002A
-C8 (2764)
-18S030.44
-18S030.45
-
-HM6116
-MSM2128x4
-
-
-dumped by sayu
---- Team Japump!!! ---
-
-*/
-
-ROM_START( janoha )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "jo1", 0x0000, 0x1000, CRC(1a7dd28d) SHA1(347085c2b305861e4a4a602c3b3b0c57889f7f45) )
- ROM_LOAD( "jo2", 0x1000, 0x1000, CRC(e92ca79f) SHA1(9714ebee954dd98cf98b340e1dc424a4b2a78c36) )
- ROM_LOAD( "jo3", 0x2000, 0x1000, CRC(8e349cac) SHA1(27442fc97750ceb6e928682ee545a9ebff4511ac) )
- ROM_LOAD( "jo4", 0x3000, 0x1000, CRC(f2bcac9a) SHA1(46eea014edf9f260b35b5f9bd0fd0a0236da16ef) )
- ROM_LOAD( "jo5", 0x4000, 0x1000, CRC(16c09c73) SHA1(ea712f9ca3200ca27434e4200187b488e24f4c65) )
- ROM_LOAD( "jo6", 0x5000, 0x1000, CRC(92687327) SHA1(4fafba5881dca2a147616d94dd055eba6aa3c653) )
- ROM_LOAD( "jo7", 0x6000, 0x1000, CRC(f9a3fea6) SHA1(898c030b34f7432568e080e2814619d836d98a2f) )
-
- ROM_REGION( 0x10000, "sub", 0 )
- ROM_LOAD( "c8", 0x0000, 0x2000, CRC(a37ed493) SHA1(a3246c635ee77f96afd96285ef7091f6fc0d7636) )
-
- ROM_REGION( 0x0040, "proms", 0 )
- ROM_LOAD( "18s030.44", 0x0000, 0x0020, CRC(d4eabf78) SHA1(f14778b552ff483e36e7c30ee67e8e2075790ea2) )
- ROM_LOAD( "18s030.45", 0x0020, 0x0020, CRC(c6a24ae9) SHA1(ec7a4dee2fec2f7151ddc39e40a3eee6a1c4992d) ) // another color prom?
-ROM_END
-
-/*
-
-Mahjong Shiyou (BET type)
-(c)1986 Visco
-
-Board: S-0086-001-00
-CPU: Z80-A x2
-Sound: AY-3-8910
- M5205
-OSC: 18.432MHz
- 400KHz
-
-
-1.1K Z80#2 prg.
-2.1G
-
-3.3G Z80#1 prg.
-4.3F
-
-COLOR.BPR color
-
-*/
-
-ROM_START( mjsiyoub )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "3.3g", 0x00000, 0x8000, CRC(47d0f16e) SHA1(a125be052668ba93756bf940af31a10e91a3d307) )
- ROM_LOAD( "4.3f", 0x08000, 0x8000, CRC(6cd6a200) SHA1(1c53e5caacdb9c660bd98f5331bf5354581f74c9) )
-
- /*encrypted z80*/
- ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "1.1k", 0x00000, 0x8000, CRC(a1083321) SHA1(b36772e90be60270234df16cf92d87f8d950190d) )
- ROM_LOAD( "2.1g", 0x08000, 0x4000, CRC(cfe5de1d) SHA1(4acf9a752aa3c02b0889b0b49d3744359fa24460) )
-
- ROM_REGION( 0x20, "proms", 0 )
- ROM_LOAD( "color.bpr", 0x00, 0x20, CRC(d21367e5) SHA1(b28321ac8f99abfebe2ef4da0c751cefe9f3f3b6) )
-ROM_END
-
-/*
-
-Mahjong Senka
-(c)1986 Visco
-
-Modified Royal Mahjong Hardware
-
-CPU: Z80
-Sound: AY-3-8910
-OSC: 18.432MHz
-Others: Battery
-
-ROMs:
-1
-2
-3
-4
-1.2L (N82S129N)
-2.2K (N82S123N)
-3.1D (N82S129N)
-4.8K (N82S123N) - color PROM
-
-
-dumped by sayu
-
---- Team Japump!!! ---
-http://japump.i.am/
-
-*/
-
-ROM_START( mjsenka )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "3", 0x0000, 0x4000, CRC(b2d8be1f) SHA1(da75e1072d271de2dbd897a551f6c32593f6421b) )
- ROM_LOAD( "4", 0x4000, 0x2000, CRC(e9e84999) SHA1(7b5f0edd92cf3a45e85055460e6cb00b154fd152) )
- ROM_LOAD( "1", 0x6000, 0x2000, CRC(83e943d1) SHA1(c4f9b5036627ccb369e7db03a743e496b149af85) )
- ROM_LOAD( "2", 0x8000, 0x2000, CRC(cdb02fc5) SHA1(5de6b15b79ea7c4246a294b17f166e53be6a4abc) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "4.8k", 0x0000, 0x0020, CRC(41bd4d69) SHA1(4d2da761b338b62b2ea151c201063a24d6e4cc97) )
-
- ROM_REGION( 0x0220, "user1", 0 ) //?
- ROM_LOAD( "1.2l", 0x0000, 0x0100, CRC(24599429) SHA1(6c93bb2e7bc9902cace0c9d482fc1584c4c1a114) )
- ROM_LOAD( "3.1d", 0x0100, 0x0100, CRC(86aeafd1) SHA1(c4e5c56ce5baf2be3962675ae333e28bd8108a00) )
- ROM_LOAD( "2.2k", 0x0020, 0x0020, CRC(46014727) SHA1(eec451f292ee319fa6bfbbf223aaa12b231692c1) )
-ROM_END
-
-/*
-
-Mahjong Yarou
-(c)1986 Visco/Video System
-
-FRM-00 (modified royal mahjong hardware)
-
-CPU: Z80 (on subboard)
-Sound: AY-3-8910
-OSC: 18.432MHz
-
-ROMs:
-1(2732)
-2(2732)
-3(2732)
-4(2732)
-5(2732)
-6(2732)
-4.6K (18S030) - pin14 is connected to subboard's WS
- pin9 is not inserted to the socket
-
-Subboard:
-7(2764)
-8(2764)
-N82S129N.IC4
-N82S123N.IC7
-N82S129N.IC15
-
-Connector between mainboard and subboard
-sub - main
- CK - LS368 (1K) pin12
- HD - LS08 (2E) pin1
- VD - LS08 (2E) pin2
- WS - 18S030(6K) pin14
- () - LS138 (3K) pin13
-
-
-Mainboard
-----------------------------------------------------------
- 1 2 3 4 5 6 7
-A 74LS04 74LS86 74LS153 MB8116 MB8116 74LS157
-B 74LS161 74LS86 74LS153 MB8116 MB8116 74LS95
-C 74LS161 74LS86 74LS153 MB8116 MB8116 74LS157
-D 74LS74 74LS86 74LS153 MB8116 MB8116 74LS95 8
-E 74LS161 74LS08 74LS153 MB8116 MB8116 74LS157 9
-F 74LS161 74LS74 74LS00 MB8116 MB8116 74LS95 1
-H 74LS74 74LS00 74LS175 MB8116 MB8116 74LS157 0
-J 74LS107 74LS32 74LS10 MB8116 MB8116 74LS95
-K 74LS368 74LS241 74LS138 74LS08 74LS174 4.6K
-L 18.432MHz 74LS241 74LS138 74LS04 74LS244 74LS174
-M (socket to subbd) 74LS367 74LS08 DIPSW 74LS368
-N (74LS245)74LS138 74LS04 TC40H000P
-
- 1 2 3 4 5 6 6 B
- 1 A
- 1 T
- 6 T
-----------------------------------------------------------
-
-Subboard
------------------------------------------------------------
-74LS42(IC21) ?(IC22) ?(IC23) 74LS85(IC24)
-74LS125(IC16) 74LS08(IC17) 74LS393(IC9) 82S129N(IC15)
-74LS161(IC6) 82S123N(IC7) 74LS161(IC8) 74LS157(IC14)
-82S129N(IC4) 74LS259(IC5) 74LS32(IC12) 74LS74(IC13)
-7(IC2) PAL20X10(IC19) 74LS00(IC20)
-8(IC3) 74LS245(IC18) DIPSW
- 74LS32(IC11)
-Z80A 74LS04(IC10)
- 5pin connector
------------------------------------------------------------
-
-
-dumped by sayu
-
---- Team Japump!!! ---
-http://japump.i.am/
-
-*/
-
-ROM_START( mjyarou )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "1.p1", 0x0000, 0x1000, CRC(312c3b29) SHA1(ec2e14b392cf761f0a7079376994418fd463a06c) ) // on main board
- ROM_LOAD( "2.p2", 0x1000, 0x1000, CRC(98f14097) SHA1(cd1f72d6effa50f95386dfc5fa9b5056d83e554f) ) // "
- ROM_LOAD( "3.p3", 0x2000, 0x1000, CRC(295dbf40) SHA1(d6ac7bd88da849e418e750e2c91a594f65bdff39) ) // "
- ROM_LOAD( "4.p4", 0x3000, 0x1000, CRC(a6a078c8) SHA1(936be36c7c938c705e7054a42c1908bb5a5ee1bb) ) // "
- ROM_LOAD( "5.p5", 0x4000, 0x1000, CRC(3179657e) SHA1(703fc57ae71554345754267c31809cf7af7f1639) ) // "
- ROM_LOAD( "6.p6", 0x5000, 0x1000, CRC(6ccc05b4) SHA1(6eefba6023673edd86e82a0ad861a4d8f7f6652b) ) // "
- ROM_LOAD( "7.ic2", 0x6000, 0x2000, CRC(de6bfdd8) SHA1(dd9727d4d7de4add48cde229b8aa194f0492af7e) ) // on sub board
- ROM_LOAD( "8.ic3", 0x8000, 0x2000, CRC(1adef246) SHA1(b5f5598daf71694effffbfb486b03fcda5a593ee) ) // "
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "4.6k", 0x0000, 0x0020, CRC(41bd4d69) SHA1(4d2da761b338b62b2ea151c201063a24d6e4cc97) ) // on main board
-
- ROM_REGION( 0x0220, "user1", 0 ) //?
- ROM_LOAD( "82s129n.ic15", 0x0000, 0x0100, CRC(86aeafd1) SHA1(c4e5c56ce5baf2be3962675ae333e28bd8108a00) ) // on sub board
- ROM_LOAD( "82s129n.ic4", 0x0100, 0x0100, CRC(f09d3c4c) SHA1(a9e752d75e7f3ebd05add4ccf2f9f15d8f9a8d15) ) // "
- ROM_LOAD( "82s123n.ic7", 0x0200, 0x0020, CRC(46014727) SHA1(eec451f292ee319fa6bfbbf223aaa12b231692c1) ) // on sub board
-ROM_END
-
-ROM_START( mjyarou2 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "my_1", 0x0000, 0x1000, CRC(c303a013) SHA1(1360aa8657740036f017eba864eed2cbc3c9ad62) )
- ROM_LOAD( "my_2", 0x1000, 0x1000, CRC(0c7f87cc) SHA1(2e56656b2dd860471eab9dfcb1dfd4e0b23a8df9) )
- ROM_LOAD( "my_3", 0x2000, 0x1000, CRC(e94d5f9a) SHA1(c8365991aecf0b1d22c7ce38dd15f6d4a5f70cac) )
- ROM_LOAD( "my_4", 0x3000, 0x1000, CRC(a6a078c8) SHA1(936be36c7c938c705e7054a42c1908bb5a5ee1bb) )
- ROM_LOAD( "my_5", 0x4000, 0x1000, CRC(3179657e) SHA1(703fc57ae71554345754267c31809cf7af7f1639) )
- ROM_LOAD( "my_6", 0x5000, 0x1000, CRC(0ca1cedc) SHA1(bd5d54b185e6ff5633d59df4c06a2094fca9cbf2) )
- ROM_LOAD( "7", 0x6000, 0x2000, CRC(de6bfdd8) SHA1(dd9727d4d7de4add48cde229b8aa194f0492af7e) )
- ROM_LOAD( "8", 0x8000, 0x2000, CRC(1adef246) SHA1(b5f5598daf71694effffbfb486b03fcda5a593ee) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "82s123", 0x0000, 0x0020, CRC(41bd4d69) SHA1(4d2da761b338b62b2ea151c201063a24d6e4cc97) )
-
- ROM_REGION( 0x0220, "user1", 0 ) //?
- ROM_LOAD( "82s129n.ic15", 0x0000, 0x0100, CRC(86aeafd1) SHA1(c4e5c56ce5baf2be3962675ae333e28bd8108a00) ) // not dumped for this board
- ROM_LOAD( "82s129n.ic4", 0x0100, 0x0100, CRC(f09d3c4c) SHA1(a9e752d75e7f3ebd05add4ccf2f9f15d8f9a8d15) ) // not dumped for this board
- ROM_LOAD( "82s123n.ic7", 0x0200, 0x0020, CRC(46014727) SHA1(eec451f292ee319fa6bfbbf223aaa12b231692c1) ) // not dumped for this board
-ROM_END
-
-/*
-
-Jansou
-(c)1985 Dyna Industry
-
-upgrade kit for Royal Mahjong
-G85-12-05RL
-
-CPU: Z80A
-OSC: 4.000MHz
-Other: surface scratched 40pin DIP device
-
-ROMs:
-1
-2
-3
-4
-5
-
-Color PROM:
-N82S123AN
-
-
-dumped by sayu
---- Team Japump!!! ---
-http://japump.i.am/
-
-*/
-/*
-Nothing can be done on this one due of missing main program rom(s) (surface scratched 40pin DIP device).
-A string of the current z80 rom at offset 0x90 says "THE Janso Voice Version 1.0 (c) Copy Right 1985 Dyna",
-so it's just a voice player.
-*/
-ROM_START( jansou )
- /*Missing main cpu program rom*/
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "unk", 0x0000, 0x8000, NO_DUMP )
-
- /*These probably hooks up with the main cpu program,they are standard 4bpp bitmaps.*/
- ROM_REGION( 0x20000, "gfx1", 0 )
- ROM_LOAD( "3", 0x00000, 0x8000, CRC(75a0bef0) SHA1(c2f5b3ddc55b58d3ea784d8b3d0a0f577d313341) )
- ROM_LOAD( "4", 0x08000, 0x8000, CRC(7304899a) SHA1(636b7673563f75ff2ef95eef3b99f80ef0c45fee) )
- ROM_LOAD( "5", 0x10000, 0x8000, CRC(57a4d300) SHA1(35d211d50052cd76721dbd6ad02ec7cb56c475d1) )
-
- /*this is just a z80 Voice Player (and latches port I/O $00 with the main CPU)*/
- ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "1", 0x00000, 0x8000, CRC(0321ac7e) SHA1(1a0372a25f979461db09cd153c15daaa556c3d1f) )
- ROM_LOAD( "2", 0x08000, 0x8000, CRC(fea7f3c6) SHA1(c196be0030b00cfb747b9dbfa387048d20c70b74) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "n82s123an", 0x0000, 0x0020, CRC(e9598146) SHA1(619e7eb76cc3e882b5b3e55cdd23fe00b0a1fe45) )
-ROM_END
-
-ROM_START( jansoua )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "1.bin", 0x0000, 0x1000, CRC(aa66a9fc) SHA1(e2a956f17d294e160e16297866cd9be117254ea4) )
- ROM_LOAD( "2.bin", 0x1000, 0x1000, CRC(3b6ef098) SHA1(eda181971153888e63aa14e10b0b199383f2d627) )
- ROM_LOAD( "3.bin", 0x2000, 0x1000, CRC(63070d44) SHA1(c9c08f774a94cfb4e291f3d7ef81b0f0f9f74460) )
- ROM_LOAD( "4.bin", 0x3000, 0x1000, CRC(2b14d3c1) SHA1(210d6f212bda7fb7225e5606b34f674cc5f85150) )
-
- ROM_REGION( 0x20000, "gfx1", 0 )
- ROM_LOAD( "3s.bin", 0x00000, 0x8000, CRC(64df20f6) SHA1(6cbe4718d47b52c229863219dba3e1f964ba667a) )
- ROM_LOAD( "4s.bin", 0x08000, 0x8000, CRC(8ddc8258) SHA1(a97a5efd06965a70e34684986dd8538a35e43d31) )
- ROM_LOAD( "5s.bin", 0x10000, 0x8000, CRC(1745c996) SHA1(6905774b4bdd0bfcc34b847efb037f9d92884a6b) )
-
- /*this is just a z80 Voice Player (and latches port I/O $00 with the main CPU)*/
- ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "1", 0x00000, 0x8000, CRC(0321ac7e) SHA1(1a0372a25f979461db09cd153c15daaa556c3d1f) )
- ROM_LOAD( "2", 0x08000, 0x8000, CRC(fea7f3c6) SHA1(c196be0030b00cfb747b9dbfa387048d20c70b74) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "n82s123an", 0x0000, 0x0020, CRC(e9598146) SHA1(619e7eb76cc3e882b5b3e55cdd23fe00b0a1fe45) )
-ROM_END
-
-ROM_START( jangtaku )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "v13_rm_1.p1", 0x0000, 0x1000, CRC(fe761b2b) SHA1(7be1dab12295f1fa399e3d618644715f0300391b) )
- ROM_LOAD( "v13_rm_2.p2", 0x1000, 0x1000, CRC(888e97f5) SHA1(cef86f3f108bc40ea18d9b0676940d9340490aa9) )
- ROM_LOAD( "v13_rm_3.p3", 0x2000, 0x1000, CRC(1b428819) SHA1(a419017f9c077c0dd21000b3b9f949c47f20343e) )
- ROM_LOAD( "v13_rm_4.p4", 0x3000, 0x1000, CRC(72d8abdf) SHA1(286a4fe6899c53daeb1a656b94206f9a19ceaee0) )
-
- ROM_REGION( 0x20000, "gfx1", 0 )
- ROM_LOAD( "3.d3", 0x00000, 0x8000, CRC(a865ac4c) SHA1(f8bff3b44a229ddb6165a986faa3de058001e285) )
- ROM_LOAD( "4.f3", 0x08000, 0x8000, CRC(7f4c7194) SHA1(f9bf6e12b3a89b3d25ad15a85432e22bf4e10a24) )
- ROM_LOAD( "5.g3", 0x10000, 0x8000, CRC(091df750) SHA1(6b7ad93bdfb6a7e11f923b084de3e713cf4d1dad) )
-
- /*this is just a z80 Voice Player (and latches port I/O $00 with the main CPU)*/
- ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "1.a3", 0x00000, 0x8000, CRC(745162d3) SHA1(145269c60c87e772e6cbca40213d286ec05c9134) )
- // THE Jantaku Voice Ver 1.0 (C) Copy Right 1986 DYNA Computer Service CO.,LTD. By Satoshi Kato
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "82s123a.6k", 0x0000, 0x0020, CRC(e9598146) SHA1(619e7eb76cc3e882b5b3e55cdd23fe00b0a1fe45) )
-ROM_END
-
-ROM_START( rkjanoh2 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "pf_1", 0x000000, 0x001000, CRC(582e7eda) SHA1(96578b6142051d9452f23c8c1b674e2d8a4c3b62) )
- ROM_LOAD( "pf_2", 0x001000, 0x001000, CRC(49e7dc40) SHA1(d6232a82b6927c79dd47884e5e2a6589c5524424) )
- ROM_LOAD( "pf_3_1", 0x002000, 0x001000, CRC(a1fdc929) SHA1(27cab4da2365bcf311d7f00d75e8db150183b108) )
- ROM_LOAD( "pf_4l", 0x003000, 0x001000, CRC(c9ccdfa0) SHA1(ce6f2df7fb6739ddf0529bcae0596e4593ecc3e0) )
- //ROM_LOAD( "pf_4_fewest", 0x003000, 0x001000, CRC(9a1650a0) SHA1(2da5957879d9f207721fc2f0d63dccc32850cbe2) )
- //ROM_LOAD( "pf_4_middle", 0x003000, 0x001000, CRC(b1a721d8) SHA1(de24ec4bac7ec761c7b25a7ba62b850006444bbc) )
- ROM_LOAD( "pf_5", 0x004000, 0x001000, CRC(8a858464) SHA1(55c71ce1c30e908dfc8c21237256dfbb75c55363) )
- ROM_LOAD( "pf_6", 0x005000, 0x001000, CRC(5b649918) SHA1(191a221a515c261d90d7432443a7fbc8da71e7ac) )
- ROM_LOAD( "pf_7", 0x006000, 0x001000, CRC(c4fdd2ac) SHA1(76c5645534b87dde87acfb4140d0f3ba18c95cd2) )
- ROM_LOAD( "pf_8", 0x008000, 0x002000, CRC(c789e2b3) SHA1(33b5c8f22a1e337816a61fd2c91bc175a412d10e) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "82s123", 0x000, 0x020, CRC(74a53e94) SHA1(ca9114bd9b2b07f5abe82616b41ae9fdb9537a4f) )
-ROM_END
-
-// video reference: https://www.youtube.com/watch?v=66KDyKQA1q0 (video of the original, this is a bootleg)
-ROM_START( chalgirl ) // TODO: verify ROM load / banking, this is correct for starting the game but it needs finishing the game to check it.
- ROM_REGION( 0x10000, "maincpu", 0 ) // the first 6 ROMs are on the FRM-03 board, the following on the SK-1B sub board
- ROM_LOAD( "cg_11.o1", 0x0000, 0x1000, CRC(1c064d3e) SHA1(cfe7e536efb377f009d7c9bee5b5a814ad1404ad) ) // 2732
- ROM_LOAD( "cg_22.o2", 0x1000, 0x1000, CRC(3244fe61) SHA1(3163f14b8977fe4b05aa11d332347c5f3cc2fbfa) ) // 2732
- ROM_LOAD( "cg_33.o3", 0x2000, 0x1000, CRC(692ef940) SHA1(c5a54161bedf26695aedad66016b5a789dbe13e5) ) // 2732
- ROM_LOAD( "cg_4.o3", 0x3000, 0x1000, CRC(562aa45f) SHA1(fc052b8f3b2f105c9282468d385a9ad554ec00f5) ) // 2732
- ROM_LOAD( "cg_5.o4", 0x4000, 0x1000, CRC(c0849a41) SHA1(1d901d59248cf0d8beff03207c46e3c50d0011cf) ) // 2732
- ROM_LOAD( "cg_6.o4", 0x5000, 0x1000, CRC(92687327) SHA1(4fafba5881dca2a147616d94dd055eba6aa3c653) ) // 2732
- ROM_LOAD( "7.f1", 0x6000, 0x1000, CRC(465db6e1) SHA1(e08fe431ab8676372fc13c51a2684a0320e01031) ) // 2732
- ROM_LOAD( "10.b1", 0x8000, 0x2000, CRC(04e76413) SHA1(e85db89084a8ae448fde4e202e8516b2e14a8265) ) // 2764
- ROM_LOAD( "8.e1", 0xa000, 0x2000, CRC(42fafb6f) SHA1(32d06ee4fe28033ae04058d806917bf5b5690246) ) // 2764
- ROM_LOAD( "9.c1", 0xc000, 0x2000, CRC(8291e28a) SHA1(9a05cae191babdf3f78a7131985d8c6583f7c973) ) // 2764
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "f-rom.bpr", 0x0000, 0x0020, BAD_DUMP CRC(d3007282) SHA1(e4d863ab193e49208ed0f59dcddb1da0492314f6) ) // not dumped for this set, using the one from royalmah for now, girl colors don't seem correct
-ROM_END
-
-void royalmah_state::init_tahjong()
-{
- m_mainbank->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x4000);
-}
-
-void royalmah_state::init_jansou()
-{
- save_item(NAME(m_gfx_adr_l));
- save_item(NAME(m_gfx_adr_m));
- save_item(NAME(m_gfx_adr_h));
- save_item(NAME(m_gfx_adr));
- save_item(NAME(m_gfxdata0));
- save_item(NAME(m_gfxdata1));
- save_item(NAME(m_jansou_colortable));
-}
-
-void royalmah_state::init_dynax()
-{
- m_mainbank->configure_entries(0, 32, memregion("maincpu")->base() + 0x10000, 0x8000);
-}
-
-void royalmah_state::init_ippatsu()
-{
- m_mainbank->set_base(memregion("maincpu")->base() + 0x8000 );
-}
-
-void royalmah_state::init_suzume()
-{
- m_mainbank->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x8000);
-
- save_item(NAME(m_suzume_bank));
-}
-
-void royalmah_state::init_jongshin()
-{
- m_mainbank->configure_entries(0, 3, memregion("maincpu")->base() + 0x10000, 0x8000);
-}
-
-void royalmah_state::init_mjifb()
-{
- m_mainbank->configure_entries(0, 256, memregion("maincpu")->base() + 0x10000, 0x4000);
-}
-
-void royalmah_state::init_tontonb()
-{
- m_mainbank->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x8000);
-}
-
-void royalmah_state::init_janptr96()
-{
- m_mainbank->configure_entries(0, 64, memregion("maincpu")->base() + 0x10000, 0x8000);
-
- m_janptr96_nvram = std::make_unique<uint8_t[]>(0x1000 * 9);
- membank("bank3")->set_base(m_janptr96_nvram.get());
- subdevice<nvram_device>("nvram")->set_base(m_janptr96_nvram.get(), 0x1000 * 9);
- membank("rambank")->configure_entries(0, 8, m_janptr96_nvram.get() + 0x1000, 0x1000);
-}
-
-void royalmah_state::init_mjsenka()
-{
- uint8_t *rom = memregion("maincpu")->base();
-
- for (int i = 0x0000; i < 0xa000; i++)
- m_decrypted_opcodes[i] = rom[i];
-
- for (int i = 0x6000; i < 0x8000; i++)
- {
- switch (i & 0x15)
- {
- case 0x00: m_decrypted_opcodes[i] ^= 0x03; break;
- case 0x01: m_decrypted_opcodes[i] ^= 0x07; break;
- case 0x04: m_decrypted_opcodes[i] ^= 0x01; break;
- case 0x05: m_decrypted_opcodes[i] ^= 0x05; break;
- case 0x10: m_decrypted_opcodes[i] ^= 0x02; break;
- case 0x11: m_decrypted_opcodes[i] ^= 0x06; break;
- case 0x14: m_decrypted_opcodes[i] ^= 0x00; break;
- case 0x15: m_decrypted_opcodes[i] ^= 0x04; break;
- }
-
- if (i & 0x02)
- m_decrypted_opcodes[i] ^= 0x80;
-
- m_decrypted_opcodes[i] = bitswap<8>(m_decrypted_opcodes[i], 2, 6, 5, 4, 3, 0, 7, 1);
- }
-
- for (int i = 0x6000; i < 0x8000; i++)
- {
- switch (i & 0x0e)
- {
- case 0x00: rom[i] ^= 0x01; break;
- case 0x02: rom[i] ^= 0x03; break;
- case 0x04: rom[i] ^= 0x05; break;
- case 0x06: rom[i] ^= 0x07; break;
- case 0x08: rom[i] ^= 0x00; break;
- case 0x0a: rom[i] ^= 0x02; break;
- case 0x0c: rom[i] ^= 0x04; break;
- case 0x0e: rom[i] ^= 0x06; break;
- }
-
- if ((i & 0x01) == 0x00)
- rom[i] ^= 0x80;
-
- rom[i] = bitswap<8>(rom[i], 0, 6, 5, 4, 3, 1, 2, 7);
- }
-
- m_mainopbank->configure_entries(0, 8, &m_decrypted_opcodes[0x8000], 0x400);
-
- init_chalgirl();
-}
-
-void royalmah_state::init_mjsiyoub()
-{
- m_mainbank->configure_entries(0, 32, memregion("maincpu")->base() + 0x8000, 0x400);
-
- save_item(NAME(m_mjyarou_bank));
- m_mjyarou_bank = 0;
-}
-
-void royalmah_state::init_chalgirl()
-{
- m_mainbank->configure_entries(0, 8, memregion("maincpu")->base() + 0x8000, 0x400);
-
- save_item(NAME(m_mjyarou_bank));
- m_mjyarou_bank = 0;
-}
-
-} // Anonymous namespace
-
-
-// the original Janputer (Sanritsu) is not yet dumped, basically Royal Mahjong but non-BET type
-GAME( 1981, royalmj, 0, royalmah, royalmah, royalmah_state, empty_init, ROT0, "Nichibutsu", "Royal Mahjong (Japan, v1.13)", 0 )
-GAME( 1981?, openmj, royalmj, royalmah, royalmah, royalmah_state, empty_init, ROT0, "Sapporo Mechanic", "Open Mahjong [BET] (Japan)", 0 )
-GAME( 1982, royalmah, royalmj, royalmah, royalmah, royalmah_state, empty_init, ROT0, "bootleg", "Royal Mahjong (Falcon bootleg, v1.01)", 0 )
-GAME( 1984?, chalgirl, 0, chalgirl, royalmah, royalmah_state, init_chalgirl, ROT0, "bootleg", "Challenge Girl (Falcon bootleg)", MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING ) // verify ROM loading / banking, bad girl colors
-GAME( 1983, seljan, 0, seljan, seljan, royalmah_state, empty_init, ROT0, "Jem / Dyna Corp", "Sel-Jan [BET] (Japan)", 0 )
-GAME( 1983, janyoup2, royalmj, janyoup2, janyoup2, royalmah_state, empty_init, ROT0, "Cosmo Denshi", "Janyou Part II (ver 7.03, July 1 1983)",0 )
-GAME( 1985, tahjong, royalmj, tahjong, tahjong, royalmah_state, init_tahjong, ROT0, "Bally Pond / Nasco", "Tahjong Yakitori (ver. 2-1)", 0 ) // 1985 Jun. 17
-GAME( 1981, janputer, 0, royalmah, royalmah, royalmah_state, empty_init, ROT0, "bootleg (Paradise Denshi Ltd. / Mes)", "New Double Bet Mahjong (bootleg of Royal Mahjong) [BET]", 0 ) // MT #05392
-GAME( 1984, rkjanoh2, 0, rkjanoh2, royalmah, royalmah_state, init_chalgirl, ROT0, "SNK / Dyna Corp", "Royal King Jang Oh 2 (v4.00 1984 Jun 10th)", MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING ) // never seems to set the palette bank?
-GAME( 1984, janoh, 0, janoh, royalmah, royalmah_state, empty_init, ROT0, "Toaplan", "Jan Oh (set 1)", MACHINE_NOT_WORKING )
-GAME( 1984, janoha, janoh, janoha, royalmah, royalmah_state, empty_init, ROT0, "Toaplan", "Jan Oh (set 2)", MACHINE_NOT_WORKING ) // this one is complete?
-GAME( 1985, jansou, 0, jansou, jansou, royalmah_state, init_jansou, ROT0, "Dyna Computer", "Jansou (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
-GAME( 1985, jansoua, jansou, jansou, jansou, royalmah_state, init_jansou, ROT0, "Dyna Computer", "Jansou (V 1.1)", 0 )
-GAME( 1986, jangtaku, 0, jansou, jansou, royalmah_state, init_jansou, ROT0, "Dyna Computer", "Jang Taku (V 1.3)", 0 )
-GAME( 1986, dondenmj, 0, dondenmj, majs101b, royalmah_state, init_dynax, ROT0, "Dyna Electronics", "Don Den Mahjong [BET] (Japan)", 0 )
-GAME( 1986, ippatsu, 0, ippatsu, ippatsu, royalmah_state, init_ippatsu, ROT0, "Public Software / Paradais", "Ippatsu Gyakuten [BET] (Japan)", 0 )
-GAME( 1986, suzume, 0, suzume, suzume, royalmah_state, init_suzume, ROT0, "Dyna Electronics", "Watashiha Suzumechan (Japan)", 0 )
-GAME( 1986, jongshin, 0, jongshin, jongshin, royalmah_state, init_jongshin, ROT0, "Dyna Electronics", "Jong Shin (Japan)", 0 )
-GAME( 1986, mjsiyoub, 0, mjsiyoub, mjyarou, royalmah_state, init_mjsiyoub, ROT0, "Visco", "Mahjong Shiyou (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_NOT_WORKING ) // MSM5205 isn't hooked up, colors need to be verified against original
-GAME( 1986, mjsenka, 0, mjsenka, mjyarou, royalmah_state, init_mjsenka, ROT0, "Visco", "Mahjong Senka (Japan)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // never seems to set the palette bank?
-GAME( 1986, mjyarou, 0, mjyarou, mjyarou, royalmah_state, init_chalgirl, ROT0, "Visco / Video System", "Mahjong Yarou [BET] (Japan, set 1)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) // never seems to set the palette bank?
-GAME( 1986, mjyarou2, mjyarou, mjyarou, mjyarou, royalmah_state, init_chalgirl, ROT0, "Visco / Video System", "Mahjong Yarou [BET] (Japan, set 2)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) // never seems to set the palette bank?
-GAME( 1986?, mjclub, 0, mjclub, mjclub, royalmah_state, init_tontonb, ROT0, "Xex", "Mahjong Club [BET] (Japan)", 0 )
-GAME( 1987, mjdiplob, 0, mjdiplob, mjdiplob, royalmah_state, init_tontonb, ROT0, "Dynax", "Mahjong Diplomat [BET] (Japan)", 0 )
-GAME( 1987, tontonb, 0, tontonb, tontonb, royalmah_state, init_tontonb, ROT0, "Dynax", "Tonton [BET] (Japan, set 1)", 0 )
-GAME( 1987, makaijan, 0, makaijan, makaijan, royalmah_state, init_dynax, ROT0, "Dynax", "Makaijan [BET] (Japan)", 0 )
-GAME( 1988, majs101b, 0, majs101b, majs101b, royalmah_state, init_dynax, ROT0, "Dynax", "Mahjong Studio 101 [BET] (Japan)", 0 )
-GAME( 1988, mjapinky, 0, mjapinky, mjapinky, royalmah_state, init_tontonb, ROT0, "Dynax", "Almond Pinky [BET] (Japan)", 0 )
-GAME( 1989, mjdejavu, 0, mjdejavu, mjdejavu, royalmah_state, init_mjifb, ROT0, "Dynax", "Mahjong Shinkirou Deja Vu (Japan)", MACHINE_NOT_WORKING ) // MT #00964
-GAME( 1989, mjdejav2, mjdejavu, mjdejavu, mjdejavu, royalmah_state, init_mjifb, ROT0, "Dynax", "Mahjong Shinkirou Deja Vu 2 (Japan)", MACHINE_NOT_WORKING )
-GAME( 1989, mjderngr, 0, mjderngr, mjderngr, royalmah_state, init_dynax, ROT0, "Dynax", "Mahjong Derringer (Japan)", 0 )
-GAME( 1989, daisyari, 0, daisyari, daisyari, royalmah_state, empty_init, ROT0, "Best System", "Daisyarin [BET] (Japan)", 0 )
-GAME( 1990, mjifb, 0, mjifb, mjifb, royalmah_state, init_mjifb, ROT0, "Dynax", "Mahjong If...? [BET]", 0 )
-GAME( 1990, mjifb2, mjifb, mjifb, mjifb, royalmah_state, init_mjifb, ROT0, "Dynax", "Mahjong If...? [BET](2921)", 0 )
-GAME( 1990, mjifb3, mjifb, mjifb, mjifb, royalmah_state, init_mjifb, ROT0, "Dynax", "Mahjong If...? [BET](2931)", 0 )
-GAME( 1991, mjvegasa, 0, mjvegasa, mjvegasa, royalmah_state, empty_init, ROT0, "Dynax", "Mahjong Vegas (Japan, unprotected)", 0 )
-GAME( 1991, mjvegas, mjvegasa, mjvegasa, mjvegasa, royalmah_state, empty_init, ROT0, "Dynax", "Mahjong Vegas (Japan)", MACHINE_NOT_WORKING )
-GAME( 1992, cafetime, 0, cafetime, cafetime, royalmah_state, empty_init, ROT0, "Dynax", "Mahjong Cafe Time", 0 )
-GAME( 1993, cafedoll, 0, mjifb, mjifb, royalmah_state, init_mjifb, ROT0, "Dynax", "Mahjong Cafe Doll (Japan)", MACHINE_NOT_WORKING )
-GAME( 1995, mjtensin, 0, mjtensin, mjtensin, royalmah_state, empty_init, ROT0, "Dynax", "Mahjong Tensinhai (Japan)", MACHINE_NOT_WORKING )
-GAME( 1996, janptr96, 0, janptr96, janptr96, royalmah_state, init_janptr96, ROT0, "Dynax", "Janputer '96 (Japan)", 0 )
-GAME( 1997, janptrsp, 0, janptr96, janptr96, royalmah_state, init_janptr96, ROT0, "Dynax", "Janputer Special (Japan)", 0 )
-GAME( 1999, cafebrk, 0, mjifb, mjifb, royalmah_state, init_mjifb, ROT0, "Nakanihon / Dynax", "Mahjong Cafe Break", MACHINE_NOT_WORKING )
-GAME( 1999, cafepara, 0, mjifb, mjifb, royalmah_state, init_mjifb, ROT0, "Techno-Top", "Mahjong Cafe Paradise", MACHINE_NOT_WORKING )