summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/pockchal.cpp
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2016-06-24 01:41:40 +1000
committer Robbbert <Robbbert@users.noreply.github.com>2016-06-24 01:41:40 +1000
commit40003735b4a854e4a7e007e0c869d168c030ad01 (patch)
tree42eb8a037b8caaf4619df5c5b7a248193fdff04a /src/mame/drivers/pockchal.cpp
parent82c526ea38997907bf1edf95abf5b73a20118ca8 (diff)
pockchal: fixed crash without cart; general cleanup (nw)
Diffstat (limited to 'src/mame/drivers/pockchal.cpp')
-rw-r--r--src/mame/drivers/pockchal.cpp33
1 files changed, 14 insertions, 19 deletions
diff --git a/src/mame/drivers/pockchal.cpp b/src/mame/drivers/pockchal.cpp
index 8708acd7d85..206756cee69 100644
--- a/src/mame/drivers/pockchal.cpp
+++ b/src/mame/drivers/pockchal.cpp
@@ -1,6 +1,8 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
-/*
+/*********************************************************************
+
+Similar to https://www.youtube.com/watch?v=FmyR-kL-QWo
base unit contains
@@ -14,11 +16,11 @@ base unit contains
(system has no bios ROM)
+Cart sizes: 1MB, 2MB, 4MB
-*/
+********************************************************************/
#include "emu.h"
-#include "cpu/z80/z80.h"
#include "cpu/tlcs90/tlcs90.h"
#include "softlist.h"
#include "bus/generic/slot.h"
@@ -29,9 +31,9 @@ class pockchalv1_state : public driver_device
{
public:
pockchalv1_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_cart(*this, "cartslot")
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_cart(*this, "cartslot")
{ }
virtual void machine_start() override;
@@ -41,9 +43,6 @@ public:
required_device<cpu_device> m_maincpu;
required_device<generic_slot_device> m_cart;
UINT32 m_rom_size;
- memory_region *m_cart_rom;
- UINT8* m_cart_base;
- DECLARE_READ8_MEMBER(read_rom);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(pockchalv1_cart);
};
@@ -67,7 +66,7 @@ UINT32 pockchalv1_state::screen_update_pockchalv1(screen_device &screen, bitmap_
static ADDRESS_MAP_START( pockchalv1_map, AS_PROGRAM, 8, pockchalv1_state )
- AM_RANGE(0x0000, 0x7fff) AM_READ(read_rom)
+ AM_RANGE(0xc000, 0xffff) AM_RAM
ADDRESS_MAP_END
@@ -78,20 +77,15 @@ INPUT_PORTS_END
void pockchalv1_state::machine_start()
{
- std::string region_tag;
- m_cart_rom = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
- m_cart_base = m_cart_rom->base();
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ if (m_cart->exists())
+ space.install_read_handler(0x0000, 0x7fff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
}
void pockchalv1_state::machine_reset()
{
}
-READ8_MEMBER(pockchalv1_state::read_rom)
-{
- return m_cart_base[offset];
-}
-
static MACHINE_CONFIG_START( pockchalv1, pockchalv1_state )
@@ -128,4 +122,5 @@ MACHINE_CONFIG_END
ROM_START( pockchal )
ROM_END
-GAME( 199?, pockchal, 0, pockchalv1, pockchalv1, driver_device, 0, ROT0, "Benesse Corporation", "Pocket Challenge W (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME*/
+CONS( 199?, pockchal, 0, 0, pockchalv1, pockchalv1, driver_device, 0, "Benesse Corporation", "Pocket Challenge W (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )