From 5ce8388960c1f7b5c77c9042568b247c3d9ed5ca Mon Sep 17 00:00:00 2001 From: r09 Date: Sat, 18 Jun 2016 16:17:14 +0200 Subject: [PATCH 1/8] New software list for PC-98x1 CDs --- hash/pc98_cd.xml | 591 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 591 insertions(+) create mode 100644 hash/pc98_cd.xml diff --git a/hash/pc98_cd.xml b/hash/pc98_cd.xml new file mode 100644 index 00000000000..055b4f13e17 --- /dev/null +++ b/hash/pc98_cd.xml @@ -0,0 +1,591 @@ + + + + + + + Alone in the Dark 2 + 1994 + アローマイクロテックス (Arrow Micro-Techs) + + + + + + + + + + Brandish Renewal + 1995 + 日本ファルコム (Nihon Falcom) + + + + + + + + + + Brandish VT + 1996 + 日本ファルコム (Nihon Falcom) + + + + + + + + + + Dangel + 1996 + ミンク (Mink) + + + + + + + + + + Disc Station Vol. 09 + 1995 + コンパイル (Compile) + + + + + + + + + + Disc Station Vol. 10 + 1996 + コンパイル (Compile) + + + + + + + + + + Disc Station Vol. 11 + 1996 + コンパイル (Compile) + + + + + + + + + + Doom + 1995 + イマジニア (Imagineer) + + + + + + + + + + Doom II + 1995 + イマジニア (Imagineer) + + + + + + + + + + Finish Hold 2 - Tag + 1996 + システムソフト (SystemSoft) + + + + + + + + + + Giten Megami Tensei - Tokyo Mokushiroku + 1997 + アスキー (ASCII) + + + + + + + + + + Golf Links 386 Pro + 1995 + サイベル (Cybelle) + + + + + + + + + + Akai Shizuku - The Legend of Heroes IV + 1996 + 日本ファルコム (Nihon Falcom) + + + + + + + + + + Chou Jikuu Yousai Macross - SkullLeader Complete Pack + 1995 + ファミリーソフト (Family Soft) + + + + + + + + + + Might and Magic - Clouds of Xeen + 1993 + スタークラフト (Starcraft) + + + + + + + + + + + + + + + Photo Genic + 1997 + サンソフト (Sunsoft) + + + + + + + + + + Policenauts + 1994 + コナミ (Konami) + + + + + + + + + + + + + + + Puyo Puyo Tsuu + 1995 + コンパイル (Compile) + + + + + + + + + + RPG Tkool Dante98 II + 1996 + アスキー (ASCII) + + + + + + + + + + Mahou Shoujo Pretty Samy - Zenpen + 1995 + AIC + + + + + + + + + + TFX - The Cutting Edge of Aerial Combat (Japan) + 1996 + イマジニア (Imagineer) + + + + + + + + + + Tokio 2 - Kaitaku Imin Boshuuchuu! + 1995 + アートディンク (Artdink) + + + + + + + + + + The Horde + 1995 + アローマイクロテックス (Arrow Micro-Techs) + + + + + + + + + + Theme Park + 1995 + エレクトロニック・アーツ・ビクター (Electronic Arts Victor) + + + + + + + + From 51b5f23fc256afcbfe127f6279bae134931f8745 Mon Sep 17 00:00:00 2001 From: r09 Date: Sat, 18 Jun 2016 21:16:44 +0200 Subject: [PATCH 2/8] pc9801: Attached CD software list --- src/mame/drivers/pc9801.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp index 6fa412a978c..846f87cb95e 100644 --- a/src/mame/drivers/pc9801.cpp +++ b/src/mame/drivers/pc9801.cpp @@ -3185,6 +3185,8 @@ static MACHINE_CONFIG_FRAGMENT( pc9801_ide ) MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(pc9801_state, ide1_irq_w)) MCFG_ATA_INTERFACE_ADD("ide2", pc9801_atapi_devices, "pc9801_cd", nullptr, false) MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(pc9801_state, ide2_irq_w)) + + MCFG_SOFTWARE_LIST_ADD("cd_list","pc98_cd") MACHINE_CONFIG_END static MACHINE_CONFIG_FRAGMENT( pc9801_common ) From b9aad827e70651fec0d1b5138ece48faa32ae266 Mon Sep 17 00:00:00 2001 From: r09 Date: Sat, 18 Jun 2016 21:53:46 +0200 Subject: [PATCH 3/8] pc98_cd.xml: some fixes --- hash/pc98_cd.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hash/pc98_cd.xml b/hash/pc98_cd.xml index 055b4f13e17..d11be046fb7 100644 --- a/hash/pc98_cd.xml +++ b/hash/pc98_cd.xml @@ -131,7 +131,7 @@ - + + + Branmarker 2 + 1995 + ディー・オー (D.O.) + + + + + + + Brandish VT 1996 @@ -147,6 +174,23 @@ + + + Cry Sweeper + 1996 + ディー・オー (D.O.) + + + + + + + + + Galpani + 1995 + Creo I + + + + + + + + GuynaRock R + 1997 + ソニア (Sogna) + + + + + + + + + + Let's! Pirates + 1997 + ジックス (ZyX) + + + + + + + + Panzer General + 1995 + AMT Savan + + + + + + + + Strike Commander Plus + 1995 + エレクトロニック・アーツ・ビクター (Electronic Arts Victor) + + + + + + + + Viper F40 + 1997 + ソニア (Sogna) + + + + + + + + + + Windows 2000 Professional (W2PCCP) + 2000 + Microsoft + + + + + + + + + + Windows 2000 Professional (W2PFPP) + 2000 + Microsoft + + + + + + + + + + Windows 2000 Server (W2SSEL) + 2000 + Microsoft + + + + + + + + + + + Windows NT 4.0 Workstation + 1996 + Microsoft + + + + + + + + + + + + + + + Windows 95 + 1995 + Microsoft + + + + + + + + + + + Windows 98 + 1998 + Microsoft + + + + + + + + + + Kono Yo no Hate de Koi wo Utau Shoujo YU-NO + 1996 + エルフ (Elf) + + + + + + + From dd056fd769f78d39394c164c45531d71c9703ce8 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 19 Jun 2016 12:39:49 -0400 Subject: [PATCH 5/8] Use unshifted addrmask (not bytemask) in check_optimize_foo (nw) This allows hp9845b to boot again. --- src/emu/emumem.cpp | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/emu/emumem.cpp b/src/emu/emumem.cpp index 16ba6f0b107..40d681945e9 100644 --- a/src/emu/emumem.cpp +++ b/src/emu/emumem.cpp @@ -1862,10 +1862,10 @@ void address_space::check_optimize_all(const char *function, offs_t addrstart, o { if (addrstart > addrend) fatalerror("%s: In range %x-%x mask %x mirror %x select %x, start address is after the end address.\n", function, addrstart, addrend, addrmask, addrmirror, addrselect); - if (addrstart & ~m_bytemask) - fatalerror("%s: In range %x-%x mask %x mirror %x select %x, start address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrstart & m_bytemask); - if (addrend & ~m_bytemask) - fatalerror("%s: In range %x-%x mask %x mirror %x select %x, end address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrend & m_bytemask); + if (addrstart & ~m_addrmask) + fatalerror("%s: In range %x-%x mask %x mirror %x select %x, start address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrstart & m_addrmask); + if (addrend & ~m_addrmask) + fatalerror("%s: In range %x-%x mask %x mirror %x select %x, end address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrend & m_addrmask); offs_t lowbits_mask = (m_config.data_width() >> (3 - m_config.m_addrbus_shift)) - 1; if (addrstart & lowbits_mask) @@ -1882,12 +1882,12 @@ void address_space::check_optimize_all(const char *function, offs_t addrstart, o changing_bits |= changing_bits >> 8; changing_bits |= changing_bits >> 16; - if (addrmask & ~m_bytemask) - fatalerror("%s: In range %x-%x mask %x mirror %x select %x, mask is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrmask & m_bytemask); - if (addrmirror & ~m_bytemask) - fatalerror("%s: In range %x-%x mask %x mirror %x select %x, mirror is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrmirror & m_bytemask); - if (addrselect & ~m_bytemask) - fatalerror("%s: In range %x-%x mask %x mirror %x select %x, select is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrselect & m_bytemask); + if (addrmask & ~m_addrmask) + fatalerror("%s: In range %x-%x mask %x mirror %x select %x, mask is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrmask & m_addrmask); + if (addrmirror & ~m_addrmask) + fatalerror("%s: In range %x-%x mask %x mirror %x select %x, mirror is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrmirror & m_addrmask); + if (addrselect & ~m_addrmask) + fatalerror("%s: In range %x-%x mask %x mirror %x select %x, select is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrselect & m_addrmask); if (addrmask & ~changing_bits) fatalerror("%s: In range %x-%x mask %x mirror %x select %x, mask is trying to unmask an unchanging address bit, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, addrmask & changing_bits); if (addrmirror & changing_bits) @@ -1923,10 +1923,10 @@ void address_space::check_optimize_mirror(const char *function, offs_t addrstart { if (addrstart > addrend) fatalerror("%s: In range %x-%x mirror %x, start address is after the end address.\n", function, addrstart, addrend, addrmirror); - if (addrstart & ~m_bytemask) + if (addrstart & ~m_addrmask) fatalerror("%s: In range %x-%x mirror %x, start address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmirror, m_bytemask, addrstart & m_bytemask); - if (addrend & ~m_bytemask) - fatalerror("%s: In range %x-%x mirror %x, end address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmirror, m_bytemask, addrend & m_bytemask); + if (addrend & ~m_addrmask) + fatalerror("%s: In range %x-%x mirror %x, end address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmirror, m_bytemask, addrend & m_addrmask); offs_t lowbits_mask = (m_config.data_width() >> (3 - m_config.m_addrbus_shift)) - 1; if (addrstart & lowbits_mask) @@ -1943,8 +1943,8 @@ void address_space::check_optimize_mirror(const char *function, offs_t addrstart changing_bits |= changing_bits >> 8; changing_bits |= changing_bits >> 16; - if (addrmirror & ~m_bytemask) - fatalerror("%s: In range %x-%x mirror %x, mirror is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmirror, m_bytemask, addrmirror & m_bytemask); + if (addrmirror & ~m_addrmask) + fatalerror("%s: In range %x-%x mirror %x, mirror is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmirror, m_bytemask, addrmirror & m_addrmask); if (addrmirror & changing_bits) fatalerror("%s: In range %x-%x mirror %x, mirror touches a changing address bit, did you mean %x ?\n", function, addrstart, addrend, addrmirror, addrmirror & ~changing_bits); if (addrmirror & set_bits) @@ -1973,9 +1973,9 @@ void address_space::check_address(const char *function, offs_t addrstart, offs_t { if (addrstart > addrend) fatalerror("%s: In range %x-%x, start address is after the end address.\n", function, addrstart, addrend); - if (addrstart & ~m_bytemask) + if (addrstart & ~m_addrmask) fatalerror("%s: In range %x-%x, start address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, m_bytemask, addrstart & m_bytemask); - if (addrend & ~m_bytemask) + if (addrend & ~m_addrmask) fatalerror("%s: In range %x-%x, end address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, m_bytemask, addrend & m_bytemask); offs_t lowbits_mask = (m_config.data_width() >> (3 - m_config.m_addrbus_shift)) - 1; From ffed6582517607a8b957725937111ef1f04349e7 Mon Sep 17 00:00:00 2001 From: etabeta78 Date: Sun, 19 Jun 2016 18:47:59 +0200 Subject: [PATCH 6/8] megadriv: improved description of many taiwanese unlicensed titles + added dump of Ju Ji Ma Jiang II by Sun Green. [Fabio Priuli] --- hash/megadriv.xml | 197 ++++++++++++++++--------- src/devices/bus/megadrive/md_carts.cpp | 1 + src/devices/bus/megadrive/md_slot.cpp | 1 + src/devices/bus/megadrive/md_slot.h | 1 + src/devices/bus/megadrive/rom.cpp | 23 +++ src/devices/bus/megadrive/rom.h | 13 ++ 6 files changed, 168 insertions(+), 68 deletions(-) diff --git a/hash/megadriv.xml b/hash/megadriv.xml index 95e4295fac9..aa1fb105e2d 100644 --- a/hash/megadriv.xml +++ b/hash/megadriv.xml @@ -57,7 +57,7 @@ Known undumped protos Known undumped pirates * Tec Toy Mega Drive 3 (with 86 built in games) - * Chinese Checkers (by RealTec) + * Chinese Checkers (by RealTec) - 中國象棋 ? * Shizen Mahjong / Competition Mahjong (by Sachen, apparently dumped but hoarded) * Magic 7 Block - 百変七巧板 * Chinese Battle Chess (?) - 戦 棊 @@ -9717,10 +9717,10 @@ but dumps still have to be confirmed. --> - 13 Ma Jiang - 98 Mei Shao Nu Pian (Chi) + 13 Ma Jiang - 98 Mei Shao Nu (Chi) 1998 BBD - + @@ -9750,16 +9750,31 @@ but dumps still have to be confirmed. - - 16 Zhang Ma Jiang (Chi) + + Shi Liu Zhang Ma Jiang (Chi) 199? - <unlicensed> + City Man + + + + Shi Liu Zhang Ma Jiang II + 199? + City Man + + + + + + + + + 3 Ninjas Kick Back (USA) @@ -10095,9 +10110,10 @@ but dumps still have to be confirmed. - Adventurous Boy - Mao Xian Xiao Zi (Chi) + Adventurous Boy - Mao Xian Xiao Zi (Tw) 199? - <unlicensed> + Gamtec + @@ -10449,10 +10465,11 @@ but dumps still have to be confirmed. - - Aq Renkan Awa (Chi) + + A Q Lian Huan Pao (Tw) 1995 C&E + @@ -11076,9 +11093,10 @@ but dumps still have to be confirmed. - Barver Battle Saga - Tai Kong Zhan Shi (Chi) + Barver Battle Saga - Tai Kong Zhan Shi - Mo Fa Zhan Shi (Chi) 199? <unlicensed> + @@ -11616,7 +11634,7 @@ but dumps still have to be confirmed. - Bill's Tomato Adventure (Prototype) + Bill's Tomato Game (Prototype) 199? Psygnosis @@ -12284,6 +12302,7 @@ but dumps still have to be confirmed. Chao Ji Da Fu Weng (Chi) 199? Gametec? + @@ -12430,9 +12449,10 @@ but dumps still have to be confirmed. - Chinese Chess + Zhong Guo Xiang Qi - Chinese Chess (Tw) 199? <unlicensed> + @@ -13947,10 +13967,11 @@ but dumps still have to be confirmed. - - Dial Q o Mawase! (Jpn) + + Dial Q Mahjang Club (Jpn) 199? <unlicensed> + @@ -15400,7 +15421,8 @@ but dumps still have to be confirmed. Feng Kuang Tao Hua Yuan (Chi) 199? - <unlicensed> + Creaton + @@ -15412,7 +15434,8 @@ but dumps still have to be confirmed. Feng Kuang Tao Hua Yuan (Chi, Unprotected) 199? - <unlicensed> + Creaton + @@ -15424,6 +15447,7 @@ but dumps still have to be confirmed. Feng Shen Ying Jie Chuan (Chi) 1996 Chuanpu Technologies + @@ -15435,6 +15459,7 @@ but dumps still have to be confirmed. Feng Shen Ying Jie Zhuan (Chi, Alt?) 1996 Chuanpu Technologies + @@ -16507,10 +16532,12 @@ but dumps still have to be confirmed. - - Hei Tao 2 - Super Big 2 (Chi) + + Hei Tao 2 - Super Big 2 (Tw) 199? - <unlicensed> + King Tec + + @@ -18167,6 +18194,7 @@ but dumps still have to be confirmed. Ma Qiao E Mo Ta - Devilish Mahjong Tower (Chi) 1994 C&E + @@ -18816,7 +18844,9 @@ but dumps still have to be confirmed. Meng Huan Shui Guo Pan - 777 Casino (Chi) 199? - <unlicensed> + City Man + + @@ -22595,6 +22625,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i Queen of Poker Club (Tw) 199? Sachen + @@ -23609,6 +23640,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i San Guo Zhi V (Chi) 199? SKOB + @@ -23895,9 +23927,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i - Shi Jie Zhi Bang Zheng Ba Zhan - World Pro Baseball 94 (Chi) + Jin Guan Jun Xiong Di Xiang - Shi Jie Zhi Bang Zheng Ba Zhan (Chi) 1994 C&E + @@ -24190,6 +24223,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i Shui Hu - Feng Yun Zhuan (Chi) 1999 Never Ending Soft Team + @@ -24201,6 +24235,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i Shui Hu Zhuan (Chi) 1996 Chuanpu Technologies + @@ -26723,6 +26758,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i Taiwan Daheng (Chi) 1994 C&E + @@ -27828,9 +27864,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i - Tun Shi Tian Di III (China, Simple Chinese) + Tun Shi Tian Di III (Chi, Simple Chinese) 199? <unlicensed> + @@ -27842,6 +27879,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i Tun Shi Tian Di III (Chi) 199? SKOB + @@ -29980,6 +30018,8 @@ Notice that these are not working on real hardware due to bugged code with VDP i Wu Kong Wai Zhuan (Chi) 1996 Ming + + @@ -29994,6 +30034,8 @@ Notice that these are not working on real hardware due to bugged code with VDP i Wu Kong Wai Zhuan (Chi, Unprotected) 1996 Ming + + @@ -30301,9 +30343,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i - Xiao Monv - Magic Girl (Chi) + Xiao Monv - Magic Girl (Tw) 199? - <unlicensed> + Gamtec + @@ -30323,10 +30366,24 @@ Notice that these are not working on real hardware due to bugged code with VDP i + + Xin Qi Gai Wang Zi (Chi) + 1996 + C&E + + + + + + + + + Xin Qi Gai Wang Zi (Chi, Alt) 1996 C&E + @@ -30335,23 +30392,12 @@ Notice that these are not working on real hardware due to bugged code with VDP i - - Xin Qi Gai Wang Zi (Chi) - 1996 - C&E - - - - - - - - Ya Se Chuan Shuo (Chi) 1995 - Chuanpu Technologies - + Ming + + @@ -30364,6 +30410,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i Yang Jia Jiang - Yang Warrior Family (Chi) 199? <unlicensed> + @@ -30523,7 +30570,8 @@ Notice that these are not working on real hardware due to bugged code with VDP i Zhuo Gui Da Shi - Ghost Hunter (Chi) 1994 - Shenchi Technology + Senchi Technology + @@ -30728,18 +30776,6 @@ Notice that these are not working on real hardware due to bugged code with VDP i - - 16 Tiles Mahjong II - 199? - Gamtec - - - - - - - - A Bug's Life 199? @@ -30827,7 +30863,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i Huan Le Tao Qi Shu - Smart Mouse (Chi) 199? - <unlicensed> + Ming + + @@ -30874,9 +30912,11 @@ Notice that these are not working on real hardware due to bugged code with VDP i - Linghuan Daoshi Super Magician (Chi) + Ling Huan Dao Shi - Super Magician (Chi) 199? - <unlicensed> + Ming + + @@ -30911,10 +30951,11 @@ Notice that these are not working on real hardware due to bugged code with VDP i - - Ma Jiang Qing Ren - Ji Ma Jiang Zhi (Chi) + + Ji Ma Jiang Zhi - Ma Jiang Qing Ren (Chi) 199? <unlicensed> + @@ -30923,10 +30964,11 @@ Notice that these are not working on real hardware due to bugged code with VDP i - + Ma Jiang Qing Ren - Ji Ma Jiang Zhi (Chi, Alt) 199? <unlicensed> + @@ -31056,10 +31098,11 @@ Notice that these are not working on real hardware due to bugged code with VDP i - - Super Mahjong Club - 199? - <unlicensed> + + Du Shen Zhi Meng Huan Puke + 1995 + Creaton + @@ -31105,9 +31148,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i - The Battle of Red Cliffs - Romance of the Three Kingdoms + San Guo Yan Yi - Huo Shao Chi Bi (Tw) 199? <unlicensed> + @@ -31117,9 +31161,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i - The Battle of Red Cliffs - Romance of the Three Kingdoms (Hacked out Protection?) + San Guo Yan Yi - Huo Shao Chi Bi (Tw, Hacked out Protection?) 199? <unlicensed> + @@ -31143,10 +31188,11 @@ Notice that these are not working on real hardware due to bugged code with VDP i - Thunderbolt II (Unl) + Lei Dian II - Thunderbolt II (Unl) 199? Sun Green - + + @@ -31227,10 +31273,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i - Super Poker (Chi) + Chaoji Puke (Tw) 199? <unlicensed> - + @@ -31299,6 +31345,19 @@ Notice that these are not working on real hardware due to bugged code with VDP i + + + Ju Ji Ma Jiang II + 199? + Sun Green + + + + + + + + Truco '96 (Arg) @@ -31374,6 +31433,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i Magic Bubble 1993 C&E + @@ -31385,6 +31445,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i Magic Bubble (Alt) 1993 C&E + diff --git a/src/devices/bus/megadrive/md_carts.cpp b/src/devices/bus/megadrive/md_carts.cpp index 4c9f1b9b2e0..5a8e1902d09 100644 --- a/src/devices/bus/megadrive/md_carts.cpp +++ b/src/devices/bus/megadrive/md_carts.cpp @@ -55,6 +55,7 @@ SLOT_INTERFACE_START(md_cart) SLOT_INTERFACE_INTERNAL("rom_lion3", MD_ROM_LION3) SLOT_INTERFACE_INTERNAL("rom_mcpir", MD_ROM_MCPIR) SLOT_INTERFACE_INTERNAL("rom_mjlov", MD_ROM_MJLOV) + SLOT_INTERFACE_INTERNAL("rom_cjmjclub", MD_ROM_CJMJCLUB) SLOT_INTERFACE_INTERNAL("rom_pokea", MD_ROM_POKEA) SLOT_INTERFACE_INTERNAL("rom_pokestad", MD_ROM_POKESTAD) SLOT_INTERFACE_INTERNAL("rom_realtec", MD_ROM_REALTEC) diff --git a/src/devices/bus/megadrive/md_slot.cpp b/src/devices/bus/megadrive/md_slot.cpp index 61e847eb6e9..55d80f8b64d 100644 --- a/src/devices/bus/megadrive/md_slot.cpp +++ b/src/devices/bus/megadrive/md_slot.cpp @@ -270,6 +270,7 @@ static const md_slot slot_list[] = { LIONK3, "rom_lion3" }, { MC_PIRATE, "rom_mcpir" }, { MJLOVER, "rom_mjlov" }, + { CJMJCLUB, "rom_cjmjclub" }, { POKEMONA, "rom_pokea" }, { REALTEC, "rom_realtec" }, { REDCL_EN, "rom_redcl" }, diff --git a/src/devices/bus/megadrive/md_slot.h b/src/devices/bus/megadrive/md_slot.h index a033daec607..b6cb59147d5 100644 --- a/src/devices/bus/megadrive/md_slot.h +++ b/src/devices/bus/megadrive/md_slot.h @@ -61,6 +61,7 @@ enum LIONK3, /* Lion King 3, Super Donkey Kong 99, Super King Kong 99 */ MC_PIRATE, /* Super 19 in 1, Super 15 in 1, 12 in 1 and a few more multicarts */ MJLOVER, /* Mahjong Lover */ + CJMJCLUB, /* Super Mahjong Club */ POKEMONA, /* Pocket Monster Alt Protection */ REALTEC, /* Whac a Critter/Mallet legend, Defend the Earth, Funnyworld/Ballonboy */ REDCLIFF, /* Romance of the Three Kingdoms - Battle of Red Cliffs, already decoded from .mdx format */ diff --git a/src/devices/bus/megadrive/rom.cpp b/src/devices/bus/megadrive/rom.cpp index 16b12561c8a..ed17cfff044 100644 --- a/src/devices/bus/megadrive/rom.cpp +++ b/src/devices/bus/megadrive/rom.cpp @@ -41,6 +41,7 @@ const device_type MD_ROM_SMB2 = &device_creator; const device_type MD_ROM_SBUBL = &device_creator; const device_type MD_ROM_RX3 = &device_creator; const device_type MD_ROM_MJLOV = &device_creator; +const device_type MD_ROM_CJMJCLUB = &device_creator; const device_type MD_ROM_KOF98 = &device_creator; const device_type MD_ROM_KOF99 = &device_creator; const device_type MD_ROM_SOULB = &device_creator; @@ -141,6 +142,11 @@ md_rom_mjlov_device::md_rom_mjlov_device(const machine_config &mconfig, const ch { } +md_rom_cjmjclub_device::md_rom_cjmjclub_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : md_std_rom_device(mconfig, MD_ROM_CJMJCLUB, "MD Chaoji Majiang Club / Super Mahjong Club", tag, owner, clock, "md_rom_cjmjclub", __FILE__) +{ +} + md_rom_kof98_device::md_rom_kof98_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : md_std_rom_device(mconfig, MD_ROM_KOF98, "MD KOF 98", tag, owner, clock, "md_rom_kof98", __FILE__) { @@ -916,6 +922,23 @@ READ16_MEMBER(md_rom_mjlov_device::read) } +/*------------------------------------------------- + CHAOJI MAJIANG CLUB + -------------------------------------------------*/ + +READ16_MEMBER(md_rom_cjmjclub_device::read) +{ + if (offset == 0x400000/2) return 0x9000; + if (offset == 0x400002/2) return 0xd300; + + // non-protection accesses + if (offset < 0x400000/2) + return m_rom[MD_ADDR(offset)]; + else + return 0xffff; +} + + /*------------------------------------------------- SUPER BUBBLE BOBBLE MD -------------------------------------------------*/ diff --git a/src/devices/bus/megadrive/rom.h b/src/devices/bus/megadrive/rom.h index dcb1536f974..3bafead4346 100644 --- a/src/devices/bus/megadrive/rom.h +++ b/src/devices/bus/megadrive/rom.h @@ -263,6 +263,18 @@ public: virtual DECLARE_READ16_MEMBER(read) override; }; +// ======================> md_rom_cjmjclub_device + +class md_rom_cjmjclub_device : public md_std_rom_device +{ +public: + // construction/destruction + md_rom_cjmjclub_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // reading and writing + virtual DECLARE_READ16_MEMBER(read) override; +}; + // ======================> md_rom_pokea_device class md_rom_pokea_device : public md_std_rom_device @@ -585,6 +597,7 @@ extern const device_type MD_ROM_LION2; extern const device_type MD_ROM_LION3; extern const device_type MD_ROM_MCPIR; extern const device_type MD_ROM_MJLOV; +extern const device_type MD_ROM_CJMJCLUB; extern const device_type MD_ROM_POKEA; extern const device_type MD_ROM_POKESTAD; extern const device_type MD_ROM_REALTEC; From c81e0c43da357e917dad8855fcf765df7f49bb35 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 19 Jun 2016 12:46:19 -0400 Subject: [PATCH 7/8] Forgot a few (nw) --- src/emu/emumem.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/emu/emumem.cpp b/src/emu/emumem.cpp index 40d681945e9..8db1bffc772 100644 --- a/src/emu/emumem.cpp +++ b/src/emu/emumem.cpp @@ -1863,9 +1863,9 @@ void address_space::check_optimize_all(const char *function, offs_t addrstart, o if (addrstart > addrend) fatalerror("%s: In range %x-%x mask %x mirror %x select %x, start address is after the end address.\n", function, addrstart, addrend, addrmask, addrmirror, addrselect); if (addrstart & ~m_addrmask) - fatalerror("%s: In range %x-%x mask %x mirror %x select %x, start address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrstart & m_addrmask); + fatalerror("%s: In range %x-%x mask %x mirror %x select %x, start address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_addrmask, addrstart & m_addrmask); if (addrend & ~m_addrmask) - fatalerror("%s: In range %x-%x mask %x mirror %x select %x, end address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrend & m_addrmask); + fatalerror("%s: In range %x-%x mask %x mirror %x select %x, end address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_addrmask, addrend & m_addrmask); offs_t lowbits_mask = (m_config.data_width() >> (3 - m_config.m_addrbus_shift)) - 1; if (addrstart & lowbits_mask) @@ -1883,11 +1883,11 @@ void address_space::check_optimize_all(const char *function, offs_t addrstart, o changing_bits |= changing_bits >> 16; if (addrmask & ~m_addrmask) - fatalerror("%s: In range %x-%x mask %x mirror %x select %x, mask is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrmask & m_addrmask); + fatalerror("%s: In range %x-%x mask %x mirror %x select %x, mask is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_addrmask, addrmask & m_addrmask); if (addrmirror & ~m_addrmask) - fatalerror("%s: In range %x-%x mask %x mirror %x select %x, mirror is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrmirror & m_addrmask); + fatalerror("%s: In range %x-%x mask %x mirror %x select %x, mirror is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_addrmask, addrmirror & m_addrmask); if (addrselect & ~m_addrmask) - fatalerror("%s: In range %x-%x mask %x mirror %x select %x, select is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_bytemask, addrselect & m_addrmask); + fatalerror("%s: In range %x-%x mask %x mirror %x select %x, select is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, m_addrmask, addrselect & m_addrmask); if (addrmask & ~changing_bits) fatalerror("%s: In range %x-%x mask %x mirror %x select %x, mask is trying to unmask an unchanging address bit, did you mean %x ?\n", function, addrstart, addrend, addrmask, addrmirror, addrselect, addrmask & changing_bits); if (addrmirror & changing_bits) @@ -1924,9 +1924,9 @@ void address_space::check_optimize_mirror(const char *function, offs_t addrstart if (addrstart > addrend) fatalerror("%s: In range %x-%x mirror %x, start address is after the end address.\n", function, addrstart, addrend, addrmirror); if (addrstart & ~m_addrmask) - fatalerror("%s: In range %x-%x mirror %x, start address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmirror, m_bytemask, addrstart & m_bytemask); + fatalerror("%s: In range %x-%x mirror %x, start address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmirror, m_addrmask, addrstart & m_addrmask); if (addrend & ~m_addrmask) - fatalerror("%s: In range %x-%x mirror %x, end address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmirror, m_bytemask, addrend & m_addrmask); + fatalerror("%s: In range %x-%x mirror %x, end address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmirror, m_addrmask, addrend & m_addrmask); offs_t lowbits_mask = (m_config.data_width() >> (3 - m_config.m_addrbus_shift)) - 1; if (addrstart & lowbits_mask) @@ -1944,7 +1944,7 @@ void address_space::check_optimize_mirror(const char *function, offs_t addrstart changing_bits |= changing_bits >> 16; if (addrmirror & ~m_addrmask) - fatalerror("%s: In range %x-%x mirror %x, mirror is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmirror, m_bytemask, addrmirror & m_addrmask); + fatalerror("%s: In range %x-%x mirror %x, mirror is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, addrmirror, m_addrmask, addrmirror & m_addrmask); if (addrmirror & changing_bits) fatalerror("%s: In range %x-%x mirror %x, mirror touches a changing address bit, did you mean %x ?\n", function, addrstart, addrend, addrmirror, addrmirror & ~changing_bits); if (addrmirror & set_bits) @@ -1974,9 +1974,9 @@ void address_space::check_address(const char *function, offs_t addrstart, offs_t if (addrstart > addrend) fatalerror("%s: In range %x-%x, start address is after the end address.\n", function, addrstart, addrend); if (addrstart & ~m_addrmask) - fatalerror("%s: In range %x-%x, start address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, m_bytemask, addrstart & m_bytemask); + fatalerror("%s: In range %x-%x, start address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, m_addrmask, addrstart & m_addrmask); if (addrend & ~m_addrmask) - fatalerror("%s: In range %x-%x, end address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, m_bytemask, addrend & m_bytemask); + fatalerror("%s: In range %x-%x, end address is outside of the global address mask %x, did you mean %x ?\n", function, addrstart, addrend, m_addrmask, addrend & m_addrmask); offs_t lowbits_mask = (m_config.data_width() >> (3 - m_config.m_addrbus_shift)) - 1; if (addrstart & lowbits_mask) From 24bd3412ac07935961d9d9cfc9dbc90e43ca1621 Mon Sep 17 00:00:00 2001 From: smf- Date: Sun, 19 Jun 2016 20:40:30 +0100 Subject: [PATCH 8/8] let builds happen (nw) --- src/devices/machine/8530scc.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/devices/machine/8530scc.cpp b/src/devices/machine/8530scc.cpp index 25484798b36..be3bbf6ed6d 100644 --- a/src/devices/machine/8530scc.cpp +++ b/src/devices/machine/8530scc.cpp @@ -476,6 +476,8 @@ READ8_MEMBER(scc8530_t::reg_r) UINT8 scc8530_t::read_reg(int offset) { + UINT8 result = 0; + switch(offset) { case 0: /* Channel B (Printer Port) Control */ @@ -486,7 +488,7 @@ UINT8 scc8530_t::read_reg(int offset) else reg = 0; - result = (offset == 0) ? getbreg(); : getareg() + result = (offset == 0) ? getbreg() : getareg(); break; case 2: /* Channel B (Printer Port) Data */ @@ -518,11 +520,11 @@ WRITE8_MEMBER( scc8530_t::reg_w ) void scc8530_t::write_reg(int offset, UINT8 data) { - offset & 3; + //offset & 3; // printf(" mode %d data %x offset %d \n", mode, data, offset); - Chan *pChan; + //Chan *pChan; switch(offset) { case 0: /* Channel B (Printer Port) Control */