Skip to content

Commit

Permalink
New systems marked not working
Browse files Browse the repository at this point in the history
------------------------------
Lucky 88 (Wing) [Hammy]
Mahjong Dai-Reach (Japan, TSM012-C01) [Hammy]
  • Loading branch information
Osso13 committed Nov 28, 2024
1 parent 0e62ff6 commit bb61917
Show file tree
Hide file tree
Showing 3 changed files with 134 additions and 9 deletions.
97 changes: 93 additions & 4 deletions src/mame/dynax/ddenlovr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ Year + Game Board CPU Sound
1999 Mj Jong-Tei NM532-9902 Z80 YM2413 M6295 4L10FXXXX?
2000 Mj Gorgeous Night TSM003-0002 Z80 YM2413 M6295 4L10FXXXX?
2000 Mj Jong-Tei TSM005-0004 Z80 YM2413 M6295 scratched off
2001 Mj Dai-Reach TSM004-0002 Z80 YM2413 M6295 scratched off 2149C (I8255 in disguise?)
2002 Mj Daimyojin TSM015-0111 Z80 YM2413 M6295 70C160F011
2004 Mj Momotarou TSM015-0111? Z80 YM2413 M6295 70C160F011?
-----------------------------------------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -124,9 +125,9 @@ Year + Game Board CPU Sound
#include "dynax.h"

#include "cpu/m68000/m68000.h"
#include "cpu/z80/z80.h"
#include "cpu/z80/tmpz84c015.h"
#include "cpu/z80/kl5c80a12.h"
#include "cpu/z80/tmpz84c015.h"
#include "cpu/z80/z80.h"
#include "sound/ay8910.h"
#include "sound/ymopl.h"
#include "machine/74259.h"
Expand Down Expand Up @@ -329,20 +330,20 @@ class ddenlovr_state : public dynax_state
uint16_t akamaru_e0010d_r();
protected:
void mjflove_rombank_w(uint8_t data);
void sryudens_rambank_w(uint8_t data);
private:
uint8_t mjflove_protection_r();
uint8_t mjflove_keyb_r(offs_t offset);
void mjflove_coincounter_w(uint8_t data);
uint8_t sryudens_keyb_r(offs_t offset);
void sryudens_coincounter_w(uint8_t data);
void sryudens_rambank_w(uint8_t data);
protected:
uint8_t daimyojn_keyb1_r();
uint8_t daimyojn_keyb2_r();
void seljan2_palette_enab_w(uint8_t data);
private:
void janshinp_coincounter_w(uint8_t data);
void seljan2_rombank_w(uint8_t data);
void seljan2_palette_enab_w(uint8_t data);
void seljan2_palette_w(offs_t offset, uint8_t data);
void quizchq_oki_bank_w(uint8_t data);
void ddenlovr_oki_bank_w(uint8_t data);
Expand Down Expand Up @@ -586,6 +587,7 @@ class hanakanz_state : public ddenlovr_state
void mjreach1(machine_config &config);
void daimyojn(machine_config &config);
void kotbinyo(machine_config &config);
void daireach(machine_config &config);

void init_momotaro();

Expand Down Expand Up @@ -626,6 +628,7 @@ class hanakanz_state : public ddenlovr_state
uint8_t daimyojn_protection_r();
uint8_t momotaro_protection_r();
uint8_t jongteia_protection_r();
uint8_t daireach_protection_r();
void daimyojn_palette_sel_w(uint8_t data);
void daimyojn_blitter_data_palette_w(uint8_t data);
uint8_t daimyojn_year_hack_r(offs_t offset);
Expand All @@ -638,6 +641,7 @@ class hanakanz_state : public ddenlovr_state

void hanakanz_map(address_map &map) ATTR_COLD;
void daimyojn_portmap(address_map &map) ATTR_COLD;
void daireach_portmap(address_map &map) ATTR_COLD;
void hanakanz_portmap(address_map &map) ATTR_COLD;
void hkagerou_portmap(address_map &map) ATTR_COLD;
void jongtei_portmap(address_map &map) ATTR_COLD;
Expand Down Expand Up @@ -4662,6 +4666,56 @@ void hanakanz_state::daimyojn_portmap(address_map &map)
}


/***************************************************************************
Mahjong Dai-Reach
***************************************************************************/

// 1B40: D4 ED 76 C9 CB
// 1B45: C3 FA 61 DE DC

