diff options
| author | 2015-10-27 11:08:15 -0300 | |
|---|---|---|
| committer | 2015-10-27 11:08:15 -0300 | |
| commit | e83fbbdcb0632374fb2a2042ec087580e37abe90 (patch) | |
| tree | e439a264d4d6c635842aa187b76a5586823485e1 | |
| parent | 29303e07cfc5dbabab04469e9688eb01226e6e10 (diff) | |
| parent | 0dc0ad19d7c1549e814577be438ce06ca9b00550 (diff) | |
Merge branch 'master' of https://github.com/mamedev/mame
| -rw-r--r-- | hash/a2600.xml | 4 | ||||
| -rw-r--r-- | hash/sg1000.xml | 43 | ||||
| -rw-r--r-- | hash/sms.xml | 65 | ||||
| -rw-r--r-- | hlsl/vector.fx | 20 | ||||
| -rw-r--r-- | scripts/target/mame/mess.lua | 1 | ||||
| -rw-r--r-- | src/devices/bus/a2bus/a2themill.c | 69 | ||||
| -rw-r--r-- | src/emu/emuopts.c | 4 | ||||
| -rw-r--r-- | src/emu/emuopts.h | 8 | ||||
| -rw-r--r-- | src/emu/ui/ui.c | 58 | ||||
| -rw-r--r-- | src/emu/video/vector.c | 134 | ||||
| -rw-r--r-- | src/emu/video/vector.h | 26 | ||||
| -rw-r--r-- | src/mame/arcade.lst | 7 | ||||
| -rw-r--r-- | src/mame/drivers/bublbobl.c | 275 | ||||
| -rw-r--r-- | src/mame/drivers/exelv.c | 2 | ||||
| -rw-r--r-- | src/mame/drivers/osborne1.c | 2 | ||||
| -rw-r--r-- | src/mame/drivers/pc.c | 2 | ||||
| -rw-r--r-- | src/mame/drivers/sega_sawatte.c | 54 | ||||
| -rw-r--r-- | src/mame/drivers/subhuntr.c | 4 | ||||
| -rw-r--r-- | src/mame/includes/neogeo.h | 82 | ||||
| -rw-r--r-- | src/mame/includes/osborne1.h | 1 | ||||
| -rw-r--r-- | src/mame/machine/osborne1.c | 39 | ||||
| -rw-r--r-- | src/mame/mess.lst | 1 | ||||
| -rw-r--r-- | src/osd/modules/debugger/osx/debugview.m | 2 | ||||
| -rw-r--r-- | src/osd/sdl/video.c | 2 |
24 files changed, 730 insertions, 175 deletions
diff --git a/hash/a2600.xml b/hash/a2600.xml index 2cadf4340bc..732a78084d9 100644 --- a/hash/a2600.xml +++ b/hash/a2600.xml @@ -17977,7 +17977,7 @@ Info from Atariage and Atarimania <part name="cart" interface="a2600_cart"> <feature name="slot" value="a26_dpcplus" /> <dataarea name="rom" size="0x8000"> - <rom name="SF2_demo_NTSC.bin" size="0x8000" crc="fd850bd6" sha1="bd8166da7777c66e6bb3ab0c77563193d8289f5f)" offset="0" /> + <rom name="SF2_demo_NTSC.bin" size="0x8000" crc="fd850bd6" sha1="bd8166da7777c66e6bb3ab0c77563193d8289f5f" offset="0" /> </dataarea> </part> </software> @@ -18004,7 +18004,7 @@ Info from Atariage and Atarimania <part name="cart" interface="a2600_cart"> <feature name="slot" value="a26_dpcplus" /> <dataarea name="rom" size="0x8000"> - <rom name="SF2_demo_PAL.bin" size="0x8000" crc="b47582f3" sha1="73625429e73f1b354e0cbe6a360d79590032de2b)" offset="0" /> + <rom name="SF2_demo_PAL.bin" size="0x8000" crc="b47582f3" sha1="73625429e73f1b354e0cbe6a360d79590032de2b" offset="0" /> </dataarea> </part> </software> diff --git a/hash/sg1000.xml b/hash/sg1000.xml index ab40de24377..8f2aecaa907 100644 --- a/hash/sg1000.xml +++ b/hash/sg1000.xml @@ -1283,7 +1283,7 @@ A135 : 森林歷險記 / Sēnlín lìxiǎn jì -> Pitfall II (same as R-049 by A </part> </software> - <software name="herot" cloneof="hero"> + <software name="herot" cloneof="hero"> <!-- Taiwanese logo version --> <description>Qing Feng Xia (Tw)</description> <year>1985?</year> <publisher><unknown></publisher> @@ -1296,7 +1296,18 @@ A135 : 森林歷險記 / Sēnlín lìxiǎn jì -> Pitfall II (same as R-049 by A </part> </software> - <software name="homemj"> + <software name="herotw" cloneof="hero"> <!-- English logo version --> + <description>H.E.R.O. (Tw)</description> + <year>1985</year> + <publisher>Aaronix</publisher> + <part name="cart" interface="sg1000_cart"> + <dataarea name="rom" size="32768"> + <rom name="H.E.R.O. [english logo] (TW).sg" size="32768" crc="96f09c6d" sha1="82b530feef7c011361e21b62d2c359c626ab8a9c" offset="000000" /> + </dataarea> + </part> + </software> + + <software name="homemj"> <description>Home Mahjong (Jpn, v1)</description> <year>1984</year> <publisher>Sega</publisher> @@ -1347,7 +1358,18 @@ A135 : 森林歷險記 / Sēnlín lìxiǎn jì -> Pitfall II (same as R-049 by A </part> </software> - <software name="hyperspt"> + <software name="hustletw" cloneof="hustle"> + <description>Hustle Chumy / Wanpi shu (Tw)</description> + <year>1984</year> + <publisher>Aaronix</publisher> + <part name="cart" interface="sg1000_cart"> + <dataarea name="rom" size="16384"> + <rom name="Hustle Chumy (TW).sg" size="16384" crc="c4ed1fd9" sha1="e7800d107ef0a7773eea2d482b5db9d866ba74f9" offset="000000" /> + </dataarea> + </part> + </software> + + <software name="hyperspt"> <description>Hyper Sports (Jpn)</description> <year>1985</year> <publisher>Sega / Konami</publisher> @@ -2066,7 +2088,7 @@ A135 : 森林歷險記 / Sēnlín lìxiǎn jì -> Pitfall II (same as R-049 by A </part> </software> - <software name="motianda" cloneof="rocknbol"> + <software name="motianda" cloneof="rocknbol"> <!-- Taiwanese logo version --> <description>Mo Tian Da Lou (Tw)</description> <year>1985?</year> <publisher>Aaronix</publisher> @@ -2079,7 +2101,18 @@ A135 : 森林歷險記 / Sēnlín lìxiǎn jì -> Pitfall II (same as R-049 by A </part> </software> - <software name="safarihu" supported="no"> + <software name="rocknboltw" cloneof="rocknbol"> <!-- English logo version --> + <description>Rock n' Bolt (Tw)</description> + <year>1985</year> + <publisher>Aaronix</publisher> + <part name="cart" interface="sg1000_cart"> + <dataarea name="rom" size="32768"> + <rom name="Rock n' Bolt [english logo] (TW).sg" size="32768" crc="09a82af7" sha1="e3be08bda8459fc60836abe332e9864e7c596202" offset="000000" /> + </dataarea> + </part> + </software> + + <software name="safarihu" supported="no"> <description>Safari Hunting (Jpn)</description> <year>1983</year> <publisher>Sega</publisher> diff --git a/hash/sms.xml b/hash/sms.xml index bd3eabeb1ae..8ca17a6c605 100644 --- a/hash/sms.xml +++ b/hash/sms.xml @@ -120,7 +120,19 @@ </part> </software> - <software name="addfam"> + <software name="actionfgtw" cloneof="actionfg"> + <description>Action Fighter / Mo zhan che (Taiwan)</description> + <year>1986</year> + <publisher><unknown></publisher> + <part name="cart" interface="sms_cart"> + <dataarea name="rom" size="131072"> + <rom name="Action Fighter (TW).sms" size="131072" crc="8418f438" sha1="4f514dc568466f6b0424086edeb3fa0014f9c887" offset="000000" /> + </dataarea> + </part> + </software> + + + <software name="addfam"> <description>The Addams Family (Euro)</description> <year>1993</year> <publisher>Flying Edge</publisher> @@ -2091,7 +2103,43 @@ </part> </software> - <software name="excdizzy" supported="no"> + <software name="eswatp0" cloneof="eswatc"> <!-- early build, alt subtitle --> + <description>E-SWAT - The Ultimate Battle In The Factor Against Crime (prototype 0)</description> + <year>1990</year> + <publisher>Sega</publisher> + <info name="serial" value="7042"/> + <part name="cart" interface="sms_cart"> + <dataarea name="rom" size="262144"> + <rom name="E-SWAT [Proto 0].sms" size="262144" crc="4f20694a" sha1="855c2f54b700663cedd6484aab396d849dcb5290" offset="000000" /> + </dataarea> + </part> + </software> + + <software name="eswatp1" cloneof="eswatc"> + <description>E-SWAT - City Under Siege (prototype 1)</description> + <year>1990</year> + <publisher>Sega</publisher> + <info name="serial" value="7042"/> + <part name="cart" interface="sms_cart"> + <dataarea name="rom" size="262144"> + <rom name="E-SWAT [Proto 1].sms" size="262144" crc="f7ca9801" sha1="12c5005f8a0d78c75704b61bf87961875b9d29d4" offset="000000" /> + </dataarea> + </part> + </software> + + <software name="eswatp2" cloneof="eswatc"> + <description>E-SWAT - City Under Siege (prototype 2)</description> + <year>1990</year> + <publisher>Sega</publisher> + <info name="serial" value="7042"/> + <part name="cart" interface="sms_cart"> + <dataarea name="rom" size="262144"> + <rom name="E-SWAT [Proto 2].sms" size="262144" crc="fd91cc7e" sha1="63fa1fcbf941b0e0ce601b3094c6c31f997c95d8" offset="000000" /> + </dataarea> + </part> + </software> + + <software name="excdizzy" supported="no"> <description>The Excellent Dizzy Collection (Euro, USA, Prototype)</description> <year>19??</year> <publisher>Codemasters</publisher> @@ -5681,7 +5729,18 @@ </part> </software> - <software name="smgp"> + <software name="supcol"> + <description>Super Columns & Tetris (Kor)</description> + <year>1990</year> + <publisher>Hi-Com</publisher> + <part name="cart" interface="sms_cart"> + <dataarea name="rom" size="262144"> + <rom name="Super Columns (KR).sms" size="32768" crc="6ce7f694" sha1="9d696b6eda1d13b8d439509beeb64210987e308e" offset="000000" /> + </dataarea> + </part> + </software> + + <software name="smgp"> <description>Super Monaco GP (Euro, Bra)</description> <year>1990</year> <publisher>Sega</publisher> diff --git a/hlsl/vector.fx b/hlsl/vector.fx index 0e5f2ac314c..19267453f30 100644 --- a/hlsl/vector.fx +++ b/hlsl/vector.fx @@ -42,15 +42,19 @@ uniform float3 LengthParams; VS_OUTPUT vs_main(VS_INPUT Input) { VS_OUTPUT Output = (VS_OUTPUT)0; - + Output.Position = float4(Input.Position.xyz, 1.0f); Output.Position.xy /= ScreenDims; - Output.Position.y = 1.0f - Output.Position.y; - Output.Position.xy -= 0.5f; - Output.Position *= float4(2.0f, 2.0f, 1.0f, 1.0f); - Output.Color = Input.Color; + Output.Position.y = 1.0f - Output.Position.y; // flip y + Output.Position.xy -= 0.5f; // center + Output.Position.xy *= 2.0f; // zoom + Output.TexCoord = Input.Position.xy / ScreenDims; + + Output.Color = Input.Color; + Output.LineInfo = Input.LineInfo; + return Output; } @@ -64,14 +68,14 @@ VS_OUTPUT vs_main(VS_INPUT Input) // LengthParams.z: Size at which fade is maximum float4 ps_main(PS_INPUT Input) : COLOR { - float timeModulate = lerp(1.0f, TimeParams.x, TimeParams.y) * 1.0; + float timeModulate = lerp(1.0f, TimeParams.x, TimeParams.y); float lengthModulate = 1.0f - clamp(Input.LineInfo.x / LengthParams.z, 0.0f, 1.0f); float minLength = 2.0f - clamp(Input.LineInfo.x - 1.0f, 0.0f, 2.0f); lengthModulate = lerp(lengthModulate, 4.0f, minLength * 0.5f); - lengthModulate = lerp(1.0f, timeModulate * lengthModulate, LengthParams.y) * 1.0; + lengthModulate = lerp(1.0f, timeModulate * lengthModulate, LengthParams.y); - float4 outColor = Input.Color * float4(lengthModulate, lengthModulate, lengthModulate, 1.0f) * 2.0; + float4 outColor = Input.Color * float4(lengthModulate, lengthModulate, lengthModulate, 1.0f); return outColor; } diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index a055b0fcab7..61872202e6e 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2137,6 +2137,7 @@ files { MAME_DIR .. "src/mame/drivers/megadriv.c", MAME_DIR .. "src/mame/drivers/saturn.c", MAME_DIR .. "src/mame/drivers/segapico.c", + MAME_DIR .. "src/mame/drivers/sega_sawatte.c", MAME_DIR .. "src/mame/drivers/segapm.c", MAME_DIR .. "src/mame/drivers/sg1000.c", MAME_DIR .. "src/mame/drivers/sms.c", diff --git a/src/devices/bus/a2bus/a2themill.c b/src/devices/bus/a2bus/a2themill.c index 4ea020ae434..8f6fc5d1cc0 100644 --- a/src/devices/bus/a2bus/a2themill.c +++ b/src/devices/bus/a2bus/a2themill.c @@ -7,21 +7,18 @@ Implementation of the Stellation Two The Mill 6809 card The OS9 add-on changes the address mapping as follows: - 6809 0x0000-0xafff -> 6502 0x1000-0xbfff - 6809 0xb000-0xdfff -> 6502 0xd000-0xffff - 6809 0xe000-0xefff -> 6502 0xc000-0xcfff - 6809 0xf000-0xffff -> 6502 0x0000-0x0fff + 6809 0x0000-0x7fff -> 6502 0x1000-0x8fff + 6809 0x8000-0xafff -> 6502 0xd000-0xffff + 6809 0xb000-0xbfff -> 6502 0xc000-0xcfff + 6809 0xc000-0xcfff -> 6502 0x0000-0x0fff + 6809 0xd000-0xffff -> 6502 0x9000-0xbfff - (reference: http://mirrors.apple2.org.za/ground.icaen.uiowa.edu/MiscInfo/Hardware/mill.6809 ) + (reference: "6809.txt" on one of the disks for The Mill) ProDOS "Stellation The Mill Disk.po" requires Mill in slot 2; boot the disc and type "-DEMO1" and press Enter to launch the simple demo. - The OS9 disk image available around the internet seems to be bad - the - 6809 boot vector is 0x4144 which maps to 6502 0x5144 and there's all - zeros from 6502 1000-8fff. There is valid 6809 code from 9000-BFFF - at the point where it wants to boot the 6809, but I don't know what - is supposed to be the entry point. + TODO: Add DIP switch to select standard and OS-9 modes. *********************************************************************/ @@ -103,7 +100,7 @@ void a2bus_themill_device::device_reset() { m_bEnabled = false; m_flipAddrSpace = false; - m_6809Mode = false; + m_6809Mode = true; m_status = 0xc0; // OS9 loader relies on this m_6809->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); m_6809->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); @@ -238,31 +235,33 @@ void a2bus_themill_device::write_c0nx(address_space &space, UINT8 offset, UINT8 READ8_MEMBER( a2bus_themill_device::dma_r ) { + // MAME startup ordering has the 6809 free-running at boot, which is undesirable + if (!m_bEnabled) + { + m_6809->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); + } + if (m_6809Mode) { - if (offset <= 0xafff) + if (offset <= 0x7fff) { return slot_dma_read(space, offset+0x1000); } - else if (offset <= 0xbfff) + else if (offset <= 0xafff) { - return slot_dma_read(space, (offset&0xfff) + 0xd000); + return slot_dma_read(space, (offset&0x3fff) + 0xd000); } - else if (offset <= 0xcfff) - { - return slot_dma_read(space, (offset&0xfff) + 0xe000); - } - else if (offset <= 0xdfff) + else if (offset <= 0xbfff) { - return slot_dma_read(space, (offset&0xfff) + 0xf000); + return slot_dma_read(space, (offset&0xfff) + 0xc000); } - else if (offset <= 0xefff) + else if (offset <= 0xcfff) // 6809 Cxxx -> 6502 ZP { - return slot_dma_read(space, (offset&0xfff) + 0xc000); + return slot_dma_read(space, (offset&0xfff)); } - else // 6809 Fxxx -> 6502 ZP + else // 6809 Dxxx -> 6502 9000 { - return slot_dma_read(space, offset&0xfff); + return slot_dma_read(space, (offset-0xd000)+0x9000); } } else @@ -289,29 +288,25 @@ WRITE8_MEMBER( a2bus_themill_device::dma_w ) { if (m_6809Mode) { - if (offset <= 0xafff) + if (offset <= 0x7fff) { slot_dma_write(space, offset+0x1000, data); } - else if (offset <= 0xbfff) - { - slot_dma_write(space, (offset&0xfff) + 0xd000, data); - } - else if (offset <= 0xcfff) + else if (offset <= 0xafff) { - slot_dma_write(space, (offset&0xfff) + 0xe000, data); + slot_dma_write(space, (offset&0x3fff) + 0xd000, data); } - else if (offset <= 0xdfff) + else if (offset <= 0xbfff) { - slot_dma_write(space, (offset&0xfff) + 0xf000, data); + slot_dma_write(space, (offset&0xfff) + 0xc000, data); } - else if (offset <= 0xefff) + else if (offset <= 0xcfff) { - slot_dma_write(space, (offset&0xfff) + 0xc000, data); + slot_dma_write(space, (offset&0xfff), data); } - else // 6809 Fxxx -> 6502 ZP + else // 6809 Dxxx -> 6502 9000 { - slot_dma_write(space, offset&0xfff, data); + slot_dma_write(space, (offset-0xd000)+0x9000, data); } } else diff --git a/src/emu/emuopts.c b/src/emu/emuopts.c index 21128e53e93..148facf5cc4 100644 --- a/src/emu/emuopts.c +++ b/src/emu/emuopts.c @@ -112,7 +112,9 @@ const options_entry emu_options::s_option_entries[] = // vector options { NULL, NULL, OPTION_HEADER, "CORE VECTOR OPTIONS" }, { OPTION_ANTIALIAS ";aa", "1", OPTION_BOOLEAN, "use antialiasing when drawing vectors" }, - { OPTION_BEAM, "1.0", OPTION_FLOAT, "set vector beam width" }, + { OPTION_BEAM_WIDTH_MIN, "1.0", OPTION_FLOAT, "set vector beam width minimum" }, + { OPTION_BEAM_WIDTH_MAX, "1.0", OPTION_FLOAT, "set vector beam width maximum" }, + { OPTION_BEAM_INTENSITY_WEIGHT, "0", OPTION_FLOAT, "set vector beam intensity weight " }, { OPTION_FLICKER, "0", OPTION_FLOAT, "set vector flicker effect" }, // sound options diff --git a/src/emu/emuopts.h b/src/emu/emuopts.h index 0bbeb6ae3d7..d59ecd10a0a 100644 --- a/src/emu/emuopts.h +++ b/src/emu/emuopts.h @@ -119,7 +119,9 @@ enum // core vector options #define OPTION_ANTIALIAS "antialias" -#define OPTION_BEAM "beam" +#define OPTION_BEAM_WIDTH_MIN "beam_width_min" +#define OPTION_BEAM_WIDTH_MAX "beam_width_max" +#define OPTION_BEAM_INTENSITY_WEIGHT "beam_intensity_weight" #define OPTION_FLICKER "flicker" // core sound options @@ -296,7 +298,9 @@ public: // core vector options bool antialias() const { return bool_value(OPTION_ANTIALIAS); } - float beam() const { return float_value(OPTION_BEAM); } + float beam_width_min() const { return float_value(OPTION_BEAM_WIDTH_MIN); } + float beam_width_max() const { return float_value(OPTION_BEAM_WIDTH_MAX); } + float beam_intensity_weight() const { return float_value(OPTION_BEAM_INTENSITY_WEIGHT); } float flicker() const { return float_value(OPTION_FLICKER); } // core sound options diff --git a/src/emu/ui/ui.c b/src/emu/ui/ui.c index 95b51f24bab..fbcf3dfc693 100644 --- a/src/emu/ui/ui.c +++ b/src/emu/ui/ui.c @@ -124,7 +124,9 @@ static INT32 slider_overyscale(running_machine &machine, void *arg, std::string static INT32 slider_overxoffset(running_machine &machine, void *arg, std::string *str, INT32 newval); static INT32 slider_overyoffset(running_machine &machine, void *arg, std::string *str, INT32 newval); static INT32 slider_flicker(running_machine &machine, void *arg, std::string *str, INT32 newval); -static INT32 slider_beam(running_machine &machine, void *arg, std::string *str, INT32 newval); +static INT32 slider_beam_width_min(running_machine &machine, void *arg, std::string *str, INT32 newval); +static INT32 slider_beam_width_max(running_machine &machine, void *arg, std::string *str, INT32 newval); +static INT32 slider_beam_intensity_weight(running_machine &machine, void *arg, std::string *str, INT32 newval); static char *slider_get_screen_desc(screen_device &screen); #ifdef MAME_DEBUG static INT32 slider_crossscale(running_machine &machine, void *arg, std::string *str, INT32 newval); @@ -1964,10 +1966,14 @@ static slider_state *slider_init(running_machine &machine) for (screen_device *screen = scriter.first(); screen != NULL; screen = scriter.next()) if (screen->screen_type() == SCREEN_TYPE_VECTOR) { - // add flicker control + // add vector control *tailptr = slider_alloc(machine, "Vector Flicker", 0, 0, 1000, 10, slider_flicker, NULL); tailptr = &(*tailptr)->next; - *tailptr = slider_alloc(machine, "Beam Width", 10, 100, 1000, 10, slider_beam, NULL); + *tailptr = slider_alloc(machine, "Beam Width Minimum", 1, 100, 1000, 1, slider_beam_width_min, NULL); + tailptr = &(*tailptr)->next; + *tailptr = slider_alloc(machine, "Beam Width Maximum", 1, 100, 1000, 1, slider_beam_width_max, NULL); + tailptr = &(*tailptr)->next; + *tailptr = slider_alloc(machine, "Beam Intensity Weight", -1000, 0, 1000, 10, slider_beam_intensity_weight, NULL); tailptr = &(*tailptr)->next; break; } @@ -2340,26 +2346,58 @@ static INT32 slider_flicker(running_machine &machine, void *arg, std::string *st { vector_device *vector = NULL; if (newval != SLIDER_NOCHANGE) - vector->set_flicker((float)newval * 0.1f); + vector->set_flicker((float)newval * 0.001f); if (str != NULL) strprintf(*str,"%1.2f", (double) vector->get_flicker()); - return floor(vector->get_flicker() * 10.0f + 0.5f); + return floor(vector->get_flicker() * 1000.0f + 0.5f); +} + + +//------------------------------------------------- +// slider_beam_width_min - minimum vector beam width slider +// callback +//------------------------------------------------- + +static INT32 slider_beam_width_min(running_machine &machine, void *arg, std::string *str, INT32 newval) +{ + vector_device *vector = NULL; + if (newval != SLIDER_NOCHANGE) + vector->set_beam_width_min(MIN((float)newval * 0.01f, vector->get_beam_width_max())); + if (str != NULL) + strprintf(*str,"%1.2f", (double) vector->get_beam_width_min()); + return floor(vector->get_beam_width_min() * 100.0f + 0.5f); +} + + +//------------------------------------------------- +// slider_beam_width_max - maximum vector beam width slider +// callback +//------------------------------------------------- + +static INT32 slider_beam_width_max(running_machine &machine, void *arg, std::string *str, INT32 newval) +{ + vector_device *vector = NULL; + if (newval != SLIDER_NOCHANGE) + vector->set_beam_width_max(MAX((float)newval * 0.01f, vector->get_beam_width_min())); + if (str != NULL) + strprintf(*str,"%1.2f", (double) vector->get_beam_width_max()); + return floor(vector->get_beam_width_max() * 100.0f + 0.5f); } //------------------------------------------------- -// slider_beam - vector beam width slider +// slider_beam_intensity_weight - vector beam intensity weight slider // callback //------------------------------------------------- -static INT32 slider_beam(running_machine &machine, void *arg, std::string *str, INT32 newval) +static INT32 slider_beam_intensity_weight(running_machine &machine, void *arg, std::string *str, INT32 newval) { vector_device *vector = NULL; if (newval != SLIDER_NOCHANGE) - vector->set_beam((float)newval * 0.01f); + vector->set_beam_intensity_weight((float)newval * 0.001f); if (str != NULL) - strprintf(*str,"%1.2f", (double) vector->get_beam()); - return floor(vector->get_beam() * 100.0f + 0.5f); + strprintf(*str,"%1.2f", (double) vector->get_beam_intensity_weight()); + return floor(vector->get_beam_intensity_weight() * 1000.0f + 0.5f); } diff --git a/src/emu/video/vector.c b/src/emu/video/vector.c index 5e88ad286d9..f0146234afe 100644 --- a/src/emu/video/vector.c +++ b/src/emu/video/vector.c @@ -35,11 +35,11 @@ #include "vector.h" +#define FLT_EPSILON 1E-5 -#define VECTOR_WIDTH_DENOM 512 +#define VECTOR_WIDTH_DENOM 512 - -#define MAX_POINTS 10000 +#define MAX_POINTS 10000 #define VECTOR_TEAM \ "-* Vector Heads *-\n" \ @@ -140,17 +140,19 @@ vector_device::vector_device(const machine_config &mconfig, const char *tag, dev { } -float vector_device::m_flicker_correction = 0.0f; -float vector_device::m_beam_width = 0.0f; -int vector_device::m_flicker; +float vector_device::m_flicker = 0.0f; +float vector_device::m_beam_width_min = 0.0f; +float vector_device::m_beam_width_max = 0.0f; +float vector_device::m_beam_intensity_weight = 0.0f; int vector_device::m_vector_index; void vector_device::device_start() { - m_beam_width = machine().options().beam(); - /* Grab the settings for this session */ - set_flicker(machine().options().flicker()); + m_beam_width_min = machine().options().beam_width_min(); + m_beam_width_max = machine().options().beam_width_max(); + m_beam_intensity_weight = machine().options().beam_intensity_weight(); + m_flicker = machine().options().flicker(); m_vector_index = 0; @@ -158,25 +160,54 @@ void vector_device::device_start() m_vector_list = auto_alloc_array_clear(machine(), point, MAX_POINTS); } -void vector_device::set_flicker(float _flicker) +void vector_device::set_flicker(float newval) { - m_flicker_correction = _flicker; - m_flicker = (int)(m_flicker_correction * 2.55f); + m_flicker = newval; } float vector_device::get_flicker() { - return m_flicker_correction; + return m_flicker; +} + +void vector_device::set_beam_width_min(float newval) +{ + m_beam_width_min = newval; +} + +float vector_device::get_beam_width_min() +{ + return m_beam_width_min; +} + +void vector_device::set_beam_width_max(float newval) +{ + m_beam_width_max = newval; +} + +float vector_device::get_beam_width_max() +{ + return m_beam_width_max; +} + +void vector_device::set_beam_intensity_weight(float newval) +{ + m_beam_intensity_weight = newval; } -void vector_device::set_beam(float _beam) +float vector_device::get_beam_intensity_weight() { - m_beam_width = _beam; + return m_beam_intensity_weight; } -float vector_device::get_beam() + +/* + * www.dinodini.wordpress.com/2010/04/05/normalized-tunable-sigmoid-functions/ + */ +float vector_device::normalized_sigmoid(float n, float k) { - return m_beam_width; + // valid for n and k in range of -1.0 and 1.0 + return (n - n * k) / (k - fabs(n) * 2.0f * k + 1.0f); } @@ -184,21 +215,30 @@ float vector_device::get_beam() * Adds a line end point to the vertices list. The vector processor emulation * needs to call this. */ -void vector_device::add_point (int x, int y, rgb_t color, int intensity) +void vector_device::add_point(int x, int y, rgb_t color, int intensity) { point *newpoint; - if (intensity > 0xff) - intensity = 0xff; + if (intensity > 255) + { + intensity = 255; + } if (m_flicker && (intensity > 0)) { - intensity += (intensity * (0x80-(machine().rand()&0xff)) * m_flicker)>>16; + float random = (float)(machine().rand() & 255) / 255.0f; // random value between 0.0 and 1.0 + + intensity -= (int)(intensity * random * m_flicker); if (intensity < 0) + { intensity = 0; - if (intensity > 0xff) - intensity = 0xff; + } + if (intensity > 255) + { + intensity = 255; + } } + newpoint = &m_vector_list[m_vector_index]; newpoint->x = x; newpoint->y = y; @@ -214,10 +254,11 @@ void vector_device::add_point (int x, int y, rgb_t color, int intensity) } } + /* * Add new clipping info to the list */ -void vector_device::add_clip (int x1, int yy1, int x2, int y2) +void vector_device::add_clip(int x1, int yy1, int x2, int y2) { point *newpoint; @@ -241,7 +282,7 @@ void vector_device::add_clip (int x1, int yy1, int x2, int y2) * The vector CPU creates a new display list. We save the old display list, * but only once per refresh. */ -void vector_device::clear_list (void) +void vector_device::clear_list(void) { m_vector_index = 0; } @@ -255,10 +296,15 @@ UINT32 vector_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, float yscale = 1.0f / (65536 * visarea.height()); float xoffs = (float)visarea.min_x; float yoffs = (float)visarea.min_y; + float xratio = xscale / yscale; + float yratio = yscale / xscale; + xratio = (xratio < 1.0f) ? xratio : 1.0f; + xratio = (yratio < 1.0f) ? yratio : 1.0f; + point *curpoint; render_bounds clip; - int lastx = 0, lasty = 0; - int i; + int lastx = 0; + int lasty = 0; curpoint = m_vector_list; @@ -268,7 +314,7 @@ UINT32 vector_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, clip.x0 = clip.y0 = 0.0f; clip.x1 = clip.y1 = 1.0f; - for (i = 0; i < m_vector_index; i++) + for (int i = 0; i < m_vector_index; i++) { render_bounds coords; @@ -286,22 +332,42 @@ UINT32 vector_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, } else { + float intensity = (float)curpoint->intensity / 255.0f; + float intensity_weight = normalized_sigmoid(intensity, m_beam_intensity_weight); + + float beam_intensity_width = (m_beam_width_max - m_beam_width_min) * intensity_weight + m_beam_width_min; + float beam_width = beam_intensity_width * (1.0f / (float)VECTOR_WIDTH_DENOM); + coords.x0 = ((float)lastx - xoffs) * xscale; coords.y0 = ((float)lasty - yoffs) * yscale; coords.x1 = ((float)curpoint->x - xoffs) * xscale; coords.y1 = ((float)curpoint->y - yoffs) * yscale; - if (curpoint->intensity != 0) - if (!render_clip_line(&coords, &clip)) - screen.container().add_line(coords.x0, coords.y0, coords.x1, coords.y1, - m_beam_width * (1.0f / (float)VECTOR_WIDTH_DENOM), - (curpoint->intensity << 24) | (curpoint->col & 0xffffff), - flags); + // extend zero-length vector line (vector point) by quarter beam_width on both sides + if (fabs(coords.x0 - coords.x1) < FLT_EPSILON && + fabs(coords.y0 - coords.y1) < FLT_EPSILON) + { + coords.x0 += xratio * beam_width * 0.25f; + coords.y0 += yratio * beam_width * 0.25f; + coords.x1 -= xratio * beam_width * 0.25f; + coords.y1 -= yratio * beam_width * 0.25f; + } + + if (curpoint->intensity != 0 && !render_clip_line(&coords, &clip)) + { + screen.container().add_line( + coords.x0, coords.y0, coords.x1, coords.y1, + beam_width, + (curpoint->intensity << 24) | (curpoint->col & 0xffffff), + flags); + } lastx = curpoint->x; lasty = curpoint->y; } + curpoint++; } + return 0; } diff --git a/src/emu/video/vector.h b/src/emu/video/vector.h index 2e922d4a922..208b2215af1 100644 --- a/src/emu/video/vector.h +++ b/src/emu/video/vector.h @@ -16,7 +16,7 @@ /* The vertices are buffered here */ struct point { - point(): + point() : x(0), y(0), col(0), @@ -32,8 +32,7 @@ struct point int status; /* for dirty and clipping handling */ }; -class vector_device : public device_t, - public device_video_interface +class vector_device : public device_t, public device_video_interface { public: // construction/destruction @@ -46,21 +45,30 @@ public: void add_point(int x, int y, rgb_t color, int intensity); void add_clip(int minx, int miny, int maxx, int maxy); - void set_flicker(float m_flicker_correction); + void set_flicker(float newval); float get_flicker(); - void set_beam(float _beam); - float get_beam(); + void set_beam_width_min(float newval); + float get_beam_width_min(); + + void set_beam_width_max(float newval); + float get_beam_width_max(); + + void set_beam_intensity_weight(float newval); + float get_beam_intensity_weight(); // device-level overrides virtual void device_start(); private: - static int m_flicker; /* beam flicker value */ - static float m_flicker_correction; - static float m_beam_width; + static float m_flicker; + static float m_beam_width_min; + static float m_beam_width_max; + static float m_beam_intensity_weight; point *m_vector_list; static int m_vector_index; + + float normalized_sigmoid(float n, float k); }; diff --git a/src/mame/arcade.lst b/src/mame/arcade.lst index 3a003963d5d..cb4b29d79f2 100644 --- a/src/mame/arcade.lst +++ b/src/mame/arcade.lst @@ -2096,8 +2096,15 @@ boblbobl // bootleg sboblbobl // bootleg sboblbobla // bootleg sboblboblb // bootleg +sboblboblc // bootleg +bublboblb // bootleg bub68705 // bootleg dland // bootleg +bbredux // bootleg / hack +bublcave // hack +boblcave // hack +bublcave11 // hack +bublcave10 // hack missb2 // bootleg on enhanced hardware bublpong // bootleg on enhanced hardware kikikai // A85 (c) 1986 Taito Corporation diff --git a/src/mame/drivers/bublbobl.c b/src/mame/drivers/bublbobl.c index 28c720a8ddc..fb55af1e101 100644 --- a/src/mame/drivers/bublbobl.c +++ b/src/mame/drivers/bublbobl.c @@ -265,6 +265,11 @@ TODO: - tokio: sound support is probably incomplete. There are a couple of unknown accesses done by the CPU, including to the YM2203 I/O ports. At the very least, there should be some filters. + + there are also Bubble Bobble bootlegs with a P8749H MCU, however the MCU + is protected against reading and the main code only differs by 1 byte from + Bubble Bobble. If the MCU were to be dumped that would also make for + interesting comparisons. ***************************************************************************/ @@ -556,6 +561,19 @@ static INPUT_PORTS_START( boblbobl ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END + +static INPUT_PORTS_START( boblcave ) + PORT_INCLUDE( boblbobl ) + + PORT_MODIFY( "DSW1" ) // not monster speed on this, causes startup hangs just like original bublbobl + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW-B:7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) // must be off (see notes) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, "ROM Type" ) PORT_DIPLOCATION("DSW-B:8") + PORT_DIPSETTING( 0x80, "IC52=512kb, IC53=none" ) // will hang on startup if set to wrong type + PORT_DIPSETTING( 0x00, "IC52=256kb, IC53=256kb" ) +INPUT_PORTS_END + static INPUT_PORTS_START( sboblboblb ) PORT_INCLUDE( boblbobl ) @@ -1359,6 +1377,44 @@ ROM_START( boblbobl ) ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) ) ROM_END +ROM_START( bbredux ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "redux_bb3", 0x00000, 0x8000, CRC(d51de9f3) SHA1(dc6bc93692145563a88c146eeb1d0361e25af840) ) + /* ROMs banked at 8000-bfff */ + ROM_LOAD( "redux_bb5", 0x10000, 0x8000, CRC(d29d3444) SHA1(3db694a6ba2ba2ed85d31c2bc4c7c94911b99b85) ) + ROM_LOAD( "redux_bb4", 0x18000, 0x8000, CRC(984149bd) SHA1(9a0f96eee038712277f652545a343587f711b9aa) ) + + ROM_REGION( 0x10000, "slave", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ + ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) + ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) + ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) + ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) + /* 0x30000-0x3ffff empty */ + ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ + ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) + ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) + ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) + ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) + /* 0x70000-0x7ffff empty */ + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ + + ROM_REGION( 0x0600, "plds", 0 ) + ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) ) + ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) ) + ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) ) +ROM_END + ROM_START( sboblbobl ) ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "cpu2-3.bin", 0x00000, 0x08000, CRC(2d9107b6) SHA1(ab1a4a20f4b533cd06cc458668f407a8a14c9d70) ) @@ -1459,6 +1515,41 @@ ROM_END +ROM_START( sboblboblc ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "3", 0x00000, 0x08000, CRC(f2d44846) SHA1(dd1a29f2ff1938c31d4c6199cf970483ceb52485) ) + /* ROMs banked at 8000-bfff */ + ROM_LOAD( "5", 0x10000, 0x08000, CRC(3c5e4441) SHA1(b85da9d7e0148e950b76036d3f9a3d4a9dfa039c) ) + ROM_LOAD( "4", 0x18000, 0x08000, CRC(1f29b5c0) SHA1(c15c84ca11cc10edac6340468bca463ecb2d89e6) ) + /* 20000-2ffff empty */ + + ROM_REGION( 0x10000, "slave", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "1", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "2", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ + ROM_LOAD( "13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) + ROM_LOAD( "14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) + ROM_LOAD( "16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) + ROM_LOAD( "17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) + /* 0x30000-0x3ffff empty */ + ROM_LOAD( "6", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ + ROM_LOAD( "7", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) + ROM_LOAD( "8", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "9", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) + ROM_LOAD( "10", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) + ROM_LOAD( "11", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) + /* 0x70000-0x7ffff empty */ + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ + +ROM_END + ROM_START( bub68705 ) ROM_REGION( 0x30000, "maincpu", 0 ) /* Program roms match Bubble Bobble (older) */ ROM_LOAD( "2.bin", 0x00000, 0x08000, CRC(32c8305b) SHA1(6bf69b3edfbefd33cd670a762b4bf0b39629a220) ) @@ -1526,6 +1617,178 @@ ROM_START( dland ) ROM_END +ROM_START( bublcave ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "bublcave-06.51", 0x00000, 0x08000, CRC(e8b9af5e) SHA1(dec44e47634a402df212806e84e3a810f8442776) ) + ROM_LOAD( "bublcave-05.52", 0x10000, 0x10000, CRC(cfe14cb8) SHA1(17d463c755f630ae9d05943515fa4828972bd7b0) ) + + ROM_REGION( 0x10000, "slave", 0 ) + ROM_LOAD( "bublcave-08.37", 0x0000, 0x08000, CRC(a9384086) SHA1(26e686671d6d3ba3759716bf46e7f951bbb8a291) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x10000, "mcu", 0 ) + ROM_LOAD( "a78-01.17", 0xf000, 0x1000, CRC(b1bfb53d) SHA1(31b8f31acd3aa394acd80db362774749842e1285) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "bublcave-09.12", 0x00000, 0x8000, CRC(b90b7eef) SHA1(de72e4635843ad76248aa3b4aa8f8a0bfd53879e) ) /* 1st plane */ + ROM_LOAD( "bublcave-10.13", 0x08000, 0x8000, CRC(4fb22f05) SHA1(880104e86dbd00ae657cbc768722427503b6a59f) ) + ROM_LOAD( "bublcave-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "bublcave-12.15", 0x18000, 0x8000, CRC(e49eb49e) SHA1(2e05dc8833e10bef1a317d238c39fb9f362e9997) ) + ROM_LOAD( "bublcave-13.16", 0x20000, 0x8000, CRC(61919734) SHA1(2c07e29f3dcc972d5eb47679ad81a0d7656b0cb2) ) + ROM_LOAD( "bublcave-14.17", 0x28000, 0x8000, CRC(7e3a13bd) SHA1(bd4dba799340fa599f11cc68e03efe70ba6ba99b) ) + ROM_LOAD( "bublcave-15.30", 0x40000, 0x8000, CRC(c253c73a) SHA1(3e187f6b9ca769772990068abe7b309417147d39) ) /* 2nd plane */ + ROM_LOAD( "bublcave-16.31", 0x48000, 0x8000, CRC(e66c92ee) SHA1(12ea193c54121d08ad110c94cc075e29fef3ff85) ) + ROM_LOAD( "bublcave-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "bublcave-18.33", 0x58000, 0x8000, CRC(47ee2544) SHA1(c6946e824043a312ed437e548a64ef599effbd42) ) + ROM_LOAD( "bublcave-19.34", 0x60000, 0x8000, CRC(1ceeb1fa) SHA1(eb29ff896d149f7ab4cf38a338df39df14ccc20c) ) + ROM_LOAD( "bublcave-20.35", 0x68000, 0x8000, CRC(64322e24) SHA1(acff8a9fcaf74f198653080759898d15cccf04e8) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ +ROM_END + + +ROM_START( boblcave ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "lc12_bb3", 0x00000, 0x08000, CRC(dddc9a24) SHA1(c0b31dd64d7359ae0ea5067db6ac8b54f9415e5a) ) + /* ROMs banked at 8000-bfff */ + ROM_LOAD( "lc12_bb5", 0x10000, 0x08000, CRC(0bc4de52) SHA1(55581a557dfd60d93642b89eb702c7170458b826) ) + ROM_LOAD( "lc12_bb4", 0x18000, 0x08000, CRC(bd7afdf4) SHA1(a9bcdc857b1f252c36a5a70f5027a11737f8dd59) ) + /* 20000-2ffff empty */ + + ROM_REGION( 0x10000, "slave", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "bublcave-08.37", 0x0000, 0x08000, CRC(a9384086) SHA1(26e686671d6d3ba3759716bf46e7f951bbb8a291) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "bublcave-09.12", 0x00000, 0x8000, CRC(b90b7eef) SHA1(de72e4635843ad76248aa3b4aa8f8a0bfd53879e) ) /* 1st plane */ + ROM_LOAD( "bublcave-10.13", 0x08000, 0x8000, CRC(4fb22f05) SHA1(880104e86dbd00ae657cbc768722427503b6a59f) ) + ROM_LOAD( "bublcave-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "bublcave-12.15", 0x18000, 0x8000, CRC(e49eb49e) SHA1(2e05dc8833e10bef1a317d238c39fb9f362e9997) ) + ROM_LOAD( "bublcave-13.16", 0x20000, 0x8000, CRC(61919734) SHA1(2c07e29f3dcc972d5eb47679ad81a0d7656b0cb2) ) + ROM_LOAD( "bublcave-14.17", 0x28000, 0x8000, CRC(7e3a13bd) SHA1(bd4dba799340fa599f11cc68e03efe70ba6ba99b) ) + ROM_LOAD( "bublcave-15.30", 0x40000, 0x8000, CRC(c253c73a) SHA1(3e187f6b9ca769772990068abe7b309417147d39) ) /* 2nd plane */ + ROM_LOAD( "bublcave-16.31", 0x48000, 0x8000, CRC(e66c92ee) SHA1(12ea193c54121d08ad110c94cc075e29fef3ff85) ) + ROM_LOAD( "bublcave-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "bublcave-18.33", 0x58000, 0x8000, CRC(47ee2544) SHA1(c6946e824043a312ed437e548a64ef599effbd42) ) + ROM_LOAD( "bublcave-19.34", 0x60000, 0x8000, CRC(1ceeb1fa) SHA1(eb29ff896d149f7ab4cf38a338df39df14ccc20c) ) + ROM_LOAD( "bublcave-20.35", 0x68000, 0x8000, CRC(64322e24) SHA1(acff8a9fcaf74f198653080759898d15cccf04e8) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ + + ROM_REGION( 0x0600, "plds", 0 ) + ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) ) + ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) ) + ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) ) +ROM_END + + +ROM_START( bublcave11 ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "bublcave10-06.51", 0x00000, 0x08000, CRC(185cc219) SHA1(dfb312f144fb01c07581cb8ea55ab0dc92ccd5b2) ) + ROM_LOAD( "bublcave11-05.52", 0x10000, 0x10000, CRC(b6b02df3) SHA1(542589544216a54f84c213b161d7145934875d2b) ) + + ROM_REGION( 0x10000, "slave", 0 ) + ROM_LOAD( "bublcave11-08.37", 0x0000, 0x08000, CRC(c5d14e62) SHA1(b32b1ca76b54755a69a7a346d01545f2699e1363) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x10000, "mcu", 0 ) + ROM_LOAD( "a78-01.17", 0xf000, 0x1000, CRC(b1bfb53d) SHA1(31b8f31acd3aa394acd80db362774749842e1285) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "bublcave-09.12", 0x00000, 0x8000, CRC(b90b7eef) SHA1(de72e4635843ad76248aa3b4aa8f8a0bfd53879e) ) /* 1st plane */ + ROM_LOAD( "bublcave-10.13", 0x08000, 0x8000, CRC(4fb22f05) SHA1(880104e86dbd00ae657cbc768722427503b6a59f) ) + ROM_LOAD( "bublcave-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "bublcave-12.15", 0x18000, 0x8000, CRC(e49eb49e) SHA1(2e05dc8833e10bef1a317d238c39fb9f362e9997) ) + ROM_LOAD( "bublcave-13.16", 0x20000, 0x8000, CRC(61919734) SHA1(2c07e29f3dcc972d5eb47679ad81a0d7656b0cb2) ) + ROM_LOAD( "bublcave-14.17", 0x28000, 0x8000, CRC(7e3a13bd) SHA1(bd4dba799340fa599f11cc68e03efe70ba6ba99b) ) + ROM_LOAD( "bublcave-15.30", 0x40000, 0x8000, CRC(c253c73a) SHA1(3e187f6b9ca769772990068abe7b309417147d39) ) /* 2nd plane */ + ROM_LOAD( "bublcave-16.31", 0x48000, 0x8000, CRC(e66c92ee) SHA1(12ea193c54121d08ad110c94cc075e29fef3ff85) ) + ROM_LOAD( "bublcave-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "bublcave-18.33", 0x58000, 0x8000, CRC(47ee2544) SHA1(c6946e824043a312ed437e548a64ef599effbd42) ) + ROM_LOAD( "bublcave-19.34", 0x60000, 0x8000, CRC(1ceeb1fa) SHA1(eb29ff896d149f7ab4cf38a338df39df14ccc20c) ) + ROM_LOAD( "bublcave-20.35", 0x68000, 0x8000, CRC(64322e24) SHA1(acff8a9fcaf74f198653080759898d15cccf04e8) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ +ROM_END + +ROM_START( bublcave10 ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "bublcave10-06.51", 0x00000, 0x08000, CRC(185cc219) SHA1(dfb312f144fb01c07581cb8ea55ab0dc92ccd5b2) ) + ROM_LOAD( "bublcave10-05.52", 0x10000, 0x10000, CRC(381cdde7) SHA1(0c9de44d7dbad754e873af8ddb5a2736f5ec2096) ) + + ROM_REGION( 0x10000, "slave", 0 ) + ROM_LOAD( "bublcave10-08.37", 0x0000, 0x08000, CRC(026a68e1) SHA1(9e54310a9f1f5187ea6eb49d9189865b44708a7e) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x10000, "mcu", 0 ) + ROM_LOAD( "a78-01.17", 0xf000, 0x1000, CRC(b1bfb53d) SHA1(31b8f31acd3aa394acd80db362774749842e1285) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "bublcave-09.12", 0x00000, 0x8000, CRC(b90b7eef) SHA1(de72e4635843ad76248aa3b4aa8f8a0bfd53879e) ) /* 1st plane */ + ROM_LOAD( "bublcave-10.13", 0x08000, 0x8000, CRC(4fb22f05) SHA1(880104e86dbd00ae657cbc768722427503b6a59f) ) + ROM_LOAD( "bublcave-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "bublcave-12.15", 0x18000, 0x8000, CRC(e49eb49e) SHA1(2e05dc8833e10bef1a317d238c39fb9f362e9997) ) + ROM_LOAD( "bublcave-13.16", 0x20000, 0x8000, CRC(61919734) SHA1(2c07e29f3dcc972d5eb47679ad81a0d7656b0cb2) ) + ROM_LOAD( "bublcave-14.17", 0x28000, 0x8000, CRC(7e3a13bd) SHA1(bd4dba799340fa599f11cc68e03efe70ba6ba99b) ) + ROM_LOAD( "bublcave-15.30", 0x40000, 0x8000, CRC(c253c73a) SHA1(3e187f6b9ca769772990068abe7b309417147d39) ) /* 2nd plane */ + ROM_LOAD( "bublcave-16.31", 0x48000, 0x8000, CRC(e66c92ee) SHA1(12ea193c54121d08ad110c94cc075e29fef3ff85) ) + ROM_LOAD( "bublcave-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "bublcave-18.33", 0x58000, 0x8000, CRC(47ee2544) SHA1(c6946e824043a312ed437e548a64ef599effbd42) ) + ROM_LOAD( "bublcave-19.34", 0x60000, 0x8000, CRC(1ceeb1fa) SHA1(eb29ff896d149f7ab4cf38a338df39df14ccc20c) ) + ROM_LOAD( "bublcave-20.35", 0x68000, 0x8000, CRC(64322e24) SHA1(acff8a9fcaf74f198653080759898d15cccf04e8) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ +ROM_END + +ROM_START( bublboblb ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "bbaladar.3", 0x00000, 0x8000, CRC(31bfc6fb) SHA1(6a72086d415a69b9e5c003ec6cf7858e8c4b346f) ) + /* ROMs banked at 8000-bfff */ + ROM_LOAD( "bbaladar.5", 0x10000, 0x8000, CRC(16386e9a) SHA1(77fa3f5ecce5c79ba52098c0870482459926b415) ) + ROM_LOAD( "bbaladar.4", 0x18000, 0x8000, CRC(0c4bcb07) SHA1(3e3f7fa098d6be61d265cab5258dbd0e279bd8ed) ) + + ROM_REGION( 0x10000, "slave", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ + ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) + ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) + ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) + ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) + /* 0x30000-0x3ffff empty */ + ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ + ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) + ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) + ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) + ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) + /* 0x70000-0x7ffff empty */ + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ + + ROM_REGION( 0x0600, "plds", 0 ) + ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) ) + ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) ) + ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) ) +ROM_END /************************************* * @@ -1598,6 +1861,18 @@ GAME( 1986, boblbobl, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl GAME( 1986, sboblbobl, bublbobl, boblbobl, sboblbobl, bublbobl_state, bublbobl, ROT0, "bootleg (Datsu)", "Super Bobble Bobble (bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, sboblbobla, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, sboblboblb, bublbobl, boblbobl, sboblboblb, bublbobl_state, bublbobl, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sboblboblc, bublbobl, boblbobl, sboblboblb, bublbobl_state, bublbobl, ROT0, "bootleg", "Super Bubble Bobble (bootleg)", MACHINE_SUPPORTS_SAVE ) // the title screen on this one isn't hacked GAME( 1986, bub68705, bublbobl, bub68705, bublbobl, bublbobl_state, bublbobl, ROT0, "bootleg", "Bubble Bobble (bootleg with 68705)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, dland, bublbobl, boblbobl, dland, bublbobl_state, dland, ROT0, "bootleg", "Dream Land / Super Dream Land (bootleg of Bubble Bobble)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2013, bbredux, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "bootleg (Punji)", "Bubble Bobble ('bootleg redux' hack for Bobble Bobble PCB)", MACHINE_SUPPORTS_SAVE ) // for use on non-MCU bootleg boards (Bobble Bobble etc.) has more faithful simulation of the protection device (JAN-04-2015 release) +GAME( 2013, bublboblb, bublbobl, boblbobl, boblcave, bublbobl_state, bublbobl, ROT0, "bootleg (Aladar)", "Bubble Bobble (for Bobble Bobble PCB)", MACHINE_SUPPORTS_SAVE ) // alt bootleg/hack to restore proper MCU behavior to bootleg boards + +GAME( 2013, bublcave, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.2", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, boblcave, bublbobl, boblbobl, boblcave, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.2 (for Bobble Bobble PCB)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2012, bublcave11, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.1", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, bublcave10, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.0", MACHINE_SUPPORTS_SAVE ) + + diff --git a/src/mame/drivers/exelv.c b/src/mame/drivers/exelv.c index fc1ad3d0c0e..d2be5b34519 100644 --- a/src/mame/drivers/exelv.c +++ b/src/mame/drivers/exelv.c @@ -523,7 +523,7 @@ static MACHINE_CONFIG_START( exl100, exelv_state ) MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_linear_slot, "exelvision_cart") MCFG_GENERIC_EXTENSIONS("bin,rom") - MCFG_SOFTWARE_LIST_ADD("cart_list", "exl100_cart") + MCFG_SOFTWARE_LIST_ADD("cart_list", "exl100") MACHINE_CONFIG_END diff --git a/src/mame/drivers/osborne1.c b/src/mame/drivers/osborne1.c index 256eb247d45..dc9b61bf547 100644 --- a/src/mame/drivers/osborne1.c +++ b/src/mame/drivers/osborne1.c @@ -202,7 +202,7 @@ static MACHINE_CONFIG_START( osborne1, osborne1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_UPDATE_DRIVER(osborne1_state, screen_update) - MCFG_SCREEN_RAW_PARAMS( MAIN_CLOCK, 1024, 0, 832, 260, 0, 240 ) + MCFG_SCREEN_RAW_PARAMS( MAIN_CLOCK, 1024, 0, 104*8, 260, 0, 24*10 ) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", osborne1) MCFG_PALETTE_ADD_MONOCHROME_GREEN_HIGHLIGHT("palette") diff --git a/src/mame/drivers/pc.c b/src/mame/drivers/pc.c index fc55e7496ac..fd3eaa10c19 100644 --- a/src/mame/drivers/pc.c +++ b/src/mame/drivers/pc.c @@ -485,7 +485,7 @@ ROM_START( eagle1600 ) ROMX_LOAD( "eagle 1600 62-2732-002 rev e u404.bin",0xfe001, 0x1000, CRC(be6492d4) SHA1(ef25faf33e8336121d030e38e177be39be8afb7a), ROM_SKIP(1)) ROM_REGION(0x8000,"gfx1", 0) - ROM_LOAD("eagle 1600 video char gen u301.bin", 0x00000, 0x2000, CRC(1a7e552f) SHA1(749058783eec9d96a70dc5fdbfccb56196f889dc)) + ROM_LOAD("eagle 1600 video char gen u301.bin", 0x00000, 0x1000, CRC(1a7e552f) SHA1(749058783eec9d96a70dc5fdbfccb56196f889dc)) ROM_END /*************************************************************************** diff --git a/src/mame/drivers/sega_sawatte.c b/src/mame/drivers/sega_sawatte.c new file mode 100644 index 00000000000..a483910c724 --- /dev/null +++ b/src/mame/drivers/sega_sawatte.c @@ -0,0 +1,54 @@ +// license:BSD-3-Clause +// copyright-holders: + +/* Sega Sawatte / S-Pico + +a sound-only Pico type system (one of the boards even says S-PICO) + +CPU is unknown (I can't see one?!) cartridge dumps should be good, but not confirmed, might be data only for an MCU? +driver does nothing except allow the softlist to be connected to the -romident commands etc. + + +images supplied by Team Europe + +http://mamedev.emulab.it/haze/reference/sawatte/cartridge_pcb_front.jpg +http://mamedev.emulab.it/haze/reference/sawatte/cartridge_pcb_back.jpg + +http://mamedev.emulab.it/haze/reference/sawatte/PCB_Front.jpg +http://mamedev.emulab.it/haze/reference/sawatte/PCB_Back.jpg + +http://mamedev.emulab.it/haze/reference/sawatte/Console_Front.JPG +http://mamedev.emulab.it/haze/reference/sawatte/Console_Back.JPG + +http://mamedev.emulab.it/haze/reference/sawatte/cartridge_example.jpg + +*/ + +#include "emu.h" + + + +class sawatte_state : public driver_device +{ +public: + sawatte_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + { } + +protected: +}; + + +static INPUT_PORTS_START( sawatte ) +INPUT_PORTS_END + + +static MACHINE_CONFIG_START( sawatte, sawatte_state ) + MCFG_SOFTWARE_LIST_ADD("cart_list", "sawatte") +MACHINE_CONFIG_END + +ROM_START( sawatte ) +ROM_END + + +GAME( 1996?, sawatte, 0, sawatte, sawatte, driver_device, 0, ROT0, "Sega", "Sawatte", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/subhuntr.c b/src/mame/drivers/subhuntr.c index 3a29fce8316..76e9ced6e0d 100644 --- a/src/mame/drivers/subhuntr.c +++ b/src/mame/drivers/subhuntr.c @@ -78,7 +78,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( subhuntr_io_map, AS_IO, 8, subhuntr_state ) // AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE( , ) // AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE( , ) -// AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") + AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") ADDRESS_MAP_END /*************************************************************************** @@ -109,7 +109,7 @@ void subhuntr_state::machine_reset() INTERRUPT_GEN_MEMBER(subhuntr_state::subhuntr_interrupt) { -// device.execute().set_input_line_and_vector(0, HOLD_LINE, 0x03); + device.execute().set_input_line_and_vector(0, HOLD_LINE, 0x03); } static const gfx_layout tiles8x8_layout = diff --git a/src/mame/includes/neogeo.h b/src/mame/includes/neogeo.h index 5c5b19c585c..7fe88a53a6e 100644 --- a/src/mame/includes/neogeo.h +++ b/src/mame/includes/neogeo.h @@ -392,48 +392,54 @@ ADDRESS_MAP_EXTERN(neogeo_main_map,16); ROM_LOAD16_WORD_SWAP_BIOS( 0, "sp-s2.sp1", 0x00000, 0x020000, CRC(9036d879) SHA1(4f5ed7105b7128794654ce82b51723e16e389543) ) /* Europe, 1 Slot, has also been found on 2 Slot and 4 Slot (the old hacks were designed for this one) */ \ ROM_SYSTEM_BIOS( 1, "euro-s1", "Europe MVS (Ver. 1)" ) \ ROM_LOAD16_WORD_SWAP_BIOS( 1, "sp-s.sp1", 0x00000, 0x020000, CRC(c7f2fa45) SHA1(09576ff20b4d6b365e78e6a5698ea450262697cd) ) /* Europe, 4 Slot */ \ + \ ROM_SYSTEM_BIOS( 2, "us", "US MVS (Ver. 2?)" ) \ ROM_LOAD16_WORD_SWAP_BIOS( 2, "sp-u2.sp1", 0x00000, 0x020000, CRC(e72943de) SHA1(5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb) ) /* US, 2 Slot */ \ ROM_SYSTEM_BIOS( 3, "us-e", "US MVS (Ver. 1)" ) \ ROM_LOAD16_WORD_SWAP_BIOS( 3, "sp-e.sp1", 0x00000, 0x020000, CRC(2723a5b5) SHA1(5dbff7531cf04886cde3ef022fb5ca687573dcb8) ) /* US, 6 Slot (V5?) */ \ - ROM_SYSTEM_BIOS( 4, "asia", "Asia MVS (Ver. 3)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS( 4, "asia-s3.rom", 0x00000, 0x020000, CRC(91b64be3) SHA1(720a3e20d26818632aedf2c2fd16c54f213543e1) ) /* Asia */ \ - ROM_SYSTEM_BIOS( 5, "japan", "Japan MVS (Ver. 3)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS( 5, "vs-bios.rom", 0x00000, 0x020000, CRC(f0e8f27d) SHA1(ecf01eda815909f1facec62abf3594eaa8d11075) ) /* Japan, Ver 6 VS Bios */ \ - ROM_SYSTEM_BIOS( 6, "japan-s2", "Japan MVS (Ver. 2)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS( 6, "sp-j2.sp1", 0x00000, 0x020000, CRC(acede59c) SHA1(b6f97acd282fd7e94d9426078a90f059b5e9dd91) ) /* Japan, Older */ \ - ROM_SYSTEM_BIOS( 7, "japan-s1", "Japan MVS (Ver. 1)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS( 7, "sp1.jipan.1024", 0x00000, 0x020000, CRC(9fb0abe4) SHA1(18a987ce2229df79a8cf6a84f968f0e42ce4e59d) ) /* Japan, Older */ \ - ROM_SYSTEM_BIOS( 8, "mv1c", "NEO-MVH MV1C" ) \ - ROM_LOAD16_WORD_SWAP_BIOS( 8, "sp-45.sp1", 0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) ) /* Latest Asia bios */ \ - ROM_SYSTEM_BIOS( 9, "japan-j3", "Japan MVS (J3)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS( 9, "japan-j3.bin", 0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) ) /* Latest Japan bios; correct chip label unknown */ \ - ROM_SYSTEM_BIOS(10, "japan-hotel", "Custom Japanese Hotel" ) \ - ROM_LOAD16_WORD_SWAP_BIOS(10, "sp-1v1_3db8c.bin", 0x00000, 0x020000, CRC(162f0ebe) SHA1(fe1c6dd3dfcf97d960065b1bb46c1e11cb7bf271) ) /* 'rare MVS found in japanese hotels' shows v1.3 in test mode */ \ - ROM_SYSTEM_BIOS(11, "unibios31", "Universe Bios (Hack, Ver. 3.1)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS(11, "uni-bios_3_1.rom", 0x00000, 0x020000, CRC(0c58093f) SHA1(29329a3448c2505e1ff45ffa75e61e9693165153) ) /* Universe Bios v3.1 (hack) */ \ - ROM_SYSTEM_BIOS(12, "unibios30", "Universe Bios (Hack, Ver. 3.0)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS(12, "uni-bios_3_0.rom", 0x00000, 0x020000, CRC(a97c89a9) SHA1(97a5eff3b119062f10e31ad6f04fe4b90d366e7f) ) /* Universe Bios v3.0 (hack) */ \ - ROM_SYSTEM_BIOS(13, "unibios23", "Universe Bios (Hack, Ver. 2.3)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS(13, "uni-bios_2_3.rom", 0x00000, 0x020000, CRC(27664eb5) SHA1(5b02900a3ccf3df168bdcfc98458136fd2b92ac0) ) /* Universe Bios v2.3 (hack) */ \ - ROM_SYSTEM_BIOS(14, "unibios23o", "Universe Bios (Hack, Ver. 2.3, older?)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS(14, "uni-bios_2_3o.rom", 0x00000, 0x020000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) /* Universe Bios v2.3 (hack) alt version, withdrawn? */ \ - ROM_SYSTEM_BIOS(15, "unibios22", "Universe Bios (Hack, Ver. 2.2)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS(15, "uni-bios_2_2.rom", 0x00000, 0x020000, CRC(2d50996a) SHA1(5241a4fb0c63b1a23fd1da8efa9c9a9bd3b4279c) ) /* Universe Bios v2.2 (hack) */ \ - ROM_SYSTEM_BIOS(16, "unibios21", "Universe Bios (Hack, Ver. 2.1)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS(16, "uni-bios_2_1.rom", 0x00000, 0x020000, CRC(8dabf76b) SHA1(c23732c4491d966cf0373c65c83c7a4e88f0082c) ) /* Universe Bios v2.1 (hack) */ \ - ROM_SYSTEM_BIOS(17, "unibios20", "Universe Bios (Hack, Ver. 2.0)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS(17, "uni-bios_2_0.rom", 0x00000, 0x020000, CRC(0c12c2ad) SHA1(37bcd4d30f3892078b46841d895a6eff16dc921e) ) /* Universe Bios v2.0 (hack) */ \ - ROM_SYSTEM_BIOS(18, "unibios13", "Universe Bios (Hack, Ver. 1.3)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS(18, "uni-bios_1_3.rom", 0x00000, 0x020000, CRC(b24b44a0) SHA1(eca8851d30557b97c309a0d9f4a9d20e5b14af4e) ) /* Universe Bios v1.3 (hack) */ \ - ROM_SYSTEM_BIOS(19, "unibios12", "Universe Bios (Hack, Ver. 1.2)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS(19, "uni-bios_1_2.rom", 0x00000, 0x020000, CRC(4fa698e9) SHA1(682e13ec1c42beaa2d04473967840c88fd52c75a) ) /* Universe Bios v1.2 (hack) */ \ - ROM_SYSTEM_BIOS(20, "unibios12o", "Universe Bios (Hack, Ver. 1.2, older)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS(20, "uni-bios_1_2o.rom", 0x00000, 0x020000, CRC(e19d3ce9) SHA1(af88ef837f44a3af2d7144bb46a37c8512b67770) ) /* Universe Bios v1.2 (hack) alt version */ \ - ROM_SYSTEM_BIOS(21, "unibios11", "Universe Bios (Hack, Ver. 1.1)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS(21, "uni-bios_1_1.rom", 0x00000, 0x020000, CRC(5dda0d84) SHA1(4153d533c02926a2577e49c32657214781ff29b7) ) /* Universe Bios v1.1 (hack) */ \ - ROM_SYSTEM_BIOS(22, "unibios10", "Universe Bios (Hack, Ver. 1.0)" ) \ - ROM_LOAD16_WORD_SWAP_BIOS(22, "uni-bios_1_0.rom", 0x00000, 0x020000, CRC(0ce453a0) SHA1(3b4c0cd26c176fc6b26c3a2f95143dd478f6abf9) ) /* Universe Bios v1.0 (hack) */ + ROM_SYSTEM_BIOS( 4, "us-v2", "US MVS (4 slot, Ver 2)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(4, "v2.bin", 0x00000, 0x020000, CRC(62f021f4) SHA1(62d372269e1b3161c64ae21123655a0a22ffd1bb) ) /* US, 4 slot */ \ + \ + ROM_SYSTEM_BIOS( 5, "asia", "Asia MVS (Ver. 3)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 5, "asia-s3.rom", 0x00000, 0x020000, CRC(91b64be3) SHA1(720a3e20d26818632aedf2c2fd16c54f213543e1) ) /* Asia */ \ + \ + ROM_SYSTEM_BIOS( 6, "japan", "Japan MVS (Ver. 3)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 6, "vs-bios.rom", 0x00000, 0x020000, CRC(f0e8f27d) SHA1(ecf01eda815909f1facec62abf3594eaa8d11075) ) /* Japan, Ver 6 VS Bios */ \ + ROM_SYSTEM_BIOS( 7, "japan-s2", "Japan MVS (Ver. 2)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 7, "sp-j2.sp1", 0x00000, 0x020000, CRC(acede59c) SHA1(b6f97acd282fd7e94d9426078a90f059b5e9dd91) ) /* Japan, Older */ \ + ROM_SYSTEM_BIOS( 8, "japan-s1", "Japan MVS (Ver. 1)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 8, "sp1.jipan.1024", 0x00000, 0x020000, CRC(9fb0abe4) SHA1(18a987ce2229df79a8cf6a84f968f0e42ce4e59d) ) /* Japan, Older */ \ + ROM_SYSTEM_BIOS( 9, "mv1c", "NEO-MVH MV1C" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 9, "sp-45.sp1", 0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) ) /* Latest Asia bios */ \ + ROM_SYSTEM_BIOS( 10, "japan-j3", "Japan MVS (J3)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 10, "japan-j3.bin", 0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) ) /* Latest Japan bios; correct chip label unknown */ \ + ROM_SYSTEM_BIOS(11, "japan-hotel", "Custom Japanese Hotel" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(11, "sp-1v1_3db8c.bin", 0x00000, 0x020000, CRC(162f0ebe) SHA1(fe1c6dd3dfcf97d960065b1bb46c1e11cb7bf271) ) /* 'rare MVS found in japanese hotels' shows v1.3 in test mode */ \ + \ + ROM_SYSTEM_BIOS(12, "unibios31", "Universe Bios (Hack, Ver. 3.1)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(12, "uni-bios_3_1.rom", 0x00000, 0x020000, CRC(0c58093f) SHA1(29329a3448c2505e1ff45ffa75e61e9693165153) ) /* Universe Bios v3.1 (hack) */ \ + ROM_SYSTEM_BIOS(13, "unibios30", "Universe Bios (Hack, Ver. 3.0)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(13, "uni-bios_3_0.rom", 0x00000, 0x020000, CRC(a97c89a9) SHA1(97a5eff3b119062f10e31ad6f04fe4b90d366e7f) ) /* Universe Bios v3.0 (hack) */ \ + ROM_SYSTEM_BIOS(14, "unibios23", "Universe Bios (Hack, Ver. 2.3)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(14, "uni-bios_2_3.rom", 0x00000, 0x020000, CRC(27664eb5) SHA1(5b02900a3ccf3df168bdcfc98458136fd2b92ac0) ) /* Universe Bios v2.3 (hack) */ \ + ROM_SYSTEM_BIOS(15, "unibios23o", "Universe Bios (Hack, Ver. 2.3, older?)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(15, "uni-bios_2_3o.rom", 0x00000, 0x020000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) /* Universe Bios v2.3 (hack) alt version, withdrawn? */ \ + ROM_SYSTEM_BIOS(16, "unibios22", "Universe Bios (Hack, Ver. 2.2)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(16, "uni-bios_2_2.rom", 0x00000, 0x020000, CRC(2d50996a) SHA1(5241a4fb0c63b1a23fd1da8efa9c9a9bd3b4279c) ) /* Universe Bios v2.2 (hack) */ \ + ROM_SYSTEM_BIOS(17, "unibios21", "Universe Bios (Hack, Ver. 2.1)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(17, "uni-bios_2_1.rom", 0x00000, 0x020000, CRC(8dabf76b) SHA1(c23732c4491d966cf0373c65c83c7a4e88f0082c) ) /* Universe Bios v2.1 (hack) */ \ + ROM_SYSTEM_BIOS(18, "unibios20", "Universe Bios (Hack, Ver. 2.0)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(18, "uni-bios_2_0.rom", 0x00000, 0x020000, CRC(0c12c2ad) SHA1(37bcd4d30f3892078b46841d895a6eff16dc921e) ) /* Universe Bios v2.0 (hack) */ \ + ROM_SYSTEM_BIOS(19, "unibios13", "Universe Bios (Hack, Ver. 1.3)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(19, "uni-bios_1_3.rom", 0x00000, 0x020000, CRC(b24b44a0) SHA1(eca8851d30557b97c309a0d9f4a9d20e5b14af4e) ) /* Universe Bios v1.3 (hack) */ \ + ROM_SYSTEM_BIOS(20, "unibios12", "Universe Bios (Hack, Ver. 1.2)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(20, "uni-bios_1_2.rom", 0x00000, 0x020000, CRC(4fa698e9) SHA1(682e13ec1c42beaa2d04473967840c88fd52c75a) ) /* Universe Bios v1.2 (hack) */ \ + ROM_SYSTEM_BIOS(21, "unibios12o", "Universe Bios (Hack, Ver. 1.2, older)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(21, "uni-bios_1_2o.rom", 0x00000, 0x020000, CRC(e19d3ce9) SHA1(af88ef837f44a3af2d7144bb46a37c8512b67770) ) /* Universe Bios v1.2 (hack) alt version */ \ + ROM_SYSTEM_BIOS(22, "unibios11", "Universe Bios (Hack, Ver. 1.1)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(22, "uni-bios_1_1.rom", 0x00000, 0x020000, CRC(5dda0d84) SHA1(4153d533c02926a2577e49c32657214781ff29b7) ) /* Universe Bios v1.1 (hack) */ \ + ROM_SYSTEM_BIOS(23, "unibios10", "Universe Bios (Hack, Ver. 1.0)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS(23, "uni-bios_1_0.rom", 0x00000, 0x020000, CRC(0ce453a0) SHA1(3b4c0cd26c176fc6b26c3a2f95143dd478f6abf9) ) /* Universe Bios v1.0 (hack) */ diff --git a/src/mame/includes/osborne1.h b/src/mame/includes/osborne1.h index 8134e0ccbe7..1c0564b9dbb 100644 --- a/src/mame/includes/osborne1.h +++ b/src/mame/includes/osborne1.h @@ -96,6 +96,7 @@ public: /* video related */ UINT8 m_screen_pac; UINT8 m_resolution; + UINT8 m_hc_left; UINT8 m_new_start_x; UINT8 m_new_start_y; emu_timer *m_video_timer; diff --git a/src/mame/machine/osborne1.c b/src/mame/machine/osborne1.c index 1fa93b6567a..960a6a0f4d5 100644 --- a/src/mame/machine/osborne1.c +++ b/src/mame/machine/osborne1.c @@ -113,6 +113,7 @@ WRITE8_MEMBER( osborne1_state::osborne1_2000_w ) break; case 0x400: /* SCREEN-PAC */ m_resolution = data & 0x01; + m_hc_left = (data >> 1) & 0x01; break; case 0x900: /* IEEE488 PIA */ m_pia0->write(space, offset & 0x03, data ); @@ -342,9 +343,8 @@ void osborne1_state::device_timer(emu_timer &timer, device_timer_id id, int para TIMER_CALLBACK_MEMBER(osborne1_state::osborne1_video_callback) { - int y = machine().first_screen()->vpos(); - UINT8 ra=0,chr,gfx,dim; - UINT16 x,ma; + int const y = machine().first_screen()->vpos(); + UINT8 ra=0; /* Check for start of frame */ if ( y == 0 ) @@ -361,36 +361,36 @@ TIMER_CALLBACK_MEMBER(osborne1_state::osborne1_video_callback) { ra = y % 10; /* Draw a line of the display */ - ma = (m_new_start_y + (y/10)) * 128 + m_new_start_x; + bool const hires = m_screen_pac & m_resolution; + UINT16 const row = (m_new_start_y + (y/10)) * 128 & 0xF80; + UINT16 const col = (m_new_start_x & (hires ? 0x60 : 0x7F)) - ((hires && m_hc_left) ? 8 : 0); UINT16 *p = &m_bitmap.pix16(y); - for ( x = 0; x < ((m_screen_pac && m_resolution) ? 104 : 52); x++ ) + for ( UINT16 x = 0; x < (hires ? 104 : 52); x++ ) { - chr = m_ram->pointer()[ 0xF000 + ( (ma+x) & 0xFFF ) ]; - dim = m_ram->pointer()[ 0x10000 + ( (ma+x) & 0xFFF ) ] & 0x80; + UINT16 offs = row | ((col + x) & 0x7F); + UINT8 const chr = m_ram->pointer()[ 0xF000 + offs ]; + UINT8 const dim = m_ram->pointer()[ 0x10000 + offs ] & 0x80; - if ( (chr & 0x80) && (ra == 9) ) - gfx = 0xFF; - else - gfx = m_p_chargen[ (ra << 7) | ( chr & 0x7F ) ]; + UINT8 const gfx = ((chr & 0x80) && (ra == 9)) ? 0xFF : m_p_chargen[ (ra << 7) | (chr & 0x7F) ]; /* Display a scanline of a character */ *p++ = BIT(gfx, 7) ? ( dim ? 2 : 1 ) : 0; - if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; } + if (!hires) { p[0] = p[-1]; p++; } *p++ = BIT(gfx, 6) ? ( dim ? 2 : 1 ) : 0; - if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; } + if (!hires) { p[0] = p[-1]; p++; } *p++ = BIT(gfx, 5) ? ( dim ? 2 : 1 ) : 0; - if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; } + if (!hires) { p[0] = p[-1]; p++; } *p++ = BIT(gfx, 4) ? ( dim ? 2 : 1 ) : 0; - if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; } + if (!hires) { p[0] = p[-1]; p++; } *p++ = BIT(gfx, 3) ? ( dim ? 2 : 1 ) : 0; - if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; } + if (!hires) { p[0] = p[-1]; p++; } *p++ = BIT(gfx, 2) ? ( dim ? 2 : 1 ) : 0; - if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; } + if (!hires) { p[0] = p[-1]; p++; } *p++ = BIT(gfx, 1) ? ( dim ? 2 : 1 ) : 0; - if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; } + if (!hires) { p[0] = p[-1]; p++; } *p++ = BIT(gfx, 0) ? ( dim ? 2 : 1 ) : 0; - if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; } + if (!hires) { p[0] = p[-1]; p++; } } } @@ -425,6 +425,7 @@ void osborne1_state::machine_reset() m_screen_pac = 0 != (m_cnf->read() & 0x01); m_resolution = 0; + m_hc_left = 0; m_p_chargen = memregion( "chargen" )->base(); memset( m_ram->pointer() + 0x10000, 0xFF, 0x1000 ); diff --git a/src/mame/mess.lst b/src/mame/mess.lst index 307a258de57..5d4cafa3c01 100644 --- a/src/mame/mess.lst +++ b/src/mame/mess.lst @@ -81,6 +81,7 @@ pico // 1994 Sega Pico (Europe) picou // 1994 Sega Pico (USA) picoj // 1993 Sega Pico (Japan) copera // 1993 Sega / Yamaha +sawatte // segacd // 1992 Sega Sega CD (USA) megacd // 1993 Sega Mega-CD (Europe) megacda // 1993 Sega Mega-CD (Asia) diff --git a/src/osd/modules/debugger/osx/debugview.m b/src/osd/modules/debugger/osx/debugview.m index c5b0a1c5431..e793c649d9e 100644 --- a/src/osd/modules/debugger/osx/debugview.m +++ b/src/osd/modules/debugger/osx/debugview.m @@ -404,7 +404,7 @@ static void debugwin_view_update(debug_view &view, void *osdprivate) [text addAttribute:NSFontAttributeName value:font range:run]; NSPasteboard *const board = [NSPasteboard generalPasteboard]; [board declareTypes:[NSArray arrayWithObject:NSRTFPboardType] owner:nil]; - [board setData:[text RTFFromRange:run documentAttributes:@{}] forType:NSRTFPboardType]; + [board setData:[text RTFFromRange:run documentAttributes:[NSDictionary dictionary]] forType:NSRTFPboardType]; [text deleteCharactersInRange:run]; } diff --git a/src/osd/sdl/video.c b/src/osd/sdl/video.c index f9b18c9041f..20de4ee671f 100644 --- a/src/osd/sdl/video.c +++ b/src/osd/sdl/video.c @@ -96,7 +96,7 @@ bool sdl_osd_interface::video_init() sdl_monitor_info::init(); // we need the beam width in a float, contrary to what the core does. - video_config.beamwidth = options().beam(); + video_config.beamwidth = options().beam_width_min(); // initialize the window system so we can make windows if (!window_init()) |
