Skip to content

new NOT WORKING machines - Gaelco DS5002FP Programmer #13956

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions hash/gaelco_ds5002fp_rom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!--
license:CC0-1.0
-->

<softwarelist name="gaelco_ds5002fp_rom" description="Gaelco DS5002FP Programmer ROMs">

<software name="aligator" supported="no">
<description>Alligator Hunt</description>
<year>1994</year>
<publisher>Gaelco</publisher>
<part name="cart" interface="gaelcods_rom">
<dataarea name="rom" width="16" endianness="big" size="0x20000">
<rom name="aligator_47dF_22-nov_27c1024.bin" size="0x20000" crc="ec47f05e" sha1="782eb1398a60d54e5bcbe76e22000f6adc710bfe" loadflag="load16_word_swap"/>
</dataarea>
</part>
</software>

<software name="maniacsq" supported="no">
<description>Maniac Square</description>
<year>1996</year>
<publisher>Gaelco</publisher>
<part name="cart" interface="gaelcods_rom">
<dataarea name="rom" width="16" endianness="big" size="0x20000">
<rom name="maniac_825c_22-5-96_27c1024.bin" size="0x20000" crc="89db7181" sha1="fcdc8077c4247ca24d19c7f61fcb9e1bc93e36fd" loadflag="load16_word_swap"/>
</dataarea>
</part>
</software>

<software name="targeth" supported="no">
<description>Target Hits</description>
<year>1994</year>
<publisher>Gaelco</publisher>
<part name="cart" interface="gaelcods_rom">
<dataarea name="rom" width="16" endianness="big" size="0x20000">
<rom name="escopeta_2088_27c1024.bin" size="0x20000" crc="ac13d038" sha1="eb0fd071e92154c1002e9955b72bcde4cafbfb51" loadflag="load16_word_swap"/>
</dataarea>
</part>
</software>

<software name="glass" supported="no">
<description>Glass</description>
<year>1993</year>
<publisher>Gaelco</publisher>
<part name="cart" interface="gaelcods_rom">
<dataarea name="rom" width="16" endianness="big" size="0x20000">
<rom name="glass_9970_27c1024.bin" size="0x20000" crc="6cdf4f11" sha1="f6ca3421497468b925af0f5124c798e1555aa990" loadflag="load16_word_swap"/>
</dataarea>
</part>
</software>

<software name="thoop2" supported="no">
<description>TH Strikes Back</description>
<year>1994</year>
<publisher>Gaelco</publisher>
<part name="cart" interface="gaelcods_rom">
<dataarea name="rom" width="16" endianness="big" size="0x20000">
<rom name="thunder_h_6886_4-5-94_27c1024.bin" size="0x20000" crc="1074c715" sha1="3c9504ed9321f45cd0f3f9d943702d555a4d3a38" loadflag="load16_word_swap"/>
</dataarea>
</part>
</software>

<software name="touchgo" supported="no">
<description>Touch and Go</description>
<year>1995</year>
<publisher>Gaelco</publisher>
<part name="cart" interface="gaelcods_rom">
<dataarea name="rom" width="16" endianness="big" size="0x20000">
<rom name="voley_27c1024.bin" size="0x20000" crc="9fbbee8c" sha1="89ad2014efe10555a045c56cffd20004d572cc4e" loadflag="load16_word_swap"/>
</dataarea>
</part>
</software>

<software name="wrally2" supported="no">
<description>World Rally 2</description>
<year>1995</year>
<publisher>Gaelco</publisher>
<part name="cart" interface="gaelcods_rom">
<dataarea name="rom" width="16" endianness="big" size="0x20000">
<rom name="wr2_usa_cafe_31-7_27c1024.bin" size="0x20000" crc="7a1725ec" sha1="58157ebe3a27c8505843a6157243ef5acd14b670" loadflag="load16_word_swap"/>
</dataarea>
</part>
</software>

<software name="wrally2a" supported="no">
<description>World Rally 2 (older)</description>
<year>1995</year>
<publisher>Gaelco</publisher>
<part name="cart" interface="gaelcods_rom">
<dataarea name="rom" width="16" endianness="big" size="0x20000">
<rom name="wr2_b2d2_29-06_27c1024.bin" size="0x20000" crc="a5f30e85" sha1="d9a744c7cfd7e67e9bb84a0d21bfcc7f90aaa1f4" loadflag="load16_word_swap"/>
</dataarea>
</part>
</software>

