summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2019-09-08 22:52:18 +0200
committer hap <happppp@users.noreply.github.com>2019-09-08 22:55:22 +0200
commit05984d14eccd1ebf6ceabb0a96994f8fb4773356 (patch)
treef95537e90d2ee6a2c4f7adfec75f454d1ac4657b
parenta2f4131c8907b6b164b65239f92d5e4538fcc44d (diff)
New working software list additions
----------------------------------- ggm: Sandy Edition - Master Chess [anonymous] ggm: Steinitz Edition-4 - Master Chess [anonymous]
-rw-r--r--hash/ggm.xml28
-rw-r--r--src/mame/drivers/aci_ggm.cpp38
-rw-r--r--src/mame/drivers/ave_arb.cpp13
-rw-r--r--src/mame/layout/aci_ggm.lay6
4 files changed, 58 insertions, 27 deletions
diff --git a/hash/ggm.xml b/hash/ggm.xml
index f568a45ba9b..4ab7dcfbfb5 100644
--- a/hash/ggm.xml
+++ b/hash/ggm.xml
@@ -19,4 +19,32 @@
</part>
</software>
+ <software name="sandy">
+ <description>Sandy Edition - Master Chess</description>
+ <year>1981</year>
+ <publisher>Applied Concepts / Sandy Electronic</publisher>
+ <part name="cart" interface="ggm">
+ <dataarea name="rom" size="0x8000">
+ <rom name="7087-00" offset="0x4000" size="0x1000" crc="7a2482b5" sha1="935a7c460d6b4f97c6ba7044ca064cfe467be737" /> <!-- MBM2732-35 -->
+ <rom offset="0x6000" size="0x1000" loadflag="reload" />
+ <rom name="7088-00" offset="0x5000" size="0x1000" crc="8c9359bb" sha1="b74309b29f30a6a7557346d94e692fa138e34eab" /> <!-- " -->
+ <rom offset="0x7000" size="0x1000" loadflag="reload" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="steinitz">
+ <description>Steinitz Edition-4 - Master Chess</description>
+ <year>1982</year>
+ <publisher>Applied Concept</publisher>
+ <part name="cart" interface="ggm">
+ <feature name="ram" value="1" /> <!-- HM6116LP-3 @ 0x800-0xfff -->
+ <dataarea name="rom" size="0x10000">
+ <rom name="7115" offset="0x4000" size="0x2000" crc="53830fac" sha1="3afb75ead1a807dc932a63d137e3fe746ba4c740" /> <!-- NEC D2764D -->
+ <rom name="7116" offset="0x6000" size="0x2000" crc="d53c3fc4" sha1="e8be6cebdd85fa51f78130fdb62215a672a2b212" /> <!-- " -->
+ <rom name="7117" offset="0xe000" size="0x2000" crc="8130fe6a" sha1="62350eb3555b56f8386da623fd578de737301fd9" /> <!-- " -->
+ </dataarea>
+ </part>
+ </software>
+
</softwarelist>
diff --git a/src/mame/drivers/aci_ggm.cpp b/src/mame/drivers/aci_ggm.cpp
index b208c7f1d2a..976927445de 100644
--- a/src/mame/drivers/aci_ggm.cpp
+++ b/src/mame/drivers/aci_ggm.cpp
@@ -6,18 +6,6 @@
Applied Concepts Great Game Machine (GGM), electronic board game computer.
2nd source distribution: Modular Game System (MGS), by Chafitz.
-TODO:
-- what's VIA PB0 for? game toggles it once per irq
-- identify XTAL (2MHz CPU/VIA is correct, compared to video reference)
-- add display DP segment (unused in boris25), and what about AP segment?
-- verify cartridge pinout, right now assume A0-A14 (max known cart size is 24KB).
- Boris/Sargon cartridge is A0-A11 and 2 CS lines.
-- auto-switch keypad overlays? no need for it yet
-- (probably won't) add chesspieces to artwork? this machine supports more board
- games than just chess: checkers, reversi, and even a blackjack game
-
-*******************************************************************************
-
Hardware notes:
- 6502A 2MHz (unknown XTAL, label "5-80"), SYP6522 VIA
- 2KB RAM(4*HM472114AP-2), no ROM on main PCB
@@ -31,9 +19,10 @@ There were also some standalone machines, eg. Morphy Encore, Odin Encore.
Known chess cartridges (*denotes not dumped):
- Chess/Boris 2.5 (aka Sargon 2.5)
- *Gruenfeld Edition - Master Chess Openings
-- *Morphy Edition - Master Chess (aka Sandy Edition?)
+- *Morphy Edition - Master Chess
- *Capablanca Edition - Master Chess Endgame
-- *Steinitz Edition-4 - Master Chess
+- Sandy Edition - Master Chess (German language version of Morphy)
+- Steinitz Edition-4 - Master Chess
- *Monitor Edition - Master Kriegspiel
The opening/endgame cartridges are meant to be ejected/inserted while
@@ -46,6 +35,16 @@ Other games:
- *Wits End (unreleased?)
- *Lunar Lander (unreleased?)
+TODO:
+- what's VIA PB0 for? game toggles it once per irq
+- identify XTAL (2MHz CPU/VIA is correct, compared to video reference)
+- add display AP segment, is it used anywhere?
+- verify cartridge pinout, right now assume A0-A15 (max known cart size is 24KB).
+ Boris/Sargon cartridge is A0-A11 and 2 CS lines, Steinitz uses the whole range.
+- add option to auto-switch keypad overlays
+- (probably won't) add chesspieces to artwork? this machine supports more board
+ games than just chess: checkers, reversi, and even a blackjack game
+
******************************************************************************/
#include "emu.h"
@@ -56,9 +55,10 @@ Other games:
#include "video/pwm.h"
#include "sound/dac.h"
#include "sound/volt_reg.h"
-#include "speaker.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
+
+#include "speaker.h"
#include "softlist.h"
// internal artwork
@@ -172,11 +172,15 @@ void ggm_state::update_reset(ioport_value state)
DEVICE_IMAGE_LOAD_MEMBER(ggm_state::cartridge)
{
u32 size = m_cart->common_get_size("rom");
- m_cart_mask = ((1 << (31 - count_leading_zeros(size))) - 1) & 0x7fff;
+ m_cart_mask = ((1 << (31 - count_leading_zeros(size))) - 1) & 0xffff;
m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE);
m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
+ // extra ram (optional)
+ if (image.get_feature("ram"))
+ m_maincpu->space(AS_PROGRAM).install_ram(0x0800, 0x0fff, nullptr);
+
return image_init_result::PASS;
}
@@ -250,7 +254,7 @@ READ8_MEMBER(ggm_state::input_r)
void ggm_state::main_map(address_map &map)
{
// external slot has potential bus conflict with RAM/VIA
- map(0x0000, 0x7fff).mirror(0x8000).r(FUNC(ggm_state::cartridge_r));
+ map(0x0000, 0xffff).r(FUNC(ggm_state::cartridge_r));
map(0x0000, 0x07ff).ram().share("nvram");
map(0x8000, 0x800f).m(m_via, FUNC(via6522_device::map));
}
diff --git a/src/mame/drivers/ave_arb.cpp b/src/mame/drivers/ave_arb.cpp
index 0d27993690e..9a316f15653 100644
--- a/src/mame/drivers/ave_arb.cpp
+++ b/src/mame/drivers/ave_arb.cpp
@@ -6,12 +6,6 @@
AVE Micro Systems ARB chess computer driver, in some regions redistributed
by Chafitz, and in Germany by Sandy Electronic.
-TODO:
-- verify gms40 module memory layout
-- need to add checkers pieces and custom initial position when Avelan gets dumped
-
-*******************************************************************************
-
Auto Response Board (ARB) overview:
- R6502P CPU @ 2MHz(4MHz XTAL), R6522P VIA
- 2KB RAM(4*2114), cartridge port
@@ -37,6 +31,10 @@ Around 2012, Steve Braid(aka Trilobyte/Steve UK) started manufacturing ARB V2 bo
without a module slot. CPU and VIA were replaced with new WDC 14MHz-rated chips,
running at 16MHz.
+TODO:
+- verify gms40 module memory layout
+- need to add checkers pieces and custom initial position when Avelan gets dumped
+
******************************************************************************/
#include "emu.h"
@@ -48,9 +46,10 @@ running at 16MHz.
#include "machine/nvram.h"
#include "sound/dac.h"
#include "sound/volt_reg.h"
-#include "speaker.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
+
+#include "speaker.h"
#include "softlist.h"
// internal artwork
diff --git a/src/mame/layout/aci_ggm.lay b/src/mame/layout/aci_ggm.lay
index 1cce579b017..60a53704335 100644
--- a/src/mame/layout/aci_ggm.lay
+++ b/src/mame/layout/aci_ggm.lay
@@ -169,9 +169,9 @@
<param name="dot_x" start="3.5" increment="11" />
<bezel name="digit~i~" element="digit"><bounds x="~digit_x~" y="0" width="10" height="15" /></bezel>
- <bezel name="~i~.14" element="seg_disk"><bounds x="~dp_x~" y="13.5" width="1.5" height="1.5" /></bezel>
- <bezel name="~i~.15" element="seg_disk"><bounds x="~ap1_x~" y="0" width="1" height="1.6" /></bezel>
- <bezel name="~i~.15" element="seg_rect"><bounds x="~ap2_x~" y="0" width="0.7" height="3.5" /></bezel>
+ <bezel name="~i~.15" element="seg_disk"><bounds x="~dp_x~" y="13.5" width="1.5" height="1.5" /></bezel>
+ <bezel name="~i~.14" element="seg_disk"><bounds x="~ap1_x~" y="0" width="1" height="1.6" /></bezel>
+ <bezel name="~i~.14" element="seg_rect"><bounds x="~ap2_x~" y="0" width="0.7" height="3.5" /></bezel>
<bezel element="disk_white"><bounds x="~dot_x~" y="17.1" width="1.9" height="1.9" /></bezel>
</repeat>
</group>