From 05984d14eccd1ebf6ceabb0a96994f8fb4773356 Mon Sep 17 00:00:00 2001 From: hap Date: Sun, 8 Sep 2019 22:52:18 +0200 Subject: [PATCH] New working software list additions ----------------------------------- ggm: Sandy Edition - Master Chess [anonymous] ggm: Steinitz Edition-4 - Master Chess [anonymous] --- hash/ggm.xml | 28 ++++++++++++++++++++++++++ src/mame/drivers/aci_ggm.cpp | 38 ++++++++++++++++++++---------------- src/mame/drivers/ave_arb.cpp | 13 ++++++------ src/mame/layout/aci_ggm.lay | 6 +++--- 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 @@ + + Sandy Edition - Master Chess + 1981 + Applied Concepts / Sandy Electronic + + + + + + + + + + + + Steinitz Edition-4 - Master Chess + 1982 + Applied Concept + + + + + + + + + + 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 @@ - - - + + +