<software name="goldart" supported="no">
<description>Goldart</description>
<year>1994</year>
<publisher>Gaelco</publisher>
<part name="cart" interface="gaelcods_rom">
<dataarea name="rom" width="16" endianness="big" size="0x20000">
<rom name="diana_27c1024.bin" size="0x20000" crc="20c4d1d9" sha1="067be3b3efa0f37dfb7b06d3a83452a1619933e2" loadflag="load16_word_swap"/>
</dataarea>
</part>
</software>

</softwarelist>
111 changes: 111 additions & 0 deletions src/mame/gaelco/ds5002fp_programmer.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
/******************************************************************************

Small device for programming / reprogramming the DS5002 internal SRAM
used by Gaelco (was it designed by Gaelco, or is this a standard device provided
with the DS5002?)

has a 68000 at 16Mhz and various other parts (TODO: list them)

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

#include "emu.h"

#include "cpu/m68000/m68000.h"

#include "bus/generic/slot.h"
#include "bus/generic/carts.h"

#include "softlist_dev.h"

namespace {

class ds5002fp_programmer_state : public driver_device
{
public:
ds5002fp_programmer_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_cart(*this, "cartslot")
, m_cart_region(nullptr)
{ }

void ds5002fp_programmer(machine_config &config);

private:
virtual void machine_start() override ATTR_COLD;
virtual void machine_reset() override ATTR_COLD;

uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);

DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);

void prg_map(address_map &map);

u16 cart_r(offs_t offset);

required_device<cpu_device> m_maincpu;
required_device<generic_slot_device> m_cart;
memory_region *m_cart_region;
};

void ds5002fp_programmer_state::machine_start()
{
// if there's a cart, override the standard mapping
if (m_cart && m_cart->exists())
{
std::string region_tag;
m_cart_region = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
}
}

void ds5002fp_programmer_state::machine_reset()
{
}

void ds5002fp_programmer_state::prg_map(address_map &map)
{
map(0x000000, 0x01ffff).r(FUNC(ds5002fp_programmer_state::cart_r));
}


DEVICE_IMAGE_LOAD_MEMBER(ds5002fp_programmer_state::cart_load)
{
uint32_t const size = m_cart->common_get_size("rom");

m_cart->rom_alloc(size, GENERIC_ROM16_WIDTH, ENDIANNESS_BIG);
m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");

return std::make_pair(std::error_condition(), std::string());
}

u16 ds5002fp_programmer_state::cart_r(offs_t offset)
{
return m_cart->read_rom(offset * 2) | (m_cart->read_rom((offset * 2) + 1) << 8);
}

static INPUT_PORTS_START( ds5002fp_programmer )
INPUT_PORTS_END

void ds5002fp_programmer_state::ds5002fp_programmer(machine_config &config)
{
M68000(config, m_maincpu, XTAL(32'000'000) / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &ds5002fp_programmer_state::prg_map);

GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "gaelcods_rom");
m_cart->set_width(GENERIC_ROM16_WIDTH);
m_cart->set_device_load(FUNC(ds5002fp_programmer_state::cart_load));
m_cart->set_must_be_loaded(true);

SOFTWARE_LIST(config, "cart_list").set_original("gaelco_ds5002fp_rom");
}

ROM_START( gaelcods )
ROM_REGION( 0x200000, "pals", 0 )
ROM_LOAD( "wr-2_pal16r6a-2.bin", 0x000, 0x104, CRC(4f027013) SHA1(8261665259a52f05e2682f2841fe788ec0b9e4ae) )
ROM_END

} // anonymous namespace

CONS( 1992, gaelcods, 0, 0, ds5002fp_programmer, ds5002fp_programmer, ds5002fp_programmer_state, empty_init, "Gaelco", "Gaelco DS5002FP Programmer", MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING )
3 changes: 3 additions & 0 deletions src/mame/mame.lst
Original file line number Diff line number Diff line change
Expand Up @@ -18666,6 +18666,9 @@ blmbycar
blmbycaru
watrball

@source:gaelco/ds5002fp_programmer.cpp
gaelcods

@source:gaelco/gaelco.cpp
bigkarnk
bigkarnka
Expand Down
Loading