uint8_t hanakanz_state::daireach_protection_r()
{
switch (m_prot_val)
{
case 0xd4: return 0xc3;
case 0xed: return 0xfa;
case 0x76: return 0x61;
case 0xc9: return 0xde;
case 0xcb: return 0xdc;
}
return 0xff;
}


void hanakanz_state::daireach_portmap(address_map &map)
{
map.global_mask(0xff);
map(0x00, 0x0f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
map(0x20, 0x23).w(FUNC(hanakanz_state::ddenlovr_palette_base_w));
map(0x24, 0x27).w(FUNC(hanakanz_state::ddenlovr_palette_mask_w));
map(0x28, 0x2b).w(FUNC(hanakanz_state::ddenlovr_transparency_pen_w));
map(0x2c, 0x2f).w(FUNC(hanakanz_state::ddenlovr_transparency_mask_w));
map(0x34, 0x34).w(FUNC(hanakanz_state::ddenlovr_bgcolor_w));
map(0x35, 0x35).w(FUNC(hanakanz_state::ddenlovr_priority_w));
map(0x36, 0x36).w(FUNC(hanakanz_state::ddenlovr_layer_enable_w));
map(0x38, 0x38).nopr(); // ? ack or watchdog
map(0x40, 0x41).w(FUNC(hanakanz_state::ddenlovr_blitter_w));
map(0x43, 0x43).r(FUNC(hanakanz_state::ddenlovr_gfxrom_r));
map(0x60, 0x60).rw("aysnd", FUNC(ay8910_device::data_r),FUNC(ay8910_device::address_w)); // dsw
map(0x62, 0x62).w("aysnd", FUNC(ay8910_device::data_w));
map(0x64, 0x65).w("ym2413", FUNC(ym2413_device::write));
map(0x66, 0x66).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
map(0x68, 0x68).w(FUNC(hanakanz_state::mjflove_rombank_w));
map(0x6a, 0x6a).nopr().w(FUNC(hanakanz_state::sryudens_rambank_w));
map(0x6c, 0x6c).r(FUNC(hanakanz_state::hanakanz_rand_r));
map(0x6e, 0x6e).rw(FUNC(hanakanz_state::daireach_protection_r), FUNC(hanakanz_state::daimyojn_protection_w));
map(0x70, 0x70).portr("SYSTEM");
map(0x72, 0x72).r(FUNC(hanakanz_state::daimyojn_keyb1_r));
map(0x74, 0x74).r(FUNC(hanakanz_state::daimyojn_keyb2_r));
map(0x78, 0x78).w(FUNC(hanakanz_state::mjchuuka_oki_bank_w));
map(0x7e, 0x7e).w(FUNC(hanakanz_state::seljan2_palette_enab_w)); // writes: 1 = palette RAM at b000, 0 = ROM
}

static INPUT_PORTS_START( ddenlovj )
PORT_START("P1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
Expand Down Expand Up @@ -10830,6 +10884,16 @@ void ddenlovr_state::seljan2(machine_config &config)
MSM6242(config, "rtc", XTAL(32'768)).out_int_handler().set(m_maincpu, FUNC(tmpz84c015_device::trg1));
}

void hanakanz_state::daireach(machine_config &config)
{
seljan2(config);

auto &maincpu(*subdevice<tmpz84c015_device>("maincpu"));
maincpu.set_addrmap(AS_IO, &hanakanz_state::daireach_portmap);
maincpu.out_pb_callback().set(FUNC(hanakanz_state::mjchuuka_coincounter_w));

MCFG_VIDEO_START_OVERRIDE(hanakanz_state, ddenlovr)
}

/***************************************************************************
Mahjong Daimyojin
Expand Down Expand Up @@ -12946,6 +13010,29 @@ ROM_END

/***************************************************************************

Mahjong Dai Reach

TSM004-0002 Techno-Top, Limited

Has 4 banks of 10 DIP switches

***************************************************************************/

ROM_START( daireach )
ROM_REGION( 0x90000+0x8000+16*0x1000, "maincpu", 0 ) // Z80 Code
ROM_LOAD( "01202.5c", 0x00000, 0x80000, CRC(2d1cc94d) SHA1(4db6ea0414abfaf21c5bdd5e1cf395b01db1dce6) )
ROM_RELOAD( 0x10000, 0x80000 )

ROM_REGION( 0x600000, "blitter", 0 )
ROM_LOAD( "01203.11c", 0x000000, 0x200000, CRC(da054dbf) SHA1(80bab808711e6eb1521b68faee4b6ee7af001811) )
ROM_LOAD( "01204.11a", 0x400000, 0x200000, CRC(ac96b1fc) SHA1(c045b048a8226c2fb3ba6feee36ce487c7ba12d2) )

ROM_REGION( 0x80000, "oki", 0 )
ROM_LOAD( "01201.1c", 0x00000, 0x80000, CRC(9a638bc8) SHA1(c584ea5f8fcfc03fd8e04a5da182388d8a707df1) )
ROM_END

/***************************************************************************

Mahjong Gorgeous Night

PCB is identical to Mahjong Jong-Tei, but with number:
Expand Down Expand Up @@ -13356,6 +13443,8 @@ GAME( 2000, jongteia, jongtei, jongteia, jongtei, hanakanz_state, empty_init

GAME( 2000, mjgnight, 0, mjgnight, mjgnight, hanakanz_state, empty_init, ROT0, "Techno-Top", "Mahjong Gorgeous Night (Japan, TSM003-01)", MACHINE_NO_COCKTAIL )

GAME( 2001, daireach, 0, daireach, seljan2, hanakanz_state, empty_init, ROT0, "Techno-Top", "Mahjong Dai-Reach (Japan, TSM012-C01)", MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL )

GAME( 2002, daimyojn, 0, daimyojn, daimyojn, hanakanz_state, empty_init, ROT0, "Dynax / Techno-Top / Techno-Planning", "Mahjong Daimyojin (Japan, T017-PB-00)", MACHINE_NO_COCKTAIL )

GAME( 2004, momotaro, 0, daimyojn, daimyojn, hanakanz_state, init_momotaro, ROT0, "Techno-Top", "Mahjong Momotarou (Japan, T027-RB-01)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
2 changes: 2 additions & 0 deletions src/mame/mame.lst
Original file line number Diff line number Diff line change
Expand Up @@ -17510,6 +17510,7 @@ animaljr // "75" (c) 1993 Nakanihon/Taito (USA)
animaljrj // "75" (c) 1993 Nakanihon/Taito (Japan)
animaljrs // "75" (c) 1993 Nakanihon/Taito (Spanish version)
daimyojn // "017" 2002 Dynax / Techno-Top
daireach // Mahjong Dai-Reach (C) 2001 Techno-Top
ddenlovj // "112" (c) 1995 Dynax (Japan)
ddenlovr // "113" (c) 1996 Dynax (Hong Kong)
ddenlovrb // bootleg
Expand Down Expand Up @@ -46940,6 +46941,7 @@ excitbj // (c) 1992 Wing Co. Ltd
lucky74 // (c) 1988 Wing Co. Ltd
lucky74a // (c) 1988 Wing Co. Ltd
lucky74b // (c) 1988 Wing Co. Ltd
lucky88w // (c) 1988 Wing Co. Ltd

@source:wing/pinkiri8.cpp
janshi //
Expand Down
44 changes: 39 additions & 5 deletions src/mame/wing/lucky74.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1691,6 +1691,39 @@ ROM_START( lucky74b )
ROM_LOAD( "luckyprom.c7", 0x0500, 0x0100, CRC(e62fd192) SHA1(86a189df2e2ccef6bd2a4e6d969e777fbba8cdf7) )
ROM_END

// PCB is very similar to Lucky 74, but it only has 4 PROMs
// title can be seen in GFX ROMs
ROM_START( lucky88w )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "a001.r1", 0x0000, 0x4000, NO_DUMP ) // internal ROM

ROM_REGION( 0x20000, "fgtiles", 0 )
ROM_LOAD( "1.e1", 0x00000, 0x8000, CRC(d8f25ced) SHA1(da2570b4f7050a471f4eb409fdf60c1bbc3d0308) )
ROM_LOAD( "2.f1", 0x08000, 0x8000, CRC(2096aaeb) SHA1(3a9fcedc4c07fc75923a71e8216b69f9b92082a2) )
ROM_LOAD( "3.h1", 0x10000, 0x8000, CRC(9e49f254) SHA1(14e6bec46fcb83206d0a612081ea92b3ede3e31d) )
ROM_LOAD( "4.j1", 0x18000, 0x8000, CRC(dcf3d00e) SHA1(b9fca336dc39c93ea9254c027260e35994d56193) )

ROM_REGION( 0x10000, "bgtiles", 0 )
ROM_LOAD( "17.f3", 0x00000, 0x4000, CRC(0b106f4f) SHA1(d2b4f5cc540af2af9c7af87b03b06529ffbdd825) ) // 1ST AND 2ND HALF IDENTICAL
ROM_IGNORE( 0x4000 )
ROM_LOAD( "16.e3", 0x04000, 0x4000, CRC(2a9bcb30) SHA1(dc847ff021971a76016c9cd1c05d28518339a704) ) // 1ST AND 2ND HALF IDENTICAL
ROM_IGNORE( 0x4000 )
ROM_LOAD( "18.h3", 0x08000, 0x4000, CRC(fbf2b129) SHA1(df607adaaa943586909c7d966b73398850ed34d3) ) // 1ST AND 2ND HALF IDENTICAL
ROM_IGNORE( 0x4000 )
ROM_LOAD( "19.j3", 0x0c000, 0x4000, CRC(d2cf3fb1) SHA1(9f58b9b5284ecdfbf7ee63b45ffbc40d323e7382) ) // 1ST AND 2ND HALF IDENTICAL
ROM_IGNORE( 0x4000 )

ROM_REGION( 0x20000, "adpcm", 0 )
ROM_LOAD( "5.l1", 0x00000, 0x10000, CRC(43f72252) SHA1(b0828443b2f03fbfbd84be8b5f6287783e62c19e) )
ROM_FILL( 0x10000, 0x10000, 0xff ) // empty socket

ROM_REGION( 0x0600, "proms", ROMREGION_ERASE00 ) // TODO: will need own palette decode
ROM_LOAD( "prom.f6", 0x0000, 0x0100, CRC(cc4d8f01) SHA1(41cb61dc0a84f62948ddc9007c96756880bb8497) )
ROM_LOAD( "prom.h6", 0x0100, 0x0100, CRC(016fe2f7) SHA1(909f815a61e759fdf998674ee383512ecd8fee65) )
ROM_LOAD( "prom.j6", 0x0200, 0x0100, CRC(68cf4ac0) SHA1(decc8b092036cfe113435857f8f561d427204554) )
ROM_LOAD( "prom.k6", 0x0300, 0x0100, CRC(021ee22f) SHA1(79c1f8cceba382b9c7c27a31934a70e9e421780a) )
ROM_END

/*
Exciting Black Jack.
Expand Down Expand Up @@ -1751,8 +1784,9 @@ ROM_END
* Game Drivers *
**********************************************/

// YEAR NAME PARENT MACHINE INPUT STATS INIT ROT COMPANY FULLNAME FLAGS LAYOUT
GAMEL( 1988, lucky74, 0, lucky74, lucky74, lucky74_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 74 (bootleg, set 1)", MACHINE_SUPPORTS_SAVE, layout_lucky74 )
GAMEL( 1988, lucky74a, lucky74, lucky74, lucky74a, lucky74_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 74 (bootleg, set 3)", MACHINE_SUPPORTS_SAVE, layout_lucky74 )
GAMEL( 1988, lucky74b, lucky74, lucky74, lucky74, lucky74_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 74 (bootleg, set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_lucky74 )
GAME( 1989, excitbj, 0, lucky74, excitbj, lucky74_state, empty_init, ROT0, "Sega", "Exciting Black Jack", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
// YEAR NAME PARENT MACHINE INPUT STATS INIT ROT COMPANY FULLNAME FLAGS LAYOUT
GAMEL( 1988, lucky74, 0, lucky74, lucky74, lucky74_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 74 (bootleg, set 1)", MACHINE_SUPPORTS_SAVE, layout_lucky74 )
GAMEL( 1988, lucky74a, lucky74, lucky74, lucky74a, lucky74_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 74 (bootleg, set 3)", MACHINE_SUPPORTS_SAVE, layout_lucky74 )
GAMEL( 1988, lucky74b, lucky74, lucky74, lucky74, lucky74_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 74 (bootleg, set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_lucky74 )
GAME( 1988, lucky88w, 0, lucky74, lucky74, lucky74_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 88 (Wing)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // undumped internal ROM
GAME( 1989, excitbj, 0, lucky74, excitbj, lucky74_state, empty_init, ROT0, "Sega", "Exciting Black Jack", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )

0 comments on commit bb61917

Please sign in to comment.