From e0f73c58aed6d664eb26c9bd2f5572992278bfc9 Mon Sep 17 00:00:00 2001 From: cracyc Date: Mon, 12 Jan 2015 15:25:00 -0600 Subject: debugqt: get machine from somewhere (nw) --- src/osd/modules/debugger/debugqt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/osd/modules/debugger/debugqt.c b/src/osd/modules/debugger/debugqt.c index 9b196675450..1e4da578062 100644 --- a/src/osd/modules/debugger/debugqt.c +++ b/src/osd/modules/debugger/debugqt.c @@ -335,7 +335,7 @@ void debugger_qt::wait_for_debugger(device_t &device, bool firststop) gather_save_configurations(); } #if defined(WIN32) && !defined(SDLMAME_WIN32) - winwindow_update_cursor_state(m_osd.machine()); // make sure the cursor isn't hidden while in debugger + winwindow_update_cursor_state(device.machine()); // make sure the cursor isn't hidden while in debugger #endif } -- cgit v1.2.3 From d40ca7e90181c83658bf1737c982167d17c97596 Mon Sep 17 00:00:00 2001 From: etabeta78 Date: Mon, 12 Jan 2015 22:46:22 +0100 Subject: ui: simplified Image Information code and made it fully display for systems with many image devices. [Fabio Priuli] out of whatsnew: compare old and new with a system like smssdisp to see what the "fully display" refers to ;-) --- src/emu/ui/imginfo.c | 150 ++++++++++++--------------------------------------- src/emu/ui/imginfo.h | 2 +- 2 files changed, 35 insertions(+), 117 deletions(-) diff --git a/src/emu/ui/imginfo.c b/src/emu/ui/imginfo.c index 9fc80b82a07..68eac3b6cc3 100644 --- a/src/emu/ui/imginfo.c +++ b/src/emu/ui/imginfo.c @@ -42,9 +42,12 @@ ui_menu_image_info::~ui_menu_image_info() void ui_menu_image_info::populate() { - astring tempstring; - image_info_astring(machine(), tempstring); - item_append(tempstring, NULL, MENU_FLAG_MULTILINE, NULL); + item_append(machine().system().description, NULL, MENU_FLAG_DISABLE, NULL); + item_append("", NULL, MENU_FLAG_DISABLE, NULL); + + image_interface_iterator iter(machine().root_device()); + for (device_image_interface *image = iter.first(); image != NULL; image = iter.next()) + image_info(image); } @@ -60,129 +63,44 @@ void ui_menu_image_info::handle() //------------------------------------------------- -// stripspace +// image_info - display image info for a specific +// image interface device //------------------------------------------------- -static char *stripspace(const char *src) +void ui_menu_image_info::image_info(device_image_interface *image) { - static char buff[512]; - if( src ) + if (image->exists()) { - char *dst; - while( *src && isspace(*src) ) - src++; - strcpy(buff, src); - dst = buff + strlen(buff); - while( dst >= buff && isspace(*--dst) ) - *dst = '\0'; - return buff; - } - return NULL; -} - - -//------------------------------------------------- -// strip_extension -//------------------------------------------------- - -static char *strip_extension(const char *filename) -{ - char *newname; - char *c; - - // NULL begets NULL - if (!filename) - return NULL; + // display device type and filename + item_append(image->brief_instance_name(), image->basename(), 0, NULL); - // allocate space for it - newname = (char *) malloc(strlen(filename) + 1); - if (!newname) - return NULL; - - // copy in the name - strcpy(newname, filename); - - // search backward for a period, failing if we hit a slash or a colon - for (c = newname + strlen(newname) - 1; c >= newname; c--) - { - // if we hit a period, NULL terminate and break - if (*c == '.') + // if image has been loaded through softlist, let's add some more info + if (image->software_entry()) { - *c = 0; - break; - } - - // if we hit a slash or colon just stop - if (*c == '\\' || *c == '/' || *c == ':') - break; - } - - return newname; -} + astring string; - -//------------------------------------------------- -// image_info_astring - populate an allocated -// string with the image info text -//------------------------------------------------- - -void ui_menu_image_info::image_info_astring(running_machine &machine, astring &string) -{ - string.printf("%s\n\n", machine.system().description); - -#if 0 - if (mess_ram_size > 0) - { - char buf2[RAM_STRING_BUFLEN]; - string.catprintf("RAM: %s\n\n", ram_string(buf2, mess_ram_size)); - } -#endif - - image_interface_iterator iter(machine.root_device()); - for (device_image_interface *image = iter.first(); image != NULL; image = iter.next()) - { - const char *name = image->filename(); - if (name != NULL) - { - const char *base_filename; - const char *info; - char *base_filename_noextension; - - base_filename = image->basename(); - base_filename_noextension = strip_extension(base_filename); - - // display device type and filename - string.catprintf("%s: %s\n", image->device().name(), base_filename); - - // display long filename, if present and doesn't correspond to name - info = image->longname(); - if (info && (!base_filename_noextension || core_stricmp(info, base_filename_noextension))) - string.catprintf("%s\n", info); - - // display manufacturer, if available - info = image->manufacturer(); - if (info != NULL) - { - string.catprintf("%s", info); - info = stripspace(image->year()); - if (info && *info) - string.catprintf(", %s", info); - string.catprintf("\n"); - } + // display long filename + item_append(image->longname(), "", MENU_FLAG_DISABLE, NULL); + + // display manufacturer and year + string.catprintf("%s, %s", image->manufacturer(), image->year()); + item_append(string, "", MENU_FLAG_DISABLE, NULL); // display supported information, if available - switch(image->supported()) { - case SOFTWARE_SUPPORTED_NO : string.catprintf("Not supported\n"); break; - case SOFTWARE_SUPPORTED_PARTIAL : string.catprintf("Partially supported\n"); break; - default : break; + switch (image->supported()) + { + case SOFTWARE_SUPPORTED_NO: + item_append("Not supported", "", MENU_FLAG_DISABLE, NULL); + break; + case SOFTWARE_SUPPORTED_PARTIAL: + item_append("Partially supported", "", MENU_FLAG_DISABLE, NULL); + break; + default: + break; } - - if (base_filename_noextension != NULL) - free(base_filename_noextension); - } - else - { - string.catprintf("%s: ---\n", image->device().name()); } } + else + item_append(image->brief_instance_name(), "[empty]", 0, NULL); + item_append("", NULL, MENU_FLAG_DISABLE, NULL); } diff --git a/src/emu/ui/imginfo.h b/src/emu/ui/imginfo.h index bfa5001a278..fe2ca484eba 100644 --- a/src/emu/ui/imginfo.h +++ b/src/emu/ui/imginfo.h @@ -23,7 +23,7 @@ public: virtual void handle(); private: - void image_info_astring(running_machine &machine, astring &string); + void image_info(device_image_interface *image); }; #endif // __UI_IMGINFO_H__ -- cgit v1.2.3 From 9196e1e80cf3fd4bea891e141e57086f8e3d17ed Mon Sep 17 00:00:00 2001 From: cracyc Date: Mon, 12 Jan 2015 15:42:08 -0600 Subject: debugqt: alternatively... (nw) --- src/osd/modules/debugger/debugqt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/osd/modules/debugger/debugqt.c b/src/osd/modules/debugger/debugqt.c index 1e4da578062..a9779c7782a 100644 --- a/src/osd/modules/debugger/debugqt.c +++ b/src/osd/modules/debugger/debugqt.c @@ -335,7 +335,7 @@ void debugger_qt::wait_for_debugger(device_t &device, bool firststop) gather_save_configurations(); } #if defined(WIN32) && !defined(SDLMAME_WIN32) - winwindow_update_cursor_state(device.machine()); // make sure the cursor isn't hidden while in debugger + winwindow_update_cursor_state(*m_machine); // make sure the cursor isn't hidden while in debugger #endif } -- cgit v1.2.3 From b12f3b271d646f7062539ecdccf5c423d60b1832 Mon Sep 17 00:00:00 2001 From: hap Date: Mon, 12 Jan 2015 22:40:44 +0100 Subject: (MESS)Game added or promoted to working ------------------ Electronic Detective [hap, Sean Riddle] --- src/mess/drivers/elecdet.c | 312 ++++++++++++++++++++++++++++++++++++++++++++ src/mess/drivers/stopthie.c | 4 +- src/mess/drivers/ticalc1x.c | 4 +- src/mess/layout/elecdet.lay | 45 +++++++ src/mess/mess.lst | 1 + src/mess/mess.mak | 8 +- 6 files changed, 368 insertions(+), 6 deletions(-) create mode 100644 src/mess/drivers/elecdet.c create mode 100644 src/mess/layout/elecdet.lay diff --git a/src/mess/drivers/elecdet.c b/src/mess/drivers/elecdet.c new file mode 100644 index 00000000000..506236a4096 --- /dev/null +++ b/src/mess/drivers/elecdet.c @@ -0,0 +1,312 @@ +// license:BSD-3-Clause +// copyright-holders:hap +/*************************************************************************** + + Ideal Electronic Detective + * TMS0980NLL MP6100A (die labeled 0980B-00) + hardware (and concept) is very similar to Parker Bros Stop Thief + + This is an electronic board game. It requires game cards with suspect info, + and good old pen and paper to record game progress. Refer to the manual + on how to play it. + + + TODO: + - MCU clock is unknown + +***************************************************************************/ + +#include "emu.h" +#include "cpu/tms0980/tms0980.h" +#include "sound/speaker.h" + +#include "elecdet.lh" + +// master clock is unknown, the value below is an approximation +#define MASTER_CLOCK (425000) + + +class elecdet_state : public driver_device +{ +public: + elecdet_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_button_matrix(*this, "IN"), + m_speaker(*this, "speaker") + { } + + required_device m_maincpu; + required_ioport_array<5> m_button_matrix; + required_device m_speaker; + + UINT16 m_o; + bool m_power_on; + + UINT16 m_leds_state[0x10]; + UINT16 m_leds_cache[0x10]; + UINT8 m_leds_decay[0x100]; + + DECLARE_READ8_MEMBER(read_k); + DECLARE_WRITE16_MEMBER(write_o); + DECLARE_WRITE16_MEMBER(write_r); + + DECLARE_INPUT_CHANGED_MEMBER(power_button); + DECLARE_WRITE_LINE_MEMBER(auto_power_off); + + TIMER_DEVICE_CALLBACK_MEMBER(leds_decay_tick); + void leds_update(); + + virtual void machine_reset(); + virtual void machine_start(); +}; + + + +/*************************************************************************** + + LEDs + +***************************************************************************/ + +// The device strobes the outputs very fast, it is unnoticeable to the user. +// To prevent flickering here, we need to simulate a decay. + +// decay time, in steps of 10ms +#define LEDS_DECAY_TIME 4 + +void elecdet_state::leds_update() +{ + UINT16 active_state[0x10]; + + for (int i = 0; i < 0x10; i++) + { + active_state[i] = 0; + + for (int j = 0; j < 0x10; j++) + { + int di = j << 4 | i; + + // turn on powered leds + if (m_power_on && m_leds_state[i] >> j & 1) + m_leds_decay[di] = LEDS_DECAY_TIME; + + // determine active state + int ds = (m_leds_decay[di] != 0) ? 1 : 0; + active_state[i] |= (ds << j); + } + } + + // on difference, send to output + for (int i = 0; i < 0x10; i++) + if (m_leds_cache[i] != active_state[i]) + output_set_digit_value(i, active_state[i]); + + memcpy(m_leds_cache, active_state, sizeof(m_leds_cache)); +} + +TIMER_DEVICE_CALLBACK_MEMBER(elecdet_state::leds_decay_tick) +{ + // slowly turn off unpowered leds + for (int i = 0; i < 0x100; i++) + if (!(m_leds_state[i & 0xf] >> (i>>4) & 1) && m_leds_decay[i]) + m_leds_decay[i]--; + + leds_update(); +} + + + +/*************************************************************************** + + I/O + +***************************************************************************/ + +READ8_MEMBER(elecdet_state::read_k) +{ + // the Vss row is always on + UINT8 k = m_button_matrix[4]->read(); + + // read selected button rows + for (int i = 0; i < 4; i++) + { + const int ki[4] = { 0, 1, 4, 6 }; + if (m_o >> ki[i] & 1) + k |= m_button_matrix[i]->read(); + } + + return k; +} + +WRITE16_MEMBER(elecdet_state::write_r) +{ + // R0-R6: select digit + UINT8 o = BITSWAP8(m_o,7,5,2,1,4,0,6,3) & 0x7f; + for (int i = 0; i < 7; i++) + m_leds_state[i] = (data >> i & 1) ? o : 0; + + leds_update(); + + // R7,R8: speaker on + m_speaker->level_w((data & 0x180 && m_o & 0x80) ? 1 : 0); +} + +WRITE16_MEMBER(elecdet_state::write_o) +{ + // O0,O1,O4,O6: input mux + // O0-O6: led segments A-G + // O7: speaker out + m_o = data; +} + + + +/*************************************************************************** + + Inputs + +***************************************************************************/ + +INPUT_CHANGED_MEMBER(elecdet_state::power_button) +{ + m_power_on = (bool)(FPTR)param; + m_maincpu->set_input_line(INPUT_LINE_RESET, m_power_on ? CLEAR_LINE : ASSERT_LINE); +} + +/* physical button layout and labels is like this: + + [1] [2] [3] [SUSPECT] + [4] [5] [6] [PRIVATE QUESTION] + [7] [8] [9] [I ACCUSE] + [0] [ENTER] + [ON] [OFF] [END TURN] +*/ + +static INPUT_PORTS_START( elecdet ) + PORT_START("IN.0") // O0 pin18 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Private Question") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5") + + PORT_START("IN.1") // O1 pin17 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("0") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("IN.2") // O4 pin14 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_NAME("I Accuse") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8") + + PORT_START("IN.3") // O6 pin12 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_NAME("Suspect") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2") + + // note: even though power buttons are on the matrix, they are not CPU-controlled + PORT_START("IN.4") // Vss! + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("On") PORT_CHANGED_MEMBER(DEVICE_SELF, elecdet_state, power_button, (void *)true) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_NAME("End Turn") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off") PORT_CHANGED_MEMBER(DEVICE_SELF, elecdet_state, power_button, (void *)false) +INPUT_PORTS_END + + + +/*************************************************************************** + + Machine Config + +***************************************************************************/ + +WRITE_LINE_MEMBER(elecdet_state::auto_power_off) +{ + // TMS0980 auto power-off opcode + if (state) + { + m_power_on = false; + m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); + } +} + + +void elecdet_state::machine_reset() +{ + m_power_on = true; +} + +void elecdet_state::machine_start() +{ + // zerofill + memset(m_leds_state, 0, sizeof(m_leds_state)); + memset(m_leds_cache, 0, sizeof(m_leds_cache)); + memset(m_leds_decay, 0, sizeof(m_leds_decay)); + + m_o = 0; + m_power_on = false; + + // register for savestates + save_item(NAME(m_leds_state)); + save_item(NAME(m_leds_cache)); + save_item(NAME(m_leds_decay)); + + save_item(NAME(m_o)); + save_item(NAME(m_power_on)); +} + + +static MACHINE_CONFIG_START( elecdet, elecdet_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", TMS0980, MASTER_CLOCK) + MCFG_TMS1XXX_READ_K_CB(READ8(elecdet_state, read_k)) + MCFG_TMS1XXX_WRITE_O_CB(WRITE16(elecdet_state, write_o)) + MCFG_TMS1XXX_WRITE_R_CB(WRITE16(elecdet_state, write_r)) + MCFG_TMS1XXX_POWER_OFF_CB(WRITELINE(elecdet_state, auto_power_off)) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("leds_decay", elecdet_state, leds_decay_tick, attotime::from_msec(10)) + + MCFG_DEFAULT_LAYOUT(layout_elecdet) + + /* no video! */ + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) +MACHINE_CONFIG_END + + + +/*************************************************************************** + + Game driver(s) + +***************************************************************************/ + +ROM_START( elecdet ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "tms0980nll_mp6100a", 0x0000, 0x1000, CRC(f33f02ae) SHA1(a978d9cc1ba7897f6e8997715da265eb8c4a0c34) ) + + ROM_REGION( 1246, "maincpu:ipla", 0 ) + ROM_LOAD( "tms0980_default_ipla.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) ) + ROM_REGION( 1982, "maincpu:mpla", 0 ) + ROM_LOAD( "tms0980_default_mpla.pla", 0, 1982, CRC(3709014f) SHA1(d28ee59ded7f3b9dc3f0594a32a98391b6e9c961) ) + ROM_REGION( 352, "maincpu:opla", 0 ) + ROM_LOAD( "tms0980_elecdet_opla.pla", 0, 352, CRC(652d19c3) SHA1(75550c2b293453b6b9efed88c8cc77195a53161f) ) + ROM_REGION( 157, "maincpu:spla", 0 ) + ROM_LOAD( "tms0980_elecdet_spla.pla", 0, 157, CRC(399aa481) SHA1(72c56c58fde3fbb657d69647a9543b5f8fc74279) ) +ROM_END + + +CONS( 1979, elecdet, 0, 0, elecdet, elecdet, driver_device, 0, "Ideal", "Electronic Detective", GAME_SUPPORTS_SAVE ) diff --git a/src/mess/drivers/stopthie.c b/src/mess/drivers/stopthie.c index 8c318e3cfa4..eb4497ae6e9 100644 --- a/src/mess/drivers/stopthie.c +++ b/src/mess/drivers/stopthie.c @@ -88,11 +88,11 @@ void stopthief_state::leds_update() int di = j << 4 | i; // turn on powered leds - if (m_leds_state[i] >> j & 1) + if (m_power_on && m_leds_state[i] >> j & 1) m_leds_decay[di] = LEDS_DECAY_TIME; // determine active state - int ds = (m_power_on && m_leds_decay[di] != 0) ? 1 : 0; + int ds = (m_leds_decay[di] != 0) ? 1 : 0; active_state[i] |= (ds << j); } } diff --git a/src/mess/drivers/ticalc1x.c b/src/mess/drivers/ticalc1x.c index 1cf30fccdc7..cf28dec38d1 100644 --- a/src/mess/drivers/ticalc1x.c +++ b/src/mess/drivers/ticalc1x.c @@ -95,11 +95,11 @@ void ticalc1x_state::leds_update() int di = j << 4 | i; // turn on powered leds - if (m_leds_state[i] >> j & 1) + if (m_power_on && m_leds_state[i] >> j & 1) m_leds_decay[di] = LEDS_DECAY_TIME; // determine active state - int ds = (m_power_on && m_leds_decay[di] != 0) ? 1 : 0; + int ds = (m_leds_decay[di] != 0) ? 1 : 0; active_state[i] |= (ds << j); } } diff --git a/src/mess/layout/elecdet.lay b/src/mess/layout/elecdet.lay new file mode 100644 index 00000000000..3024763cbcf --- /dev/null +++ b/src/mess/layout/elecdet.lay @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mess/mess.lst b/src/mess/mess.lst index b507fda6505..4663e3347bc 100644 --- a/src/mess/mess.lst +++ b/src/mess/mess.lst @@ -2598,3 +2598,4 @@ excali64 bitgrpha bitgrphb unk3403 +elecdet diff --git a/src/mess/mess.mak b/src/mess/mess.mak index 7fef29a7f4d..459c397b142 100644 --- a/src/mess/mess.mak +++ b/src/mess/mess.mak @@ -729,6 +729,7 @@ DRVLIBS += \ $(MESSOBJ)/homebrew.a \ $(MESSOBJ)/homelab.a \ $(MESSOBJ)/hp.a \ + $(MESSOBJ)/ideal.a \ $(MESSOBJ)/imp.a \ $(MESSOBJ)/intel.a \ $(MESSOBJ)/interton.a \ @@ -1305,7 +1306,6 @@ $(MESSOBJ)/hp.a: \ $(MESS_DRIVERS)/hp9k.o \ $(MESS_DRIVERS)/hp9k_3xx.o \ - $(MESSOBJ)/hec2hrp.a: \ $(MESS_DRIVERS)/hec2hrp.o \ $(MESS_MACHINE)/hec2hrp.o \ @@ -1323,6 +1323,9 @@ $(MESSOBJ)/intel.a: \ $(MESS_DRIVERS)/sdk85.o \ $(MESS_DRIVERS)/sdk86.o \ +$(MESSOBJ)/ideal.a: \ + $(MESS_DRIVERS)/elecdet.o \ + $(MESSOBJ)/imp.a: \ $(MESS_DRIVERS)/tim011.o \ $(MESS_DRIVERS)/tim100.o \ @@ -2106,8 +2109,9 @@ $(MESS_DRIVERS)/digel804.o: $(MESS_LAYOUT)/digel804.lh $(MESS_DRIVERS)/dmv.o: $(MESS_LAYOUT)/dmv.lh $(MESS_DRIVERS)/dolphunk.o: $(MESS_LAYOUT)/dolphunk.lh $(MESS_DRIVERS)/eacc.o: $(MESS_LAYOUT)/eacc.lh -$(MESS_DRIVERS)/elf.o: $(MESS_LAYOUT)/elf2.lh +$(MESS_DRIVERS)/elecdet.o: $(MESS_LAYOUT)/elecdet.lh $(MESS_DRIVERS)/elekscmp.o: $(MESS_LAYOUT)/elekscmp.lh +$(MESS_DRIVERS)/elf.o: $(MESS_LAYOUT)/elf2.lh $(MESS_MACHINE)/esqvfd.o: $(MESS_LAYOUT)/esq2by40.lh \ $(MESS_LAYOUT)/esq1by22.lh $(MESS_DRIVERS)/et3400.o: $(MESS_LAYOUT)/et3400.lh -- cgit v1.2.3 From 937c5dfd46a675c9b59903fb8e46dde8c52bcdbd Mon Sep 17 00:00:00 2001 From: Scott Stone Date: Mon, 12 Jan 2015 18:25:22 -0500 Subject: Added inputs for Service Mode Volume control (+/-) for specific to 25pacgal. (nw) --- src/mame/drivers/20pacgal.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/mame/drivers/20pacgal.c b/src/mame/drivers/20pacgal.c index 78c8f8aae32..3c1c26df3c2 100644 --- a/src/mame/drivers/20pacgal.c +++ b/src/mame/drivers/20pacgal.c @@ -192,21 +192,16 @@ WRITE8_MEMBER(_20pacgal_state::sprite_lookup_w) // likewise the sound table.. is it being uploaded in a different format at 0x0c000? // we also need the palette data because there is only a single rom on this pcb? static ADDRESS_MAP_START( 25pacman_map, AS_PROGRAM, 8, _25pacman_state ) - AM_RANGE(0x04000, 0x047ff) AM_RAM AM_SHARE("video_ram") - AM_RANGE(0x04800, 0x05fff) AM_RAM - AM_RANGE(0x06000, 0x06fff) AM_WRITEONLY AM_SHARE("char_gfx_ram") AM_RANGE(0x07000, 0x0717f) AM_WRITE(sprite_ram_w) // AM_RANGE(0x08000, 0x09fff) AM_READ_BANK("bank1") AM_WRITE(ram_48000_w) AM_RANGE(0x08000, 0x09fff) AM_WRITENOP AM_RANGE(0x0a000, 0x0bfff) AM_WRITE(sprite_gfx_w) - AM_RANGE(0x0c000, 0x0dfff) AM_WRITENOP // is this the sound waveforms in a different format? AM_RANGE(0x0e000, 0x0ffff) AM_WRITENOP AM_RANGE(0x1c000, 0x1ffff) AM_WRITENOP - AM_RANGE(0x00000, 0x3ffff) AM_DEVREADWRITE("flash", amd_29lv200t_device, read, write ) // (always fall through if nothing else is mapped?) ADDRESS_MAP_END @@ -338,12 +333,12 @@ static INPUT_PORTS_START( 25pacman ) PORT_INCLUDE(20pacgal) PORT_MODIFY("SERVICE") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME ( "Service Volume Up" ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME ( "Service Volume Down" ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END -- cgit v1.2.3 From 5d031fbca542cf88a824ad506cb3827faa858ec5 Mon Sep 17 00:00:00 2001 From: Logan B Date: Tue, 13 Jan 2015 18:56:16 +1300 Subject: Update segajw year (nw) Internal credits give a copyright date of 1991 --- src/mame/drivers/segajw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mame/drivers/segajw.c b/src/mame/drivers/segajw.c index 77bfd8fccaa..b6b4715d6bf 100644 --- a/src/mame/drivers/segajw.c +++ b/src/mame/drivers/segajw.c @@ -438,4 +438,4 @@ ROM_START( segajw ) ROM_END -GAMEL( 198?, segajw, 0, segajw, segajw, driver_device, 0, ROT0, "Sega", "Golden Poker Series \"Joker's Wild\" (Rev. B)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS, layout_segajw ) // TODO: correct title +GAMEL( 1991, segajw, 0, segajw, segajw, driver_device, 0, ROT0, "Sega", "Golden Poker Series \"Joker's Wild\" (Rev. B)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS, layout_segajw ) // TODO: correct title -- cgit v1.2.3 From 736cc5469da3e0e060dea6e44372c7798561c72d Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 13 Jan 2015 11:50:42 +0100 Subject: Use $(INCPATH) only where needed --- makefile | 5 ++--- src/lib/lib.mak | 6 +++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/makefile b/makefile index a8b440a6739..0f82b74bb23 100644 --- a/makefile +++ b/makefile @@ -509,7 +509,7 @@ CPPONLYFLAGS = # CFLAGS is defined based on C or C++ targets # (remember, expansion only happens when used, so doing it here is ok) -CFLAGS = $(CCOMFLAGS) $(CPPONLYFLAGS) +CFLAGS = $(CCOMFLAGS) $(CPPONLYFLAGS) $(INCPATH) # we compile C-only to C89 standard with GNU extensions # we compile C++ code to C++98 standard with GNU extensions @@ -864,7 +864,6 @@ include $(SRC)/tools/tools.mak include $(SRC)/regtests/regtests.mak # combine the various definitions to one -CCOMFLAGS += $(INCPATH) CDEFS = $(DEFS) # TODO: -x c++ should not be hard-coded @@ -1020,7 +1019,7 @@ $(OBJ)/%.a: ifeq ($(TARGETOS),macosx) $(OBJ)/%.o: $(SRC)/%.m | $(OSPREBUILD) @echo Objective-C compiling $<... - $(CC) $(CDEFS) $(COBJFLAGS) $(CCOMFLAGS) -c $< -o $@ + $(CC) $(CDEFS) $(COBJFLAGS) $(CCOMFLAGS) $(INCPATH) -c $< -o $@ endif diff --git a/src/lib/lib.mak b/src/lib/lib.mak index 04b6db9ba79..5074643f06e 100644 --- a/src/lib/lib.mak +++ b/src/lib/lib.mak @@ -480,12 +480,12 @@ $(OBJ)/libportmidi.a: $(LIBPMOBJS) $(LIBOBJ)/portmidi/%.o: $(3RDPARTY)/portmidi/%.c | $(OSPREBUILD) @echo Compiling $<... - $(CC) $(CDEFS) $(PMOPTS) $(CCOMFLAGS) $(CONLYFLAGS) -I$(3RDPARTY)/portmidi/pm_common -I$(3RDPARTY)/portmidi/porttime -c $< -o $@ + $(CC) $(CDEFS) $(PMOPTS) $(CCOMFLAGS) $(CONLYFLAGS) $(INCPATH) -I$(3RDPARTY)/portmidi/pm_common -I$(3RDPARTY)/portmidi/porttime -c $< -o $@ ifeq ($(TARGETOS),macosx) $(LIBOBJ)/portmidi/%.o: $(3RDPARTY)/portmidi/%.m | $(OSPREBUILD) @echo Objective-C compiling $<... - $(CC) $(CDEFS) $(COBJFLAGS) $(CCOMFLAGS) -c $< -o $@ + $(CC) $(CDEFS) $(COBJFLAGS) $(CCOMFLAGS) $(INCPATH) -c $< -o $@ endif #------------------------------------------------- @@ -544,7 +544,7 @@ $(LIBOBJ)/lua/%.o: $(3RDPARTY)/lua/src/%.c | $(OSPREBUILD) $(LIBOBJ)/lua/lsqlite3/%.o: $(3RDPARTY)/lsqlite3/%.c | $(OSPREBUILD) @echo Compiling $<... - $(CC) $(CDEFS) $(CCOMFLAGS) $(CONLYFLAGS) -DLUA_COMPAT_ALL $(LUA_FLAGS) -c $< -o $@ + $(CC) $(CDEFS) $(CCOMFLAGS) $(CONLYFLAGS) -DLUA_COMPAT_ALL -I$(3RDPARTY)/lua/src -I$(3RDPARTY) $(LUA_FLAGS) -c $< -o $@ #------------------------------------------------- # web library objects -- cgit v1.2.3 From a4f63895e9cb0d343c80bd062113a6b4832e0735 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 13 Jan 2015 11:51:05 +0100 Subject: For x64 builds force Win7 minimum (nw) --- src/osd/windows/winprefix.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/osd/windows/winprefix.h b/src/osd/windows/winprefix.h index 07f8800b787..b0b6fc22a15 100644 --- a/src/osd/windows/winprefix.h +++ b/src/osd/windows/winprefix.h @@ -6,7 +6,11 @@ // //============================================================ -#define _WIN32_WINNT 0x0501 +#ifdef PTR64 +#define _WIN32_WINNT 0x0601 // Windows 7 +#else +#define _WIN32_WINNT 0x0501 // Windows XP +#endif #ifdef _MSC_VER #include -- cgit v1.2.3 From 02c13bcf240dedc3ad9f413639492eebcf745e6b Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 13 Jan 2015 13:59:46 +0100 Subject: removed unused code (nw) --- src/mess/drivers/gamate.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/mess/drivers/gamate.c b/src/mess/drivers/gamate.c index 656e7408eb3..c246c790ea7 100644 --- a/src/mess/drivers/gamate.c +++ b/src/mess/drivers/gamate.c @@ -267,12 +267,6 @@ static GFXDECODE_START( gamate ) GFXDECODE_END #endif -static const unsigned short gamate_palette[4] = -{ - 0,1,2,3 -}; - - /* palette in red, green, blue tribles */ static const unsigned char gamate_colors[4][3] = { -- cgit v1.2.3 From f7a05d9b140dbd88e8d646e8e5e679183f27bd55 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 13 Jan 2015 17:48:12 +0100 Subject: Placed change back --- src/osd/windows/winprefix.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/osd/windows/winprefix.h b/src/osd/windows/winprefix.h index b0b6fc22a15..576c7013412 100644 --- a/src/osd/windows/winprefix.h +++ b/src/osd/windows/winprefix.h @@ -6,11 +6,7 @@ // //============================================================ -#ifdef PTR64 -#define _WIN32_WINNT 0x0601 // Windows 7 -#else #define _WIN32_WINNT 0x0501 // Windows XP -#endif #ifdef _MSC_VER #include -- cgit v1.2.3 From d60dc40fe37bbc90eecea9c0ebb1f932df38ab0b Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 13 Jan 2015 17:59:12 +0100 Subject: Update to Lua 5.3 --- 3rdparty/lua/Makefile | 6 +- 3rdparty/lua/README | 2 +- 3rdparty/lua/doc/contents.html | 210 ++- 3rdparty/lua/doc/lua.1 | 13 +- 3rdparty/lua/doc/lua.css | 13 +- 3rdparty/lua/doc/manual.html | 3156 ++++++++++++++++++++++------------------ 3rdparty/lua/doc/readme.html | 150 +- 3rdparty/lua/src/Makefile | 148 +- 3rdparty/lua/src/lapi.c | 510 ++++--- 3rdparty/lua/src/lapi.h | 6 +- 3rdparty/lua/src/lauxlib.c | 257 ++-- 3rdparty/lua/src/lauxlib.h | 94 +- 3rdparty/lua/src/lbaselib.c | 246 ++-- 3rdparty/lua/src/lbitlib.c | 78 +- 3rdparty/lua/src/lcode.c | 229 ++- 3rdparty/lua/src/lcode.h | 12 +- 3rdparty/lua/src/lcorolib.c | 31 +- 3rdparty/lua/src/lctype.c | 5 +- 3rdparty/lua/src/lctype.h | 2 +- 3rdparty/lua/src/ldblib.c | 213 +-- 3rdparty/lua/src/ldebug.c | 162 ++- 3rdparty/lua/src/ldebug.h | 14 +- 3rdparty/lua/src/ldo.c | 192 ++- 3rdparty/lua/src/ldo.h | 4 +- 3rdparty/lua/src/ldump.c | 299 ++-- 3rdparty/lua/src/lfunc.c | 118 +- 3rdparty/lua/src/lfunc.h | 31 +- 3rdparty/lua/src/lgc.c | 873 ++++++----- 3rdparty/lua/src/lgc.h | 93 +- 3rdparty/lua/src/linit.c | 41 +- 3rdparty/lua/src/liolib.c | 275 ++-- 3rdparty/lua/src/llex.c | 280 ++-- 3rdparty/lua/src/llex.h | 16 +- 3rdparty/lua/src/llimits.h | 201 +-- 3rdparty/lua/src/lmathlib.c | 331 +++-- 3rdparty/lua/src/lmem.c | 26 +- 3rdparty/lua/src/lmem.h | 30 +- 3rdparty/lua/src/loadlib.c | 255 ++-- 3rdparty/lua/src/lobject.c | 291 +++- 3rdparty/lua/src/lobject.h | 355 ++--- 3rdparty/lua/src/lopcodes.c | 25 +- 3rdparty/lua/src/lopcodes.h | 39 +- 3rdparty/lua/src/loslib.c | 93 +- 3rdparty/lua/src/lparser.c | 179 +-- 3rdparty/lua/src/lparser.h | 27 +- 3rdparty/lua/src/lprefix.h | 45 + 3rdparty/lua/src/lstate.c | 97 +- 3rdparty/lua/src/lstate.h | 147 +- 3rdparty/lua/src/lstring.c | 139 +- 3rdparty/lua/src/lstring.h | 18 +- 3rdparty/lua/src/lstrlib.c | 637 ++++++-- 3rdparty/lua/src/ltable.c | 340 +++-- 3rdparty/lua/src/ltable.h | 20 +- 3rdparty/lua/src/ltablib.c | 226 ++- 3rdparty/lua/src/ltm.c | 86 +- 3rdparty/lua/src/ltm.h | 28 +- 3rdparty/lua/src/lua.c | 508 ++++--- 3rdparty/lua/src/lua.h | 169 ++- 3rdparty/lua/src/luac.c | 49 +- 3rdparty/lua/src/luaconf.h | 658 ++++++--- 3rdparty/lua/src/lualib.h | 5 +- 3rdparty/lua/src/lundump.c | 425 +++--- 3rdparty/lua/src/lundump.h | 27 +- 3rdparty/lua/src/lutf8lib.c | 255 ++++ 3rdparty/lua/src/lvm.c | 939 ++++++++---- 3rdparty/lua/src/lvm.h | 36 +- 3rdparty/lua/src/lzio.c | 10 +- 3rdparty/lua/src/lzio.h | 10 +- 68 files changed, 8660 insertions(+), 5845 deletions(-) create mode 100644 3rdparty/lua/src/lprefix.h create mode 100644 3rdparty/lua/src/lutf8lib.c diff --git a/3rdparty/lua/Makefile b/3rdparty/lua/Makefile index d2c7db4a2da..7fa91c858bb 100644 --- a/3rdparty/lua/Makefile +++ b/3rdparty/lua/Makefile @@ -36,7 +36,7 @@ RM= rm -f # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= # Convenience platforms targets. -PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris +PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris # What to install. TO_BIN= lua luac @@ -45,8 +45,8 @@ TO_LIB= liblua.a TO_MAN= lua.1 luac.1 # Lua version and release. -V= 5.2 -R= $V.3 +V= 5.3 +R= $V.0 # Targets start here. all: $(PLAT) diff --git a/3rdparty/lua/README b/3rdparty/lua/README index 49033adb5bf..32fb68e77e3 100644 --- a/3rdparty/lua/README +++ b/3rdparty/lua/README @@ -1,5 +1,5 @@ -This is Lua 5.2.3, released on 11 Nov 2013. +This is Lua 5.3.0, released on 06 Jan 2015. For installation instructions, license details, and further information about Lua, see doc/readme.html. diff --git a/3rdparty/lua/doc/contents.html b/3rdparty/lua/doc/contents.html index 0ce297da19c..e59e4215eee 100644 --- a/3rdparty/lua/doc/contents.html +++ b/3rdparty/lua/doc/contents.html @@ -1,7 +1,7 @@ -Lua 5.2 Reference Manual - contents +Lua 5.3 Reference Manual - contents