diff --git a/hash/guab.xml b/hash/guab.xml new file mode 100644 index 00000000000..038f337375d --- /dev/null +++ b/hash/guab.xml @@ -0,0 +1,127 @@ + + + + + + + Give us a Break (3rd edition) + 1986 + JPM + + + + + + + + + Give us a Break (3rd edition alt?) + 1986 + JPM + + + + + + + + + Give us a Break (4th edition) + 1986 + JPM + + + + + + + + + Give us a Break (6th edition) + 1986 + JPM + + + + + + + + + Give us a Break (6th edition alt?) + 1986 + JPM + + + + + + + + + Give us a Break (7th edition) + 1986 + JPM + + + + + + + + + Give us a Break (21st edition) + 1986 + JPM + + + + + + + + + Give us a Break (43rd edition) + 1986 + JPM + + + + + + + + + Criss Cross (Sweden) + 1986 + JPM + + + + + + + + + Ten Up (compendium 17) + 1988 + JPM + + + + + + + + + Ten Up (compendium 3) + 1988 + JPM + + + + + + + + diff --git a/scripts/src/lib.lua b/scripts/src/lib.lua index f5a54f0dd68..b445f71a994 100644 --- a/scripts/src/lib.lua +++ b/scripts/src/lib.lua @@ -258,6 +258,8 @@ project "formats" MAME_DIR .. "src/lib/formats/g64_dsk.h", MAME_DIR .. "src/lib/formats/gtp_cas.c", MAME_DIR .. "src/lib/formats/gtp_cas.h", + MAME_DIR .. "src/lib/formats/guab_dsk.c", + MAME_DIR .. "src/lib/formats/guab_dsk.h", MAME_DIR .. "src/lib/formats/hect_dsk.c", MAME_DIR .. "src/lib/formats/hect_dsk.h", MAME_DIR .. "src/lib/formats/hect_tap.c", diff --git a/src/lib/formats/guab_dsk.c b/src/lib/formats/guab_dsk.c new file mode 100644 index 00000000000..4c92362251a --- /dev/null +++ b/src/lib/formats/guab_dsk.c @@ -0,0 +1,42 @@ +// license:GPL-2.0+ +// copyright-holders:Dirk Best +/*************************************************************************** + + JPM Give us a Break + + Disk image format + +***************************************************************************/ + +#include "guab_dsk.h" + +guab_format::guab_format() : wd177x_format(formats) +{ +} + +const char *guab_format::name() const +{ + return "guab"; +} + +const char *guab_format::description() const +{ + return "JPM Give us a Break disk image"; +} + +const char *guab_format::extensions() const +{ + return "dsk"; +} + +// gap sizes unverified +const guab_format::format guab_format::formats[] = +{ + { + floppy_image::FF_35, floppy_image::DSDD, floppy_image::MFM, + 2000, 18, 80, 2, 256, {}, 0, {}, 80, 22, 24 + }, + {} +}; + +const floppy_format_type FLOPPY_GUAB_FORMAT = &floppy_image_format_creator; diff --git a/src/lib/formats/guab_dsk.h b/src/lib/formats/guab_dsk.h new file mode 100644 index 00000000000..36280ddd88f --- /dev/null +++ b/src/lib/formats/guab_dsk.h @@ -0,0 +1,33 @@ +// license:GPL-2.0+ +// copyright-holders:Dirk Best +/*************************************************************************** + + JPM Give us a Break + + Disk image format + +***************************************************************************/ + +#pragma once + +#ifndef __GUAB_DSK_H__ +#define __GUAB_DSK_H__ + +#include "wd177x_dsk.h" + +class guab_format : public wd177x_format +{ +public: + guab_format(); + + virtual const char *name() const; + virtual const char *description() const; + virtual const char *extensions() const; + +private: + static const format formats[]; +}; + +extern const floppy_format_type FLOPPY_GUAB_FORMAT; + +#endif // __GUAB_DSK_H__ diff --git a/src/mame/arcade.lst b/src/mame/arcade.lst index 26010bebe7b..500c4447684 100644 --- a/src/mame/arcade.lst +++ b/src/mame/arcade.lst @@ -13465,16 +13465,8 @@ j2sset // JPM Give us a Break hardware guab // (c) 1986 -guab3a // (c) 1986 -guab4 // (c) 1986 -guab6 // (c) 1986 -guab6a // (c) 1986 -guab7 // (c) 1986 -guab21 // (c) 1986 -guab43 // (c) 1986 crisscrs // (c) 1986 tenup // (c) 1988 -tenup3 // (c) 1988 // JPM System 5 diff --git a/src/mame/drivers/guab.c b/src/mame/drivers/guab.c index 789fe6cf960..048937140b4 100644 --- a/src/mame/drivers/guab.c +++ b/src/mame/drivers/guab.c @@ -22,6 +22,7 @@ count gets updated in the code. Each game requires a unique security PAL - maybe this is related? I'm poking the coin values directly into RAM for now. + * Verify WD FDC type ***************************************************************************/ @@ -30,6 +31,8 @@ #include "machine/6840ptm.h" #include "video/tms34061.h" #include "sound/sn76496.h" +#include "machine/wd_fdc.h" +#include "formats/guab_dsk.h" /************************************* @@ -38,9 +41,6 @@ * *************************************/ -#define LOG_FDC_COMMANDS 0 -#define FDC_LOG(x) do { if (LOG_FDC_COMMANDS) osd_printf_debug x; } while(0) - enum int_levels { @@ -61,19 +61,6 @@ struct ef9369 }; -struct wd1770 -{ - UINT32 status; - UINT8 cmd; - UINT8 data; - - UINT32 side; - INT32 track; - INT32 sector; - UINT32 sptr; -}; - - class guab_state : public driver_device { public: @@ -82,32 +69,37 @@ public: m_maincpu(*this, "maincpu"), m_tms34061(*this, "tms34061"), m_sn(*this, "snsnd"), + m_fdc(*this, "fdc"), + m_floppy(*this, "fdc:0"), m_palette(*this, "palette") { } - /* devices */ - required_device m_maincpu; - required_device m_tms34061; - required_device m_sn; - required_device m_palette; - - struct ef9369 m_pal; - emu_timer *m_fdc_timer; - struct wd1770 m_fdc; DECLARE_WRITE_LINE_MEMBER(generate_tms34061_interrupt); DECLARE_WRITE16_MEMBER(guab_tms34061_w); DECLARE_READ16_MEMBER(guab_tms34061_r); DECLARE_WRITE16_MEMBER(ef9369_w); DECLARE_READ16_MEMBER(ef9369_r); - DECLARE_WRITE16_MEMBER(wd1770_w); - DECLARE_READ16_MEMBER(wd1770_r); + DECLARE_READ16_MEMBER(wd1773_r); + DECLARE_WRITE16_MEMBER(wd1773_w); DECLARE_READ16_MEMBER(io_r); DECLARE_WRITE16_MEMBER(io_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); DECLARE_WRITE_LINE_MEMBER(ptm_irq); - virtual void machine_start(); - virtual void machine_reset(); UINT32 screen_update_guab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - TIMER_CALLBACK_MEMBER(fdc_data_callback); + + DECLARE_FLOPPY_FORMATS(floppy_formats); + +protected: + virtual void machine_start(); + +private: + required_device m_maincpu; + required_device m_tms34061; + required_device m_sn; + required_device m_fdc; + required_device m_floppy; + required_device m_palette; + + struct ef9369 m_pal; }; @@ -275,285 +267,6 @@ UINT32 guab_state::screen_update_guab(screen_device &screen, bitmap_ind16 &bitma } -/************************************* - * - * WD1770 floppy disk controller - * (just enough to get by...) - * - *************************************/ - -#define USEC_DELAY 40 -#define DISK_SIDES 2 -#define DISK_TRACKS 80 -#define DISK_SECTORS 18 - -#define DISK_SECTOR_SIZE 256 -#define DISK_TRACK_SIZE (DISK_SECTOR_SIZE * DISK_SECTORS) -#define DISK_SIDE_SIZE (DISK_TRACK_SIZE * DISK_TRACKS) - -enum wd1770_status -{ - BUSY = 1 << 0, - DATA_REQUEST = 1 << 1, - INDEX = 1 << 1, - LOST_DATA = 1 << 2, - TRACK_00 = 1 << 2, - CRC_ERROR = 1 << 3, - RECORD_NOT_FOUND = 1 << 4, - RECORD_TYPE = 1 << 5, - SPIN_UP = 1 << 5, - WRITE_PROTECT = 1 << 6, - MOTOR_ON = 1 << 7 -}; - - -TIMER_CALLBACK_MEMBER(guab_state::fdc_data_callback) -{ - struct wd1770 &fdc = m_fdc; - UINT8* disk = (UINT8*)memregion("user1")->base(); - int more_data = 0; - - /* - Disk dumps are organised as: - - Side 0, Track 0: Sectors 0 - 17 - Side 1, Track 0: Sectors 0 - 17 - Side 0, Track 1: Sectors 0 - 17 - Side 1, Track 1: Sectors 0 - 17 - etc. - */ - - int idx = 2 * fdc.track * (DISK_TRACK_SIZE) + (fdc.side ? DISK_TRACK_SIZE : 0)+ - fdc.sector * (DISK_SECTOR_SIZE) + - fdc.sptr; - - /* Write or read? */ - if (fdc.cmd & 0x20) - disk[idx] = fdc.data; - else - fdc.data = disk[idx]; - - fdc.sptr++; - - if (fdc.sptr < DISK_SECTOR_SIZE) - { - more_data = 1; - } - else - { - fdc.sptr = 0; - - /* Multi-sector read */ - if (fdc.cmd & 0x10) - { - ++fdc.sector; - - /* Keep going */ - if (fdc.sector < DISK_SECTORS) - more_data = 1; - } - } - - if (more_data) - { - m_fdc_timer->adjust(attotime::from_usec(USEC_DELAY)); - } - else - { - /* Hack!*/ - fdc.cmd = 0; - fdc.status &= ~BUSY; - } - - fdc.status |= DATA_REQUEST; - m_maincpu->set_input_line(INT_FLOPPYCTRL, ASSERT_LINE); -} - - -WRITE16_MEMBER(guab_state::wd1770_w) -{ - struct wd1770 &fdc = m_fdc; - data &= 0xff; - - switch (offset) - { - case 0: - { - UINT8 cmd = (data >> 4) & 0xf; - - FDC_LOG(("Command: %x:: ", data)); - - switch (cmd) - { - /**** Type I ****/ - case 0: - { - FDC_LOG(("Restore\n")); - fdc.track = 0; - break; - } - - case 1: - { - FDC_LOG(("Seek to track %d\n", fdc.data)); - fdc.track = fdc.data; - break; - } - - /* Step */ - case 2: - case 3: - { - FDC_LOG(("Step (not implemented)\n")); - break; - } - - case 4: case 5: - { - if (++fdc.track >= DISK_TRACKS) - fdc.track = DISK_TRACKS - 1; - - FDC_LOG(("Step-in to track %d\n", fdc.track)); - break; - } - - case 6: case 7: - { - if (--fdc.track > 0) - fdc.track = 0; - - FDC_LOG(("Step-out to track %d\n", fdc.track)); - break; - } - - - /**** Type II ****/ - case 8: - case 9: - { - fdc.cmd = data; - fdc.status |= BUSY; - - if (data & 0x10) - FDC_LOG(("Multi ")); - - FDC_LOG(("Sector read: H%d T%d S%d\n", fdc.side, - fdc.track, - fdc.sector)); - - /* Set the data read timer */ - m_fdc_timer->adjust(attotime::from_usec(USEC_DELAY)); - - break; - } - - case 10: - case 11: - { - fdc.cmd = data; - fdc.status |= BUSY; - - if (data & 0x10) - FDC_LOG(("Multi ")); - - FDC_LOG(("Sector write: H%d T%d S%d\n", fdc.side, - fdc.track, - fdc.sector)); - - /* Trigger a DRQ interrupt on the CPU */ - m_maincpu->set_input_line(INT_FLOPPYCTRL, ASSERT_LINE); - fdc.status |= DATA_REQUEST; - break; - } - - /**** Type III ****/ - case 12: /* Read address */ - case 14: /* Read track */ - case 15: /* Write track */ - { - FDC_LOG(("Unsupported TYPE III operation\n")); - break; - } - - /**** Type IV ****/ - case 13: - { - /* Stop any operation in progress */ - m_fdc_timer->reset(); - fdc.status &= ~BUSY; - FDC_LOG(("Force Interrupt\n")); - break; - } - } - - break; - } - case 1: - { - FDC_LOG(("Set track: %d\n", data)); - fdc.track = data; - break; - } - case 2: - { - FDC_LOG(("Set sector: %d\n", data)); - fdc.sector = data; - fdc.sptr = 0; - break; - } - case 3: - { - fdc.data = data; - - /* Clear the DRQ */ - m_maincpu->set_input_line(INT_FLOPPYCTRL, CLEAR_LINE); - - /* Queue an event to write the data if write command was specified */ - if (fdc.cmd & 0x20) - m_fdc_timer->adjust(attotime::from_usec(USEC_DELAY)); - - break; - } - } -} - -READ16_MEMBER(guab_state::wd1770_r) -{ - struct wd1770 &fdc = m_fdc; - UINT16 retval = 0; - - switch (offset) - { - case 0: - { - retval = fdc.status; - break; - } - case 1: - { - retval = fdc.track; - break; - } - case 2: - { - retval = fdc.sector; - break; - } - case 3: - { - retval = fdc.data; - - /* Clear the DRQ */ - m_maincpu->set_input_line(INT_FLOPPYCTRL, CLEAR_LINE); - fdc.status &= ~DATA_REQUEST; - break; - } - } - - return retval; -} - - /**************************************** * * Hardware inputs (coins, buttons etc) @@ -604,9 +317,18 @@ INPUT_CHANGED_MEMBER(guab_state::coin_inserted) * ****************************************/ +READ16_MEMBER( guab_state::wd1773_r ) +{ + return m_fdc->read(space, offset); +} + +WRITE16_MEMBER( guab_state::wd1773_w ) +{ + m_fdc->write(space, offset, data & 0xff); +} + WRITE16_MEMBER(guab_state::io_w) { - struct wd1770 &fdc = m_fdc; switch (offset) { case 0x10: @@ -647,7 +369,10 @@ WRITE16_MEMBER(guab_state::io_w) case 0x31: { /* Only JPM knows about the other bits... */ - fdc.side = (data >> 3) & 1; + m_floppy->get_device()->ss_w(BIT(data, 3)); + + // one of those bits will probably control the motor, we just let it run all the time for now + m_floppy->get_device()->mon_w(0); break; } case 0x32: @@ -681,7 +406,7 @@ static ADDRESS_MAP_START( guab_map, AS_PROGRAM, 16, guab_state ) AM_RANGE(0x0c0080, 0x0c0083) AM_NOP /* ACIA 1 */ AM_RANGE(0x0c00a0, 0x0c00a3) AM_NOP /* ACIA 2 */ AM_RANGE(0x0c00c0, 0x0c00cf) AM_DEVREADWRITE8("6840ptm", ptm6840_device, read, write, 0xff) - AM_RANGE(0x0c00e0, 0x0c00e7) AM_READWRITE(wd1770_r, wd1770_w) + AM_RANGE(0x0c00e0, 0x0c00e7) AM_READWRITE(wd1773_r, wd1773_w) AM_RANGE(0x080000, 0x080fff) AM_RAM AM_RANGE(0x100000, 0x100003) AM_READWRITE(ef9369_r, ef9369_w) AM_RANGE(0x800000, 0xb0ffff) AM_READWRITE(guab_tms34061_r, guab_tms34061_w) @@ -770,20 +495,22 @@ INPUT_PORTS_END void guab_state::machine_start() { - m_fdc_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(guab_state::fdc_data_callback),this)); + m_fdc->set_floppy(m_floppy->get_device()); } -void guab_state::machine_reset() -{ - memset(&m_fdc, 0, sizeof(m_fdc)); -} +FLOPPY_FORMATS_MEMBER( guab_state::floppy_formats ) + FLOPPY_GUAB_FORMAT +FLOPPY_FORMATS_END + +static SLOT_INTERFACE_START( guab_floppies ) + SLOT_INTERFACE("dd", FLOPPY_35_DD) +SLOT_INTERFACE_END static MACHINE_CONFIG_START( guab, guab_state ) /* TODO: Verify clock */ MCFG_CPU_ADD("maincpu", M68000, 8000000) MCFG_CPU_PROGRAM_MAP(guab_map) - /* TODO: Use real video timings */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -811,6 +538,15 @@ static MACHINE_CONFIG_START( guab, guab_state ) MCFG_PTM6840_INTERNAL_CLOCK(1000000) MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0) MCFG_PTM6840_IRQ_CB(WRITELINE(guab_state, ptm_irq)) + + // floppy + MCFG_WD1773_ADD("fdc", 8000000) + MCFG_WD_FDC_DRQ_CALLBACK(INPUTLINE("maincpu", INT_FLOPPYCTRL)) + + MCFG_FLOPPY_DRIVE_ADD("fdc:0", guab_floppies, "dd", guab_state::floppy_formats) + MCFG_SLOT_FIXED(true) + + MCFG_SOFTWARE_LIST_ADD("floppy_list", "guab") MACHINE_CONFIG_END @@ -826,95 +562,12 @@ ROM_START( guab ) ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) ) ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) ) ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) ) - - ROM_REGION( 0xb4000, "user1", 0 ) - ROM_LOAD( "guab3.dsk", 0x00000, 0xb4000, CRC(ecb41e06) SHA1(2900a95046b38312c6035ea394b04b62c1d29f42) ) -ROM_END - -ROM_START( guab3a ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) ) - ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) ) - ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) ) - ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) ) - - ROM_REGION( 0xb4000, "user1", 0 ) - ROM_LOAD( "guab7c.dsk", 0x00000, 0xb4000, CRC(f5f10f87) SHA1(80e540339efbfe59b656d6cd4f466a17df84c123) ) -ROM_END - -ROM_START( guab4 ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) ) - ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) ) - ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) ) - ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) ) - - ROM_REGION( 0xb4000, "user1", 0 ) - ROM_LOAD( "guab8d.dsk", 0x00000, 0xb4000, CRC(b87c55ce) SHA1(20debbefae194276b0813518634cf52bed093e73) ) -ROM_END - -ROM_START( guab6 ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) ) - ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) ) - ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) ) - ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) ) - - ROM_REGION( 0xb4000, "user1", 0 ) - ROM_LOAD( "guabf6.dsk", 0x00000, 0xb4000, CRC(08804c28) SHA1(608d89d598b7acb133814540dba98cea29c6cad6) ) -ROM_END - -ROM_START( guab6a ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) ) - ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) ) - ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) ) - ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) ) - - ROM_REGION( 0xb4000, "user1", 0 ) - ROM_LOAD( "guab9f.dsk", 0x00000, 0xb4000, CRC(85329fe9) SHA1(f5ca1956c37b786fa0a4f8f0607a0a2b19d3fbb0) ) -ROM_END - -ROM_START( guab7 ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) ) - ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) ) - ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) ) - ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) ) - - ROM_REGION( 0xb4000, "user1", 0 ) - ROM_LOAD( "guab9g.dsk", 0x00000, 0xb4000, CRC(6b8c36f9) SHA1(1d9f4d943f2962603bbe39e5b58befe15954a6d6) ) -ROM_END - -ROM_START( guab21 ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) ) - ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) ) - ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) ) - ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) ) - - ROM_REGION( 0xb4000, "user1", 0 ) - ROM_LOAD( "guab21.dsk", 0x00000, 0xb4000, CRC(558ee009) SHA1(d2a02662216e10f80a215044f1929df7255b6136) ) -ROM_END - -ROM_START( guab43 ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) ) - ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) ) - ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) ) - ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) ) - - ROM_REGION( 0xb4000, "user1", 0 ) - ROM_LOAD( "guab43.dsk", 0x00000, 0xb3f00, CRC(96167357) SHA1(9d5f66e05ed1086be9699c4149071038f6986e0c) ) ROM_END ROM_START( crisscrs ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD16_BYTE( "crisscross_swe_2a1.ic49", 0x00000, 0x8000, CRC(a7ca8828) SHA1(a28482bb2bc1248a9b5c0b57904c382246a632cc) ) ROM_LOAD16_BYTE( "crisscross_swe_2b1.ic48", 0x00001, 0x8000, CRC(7e280cae) SHA1(18c76459e39549ddba5f0cd7921013ef4f816826) ) - - ROM_REGION( 0xb4000, "user1", 0 ) - ROM_LOAD( "crisscrs.dsk", 0x00000, 0xb4000, NO_DUMP ) ROM_END ROM_START( tenup ) @@ -923,20 +576,6 @@ ROM_START( tenup ) ROM_LOAD16_BYTE( "tu-12.bin", 0x00001, 0x8000, CRC(1c7f32b1) SHA1(2b14e2206695ae53909ae838a5c036248d9ab940) ) ROM_LOAD16_BYTE( "tu-13.bin", 0x10000, 0x8000, CRC(d19e2bf7) SHA1(76a9cbd4f604ad39eb0e319a9a6d5a6739b0ed8c) ) ROM_LOAD16_BYTE( "tu-14.bin", 0x10001, 0x8000, CRC(fd8a0c3c) SHA1(f87289ce6f0d2bc9b7d3a0b6deff38ba3aadf391) ) - - ROM_REGION( 0xb4000, "user1", 0 ) - ROM_LOAD( "10up17.dsk", 0x00000, 0xb4000, CRC(7bc328df) SHA1(5f8e40d8ffc370fb19be9e386befa5fcd1f35a75) ) -ROM_END - -ROM_START( tenup3 ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "tu-11.bin", 0x00000, 0x8000, CRC(01843086) SHA1(106a226900e8cf929f89edf801c627f02e4afce3) ) - ROM_LOAD16_BYTE( "tu-12.bin", 0x00001, 0x8000, CRC(1c7f32b1) SHA1(2b14e2206695ae53909ae838a5c036248d9ab940) ) - ROM_LOAD16_BYTE( "tu-13.bin", 0x10000, 0x8000, CRC(d19e2bf7) SHA1(76a9cbd4f604ad39eb0e319a9a6d5a6739b0ed8c) ) - ROM_LOAD16_BYTE( "tu-14.bin", 0x10001, 0x8000, CRC(fd8a0c3c) SHA1(f87289ce6f0d2bc9b7d3a0b6deff38ba3aadf391) ) - - ROM_REGION( 0xb4000, "user1", 0 ) - ROM_LOAD( "10up3.dsk", 0x00000, 0xb4000, CRC(2767f017) SHA1(1c6551b089c3e3df48e0c03bd502b91fd88f0e94) ) ROM_END @@ -946,14 +585,6 @@ ROM_END * *************************************/ -GAME( 1986, guab, 0, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (3rd edition)", 0 ) -GAME( 1986, guab3a, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (3rd edition alt?)", 0 ) -GAME( 1986, guab4, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (4th edition)", 0 ) -GAME( 1986, guab6, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (6th edition)", 0 ) -GAME( 1986, guab6a, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (6th edition alt?)", 0 ) -GAME( 1986, guab7, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (7th edition)", 0 ) -GAME( 1986, guab21, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (21st edition)", 0 ) -GAME( 1986, guab43, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (43rd edition)", 0 ) -GAME( 1986, crisscrs, 0, guab, guab, driver_device, 0, ROT0, "JPM", "Criss Cross (Sweden)", GAME_NOT_WORKING ) -GAME( 1988, tenup, 0, guab, tenup, driver_device, 0, ROT0, "JPM", "Ten Up (compendium 17)", 0 ) -GAME( 1988, tenup3, tenup, guab, tenup, driver_device, 0, ROT0, "JPM", "Ten Up (compendium 3)", 0 ) +GAME( 1986, guab, 0, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break", 0 ) +GAME( 1986, crisscrs, 0, guab, guab, driver_device, 0, ROT0, "JPM", "Criss Cross (Sweden)", GAME_NOT_WORKING ) +GAME( 1988, tenup, 0, guab, tenup, driver_device, 0, ROT0, "JPM", "Ten Up", 0 )