From 8c294708eb8226524f119d23dc6fe7fa1fd6cf19 Mon Sep 17 00:00:00 2001 From: dankan1890 Date: Tue, 1 Mar 2016 02:17:48 +0100 Subject: [PATCH 1/5] selgame: improved ROM-less and availability checking at startup. (nw) --- src/emu/ui/selgame.cpp | 70 ++++++++++++++++++++++++++++++++++++------ src/emu/ui/selsoft.cpp | 1 + 2 files changed, 61 insertions(+), 10 deletions(-) diff --git a/src/emu/ui/selgame.cpp b/src/emu/ui/selgame.cpp index 56676dc6b05..a108f15fb22 100644 --- a/src/emu/ui/selgame.cpp +++ b/src/emu/ui/selgame.cpp @@ -660,26 +660,75 @@ void ui_menu_select_game::build_available_list() // now check and include NONE_NEEDED for (int x = 0; x < m_total; ++x) - if (!m_included[x]) + { + const game_driver *driver = &driver_list::driver(x); + if (!m_included[x] && driver != &GAME_NAME(___empty)) { - if (&driver_list::driver(x) == &GAME_NAME(___empty)) - continue; - - const rom_entry *rom = driver_list::driver(x).rom; + const rom_entry *rom = driver->rom; bool noroms = true; - for (; !ROMENTRY_ISEND(rom); ++rom) - if (!ROMENTRY_ISREGION(rom)) + + // check NO-DUMP + for (; !ROMENTRY_ISEND(rom) && noroms == true; ++rom) + if (ROMENTRY_ISFILE(rom)) { - noroms = false; - break; + hash_collection hashes(ROM_GETHASHDATA(rom)); + if (!hashes.flag(hash_collection::FLAG_NO_DUMP) && !ROM_ISOPTIONAL(rom)) + noroms = false; } - + + if (!noroms) + { + // check if clone == parent + int cx = driver_list::clone(*driver); + if (cx != -1 && m_included[cx]) + { + const game_driver *drv = &driver_list::driver(cx); + if (strcmp(drv->name, "natodef") == 0) + noroms = false; + const rom_entry *parentrom = drv->rom; + if ((rom = driver->rom) == parentrom) + noroms = true; + + // check if clone < parent + if (!noroms) + { + noroms = true; + for (; !ROMENTRY_ISEND(rom) && noroms == true; ++rom) + { + if (ROMENTRY_ISFILE(rom)) + { + hash_collection hashes(ROM_GETHASHDATA(rom)); + if (hashes.flag(hash_collection::FLAG_NO_DUMP) || ROM_ISOPTIONAL(rom)) + continue; + + UINT64 lenght = ROM_GETLENGTH(rom); + bool found = false; + for (parentrom = drv->rom; !ROMENTRY_ISEND(parentrom) && found == false; ++parentrom) + { + if (ROMENTRY_ISFILE(parentrom) && ROM_GETLENGTH(parentrom) == lenght) + { + hash_collection parenthashes(ROM_GETHASHDATA(parentrom)); + if (parenthashes.flag(hash_collection::FLAG_NO_DUMP) || ROM_ISOPTIONAL(parentrom)) + continue; + + if (hashes == parenthashes) + found = true; + } + } + noroms = found; + } + } + } + } + } + if (noroms) { m_availsortedlist.push_back(&driver_list::driver(x)); m_included[x] = true; } } + } // sort std::stable_sort(m_availsortedlist.begin(), m_availsortedlist.end(), sort_game_list); @@ -2259,6 +2308,7 @@ void ui_menu_select_game::arts_render(void *selectedref, float origx1, float ori if (driver != olddriver || !snapx_bitmap->valid() || ui_globals::switch_image) { emu_file snapfile(searchstr.c_str(), OPEN_FLAG_READ); + snapfile.set_restrict_to_mediapath(true); bitmap_argb32 *tmp_bitmap; tmp_bitmap = auto_alloc(machine(), bitmap_argb32); diff --git a/src/emu/ui/selsoft.cpp b/src/emu/ui/selsoft.cpp index bb41265a9fd..2c8fa5135ea 100644 --- a/src/emu/ui/selsoft.cpp +++ b/src/emu/ui/selsoft.cpp @@ -1709,6 +1709,7 @@ void ui_menu_select_software::arts_render(void *selectedref, float origx1, float if (driver != olddriver || !snapx_bitmap->valid() || ui_globals::switch_image) { emu_file snapfile(searchstr.c_str(), OPEN_FLAG_READ); + snapfile.set_restrict_to_mediapath(true); bitmap_argb32 *tmp_bitmap; tmp_bitmap = auto_alloc(machine(), bitmap_argb32); From dbe46f8a527ef4c433a20c2946a7bf76ceea9596 Mon Sep 17 00:00:00 2001 From: dankan1890 Date: Tue, 1 Mar 2016 03:02:20 +0100 Subject: [PATCH 2/5] selgame: test code elimination. (nw) --- src/emu/ui/selgame.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/emu/ui/selgame.cpp b/src/emu/ui/selgame.cpp index a108f15fb22..34fdab6d64e 100644 --- a/src/emu/ui/selgame.cpp +++ b/src/emu/ui/selgame.cpp @@ -683,8 +683,6 @@ void ui_menu_select_game::build_available_list() if (cx != -1 && m_included[cx]) { const game_driver *drv = &driver_list::driver(cx); - if (strcmp(drv->name, "natodef") == 0) - noroms = false; const rom_entry *parentrom = drv->rom; if ((rom = driver->rom) == parentrom) noroms = true; From c5426670a4f3b6dc7a98cb0061c240dfc8e5e34f Mon Sep 17 00:00:00 2001 From: MoochMcGee Date: Mon, 29 Feb 2016 20:30:28 -0600 Subject: [PATCH 3/5] Fix an SDL compile bug --- src/osd/sdl/sdlfile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/osd/sdl/sdlfile.cpp b/src/osd/sdl/sdlfile.cpp index 9b7e9b72657..832b29e0986 100644 --- a/src/osd/sdl/sdlfile.cpp +++ b/src/osd/sdl/sdlfile.cpp @@ -383,7 +383,7 @@ file_error osd_fflush(osd_file *file) switch (file->type) { case SDLFILE_FILE: - result = fflush(file->handle, offset); + result = fflush(file->handle); if (result == EOF) return error_to_file_error(errno); return FILERR_NONE; From 5cc9973a0aec22600ba118eb60a1603c7d471ee4 Mon Sep 17 00:00:00 2001 From: Brad Hughes Date: Mon, 29 Feb 2016 11:47:29 -0500 Subject: [PATCH 4/5] Add XInput support for Windows OSD --- scripts/src/osd/modules.lua | 1 + scripts/src/osd/windows.lua | 1 + src/osd/modules/input/input_xinput.cpp | 290 +++++++++++++++++++++++++ src/osd/modules/lib/osdobj_common.cpp | 1 + 4 files changed, 293 insertions(+) create mode 100644 src/osd/modules/input/input_xinput.cpp diff --git a/scripts/src/osd/modules.lua b/scripts/src/osd/modules.lua index 6be181c46a8..18a709784f8 100644 --- a/scripts/src/osd/modules.lua +++ b/scripts/src/osd/modules.lua @@ -82,6 +82,7 @@ function osdmodulesbuild() MAME_DIR .. "src/osd/modules/input/input_x11.cpp", MAME_DIR .. "src/osd/modules/input/input_windows.cpp", MAME_DIR .. "src/osd/modules/input/input_windows.h", + MAME_DIR .. "src/osd/modules/input/input_xinput.cpp", } if _OPTIONS["targetos"]=="windows" then diff --git a/scripts/src/osd/windows.lua b/scripts/src/osd/windows.lua index 950e15d1e46..7ff677eb1ba 100644 --- a/scripts/src/osd/windows.lua +++ b/scripts/src/osd/windows.lua @@ -46,6 +46,7 @@ function maintargetosdoptions(_target,_subtarget) "comctl32", "comdlg32", "psapi", + "xinput", } end diff --git a/src/osd/modules/input/input_xinput.cpp b/src/osd/modules/input/input_xinput.cpp new file mode 100644 index 00000000000..292f9ee5d35 --- /dev/null +++ b/src/osd/modules/input/input_xinput.cpp @@ -0,0 +1,290 @@ +// license:BSD-3-Clause +// copyright-holders:Brad Hughes +//============================================================ +// +// input_xinput.cpp - XInput API input support for Windows +// +//============================================================ + +#include "input_module.h" +#include "modules/osdmodule.h" + +#if defined(OSD_WINDOWS) + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include + +// XInput header +#include + +#undef interface + +// MAME headers +#include "emu.h" +#include "osdepend.h" +#include "ui/ui.h" + +// MAMEOS headers +#include "winmain.h" +#include "window.h" + +#include "input_common.h" +#include "input_windows.h" + +#define XINPUT_MAX_POV 4 +#define XINPUT_MAX_BUTTONS 10 +#define XINPUT_MAX_AXIS 4 + +#define XINPUT_AXIS_MINVALUE -32767 +#define XINPUT_AXIS_MAXVALUE 32767 + +// default axis names +static const char *const xinput_axis_name[] = +{ + "LSX", + "LSY", + "RSX", + "RSY" +}; + +static const input_item_id xinput_axis_ids[] = +{ + ITEM_ID_XAXIS, + ITEM_ID_YAXIS, + ITEM_ID_RXAXIS, + ITEM_ID_RYAXIS +}; + +static const USHORT xinput_pov_dir[] = { + XINPUT_GAMEPAD_DPAD_UP, + XINPUT_GAMEPAD_DPAD_DOWN, + XINPUT_GAMEPAD_DPAD_LEFT, + XINPUT_GAMEPAD_DPAD_RIGHT +}; + +static const char *const xinput_pov_names[] = { + "DPAD Up", + "DPAD Down", + "DPAD Left", + "DPAD Right" +}; + +static const USHORT xinput_buttons[] = { + XINPUT_GAMEPAD_A, + XINPUT_GAMEPAD_B, + XINPUT_GAMEPAD_X, + XINPUT_GAMEPAD_Y, + XINPUT_GAMEPAD_LEFT_SHOULDER, + XINPUT_GAMEPAD_RIGHT_SHOULDER, + XINPUT_GAMEPAD_START, + XINPUT_GAMEPAD_BACK, + XINPUT_GAMEPAD_LEFT_THUMB, + XINPUT_GAMEPAD_RIGHT_THUMB, +}; + +static const char *const xinput_button_names[] = { + "A", + "B", + "X", + "Y", + "Left Shoulder", + "Right Shoulder", + "Start", + "Back", + "Left Thumb", + "Right Thumb" +}; + +struct gamepad_state +{ + BYTE rgbButtons[XINPUT_MAX_BUTTONS]; + BYTE rgbPov[XINPUT_MAX_POV]; + BYTE bLeftTrigger; + BYTE bRightTrigger; + LONG sThumbLX; + LONG sThumbLY; + LONG sThumbRX; + LONG sThumbRY; +}; + +// state information for a gamepad; state must be first element +struct xinput_api_state +{ + UINT32 playerIndex; + XINPUT_STATE xstate; + XINPUT_CAPABILITIES caps; +}; + +//============================================================ +// xinput_joystick_device +//============================================================ + +class xinput_joystick_device : public device_info +{ +public: + gamepad_state gamepad; + xinput_api_state xinput_state; + + xinput_joystick_device(running_machine &machine, const char *name, input_module &module) + : device_info(machine, name, DEVICE_CLASS_JOYSTICK, module), + gamepad({0}), + xinput_state({0}) + { + } + + void poll() override + { + // poll the device first + HRESULT result = XInputGetState(xinput_state.playerIndex, &xinput_state.xstate); + + // If we can't poll the device, skip + if (FAILED(result)) + return; + + // Copy the XState into State + // Start with the POV (DPAD) + for (int povindex = 0; povindex < XINPUT_MAX_POV; povindex++) + { + int currentPov = xinput_pov_dir[povindex]; + gamepad.rgbPov[currentPov] = (xinput_state.xstate.Gamepad.wButtons & currentPov) ? 0xFF : 0; + } + + // Now do the buttons + for (int buttonindex = 0; buttonindex < XINPUT_MAX_BUTTONS; buttonindex++) + { + int currentButton = xinput_buttons[buttonindex]; + gamepad.rgbButtons[buttonindex] = (xinput_state.xstate.Gamepad.wButtons & currentButton) ? 0xFF : 0; + } + + // Now grab the axis values + // Each of the thumbstick axis members is a signed value between -32768 and 32767 describing the position of the thumbstick + // However, the Y axis values are inverted from what MAME expects, so multiply by -1 first + gamepad.sThumbLX = normalize_absolute_axis(xinput_state.xstate.Gamepad.sThumbLX, XINPUT_AXIS_MINVALUE, XINPUT_AXIS_MAXVALUE); + gamepad.sThumbLY = normalize_absolute_axis(xinput_state.xstate.Gamepad.sThumbLY * -1, XINPUT_AXIS_MINVALUE, XINPUT_AXIS_MAXVALUE); + gamepad.sThumbRX = normalize_absolute_axis(xinput_state.xstate.Gamepad.sThumbRX, XINPUT_AXIS_MINVALUE, XINPUT_AXIS_MAXVALUE); + gamepad.sThumbRY = normalize_absolute_axis(xinput_state.xstate.Gamepad.sThumbRY * -1, XINPUT_AXIS_MINVALUE, XINPUT_AXIS_MAXVALUE); + + // Now the triggers + gamepad.bLeftTrigger = xinput_state.xstate.Gamepad.bLeftTrigger; + gamepad.bRightTrigger = xinput_state.xstate.Gamepad.bRightTrigger; + } + + void reset() override + { + memset(&gamepad, 0, sizeof(gamepad)); + } +}; + +//============================================================ +// xinput_joystick_module +//============================================================ + +class xinput_joystick_module : public wininput_module +{ +public: + xinput_joystick_module() + : wininput_module(OSD_JOYSTICKINPUT_PROVIDER, "xinput") + { + } + +protected: + virtual void input_init(running_machine &machine) override + { + xinput_joystick_device *devinfo; + + // Loop through each gamepad to determine if they are connected + for (UINT i = 0; i < XUSER_MAX_COUNT; i++) + { + XINPUT_STATE state = {0}; + + if (XInputGetState(i, &state) == ERROR_SUCCESS) + { + // allocate and link in a new device + devinfo = create_xinput_device(machine, i); + if (devinfo == nullptr) + continue; + + // Add the axes + for (int i = 0; i < XINPUT_MAX_AXIS; i++) + { + devinfo->device()->add_item( + xinput_axis_name[i], + xinput_axis_ids[i], + generic_axis_get_state, + &devinfo->gamepad.sThumbLX + i); + } + + // Populate the POVs + // For XBOX, we treat the DPAD as a hat switch + for (int povnum = 0; povnum < XINPUT_MAX_POV; povnum++) + { + devinfo->device()->add_item( + xinput_pov_names[povnum], + ITEM_ID_OTHER_SWITCH, + generic_button_get_state, + &devinfo->gamepad.rgbPov[povnum]); + } + + // populate the buttons + for (int butnum = 0; butnum < XINPUT_MAX_BUTTONS; butnum++) + { + devinfo->device()->add_item( + xinput_button_names[butnum], + (input_item_id)(ITEM_ID_BUTTON1 + butnum), + generic_button_get_state, + &devinfo->gamepad.rgbButtons[butnum]); + } + + devinfo->device()->add_item( + "Left Trigger", + (input_item_id)(ITEM_ID_BUTTON1 + XINPUT_MAX_BUTTONS), + generic_button_get_state, + &devinfo->gamepad.bLeftTrigger); + + devinfo->device()->add_item( + "Right Trigger", + (input_item_id)(ITEM_ID_BUTTON1 + XINPUT_MAX_BUTTONS + 1), + generic_button_get_state, + &devinfo->gamepad.bRightTrigger); + } + } + } + + private: + //============================================================ + // create_xinput_device + //============================================================ + + xinput_joystick_device * create_xinput_device(running_machine &machine, UINT index) + { + xinput_joystick_device *devinfo; + + XINPUT_CAPABILITIES caps = {0}; + if (FAILED(XInputGetCapabilities(index, 0, &caps))) + { + // If we can't get the capabilities skip this device + return nullptr; + } + + char device_name[16]; + snprintf(device_name, sizeof(device_name), "XInput Player %u", index + 1); + + // allocate the device object + devinfo = devicelist()->create_device(machine, device_name, *this); + + // Set the player ID + devinfo->xinput_state.playerIndex = index; + + // Assign the caps we captured earlier + devinfo->xinput_state.caps = caps; + + return devinfo; + } +}; + +#else +MODULE_NOT_SUPPORTED(xinput_joystick_module, OSD_KEYBOARDINPUT_PROVIDER, "xinput") +#endif + +MODULE_DEFINITION(JOYSTICKINPUT_XINPUT, xinput_joystick_module) \ No newline at end of file diff --git a/src/osd/modules/lib/osdobj_common.cpp b/src/osd/modules/lib/osdobj_common.cpp index 277dc4ef692..be9590087c9 100644 --- a/src/osd/modules/lib/osdobj_common.cpp +++ b/src/osd/modules/lib/osdobj_common.cpp @@ -235,6 +235,7 @@ void osd_common_t::register_options() REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_SDL); REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_DINPUT); + REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_XINPUT); REGISTER_MODULE(m_mod_man, JOYSTICK_NONE); // after initialization we know which modules are supported From 27a6f3991f7cacb97f0c9ed7ce3805afb84e5f27 Mon Sep 17 00:00:00 2001 From: RobertoFresca Date: Tue, 1 Mar 2016 00:24:21 -0300 Subject: [PATCH 5/5] Reparent all sets of IGS Jingle Bell. Added technical information about the hardware [Roberto Fresca] --- src/mame/arcade.lst | 10 +- src/mame/drivers/igs009.cpp | 246 ++++++++++++++++++++---------------- 2 files changed, 144 insertions(+), 112 deletions(-) diff --git a/src/mame/arcade.lst b/src/mame/arcade.lst index d8d9b880961..66379683474 100644 --- a/src/mame/arcade.lst +++ b/src/mame/arcade.lst @@ -10129,11 +10129,11 @@ aliencha // (c) 1994 alienchac // (c) 1994 // IGS009 Games -jingbell // (c) 1995? -jingbella // (c) 1995? -jingbellb // (c) 1995? -jingbellc // (c) 1995? -jingbelld // (c) 1995? +jingbell // (c) 1997 +jingbella // (c) 1997 +jingbellb // (c) 1997 +jingbellc // (c) 1995 +jingbelli // (c) 1995? gp98 // (c) 1998 // IGS011 Games diff --git a/src/mame/drivers/igs009.cpp b/src/mame/drivers/igs009.cpp index cb462a28569..96fb1c164e0 100644 --- a/src/mame/drivers/igs009.cpp +++ b/src/mame/drivers/igs009.cpp @@ -860,9 +860,142 @@ static MACHINE_CONFIG_DERIVED( gp98, jingbell ) MACHINE_CONFIG_END +/*************************************************************************** + + Jingle Bell + IGS, 1997. + + English versions. + + 1x HD64180RP8 (u18) + 2x NEC D8255AC-2 (u19, u20) + 1x custom IGS 009 F56D 246 (u22) + 1x YM2413 (u45) + 1x AR17961-AP0640 (u46)(sound equivalent to OKI M6295) + + 4x 27C512 (1, 2, 3, V) + 3x 27C2001 (4, 5, 6) + 1x 27C256 (7) + 1x 27C1001 (sp) + + 1x UMC UM6264B-10L (u42) + 2x UMC UM6164DK-12 (u1, u2) + + 1x crystal 12.000 MHz. + 1x crystal 3.579545 MHz. + + 1x 38x2 edge connector. + 2x 10x2 edge connectors. + 1x switch. + 1x 3.6 V. lithium battery. + 5x 8 DIP switches banks. + +***************************************************************************/ + +/* Jingle Bells (V157 US) + Original IGS. + For amusement. +*/ +ROM_START( jingbell ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "27c512_v157_us.u44", 0x00000, 0x10000, CRC(37f95b60) SHA1(db2022802ce553ce7a0e8403408f3194b2f10007) ) + + ROM_REGION( 0x8000, "data", 0 ) + ROM_LOAD( "27c256_v157_us.u43", 0x0000, 0x8000, CRC(a7affa15) SHA1(f9d33e32b57ad267d383e075663994e0af0b3016) ) + + ROM_REGION( 0x30000, "reels", 0 ) + ROM_LOAD( "27c512_v157_us.u17", 0x00000, 0x10000, CRC(cadd7910) SHA1(aa514ddb29c8c9a77478d56bea4ae71995fdd518) ) + ROM_LOAD( "27c512_v157_us.u16", 0x10000, 0x10000, CRC(a9e1f5aa) SHA1(68d7f4e9e9a5bbce0904e406ee6fe82e9e52a9ba) ) + ROM_LOAD( "27c512_v157_us.u15", 0x20000, 0x10000, CRC(865b7d3a) SHA1(c1dff3a27d747ee499aaee0c4468534f0249a3e5) ) + + ROM_REGION( 0xc0000, "tiles", 0 ) + ROM_LOAD( "27c2001_v157_us.u25", 0x00000, 0x40000, CRC(daa56ce5) SHA1(4f14a8efac16b03bd14dd26d586bcb8d5bef65c1) ) + ROM_LOAD( "27c2001_v157_us.u24", 0x40000, 0x40000, CRC(b10b38e1) SHA1(397b2d899e47c6249fbbb6e6262d0390d9b796e6) ) + ROM_LOAD( "27c2001_v157_us.u23", 0x80000, 0x40000, CRC(a3304b5a) SHA1(bf51cb1f728758d50ce27275aa19ef649f6b34b9) ) + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD( "mx29f001t_v157_us_sp.u38", 0x00000, 0x20000, CRC(a42d73b1) SHA1(93157e9630d5c8bb34c71186415d0aa8c5d51951) ) +ROM_END + +/* Jingle Bells (V155 EU) + Original IGS. + For amusement. +*/ +ROM_START( jingbella ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "27c512_v155.u44", 0x00000, 0x10000, CRC(0813d12b) SHA1(4c35b656d1e54619bbfd26cbc017eba336e6abda) ) + + ROM_REGION( 0x8000, "data", 0 ) + ROM_LOAD( "27c256_v155.u43", 0x0000, 0x8000, CRC(a7affa15) SHA1(f9d33e32b57ad267d383e075663994e0af0b3016) ) + + ROM_REGION( 0x30000, "reels", 0 ) + ROM_LOAD( "27c512_v155.u17", 0x00000, 0x10000, CRC(cadd7910) SHA1(aa514ddb29c8c9a77478d56bea4ae71995fdd518) ) + ROM_LOAD( "27c512_v155.u16", 0x10000, 0x10000, CRC(a9e1f5aa) SHA1(68d7f4e9e9a5bbce0904e406ee6fe82e9e52a9ba) ) + ROM_LOAD( "27c512_v155.u15", 0x20000, 0x10000, CRC(865b7d3a) SHA1(c1dff3a27d747ee499aaee0c4468534f0249a3e5) ) + + ROM_REGION( 0xc0000, "tiles", 0 ) + ROM_LOAD( "27c2001_v155.u25", 0x00000, 0x40000, CRC(daa56ce5) SHA1(4f14a8efac16b03bd14dd26d586bcb8d5bef65c1) ) + ROM_LOAD( "27c2001_v155.u24", 0x40000, 0x40000, CRC(b10b38e1) SHA1(397b2d899e47c6249fbbb6e6262d0390d9b796e6) ) + ROM_LOAD( "27c2001_v155.u23", 0x80000, 0x40000, CRC(a3304b5a) SHA1(bf51cb1f728758d50ce27275aa19ef649f6b34b9) ) + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD( "27c1001_v155_sp.u38", 0x00000, 0x20000, CRC(a42d73b1) SHA1(93157e9630d5c8bb34c71186415d0aa8c5d51951) ) +ROM_END + +/* Jingle Bells (V153 EU) + Original IGS. + For amusement. +*/ +ROM_START( jingbellb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "27c512_v153.u44", 0x00000, 0x10000, CRC(fd3bc092) SHA1(a92dc9bc15d7a4816887d66d46cea925d230c5b8) ) + + ROM_REGION( 0x8000, "data", 0 ) + ROM_LOAD( "27c256_v153.u43", 0x0000, 0x8000, CRC(a7affa15) SHA1(f9d33e32b57ad267d383e075663994e0af0b3016) ) + + ROM_REGION( 0x30000, "reels", 0 ) + ROM_LOAD( "27c512_v153.u17", 0x00000, 0x10000, CRC(cadd7910) SHA1(aa514ddb29c8c9a77478d56bea4ae71995fdd518) ) + ROM_LOAD( "27c512_v153.u16", 0x10000, 0x10000, CRC(a9e1f5aa) SHA1(68d7f4e9e9a5bbce0904e406ee6fe82e9e52a9ba) ) + ROM_LOAD( "27c512_v153.u15", 0x20000, 0x10000, CRC(865b7d3a) SHA1(c1dff3a27d747ee499aaee0c4468534f0249a3e5) ) + + ROM_REGION( 0xc0000, "tiles", 0 ) + ROM_LOAD( "27c2001_v153.u25", 0x00000, 0x40000, CRC(daa56ce5) SHA1(4f14a8efac16b03bd14dd26d586bcb8d5bef65c1) ) + ROM_LOAD( "27c2001_v153.u24", 0x40000, 0x40000, CRC(b10b38e1) SHA1(397b2d899e47c6249fbbb6e6262d0390d9b796e6) ) + ROM_LOAD( "27c2001_v153.u23", 0x80000, 0x40000, CRC(a3304b5a) SHA1(bf51cb1f728758d50ce27275aa19ef649f6b34b9) ) + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD( "27c1001_v153_sp.u38", 0x00000, 0x20000, CRC(a42d73b1) SHA1(93157e9630d5c8bb34c71186415d0aa8c5d51951) ) +ROM_END + +/* Jingle Bells (V141 EU) + Original IGS. + For amusement. +*/ +ROM_START( jingbellc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "27c512_v141.u44", 0x00000, 0x10000, CRC(6997a903) SHA1(991508d85e55a3c6f811070352e06ae6bf65cc2e) ) + + ROM_REGION( 0x8000, "data", 0 ) + ROM_LOAD( "27c256_v141.u43", 0x0000, 0x8000, CRC(a7affa15) SHA1(f9d33e32b57ad267d383e075663994e0af0b3016) ) + + ROM_REGION( 0x30000, "reels", 0 ) + ROM_LOAD( "27c512_v141.u17", 0x00000, 0x10000, CRC(cadd7910) SHA1(aa514ddb29c8c9a77478d56bea4ae71995fdd518) ) + ROM_LOAD( "27c512_v141.u16", 0x10000, 0x10000, CRC(a9e1f5aa) SHA1(68d7f4e9e9a5bbce0904e406ee6fe82e9e52a9ba) ) + ROM_LOAD( "27c512_v141.u15", 0x20000, 0x10000, CRC(865b7d3a) SHA1(c1dff3a27d747ee499aaee0c4468534f0249a3e5) ) + + ROM_REGION( 0xc0000, "tiles", 0 ) + ROM_LOAD( "27c2001_v141.u25", 0x00000, 0x40000, CRC(f53bac7e) SHA1(f4375da0780fba59fcb65e24a33099af35e4d286) ) + ROM_LOAD( "27c2001_v141.u24", 0x40000, 0x40000, CRC(bddd6001) SHA1(2a6395e9593352d3ea2d477a7f41805f389c9c50) ) + ROM_LOAD( "27c2001_v141.u23", 0x80000, 0x40000, CRC(e8322c75) SHA1(c3385538fb673a4ab14c315ce8bce792eb264ec7) ) + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD( "27c1001_v141_sp.u38", 0x00000, 0x20000, CRC(a42d73b1) SHA1(93157e9630d5c8bb34c71186415d0aa8c5d51951) ) +ROM_END + /*************************************************************************** Jingle Bell +Italy, V133I (C) IGS ("COPYRIGHT 1995" in ROM, "FEB. 23 1998" on sticker) CPU: @@ -895,8 +1028,7 @@ Notes: 12/02/2008 f205v ***************************************************************************/ - -ROM_START( jingbell ) +ROM_START( jingbelli ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "jinglev133i.u44", 0x00000, 0x10000, CRC(df60dc39) SHA1(ff57afd50c045b621395353fdc50ffd1e1b65e9e) ) @@ -923,106 +1055,6 @@ ROM_START( jingbell ) ROM_LOAD( "palce22v10h-ch-jin-u27.u27", 0x000, 0x2dd, BAD_DUMP CRC(5c4e9024) SHA1(e9d1e4df3d79c21f4ce053a84bb7b7a43d650f91) ) ROM_END -/* Jingle Bells (V157 US) - Original IGS. - For amusement. -*/ -ROM_START( jingbella ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "27c512_v157_us.u44", 0x00000, 0x10000, CRC(37f95b60) SHA1(db2022802ce553ce7a0e8403408f3194b2f10007) ) - - ROM_REGION( 0x8000, "data", 0 ) - ROM_LOAD( "27c256_v157_us.u43", 0x0000, 0x8000, CRC(a7affa15) SHA1(f9d33e32b57ad267d383e075663994e0af0b3016) ) - - ROM_REGION( 0x30000, "reels", 0 ) - ROM_LOAD( "27c512_v157_us.u17", 0x00000, 0x10000, CRC(cadd7910) SHA1(aa514ddb29c8c9a77478d56bea4ae71995fdd518) ) - ROM_LOAD( "27c512_v157_us.u16", 0x10000, 0x10000, CRC(a9e1f5aa) SHA1(68d7f4e9e9a5bbce0904e406ee6fe82e9e52a9ba) ) - ROM_LOAD( "27c512_v157_us.u15", 0x20000, 0x10000, CRC(865b7d3a) SHA1(c1dff3a27d747ee499aaee0c4468534f0249a3e5) ) - - ROM_REGION( 0xc0000, "tiles", 0 ) - ROM_LOAD( "27c2001_v157_us.u25", 0x00000, 0x40000, CRC(daa56ce5) SHA1(4f14a8efac16b03bd14dd26d586bcb8d5bef65c1) ) - ROM_LOAD( "27c2001_v157_us.u24", 0x40000, 0x40000, CRC(b10b38e1) SHA1(397b2d899e47c6249fbbb6e6262d0390d9b796e6) ) - ROM_LOAD( "27c2001_v157_us.u23", 0x80000, 0x40000, CRC(a3304b5a) SHA1(bf51cb1f728758d50ce27275aa19ef649f6b34b9) ) - - ROM_REGION( 0x40000, "oki", 0 ) - ROM_LOAD( "mx29f001t_v157_us_sp.u38", 0x00000, 0x20000, CRC(a42d73b1) SHA1(93157e9630d5c8bb34c71186415d0aa8c5d51951) ) -ROM_END - -/* Jingle Bells (V155 EU) - Original IGS. - For amusement. -*/ -ROM_START( jingbellb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "27c512_v155.u44", 0x00000, 0x10000, CRC(0813d12b) SHA1(4c35b656d1e54619bbfd26cbc017eba336e6abda) ) - - ROM_REGION( 0x8000, "data", 0 ) - ROM_LOAD( "27c256_v155.u43", 0x0000, 0x8000, CRC(a7affa15) SHA1(f9d33e32b57ad267d383e075663994e0af0b3016) ) - - ROM_REGION( 0x30000, "reels", 0 ) - ROM_LOAD( "27c512_v155.u17", 0x00000, 0x10000, CRC(cadd7910) SHA1(aa514ddb29c8c9a77478d56bea4ae71995fdd518) ) - ROM_LOAD( "27c512_v155.u16", 0x10000, 0x10000, CRC(a9e1f5aa) SHA1(68d7f4e9e9a5bbce0904e406ee6fe82e9e52a9ba) ) - ROM_LOAD( "27c512_v155.u15", 0x20000, 0x10000, CRC(865b7d3a) SHA1(c1dff3a27d747ee499aaee0c4468534f0249a3e5) ) - - ROM_REGION( 0xc0000, "tiles", 0 ) - ROM_LOAD( "27c2001_v155.u25", 0x00000, 0x40000, CRC(daa56ce5) SHA1(4f14a8efac16b03bd14dd26d586bcb8d5bef65c1) ) - ROM_LOAD( "27c2001_v155.u24", 0x40000, 0x40000, CRC(b10b38e1) SHA1(397b2d899e47c6249fbbb6e6262d0390d9b796e6) ) - ROM_LOAD( "27c2001_v155.u23", 0x80000, 0x40000, CRC(a3304b5a) SHA1(bf51cb1f728758d50ce27275aa19ef649f6b34b9) ) - - ROM_REGION( 0x40000, "oki", 0 ) - ROM_LOAD( "27c1001_v155_sp.u38", 0x00000, 0x20000, CRC(a42d73b1) SHA1(93157e9630d5c8bb34c71186415d0aa8c5d51951) ) -ROM_END - -/* Jingle Bells (V153 EU) - Original IGS. - For amusement. -*/ -ROM_START( jingbellc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "27c512_v153.u44", 0x00000, 0x10000, CRC(fd3bc092) SHA1(a92dc9bc15d7a4816887d66d46cea925d230c5b8) ) - - ROM_REGION( 0x8000, "data", 0 ) - ROM_LOAD( "27c256_v153.u43", 0x0000, 0x8000, CRC(a7affa15) SHA1(f9d33e32b57ad267d383e075663994e0af0b3016) ) - - ROM_REGION( 0x30000, "reels", 0 ) - ROM_LOAD( "27c512_v153.u17", 0x00000, 0x10000, CRC(cadd7910) SHA1(aa514ddb29c8c9a77478d56bea4ae71995fdd518) ) - ROM_LOAD( "27c512_v153.u16", 0x10000, 0x10000, CRC(a9e1f5aa) SHA1(68d7f4e9e9a5bbce0904e406ee6fe82e9e52a9ba) ) - ROM_LOAD( "27c512_v153.u15", 0x20000, 0x10000, CRC(865b7d3a) SHA1(c1dff3a27d747ee499aaee0c4468534f0249a3e5) ) - - ROM_REGION( 0xc0000, "tiles", 0 ) - ROM_LOAD( "27c2001_v153.u25", 0x00000, 0x40000, CRC(daa56ce5) SHA1(4f14a8efac16b03bd14dd26d586bcb8d5bef65c1) ) - ROM_LOAD( "27c2001_v153.u24", 0x40000, 0x40000, CRC(b10b38e1) SHA1(397b2d899e47c6249fbbb6e6262d0390d9b796e6) ) - ROM_LOAD( "27c2001_v153.u23", 0x80000, 0x40000, CRC(a3304b5a) SHA1(bf51cb1f728758d50ce27275aa19ef649f6b34b9) ) - - ROM_REGION( 0x40000, "oki", 0 ) - ROM_LOAD( "27c1001_v153_sp.u38", 0x00000, 0x20000, CRC(a42d73b1) SHA1(93157e9630d5c8bb34c71186415d0aa8c5d51951) ) -ROM_END - -/* Jingle Bells (V141 EU) - Original IGS. - For amusement. -*/ -ROM_START( jingbelld ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "27c512_v141.u44", 0x00000, 0x10000, CRC(6997a903) SHA1(991508d85e55a3c6f811070352e06ae6bf65cc2e) ) - - ROM_REGION( 0x8000, "data", 0 ) - ROM_LOAD( "27c256_v141.u43", 0x0000, 0x8000, CRC(a7affa15) SHA1(f9d33e32b57ad267d383e075663994e0af0b3016) ) - - ROM_REGION( 0x30000, "reels", 0 ) - ROM_LOAD( "27c512_v141.u17", 0x00000, 0x10000, CRC(cadd7910) SHA1(aa514ddb29c8c9a77478d56bea4ae71995fdd518) ) - ROM_LOAD( "27c512_v141.u16", 0x10000, 0x10000, CRC(a9e1f5aa) SHA1(68d7f4e9e9a5bbce0904e406ee6fe82e9e52a9ba) ) - ROM_LOAD( "27c512_v141.u15", 0x20000, 0x10000, CRC(865b7d3a) SHA1(c1dff3a27d747ee499aaee0c4468534f0249a3e5) ) - - ROM_REGION( 0xc0000, "tiles", 0 ) - ROM_LOAD( "27c2001_v141.u25", 0x00000, 0x40000, CRC(f53bac7e) SHA1(f4375da0780fba59fcb65e24a33099af35e4d286) ) - ROM_LOAD( "27c2001_v141.u24", 0x40000, 0x40000, CRC(bddd6001) SHA1(2a6395e9593352d3ea2d477a7f41805f389c9c50) ) - ROM_LOAD( "27c2001_v141.u23", 0x80000, 0x40000, CRC(e8322c75) SHA1(c3385538fb673a4ab14c315ce8bce792eb264ec7) ) - - ROM_REGION( 0x40000, "oki", 0 ) - ROM_LOAD( "27c1001_v141_sp.u38", 0x00000, 0x20000, CRC(a42d73b1) SHA1(93157e9630d5c8bb34c71186415d0aa8c5d51951) ) -ROM_END - DRIVER_INIT_MEMBER(igs009_state,jingbell) { @@ -1114,9 +1146,9 @@ ROM_END /* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1995?, jingbell, 0, jingbell, jingbell, igs009_state, jingbell, ROT0, "IGS", "Jingle Bell (Italy, V133I)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, jingbella, jingbell, jingbell, jingbell, igs009_state, jingbell, ROT0, "IGS", "Jingle Bell (US, V157)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, jingbellb, jingbell, jingbell, jingbell, igs009_state, jingbell, ROT0, "IGS", "Jingle Bell (EU, V155)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, jingbellc, jingbell, jingbell, jingbell, igs009_state, jingbell, ROT0, "IGS", "Jingle Bell (EU, V153)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, jingbelld, jingbell, jingbell, jingbell, igs009_state, jingbell, ROT0, "IGS", "Jingle Bell (EU, V141)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, jingbell, 0, jingbell, jingbell, igs009_state, jingbell, ROT0, "IGS", "Jingle Bell (US, V157)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, jingbella, jingbell, jingbell, jingbell, igs009_state, jingbell, ROT0, "IGS", "Jingle Bell (EU, V155)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, jingbellb, jingbell, jingbell, jingbell, igs009_state, jingbell, ROT0, "IGS", "Jingle Bell (EU, V153)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, jingbellc, jingbell, jingbell, jingbell, igs009_state, jingbell, ROT0, "IGS", "Jingle Bell (EU, V141)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995?, jingbelli, jingbell, jingbell, jingbell, igs009_state, jingbell, ROT0, "IGS", "Jingle Bell (Italy, V133I)", MACHINE_SUPPORTS_SAVE ) GAME( 1998, gp98, 0, gp98, jingbell, driver_device, 0, ROT0, "Romtec Co. Ltd", "Grand Prix '98 (V100K)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )