Previous 199869 Revisions Next

r41390 Tuesday 27th October, 2015 at 14:07:27 UTC by Roberto Fresca
New clones marked as NOT_WORKING
--------------------------------
Queen of the Nile (MV4091, NSW/ACT) [Roberto Fresca]
[hash]a2600.xml sg1000.xml sms.xml
[hlsl]vector.fx
[scripts/target/mame]mess.lua
[src/devices/bus/a2bus]a2themill.c
[src/emu]emuopts.c emuopts.h
[src/emu/ui]ui.c
[src/emu/video]vector.c vector.h
[src/mame]arcade.lst mess.lst
[src/mame/drivers]aristmk5.c bublbobl.c exelv.c osborne1.c pc.c sega_sawatte.c subhuntr.c
[src/mame/includes]neogeo.h osborne1.h
[src/mame/machine]osborne1.c
[src/osd/modules/debugger/osx]debugview.m
[src/osd/sdl]video.c

trunk/hash/a2600.xml
r249901r249902
1797717977    <part name="cart" interface="a2600_cart">
1797817978      <feature name="slot" value="a26_dpcplus" />
1797917979      <dataarea name="rom" size="0x8000">
17980        <rom name="SF2_demo_NTSC.bin" size="0x8000" crc="fd850bd6" sha1="bd8166da7777c66e6bb3ab0c77563193d8289f5f" offset="0" />
17980        <rom name="SF2_demo_NTSC.bin" size="0x8000" crc="fd850bd6" sha1="bd8166da7777c66e6bb3ab0c77563193d8289f5f)" offset="0" />
1798117981      </dataarea>
1798217982    </part>
1798317983  </software>
r249901r249902
1800418004    <part name="cart" interface="a2600_cart">
1800518005      <feature name="slot" value="a26_dpcplus" />
1800618006      <dataarea name="rom" size="0x8000">
18007        <rom name="SF2_demo_PAL.bin" size="0x8000" crc="b47582f3" sha1="73625429e73f1b354e0cbe6a360d79590032de2b" offset="0" />
18007        <rom name="SF2_demo_PAL.bin" size="0x8000" crc="b47582f3" sha1="73625429e73f1b354e0cbe6a360d79590032de2b)" offset="0" />
1800818008      </dataarea>
1800918009    </part>
1801018010  </software>
trunk/hash/sg1000.xml
r249901r249902
12831283      </part>
12841284   </software>
12851285
1286   <software name="herot" cloneof="hero"> <!-- Taiwanese logo version -->
1286   <software name="herot" cloneof="hero">
12871287      <description>Qing Feng Xia (Tw)</description>
12881288      <year>1985?</year>
12891289      <publisher>&lt;unknown&gt;</publisher>
r249901r249902
12961296      </part>
12971297   </software>
12981298
1299  <software name="herotw" cloneof="hero"> <!-- English logo version -->
1300    <description>H.E.R.O. (Tw)</description>
1301    <year>1985</year>
1302    <publisher>Aaronix</publisher>
1303    <part name="cart" interface="sg1000_cart">
1304      <dataarea name="rom" size="32768">
1305        <rom name="H.E.R.O. [english logo] (TW).sg" size="32768" crc="96f09c6d" sha1="82b530feef7c011361e21b62d2c359c626ab8a9c" offset="000000" />
1306      </dataarea>
1307    </part>
1308  </software>
1309
1310  <software name="homemj">
1299   <software name="homemj">
13111300      <description>Home Mahjong (Jpn, v1)</description>
13121301      <year>1984</year>
13131302      <publisher>Sega</publisher>
r249901r249902
13581347      </part>
13591348   </software>
13601349
1361  <software name="hustletw" cloneof="hustle">
1362    <description>Hustle Chumy / Wanpi shu (Tw)</description>
1363    <year>1984</year>
1364    <publisher>Aaronix</publisher>
1365    <part name="cart" interface="sg1000_cart">
1366      <dataarea name="rom" size="16384">
1367        <rom name="Hustle Chumy (TW).sg" size="16384" crc="c4ed1fd9" sha1="e7800d107ef0a7773eea2d482b5db9d866ba74f9" offset="000000" />
1368      </dataarea>
1369    </part>
1370  </software>
1371
1372  <software name="hyperspt">
1350   <software name="hyperspt">
13731351      <description>Hyper Sports (Jpn)</description>
13741352      <year>1985</year>
13751353      <publisher>Sega / Konami</publisher>
r249901r249902
20882066      </part>
20892067   </software>
20902068
2091   <software name="motianda" cloneof="rocknbol"> <!-- Taiwanese logo version -->
2069   <software name="motianda" cloneof="rocknbol">
20922070      <description>Mo Tian Da Lou (Tw)</description>
20932071      <year>1985?</year>
20942072      <publisher>Aaronix</publisher>
r249901r249902
21012079      </part>
21022080   </software>
21032081
2104  <software name="rocknboltw" cloneof="rocknbol"> <!-- English logo version -->
2105    <description>Rock n' Bolt (Tw)</description>
2106    <year>1985</year>
2107    <publisher>Aaronix</publisher>
2108    <part name="cart" interface="sg1000_cart">
2109      <dataarea name="rom" size="32768">
2110        <rom name="Rock n' Bolt [english logo] (TW).sg" size="32768" crc="09a82af7" sha1="e3be08bda8459fc60836abe332e9864e7c596202" offset="000000" />
2111      </dataarea>
2112    </part>
2113  </software>
2114
2115  <software name="safarihu" supported="no">
2082   <software name="safarihu" supported="no">
21162083      <description>Safari Hunting (Jpn)</description>
21172084      <year>1983</year>
21182085      <publisher>Sega</publisher>
trunk/hash/sms.xml
r249901r249902
120120      </part>
121121   </software>
122122
123  <software name="actionfgtw" cloneof="actionfg">
124    <description>Action Fighter / Mo zhan che (Taiwan)</description>
125    <year>1986</year>
126    <publisher>&lt;unknown&gt;</publisher>
127    <part name="cart" interface="sms_cart">
128      <dataarea name="rom" size="131072">
129        <rom name="Action Fighter (TW).sms" size="131072" crc="8418f438" sha1="4f514dc568466f6b0424086edeb3fa0014f9c887" offset="000000" />
130      </dataarea>
131    </part>
132  </software>
133
134
135  <software name="addfam">
123   <software name="addfam">
136124      <description>The Addams Family (Euro)</description>
137125      <year>1993</year>
138126      <publisher>Flying Edge</publisher>
r249901r249902
21032091      </part>
21042092   </software>
21052093
2106  <software name="eswatp0" cloneof="eswatc"> <!-- early build, alt subtitle -->
2107    <description>E-SWAT - The Ultimate Battle In The Factor Against Crime (prototype 0)</description>
2108    <year>1990</year>
2109    <publisher>Sega</publisher>
2110    <info name="serial" value="7042"/>
2111    <part name="cart" interface="sms_cart">
2112      <dataarea name="rom" size="262144">
2113        <rom name="E-SWAT [Proto 0].sms" size="262144" crc="4f20694a" sha1="855c2f54b700663cedd6484aab396d849dcb5290" offset="000000" />
2114      </dataarea>
2115    </part>
2116  </software>
2117
2118  <software name="eswatp1" cloneof="eswatc">
2119    <description>E-SWAT - City Under Siege (prototype 1)</description>
2120    <year>1990</year>
2121    <publisher>Sega</publisher>
2122    <info name="serial" value="7042"/>
2123    <part name="cart" interface="sms_cart">
2124      <dataarea name="rom" size="262144">
2125        <rom name="E-SWAT [Proto 1].sms" size="262144" crc="f7ca9801" sha1="12c5005f8a0d78c75704b61bf87961875b9d29d4" offset="000000" />
2126      </dataarea>
2127    </part>
2128  </software>
2129
2130  <software name="eswatp2" cloneof="eswatc">
2131    <description>E-SWAT - City Under Siege (prototype 2)</description>
2132    <year>1990</year>
2133    <publisher>Sega</publisher>
2134    <info name="serial" value="7042"/>
2135    <part name="cart" interface="sms_cart">
2136      <dataarea name="rom" size="262144">
2137        <rom name="E-SWAT [Proto 2].sms" size="262144" crc="fd91cc7e" sha1="63fa1fcbf941b0e0ce601b3094c6c31f997c95d8" offset="000000" />
2138      </dataarea>
2139    </part>
2140  </software>
2141
2142  <software name="excdizzy" supported="no">
2094   <software name="excdizzy" supported="no">
21432095      <description>The Excellent Dizzy Collection (Euro, USA, Prototype)</description>
21442096      <year>19??</year>
21452097      <publisher>Codemasters</publisher>
r249901r249902
57295681      </part>
57305682   </software>
57315683
5732  <software name="supcol">
5733    <description>Super Columns &amp; Tetris (Kor)</description>
5734    <year>1990</year>
5735    <publisher>Hi-Com</publisher>
5736    <part name="cart" interface="sms_cart">
5737      <dataarea name="rom" size="262144">
5738        <rom name="Super Columns (KR).sms" size="32768" crc="6ce7f694" sha1="9d696b6eda1d13b8d439509beeb64210987e308e" offset="000000" />
5739      </dataarea>
5740    </part>
5741  </software>
5742
5743  <software name="smgp">
5684   <software name="smgp">
57445685      <description>Super Monaco GP (Euro, Bra)</description>
57455686      <year>1990</year>
57465687      <publisher>Sega</publisher>
trunk/hlsl/vector.fx
r249901r249902
4242VS_OUTPUT vs_main(VS_INPUT Input)
4343{
4444   VS_OUTPUT Output = (VS_OUTPUT)0;
45
45   
4646   Output.Position = float4(Input.Position.xyz, 1.0f);
4747   Output.Position.xy /= ScreenDims;
48   Output.Position.y = 1.0f - Output.Position.y; // flip y
49   Output.Position.xy -= 0.5f; // center
50   Output.Position.xy *= 2.0f; // zoom
51
52   Output.TexCoord = Input.Position.xy / ScreenDims;
53
48   Output.Position.y = 1.0f - Output.Position.y;
49   Output.Position.xy -= 0.5f;
50   Output.Position *= float4(2.0f, 2.0f, 1.0f, 1.0f);
5451   Output.Color = Input.Color;
55
52   Output.TexCoord = Input.Position.xy / ScreenDims;
5653   Output.LineInfo = Input.LineInfo;
57
5854   return Output;
5955}
6056
r249901r249902
6864// LengthParams.z: Size at which fade is maximum
6965float4 ps_main(PS_INPUT Input) : COLOR
7066{
71   float timeModulate = lerp(1.0f, TimeParams.x, TimeParams.y);
67   float timeModulate = lerp(1.0f, TimeParams.x, TimeParams.y) * 1.0;
7268
7369   float lengthModulate = 1.0f - clamp(Input.LineInfo.x / LengthParams.z, 0.0f, 1.0f);
7470   float minLength = 2.0f - clamp(Input.LineInfo.x - 1.0f, 0.0f, 2.0f);
7571   lengthModulate = lerp(lengthModulate, 4.0f, minLength * 0.5f);
76   lengthModulate = lerp(1.0f, timeModulate * lengthModulate, LengthParams.y);
72   lengthModulate = lerp(1.0f, timeModulate * lengthModulate, LengthParams.y) * 1.0;
7773
78   float4 outColor = Input.Color * float4(lengthModulate, lengthModulate, lengthModulate, 1.0f);
74   float4 outColor = Input.Color * float4(lengthModulate, lengthModulate, lengthModulate, 1.0f) * 2.0;
7975   return outColor;
8076}
8177
trunk/scripts/target/mame/mess.lua
r249901r249902
21372137   MAME_DIR .. "src/mame/drivers/megadriv.c",
21382138   MAME_DIR .. "src/mame/drivers/saturn.c",
21392139   MAME_DIR .. "src/mame/drivers/segapico.c",
2140   MAME_DIR .. "src/mame/drivers/sega_sawatte.c",
21412140   MAME_DIR .. "src/mame/drivers/segapm.c",
21422141   MAME_DIR .. "src/mame/drivers/sg1000.c",
21432142   MAME_DIR .. "src/mame/drivers/sms.c",
trunk/src/devices/bus/a2bus/a2themill.c
r249901r249902
77    Implementation of the Stellation Two The Mill 6809 card
88
99    The OS9 add-on changes the address mapping as follows:
10    6809 0x0000-0x7fff -> 6502 0x1000-0x8fff
11    6809 0x8000-0xafff -> 6502 0xd000-0xffff
12    6809 0xb000-0xbfff -> 6502 0xc000-0xcfff
13    6809 0xc000-0xcfff -> 6502 0x0000-0x0fff
14    6809 0xd000-0xffff -> 6502 0x9000-0xbfff
10    6809 0x0000-0xafff -> 6502 0x1000-0xbfff
11    6809 0xb000-0xdfff -> 6502 0xd000-0xffff
12    6809 0xe000-0xefff -> 6502 0xc000-0xcfff
13    6809 0xf000-0xffff -> 6502 0x0000-0x0fff
1514
16    (reference: "6809.txt" on one of the disks for The Mill)
15    (reference: http://mirrors.apple2.org.za/ground.icaen.uiowa.edu/MiscInfo/Hardware/mill.6809 )
1716
1817    ProDOS "Stellation The Mill Disk.po" requires Mill in slot 2; boot
1918    the disc and type "-DEMO1" and press Enter to launch the simple demo.
2019
21    TODO: Add DIP switch to select standard and OS-9 modes.
20    The OS9 disk image available around the internet seems to be bad - the
21    6809 boot vector is 0x4144 which maps to 6502 0x5144 and there's all
22    zeros from 6502 1000-8fff.  There is valid 6809 code from 9000-BFFF
23    at the point where it wants to boot the 6809, but I don't know what
24    is supposed to be the entry point.
2225
2326*********************************************************************/
2427
r249901r249902
100103{
101104   m_bEnabled = false;
102105   m_flipAddrSpace = false;
103   m_6809Mode = true;
106   m_6809Mode = false;
104107   m_status = 0xc0;    // OS9 loader relies on this
105108   m_6809->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
106109   m_6809->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
r249901r249902
235238
236239READ8_MEMBER( a2bus_themill_device::dma_r )
237240{
238   // MAME startup ordering has the 6809 free-running at boot, which is undesirable
239   if (!m_bEnabled)
240   {
241      m_6809->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
242   }
243
244241   if (m_6809Mode)
245242   {
246      if (offset <= 0x7fff)
243      if (offset <= 0xafff)
247244      {
248245         return slot_dma_read(space, offset+0x1000);
249246      }
250      else if (offset <= 0xafff)
247      else if (offset <= 0xbfff)
251248      {
252         return slot_dma_read(space, (offset&0x3fff) + 0xd000);
249         return slot_dma_read(space, (offset&0xfff) + 0xd000);
253250      }
254      else if (offset <= 0xbfff)
251      else if (offset <= 0xcfff)
255252      {
256         return slot_dma_read(space, (offset&0xfff) + 0xc000);
253         return slot_dma_read(space, (offset&0xfff) + 0xe000);
257254      }
258      else if (offset <= 0xcfff)   // 6809 Cxxx -> 6502 ZP
255      else if (offset <= 0xdfff)
259256      {
260         return slot_dma_read(space, (offset&0xfff));
257         return slot_dma_read(space, (offset&0xfff) + 0xf000);
261258      }
262      else    // 6809 Dxxx -> 6502 9000
259      else if (offset <= 0xefff)
263260      {
264         return slot_dma_read(space, (offset-0xd000)+0x9000);
261         return slot_dma_read(space, (offset&0xfff) + 0xc000);
265262      }
263      else    // 6809 Fxxx -> 6502 ZP
264      {
265         return slot_dma_read(space, offset&0xfff);
266      }
266267   }
267268   else
268269   {
r249901r249902
288289{
289290   if (m_6809Mode)
290291   {
291      if (offset <= 0x7fff)
292      if (offset <= 0xafff)
292293      {
293294         slot_dma_write(space, offset+0x1000, data);
294295      }
295      else if (offset <= 0xafff)
296      {
297         slot_dma_write(space, (offset&0x3fff) + 0xd000, data);
298      }
299296      else if (offset <= 0xbfff)
300297      {
301         slot_dma_write(space, (offset&0xfff) + 0xc000, data);
298         slot_dma_write(space, (offset&0xfff) + 0xd000, data);
302299      }
303300      else if (offset <= 0xcfff)
304301      {
305         slot_dma_write(space, (offset&0xfff), data);
302         slot_dma_write(space, (offset&0xfff) + 0xe000, data);
306303      }
307      else    // 6809 Dxxx -> 6502 9000
304      else if (offset <= 0xdfff)
308305      {
309         slot_dma_write(space, (offset-0xd000)+0x9000, data);
306         slot_dma_write(space, (offset&0xfff) + 0xf000, data);
310307      }
308      else if (offset <= 0xefff)
309      {
310         slot_dma_write(space, (offset&0xfff) + 0xc000, data);
311      }
312      else    // 6809 Fxxx -> 6502 ZP
313      {
314         slot_dma_write(space, offset&0xfff, data);
315      }
311316   }
312317   else
313318   {
trunk/src/emu/emuopts.c
r249901r249902
112112   // vector options
113113   { NULL,                                              NULL,        OPTION_HEADER,     "CORE VECTOR OPTIONS" },
114114   { OPTION_ANTIALIAS ";aa",                            "1",         OPTION_BOOLEAN,    "use antialiasing when drawing vectors" },
115   { OPTION_BEAM_WIDTH_MIN,                             "1.0",       OPTION_FLOAT,      "set vector beam width minimum" },
116   { OPTION_BEAM_WIDTH_MAX,                             "1.0",       OPTION_FLOAT,      "set vector beam width maximum" },
117   { OPTION_BEAM_INTENSITY_WEIGHT,                      "0",         OPTION_FLOAT,      "set vector beam intensity weight " },
115   { OPTION_BEAM,                                       "1.0",       OPTION_FLOAT,      "set vector beam width" },
118116   { OPTION_FLICKER,                                    "0",         OPTION_FLOAT,      "set vector flicker effect" },
119117
120118   // sound options
trunk/src/emu/emuopts.h
r249901r249902
119119
120120// core vector options
121121#define OPTION_ANTIALIAS            "antialias"
122#define OPTION_BEAM_WIDTH_MIN       "beam_width_min"
123#define OPTION_BEAM_WIDTH_MAX       "beam_width_max"
124#define OPTION_BEAM_INTENSITY_WEIGHT   "beam_intensity_weight"
122#define OPTION_BEAM                 "beam"
125123#define OPTION_FLICKER              "flicker"
126124
127125// core sound options
r249901r249902
298296
299297   // core vector options
300298   bool antialias() const { return bool_value(OPTION_ANTIALIAS); }
301   float beam_width_min() const { return float_value(OPTION_BEAM_WIDTH_MIN); }
302   float beam_width_max() const { return float_value(OPTION_BEAM_WIDTH_MAX); }
303   float beam_intensity_weight() const { return float_value(OPTION_BEAM_INTENSITY_WEIGHT); }
299   float beam() const { return float_value(OPTION_BEAM); }
304300   float flicker() const { return float_value(OPTION_FLICKER); }
305301
306302   // core sound options
trunk/src/emu/ui/ui.c
r249901r249902
124124static INT32 slider_overxoffset(running_machine &machine, void *arg, std::string *str, INT32 newval);
125125static INT32 slider_overyoffset(running_machine &machine, void *arg, std::string *str, INT32 newval);
126126static INT32 slider_flicker(running_machine &machine, void *arg, std::string *str, INT32 newval);
127static INT32 slider_beam_width_min(running_machine &machine, void *arg, std::string *str, INT32 newval);
128static INT32 slider_beam_width_max(running_machine &machine, void *arg, std::string *str, INT32 newval);
129static INT32 slider_beam_intensity_weight(running_machine &machine, void *arg, std::string *str, INT32 newval);
127static INT32 slider_beam(running_machine &machine, void *arg, std::string *str, INT32 newval);
130128static char *slider_get_screen_desc(screen_device &screen);
131129#ifdef MAME_DEBUG
132130static INT32 slider_crossscale(running_machine &machine, void *arg, std::string *str, INT32 newval);
r249901r249902
19661964   for (screen_device *screen = scriter.first(); screen != NULL; screen = scriter.next())
19671965      if (screen->screen_type() == SCREEN_TYPE_VECTOR)
19681966      {
1969         // add vector control
1967         // add flicker control
19701968         *tailptr = slider_alloc(machine, "Vector Flicker", 0, 0, 1000, 10, slider_flicker, NULL);
19711969         tailptr = &(*tailptr)->next;
1972         *tailptr = slider_alloc(machine, "Beam Width Minimum", 1, 100, 1000, 1, slider_beam_width_min, NULL);
1970         *tailptr = slider_alloc(machine, "Beam Width", 10, 100, 1000, 10, slider_beam, NULL);
19731971         tailptr = &(*tailptr)->next;
1974         *tailptr = slider_alloc(machine, "Beam Width Maximum", 1, 100, 1000, 1, slider_beam_width_max, NULL);
1975         tailptr = &(*tailptr)->next;
1976         *tailptr = slider_alloc(machine, "Beam Intensity Weight", -1000, 0, 1000, 10, slider_beam_intensity_weight, NULL);
1977         tailptr = &(*tailptr)->next;
19781972         break;
19791973      }
19801974
r249901r249902
23462340{
23472341   vector_device *vector = NULL;
23482342   if (newval != SLIDER_NOCHANGE)
2349      vector->set_flicker((float)newval * 0.001f);
2343      vector->set_flicker((float)newval * 0.1f);
23502344   if (str != NULL)
23512345      strprintf(*str,"%1.2f", (double) vector->get_flicker());
2352   return floor(vector->get_flicker() * 1000.0f + 0.5f);
2346   return floor(vector->get_flicker() * 10.0f + 0.5f);
23532347}
23542348
23552349
23562350//-------------------------------------------------
2357//  slider_beam_width_min - minimum vector beam width slider
2351//  slider_beam - vector beam width slider
23582352//  callback
23592353//-------------------------------------------------
23602354
2361static INT32 slider_beam_width_min(running_machine &machine, void *arg, std::string *str, INT32 newval)
2355static INT32 slider_beam(running_machine &machine, void *arg, std::string *str, INT32 newval)
23622356{
23632357   vector_device *vector = NULL;
23642358   if (newval != SLIDER_NOCHANGE)
2365      vector->set_beam_width_min(MIN((float)newval * 0.01f, vector->get_beam_width_max()));
2359      vector->set_beam((float)newval * 0.01f);
23662360   if (str != NULL)
2367      strprintf(*str,"%1.2f", (double) vector->get_beam_width_min());
2368   return floor(vector->get_beam_width_min() * 100.0f + 0.5f);
2361      strprintf(*str,"%1.2f", (double) vector->get_beam());
2362   return floor(vector->get_beam() * 100.0f + 0.5f);
23692363}
23702364
23712365
23722366//-------------------------------------------------
2373//  slider_beam_width_max - maximum vector beam width slider
2374//  callback
2375//-------------------------------------------------
2376
2377static INT32 slider_beam_width_max(running_machine &machine, void *arg, std::string *str, INT32 newval)
2378{
2379   vector_device *vector = NULL;
2380   if (newval != SLIDER_NOCHANGE)
2381      vector->set_beam_width_max(MAX((float)newval * 0.01f, vector->get_beam_width_min()));
2382   if (str != NULL)
2383      strprintf(*str,"%1.2f", (double) vector->get_beam_width_max());
2384   return floor(vector->get_beam_width_max() * 100.0f + 0.5f);
2385}
2386
2387
2388//-------------------------------------------------
2389//  slider_beam_intensity_weight - vector beam intensity weight slider
2390//  callback
2391//-------------------------------------------------
2392
2393static INT32 slider_beam_intensity_weight(running_machine &machine, void *arg, std::string *str, INT32 newval)
2394{
2395   vector_device *vector = NULL;
2396   if (newval != SLIDER_NOCHANGE)
2397      vector->set_beam_intensity_weight((float)newval * 0.001f);
2398   if (str != NULL)
2399      strprintf(*str,"%1.2f", (double) vector->get_beam_intensity_weight());
2400   return floor(vector->get_beam_intensity_weight() * 1000.0f + 0.5f);
2401}
2402
2403
2404//-------------------------------------------------
24052367//  slider_get_screen_desc - returns the
24062368//  description for a given screen
24072369//-------------------------------------------------
trunk/src/emu/video/vector.c
r249901r249902
3535#include "vector.h"
3636
3737
38#define FLT_EPSILON 1E-5
3938
40#define VECTOR_WIDTH_DENOM 512
39#define VECTOR_WIDTH_DENOM          512
4140
42#define MAX_POINTS 10000
4341
42#define MAX_POINTS  10000
43
4444#define VECTOR_TEAM \
4545   "-* Vector Heads *-\n" \
4646   "Brad Oliver\n" \
r249901r249902
140140{
141141}
142142
143float vector_device::m_flicker = 0.0f;
144float vector_device::m_beam_width_min = 0.0f;
145float vector_device::m_beam_width_max = 0.0f;
146float vector_device::m_beam_intensity_weight = 0.0f;
143float vector_device::m_flicker_correction = 0.0f;
144float vector_device::m_beam_width = 0.0f;
145int vector_device::m_flicker;
147146int vector_device::m_vector_index;
148147
149148void vector_device::device_start()
150149{
150   m_beam_width = machine().options().beam();
151
151152   /* Grab the settings for this session */
152   m_beam_width_min = machine().options().beam_width_min();
153   m_beam_width_max = machine().options().beam_width_max();
154   m_beam_intensity_weight = machine().options().beam_intensity_weight();
155   m_flicker = machine().options().flicker();
153   set_flicker(machine().options().flicker());
156154
157155   m_vector_index = 0;
158156
r249901r249902
160158   m_vector_list = auto_alloc_array_clear(machine(), point, MAX_POINTS);
161159}
162160
163void vector_device::set_flicker(float newval)
161void vector_device::set_flicker(float _flicker)
164162{
165   m_flicker = newval;
163   m_flicker_correction = _flicker;
164   m_flicker = (int)(m_flicker_correction * 2.55f);
166165}
167166
168167float vector_device::get_flicker()
169168{
170   return m_flicker;
169   return m_flicker_correction;
171170}
172171
173void vector_device::set_beam_width_min(float newval)
172void vector_device::set_beam(float _beam)
174173{
175   m_beam_width_min = newval;
174   m_beam_width = _beam;
176175}
177176
178float vector_device::get_beam_width_min()
177float vector_device::get_beam()
179178{
180   return m_beam_width_min;
179   return m_beam_width;
181180}
182181
183void vector_device::set_beam_width_max(float newval)
184{
185   m_beam_width_max = newval;
186}
187182
188float vector_device::get_beam_width_max()
189{
190   return m_beam_width_max;
191}
192
193void vector_device::set_beam_intensity_weight(float newval)
194{
195   m_beam_intensity_weight = newval;
196}
197
198float vector_device::get_beam_intensity_weight()
199{
200   return m_beam_intensity_weight;
201}
202
203
204183/*
205 * www.dinodini.wordpress.com/2010/04/05/normalized-tunable-sigmoid-functions/
206 */
207float vector_device::normalized_sigmoid(float n, float k)
208{
209   // valid for n and k in range of -1.0 and 1.0
210   return (n - n * k) / (k - fabs(n) * 2.0f * k + 1.0f);
211}
212
213
214/*
215184 * Adds a line end point to the vertices list. The vector processor emulation
216185 * needs to call this.
217186 */
218void vector_device::add_point(int x, int y, rgb_t color, int intensity)
187void vector_device::add_point (int x, int y, rgb_t color, int intensity)
219188{
220189   point *newpoint;
221190
222   if (intensity > 255)
223   {
224      intensity = 255;
225   }
191   if (intensity > 0xff)
192      intensity = 0xff;
226193
227194   if (m_flicker && (intensity > 0))
228195   {
229      float random = (float)(machine().rand() & 255) / 255.0f; // random value between 0.0 and 1.0
230     
231      intensity -= (int)(intensity * random * m_flicker);
196      intensity += (intensity * (0x80-(machine().rand()&0xff)) * m_flicker)>>16;
232197      if (intensity < 0)
233      {
234198         intensity = 0;
235      }     
236      if (intensity > 255)
237      {
238         intensity = 255;
239      }
199      if (intensity > 0xff)
200         intensity = 0xff;
240201   }
241
242202   newpoint = &m_vector_list[m_vector_index];
243203   newpoint->x = x;
244204   newpoint->y = y;
r249901r249902
254214   }
255215}
256216
257
258217/*
259218 * Add new clipping info to the list
260219 */
261void vector_device::add_clip(int x1, int yy1, int x2, int y2)
220void vector_device::add_clip (int x1, int yy1, int x2, int y2)
262221{
263222   point *newpoint;
264223
r249901r249902
282241 * The vector CPU creates a new display list. We save the old display list,
283242 * but only once per refresh.
284243 */
285void vector_device::clear_list(void)
244void vector_device::clear_list (void)
286245{
287246   m_vector_index = 0;
288247}
r249901r249902
296255   float yscale = 1.0f / (65536 * visarea.height());
297256   float xoffs = (float)visarea.min_x;
298257   float yoffs = (float)visarea.min_y;
299   float xratio = xscale / yscale;
300   float yratio = yscale / xscale;
301   xratio = (xratio < 1.0f) ? xratio : 1.0f;
302   xratio = (yratio < 1.0f) ? yratio : 1.0f;
303
304258   point *curpoint;
305259   render_bounds clip;
306   int lastx = 0;
307   int lasty = 0;
260   int lastx = 0, lasty = 0;
261   int i;
308262
309263   curpoint = m_vector_list;
310264
r249901r249902
314268   clip.x0 = clip.y0 = 0.0f;
315269   clip.x1 = clip.y1 = 1.0f;
316270
317   for (int i = 0; i < m_vector_index; i++)
271   for (i = 0; i < m_vector_index; i++)
318272   {
319273      render_bounds coords;
320274
r249901r249902
332286      }
333287      else
334288      {
335         float intensity = (float)curpoint->intensity / 255.0f;
336         float intensity_weight = normalized_sigmoid(intensity, m_beam_intensity_weight);
337
338         float beam_intensity_width = (m_beam_width_max - m_beam_width_min) * intensity_weight + m_beam_width_min;
339         float beam_width = beam_intensity_width * (1.0f / (float)VECTOR_WIDTH_DENOM);
340
341289         coords.x0 = ((float)lastx - xoffs) * xscale;
342290         coords.y0 = ((float)lasty - yoffs) * yscale;
343291         coords.x1 = ((float)curpoint->x - xoffs) * xscale;
344292         coords.y1 = ((float)curpoint->y - yoffs) * yscale;
345293
346         // extend zero-length vector line (vector point) by quarter beam_width on both sides
347         if (fabs(coords.x0 - coords.x1) < FLT_EPSILON &&
348            fabs(coords.y0 - coords.y1) < FLT_EPSILON)
349         {
350            coords.x0 += xratio * beam_width * 0.25f;
351            coords.y0 += yratio * beam_width * 0.25f;
352            coords.x1 -= xratio * beam_width * 0.25f;
353            coords.y1 -= yratio * beam_width * 0.25f;
354         }
294         if (curpoint->intensity != 0)
295            if (!render_clip_line(&coords, &clip))
296               screen.container().add_line(coords.x0, coords.y0, coords.x1, coords.y1,
297                     m_beam_width * (1.0f / (float)VECTOR_WIDTH_DENOM),
298                     (curpoint->intensity << 24) | (curpoint->col & 0xffffff),
299                     flags);
355300
356         if (curpoint->intensity != 0 && !render_clip_line(&coords, &clip))
357         {
358            screen.container().add_line(
359               coords.x0, coords.y0, coords.x1, coords.y1,
360               beam_width,
361               (curpoint->intensity << 24) | (curpoint->col & 0xffffff),
362               flags);
363         }
364
365301         lastx = curpoint->x;
366302         lasty = curpoint->y;
367303      }
368
369304      curpoint++;
370305   }
371
372306   return 0;
373307}
trunk/src/emu/video/vector.h
r249901r249902
1616/* The vertices are buffered here */
1717struct point
1818{
19   point() :
19      point():
2020      x(0),
2121      y(0),
2222      col(0),
r249901r249902
3232   int status;         /* for dirty and clipping handling */
3333};
3434
35class vector_device : public device_t, public device_video_interface
35class vector_device :  public device_t,
36                     public device_video_interface
3637{
3738public:
3839   // construction/destruction
r249901r249902
4546   void add_point(int x, int y, rgb_t color, int intensity);
4647   void add_clip(int minx, int miny, int maxx, int maxy);
4748
48   void set_flicker(float newval);
49   void set_flicker(float m_flicker_correction);
4950   float get_flicker();
5051
51   void set_beam_width_min(float newval);
52   float get_beam_width_min();
52   void set_beam(float _beam);
53   float get_beam();
5354
54   void set_beam_width_max(float newval);
55   float get_beam_width_max();
56
57   void set_beam_intensity_weight(float newval);
58   float get_beam_intensity_weight();
59
6055   // device-level overrides
6156   virtual void device_start();
6257
6358private:
64   static float m_flicker;
65   static float m_beam_width_min;
66   static float m_beam_width_max;
67   static float m_beam_intensity_weight;
59   static int m_flicker;                              /* beam flicker value     */
60   static float m_flicker_correction;
61   static float m_beam_width;
6862   point *m_vector_list;
6963   static int m_vector_index;
70
71   float normalized_sigmoid(float n, float k);
7264};
7365
7466
trunk/src/mame/arcade.lst
r249901r249902
20962096sboblbobl       // bootleg
20972097sboblbobla      // bootleg
20982098sboblboblb      // bootleg
2099sboblboblc      // bootleg
2100bublboblb      // bootleg
21012099bub68705        // bootleg
21022100dland           // bootleg
2103bbredux         // bootleg / hack
2104bublcave      // hack
2105boblcave      // hack
2106bublcave11      // hack
2107bublcave10      // hack
21082101missb2          // bootleg on enhanced hardware
21092102bublpong        // bootleg on enhanced hardware
21102103kikikai         // A85 (c) 1986 Taito Corporation
r249901r249902
1206812061cashcham        // (c) 1996
1206912062goldprmd        // (c) 1997
1207012063qotn            // (c) 1997
12064qotna           // (c) 1997
1207112065dmdtouch        // (c) 1997
1207212066wldcougr        // (c) 1997
1207312067bumblbug        // (c) 1997
trunk/src/mame/drivers/aristmk5.c
r249901r249902
11// license:BSD-3-Clause
2// copyright-holders:David Haywood, Palindrome
2// copyright-holders:David Haywood, Palindrome, Roberto Fresca
33/****************************************************************************************************************
44
55    Aristocrat MK5 / MKV hardware
r249901r249902
712712   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
713713ROM_END
714714
715// MV4091 - 10 Credit Multiplier / 9 Line Multiline.
716// QUEEN OF THE NILE - NSW/ACT  B - 13/05/97.
717// All devices are 27c4002 instead of 27c4096.
718ROM_START( qotna )
719   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
720   ROM_LOAD32_WORD( "mv4091_qotn.u7",  0x000000, 0x80000, CRC(a00ab2cf) SHA1(eb3120fe4b1d0554c224c7646e727e86fd35975e) )
721   ROM_LOAD32_WORD( "mv4091_qotn.u11", 0x000002, 0x80000, CRC(c4a35337) SHA1(d469ed154caed1f0a4cf89e67d852924c95172ed) )
722   ROM_LOAD32_WORD( "mv4091_qotn.u8",  0x100000, 0x80000, CRC(16a629e1) SHA1(0dee11a2f1b2068a86b3e0b6c01d115555a657c9) )
723   ROM_LOAD32_WORD( "mv4091_qotn.u12", 0x100002, 0x80000, CRC(7871a846) SHA1(ac1d741092afda842e1864f1a7a14137a9ee46d9) )
724
725   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
726
727   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
728
729   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
730ROM_END
731
715732ROM_START( swthrt2v )
716733   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
717734   ROM_LOAD32_WORD( "01j01986.u7",  0x000000, 0x80000, CRC(f51b2faa) SHA1(dbcfdbee92af5f89a8a2611bbc687ee0cc907642) )
r249901r249902
11301147GAME( 1996, cashcham,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Cash Chameleon (Export)",                      MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 603(a),   B - 06/12/96
11311148GAME( 1997, goldprmd,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Golden Pyramids (MV4091, USA)",                MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // MV4091,   B - 13/05/97
11321149GAME( 1997, qotn,      0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Queen of the Nile (0200439V, NSW/ACT)",        MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 602/4,    B - 13/05/97
1150GAME( 1997, qotna,     qotn,     aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Queen of the Nile (MV4091, NSW/ACT)",          MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // MV4091,   B - 13/05/97
11331151GAME( 1997, wldcougr,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Wild Cougar (Export)",                         MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 569/8,    D - 19/05/97
11341152GAME( 1997, dmdtouch,  0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Diamond Touch (0400433V, Local)",              MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 604,      E - 30/06/97
11351153GAME( 1997, bumblbug,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Bumble Bugs (Export, 92.691%)",                MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 593,      D - 05/07/97
trunk/src/mame/drivers/bublbobl.c
r249901r249902
265265- tokio: sound support is probably incomplete. There are a couple of unknown
266266  accesses done by the CPU, including to the YM2203 I/O ports. At the
267267  very least, there should be some filters.
268 
269 there are also Bubble Bobble bootlegs with a P8749H MCU, however the MCU
270 is protected against reading and the main code only differs by 1 byte from
271 Bubble Bobble.  If the MCU were to be dumped that would also make for
272 interesting comparisons.
273268
274269***************************************************************************/
275270
r249901r249902
561556   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
562557INPUT_PORTS_END
563558
564
565static INPUT_PORTS_START( boblcave )
566   PORT_INCLUDE( boblbobl )
567
568   PORT_MODIFY( "DSW1" ) // not monster speed on this, causes startup hangs just like original bublbobl
569   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )          PORT_DIPLOCATION("DSW-B:7")
570   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )              // must be off (see notes)
571   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
572   PORT_DIPNAME( 0x80, 0x80, "ROM Type" )                  PORT_DIPLOCATION("DSW-B:8")
573   PORT_DIPSETTING(    0x80, "IC52=512kb, IC53=none" )     // will hang on startup if set to wrong type
574   PORT_DIPSETTING(    0x00, "IC52=256kb, IC53=256kb" )
575INPUT_PORTS_END
576
577559static INPUT_PORTS_START( sboblboblb )
578560   PORT_INCLUDE( boblbobl )
579561
r249901r249902
13771359   ROM_LOAD( "pal16l8.u4",  0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
13781360ROM_END
13791361
1380ROM_START( bbredux )
1381   ROM_REGION( 0x30000, "maincpu", 0 )
1382   ROM_LOAD( "redux_bb3",          0x00000, 0x8000, CRC(d51de9f3) SHA1(dc6bc93692145563a88c146eeb1d0361e25af840) )
1383   /* ROMs banked at 8000-bfff */
1384   ROM_LOAD( "redux_bb5",          0x10000, 0x8000, CRC(d29d3444) SHA1(3db694a6ba2ba2ed85d31c2bc4c7c94911b99b85) )
1385   ROM_LOAD( "redux_bb4",          0x18000, 0x8000, CRC(984149bd) SHA1(9a0f96eee038712277f652545a343587f711b9aa) )
1386
1387   ROM_REGION( 0x10000, "slave", 0 )   /* 64k for the second CPU */
1388   ROM_LOAD( "a78-08.37",    0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
1389
1390   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for the third CPU */
1391   ROM_LOAD( "a78-07.46",    0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
1392
1393   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
1394   ROM_LOAD( "a78-09.12",    0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )    /* 1st plane */
1395   ROM_LOAD( "a78-10.13",    0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
1396   ROM_LOAD( "a78-11.14",    0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
1397   ROM_LOAD( "a78-12.15",    0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
1398   ROM_LOAD( "a78-13.16",    0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
1399   ROM_LOAD( "a78-14.17",    0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
1400   /* 0x30000-0x3ffff empty */
1401   ROM_LOAD( "a78-15.30",    0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )    /* 2nd plane */
1402   ROM_LOAD( "a78-16.31",    0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
1403   ROM_LOAD( "a78-17.32",    0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
1404   ROM_LOAD( "a78-18.33",    0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
1405   ROM_LOAD( "a78-19.34",    0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
1406   ROM_LOAD( "a78-20.35",    0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
1407   /* 0x70000-0x7ffff empty */
1408
1409   ROM_REGION( 0x0100, "proms", 0 )
1410   ROM_LOAD( "a71-25.41",    0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )    /* video timing */
1411
1412   ROM_REGION( 0x0600, "plds", 0 )
1413   ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) )
1414   ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) )
1415   ROM_LOAD( "pal16l8.u4",  0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
1416ROM_END
1417
14181362ROM_START( sboblbobl )
14191363   ROM_REGION( 0x30000, "maincpu", 0 )
14201364   ROM_LOAD( "cpu2-3.bin",   0x00000, 0x08000, CRC(2d9107b6) SHA1(ab1a4a20f4b533cd06cc458668f407a8a14c9d70) )
r249901r249902
15151459
15161460
15171461
1518ROM_START( sboblboblc )
1519   ROM_REGION( 0x30000, "maincpu", 0 )
1520   ROM_LOAD( "3",    0x00000, 0x08000, CRC(f2d44846) SHA1(dd1a29f2ff1938c31d4c6199cf970483ceb52485) )
1521   /* ROMs banked at 8000-bfff */
1522   ROM_LOAD( "5",          0x10000, 0x08000, CRC(3c5e4441) SHA1(b85da9d7e0148e950b76036d3f9a3d4a9dfa039c) )
1523   ROM_LOAD( "4",          0x18000, 0x08000, CRC(1f29b5c0) SHA1(c15c84ca11cc10edac6340468bca463ecb2d89e6) )
1524   /* 20000-2ffff empty */
1525
1526   ROM_REGION( 0x10000, "slave", 0 )   /* 64k for the second CPU */
1527   ROM_LOAD( "1",    0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
1528
1529   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for the third CPU */
1530   ROM_LOAD( "2",    0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
1531
1532   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
1533   ROM_LOAD( "12",    0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )    /* 1st plane */
1534   ROM_LOAD( "13",    0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
1535   ROM_LOAD( "14",    0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
1536   ROM_LOAD( "15",    0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
1537   ROM_LOAD( "16",    0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
1538   ROM_LOAD( "17",    0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
1539   /* 0x30000-0x3ffff empty */
1540   ROM_LOAD( "6",     0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )    /* 2nd plane */
1541   ROM_LOAD( "7",     0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
1542   ROM_LOAD( "8",     0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
1543   ROM_LOAD( "9",     0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
1544   ROM_LOAD( "10",    0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
1545   ROM_LOAD( "11",    0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
1546   /* 0x70000-0x7ffff empty */
1547
1548   ROM_REGION( 0x0100, "proms", 0 )
1549   ROM_LOAD( "a71-25.41",    0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )    /* video timing */
1550
1551ROM_END
1552
15531462ROM_START( bub68705 )
15541463   ROM_REGION( 0x30000, "maincpu", 0 ) /* Program roms match Bubble Bobble (older) */
15551464   ROM_LOAD( "2.bin",    0x00000, 0x08000, CRC(32c8305b) SHA1(6bf69b3edfbefd33cd670a762b4bf0b39629a220) )
r249901r249902
16171526ROM_END
16181527
16191528
1620ROM_START( bublcave )
1621   ROM_REGION( 0x30000, "maincpu", 0 )
1622   ROM_LOAD( "bublcave-06.51",    0x00000, 0x08000, CRC(e8b9af5e) SHA1(dec44e47634a402df212806e84e3a810f8442776) )
1623   ROM_LOAD( "bublcave-05.52",    0x10000, 0x10000, CRC(cfe14cb8) SHA1(17d463c755f630ae9d05943515fa4828972bd7b0) )
16241529
1625   ROM_REGION( 0x10000, "slave", 0 )
1626   ROM_LOAD( "bublcave-08.37",    0x0000, 0x08000, CRC(a9384086) SHA1(26e686671d6d3ba3759716bf46e7f951bbb8a291) )
1627
1628   ROM_REGION( 0x10000, "audiocpu", 0 )
1629   ROM_LOAD( "a78-07.46",         0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
1630
1631   ROM_REGION( 0x10000, "mcu", 0 )
1632   ROM_LOAD( "a78-01.17",         0xf000, 0x1000, CRC(b1bfb53d) SHA1(31b8f31acd3aa394acd80db362774749842e1285) )
1633
1634   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
1635   ROM_LOAD( "bublcave-09.12",    0x00000, 0x8000, CRC(b90b7eef) SHA1(de72e4635843ad76248aa3b4aa8f8a0bfd53879e) )    /* 1st plane */
1636   ROM_LOAD( "bublcave-10.13",    0x08000, 0x8000, CRC(4fb22f05) SHA1(880104e86dbd00ae657cbc768722427503b6a59f) )
1637   ROM_LOAD( "bublcave-11.14",    0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
1638   ROM_LOAD( "bublcave-12.15",    0x18000, 0x8000, CRC(e49eb49e) SHA1(2e05dc8833e10bef1a317d238c39fb9f362e9997) )
1639   ROM_LOAD( "bublcave-13.16",    0x20000, 0x8000, CRC(61919734) SHA1(2c07e29f3dcc972d5eb47679ad81a0d7656b0cb2) )
1640   ROM_LOAD( "bublcave-14.17",    0x28000, 0x8000, CRC(7e3a13bd) SHA1(bd4dba799340fa599f11cc68e03efe70ba6ba99b) )
1641   ROM_LOAD( "bublcave-15.30",    0x40000, 0x8000, CRC(c253c73a) SHA1(3e187f6b9ca769772990068abe7b309417147d39) )    /* 2nd plane */
1642   ROM_LOAD( "bublcave-16.31",    0x48000, 0x8000, CRC(e66c92ee) SHA1(12ea193c54121d08ad110c94cc075e29fef3ff85) )
1643   ROM_LOAD( "bublcave-17.32",    0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
1644   ROM_LOAD( "bublcave-18.33",    0x58000, 0x8000, CRC(47ee2544) SHA1(c6946e824043a312ed437e548a64ef599effbd42) )
1645   ROM_LOAD( "bublcave-19.34",    0x60000, 0x8000, CRC(1ceeb1fa) SHA1(eb29ff896d149f7ab4cf38a338df39df14ccc20c) )
1646   ROM_LOAD( "bublcave-20.35",    0x68000, 0x8000, CRC(64322e24) SHA1(acff8a9fcaf74f198653080759898d15cccf04e8) )
1647
1648   ROM_REGION( 0x0100, "proms", 0 )
1649   ROM_LOAD( "a71-25.41",         0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )   /* video timing */
1650ROM_END
1651
1652
1653ROM_START( boblcave )
1654   ROM_REGION( 0x30000, "maincpu", 0 )
1655   ROM_LOAD( "lc12_bb3",          0x00000, 0x08000, CRC(dddc9a24) SHA1(c0b31dd64d7359ae0ea5067db6ac8b54f9415e5a) )
1656   /* ROMs banked at 8000-bfff */
1657   ROM_LOAD( "lc12_bb5",          0x10000, 0x08000, CRC(0bc4de52) SHA1(55581a557dfd60d93642b89eb702c7170458b826) )
1658   ROM_LOAD( "lc12_bb4",          0x18000, 0x08000, CRC(bd7afdf4) SHA1(a9bcdc857b1f252c36a5a70f5027a11737f8dd59) )
1659   /* 20000-2ffff empty */
1660
1661   ROM_REGION( 0x10000, "slave", 0 )   /* 64k for the second CPU */
1662   ROM_LOAD( "bublcave-08.37",    0x0000, 0x08000, CRC(a9384086) SHA1(26e686671d6d3ba3759716bf46e7f951bbb8a291) )
1663
1664   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for the third CPU */
1665   ROM_LOAD( "a78-07.46",    0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
1666
1667   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
1668   ROM_LOAD( "bublcave-09.12",    0x00000, 0x8000, CRC(b90b7eef) SHA1(de72e4635843ad76248aa3b4aa8f8a0bfd53879e) )    /* 1st plane */
1669   ROM_LOAD( "bublcave-10.13",    0x08000, 0x8000, CRC(4fb22f05) SHA1(880104e86dbd00ae657cbc768722427503b6a59f) )
1670   ROM_LOAD( "bublcave-11.14",    0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
1671   ROM_LOAD( "bublcave-12.15",    0x18000, 0x8000, CRC(e49eb49e) SHA1(2e05dc8833e10bef1a317d238c39fb9f362e9997) )
1672   ROM_LOAD( "bublcave-13.16",    0x20000, 0x8000, CRC(61919734) SHA1(2c07e29f3dcc972d5eb47679ad81a0d7656b0cb2) )
1673   ROM_LOAD( "bublcave-14.17",    0x28000, 0x8000, CRC(7e3a13bd) SHA1(bd4dba799340fa599f11cc68e03efe70ba6ba99b) )
1674   ROM_LOAD( "bublcave-15.30",    0x40000, 0x8000, CRC(c253c73a) SHA1(3e187f6b9ca769772990068abe7b309417147d39) )    /* 2nd plane */
1675   ROM_LOAD( "bublcave-16.31",    0x48000, 0x8000, CRC(e66c92ee) SHA1(12ea193c54121d08ad110c94cc075e29fef3ff85) )
1676   ROM_LOAD( "bublcave-17.32",    0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
1677   ROM_LOAD( "bublcave-18.33",    0x58000, 0x8000, CRC(47ee2544) SHA1(c6946e824043a312ed437e548a64ef599effbd42) )
1678   ROM_LOAD( "bublcave-19.34",    0x60000, 0x8000, CRC(1ceeb1fa) SHA1(eb29ff896d149f7ab4cf38a338df39df14ccc20c) )
1679   ROM_LOAD( "bublcave-20.35",    0x68000, 0x8000, CRC(64322e24) SHA1(acff8a9fcaf74f198653080759898d15cccf04e8) )
1680
1681   ROM_REGION( 0x0100, "proms", 0 )
1682   ROM_LOAD( "a71-25.41",    0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )    /* video timing */
1683
1684   ROM_REGION( 0x0600, "plds", 0 )
1685   ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) )
1686   ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) )
1687   ROM_LOAD( "pal16l8.u4",  0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
1688ROM_END
1689
1690
1691ROM_START( bublcave11 )
1692   ROM_REGION( 0x30000, "maincpu", 0 )
1693   ROM_LOAD( "bublcave10-06.51",  0x00000, 0x08000, CRC(185cc219) SHA1(dfb312f144fb01c07581cb8ea55ab0dc92ccd5b2) )
1694   ROM_LOAD( "bublcave11-05.52",  0x10000, 0x10000, CRC(b6b02df3) SHA1(542589544216a54f84c213b161d7145934875d2b) )
1695
1696   ROM_REGION( 0x10000, "slave", 0 )
1697   ROM_LOAD( "bublcave11-08.37",  0x0000, 0x08000, CRC(c5d14e62) SHA1(b32b1ca76b54755a69a7a346d01545f2699e1363) )
1698
1699   ROM_REGION( 0x10000, "audiocpu", 0 )
1700   ROM_LOAD( "a78-07.46",         0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
1701
1702   ROM_REGION( 0x10000, "mcu", 0 )
1703   ROM_LOAD( "a78-01.17",         0xf000, 0x1000, CRC(b1bfb53d) SHA1(31b8f31acd3aa394acd80db362774749842e1285) )
1704
1705   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
1706   ROM_LOAD( "bublcave-09.12",    0x00000, 0x8000, CRC(b90b7eef) SHA1(de72e4635843ad76248aa3b4aa8f8a0bfd53879e) )    /* 1st plane */
1707   ROM_LOAD( "bublcave-10.13",    0x08000, 0x8000, CRC(4fb22f05) SHA1(880104e86dbd00ae657cbc768722427503b6a59f) )
1708   ROM_LOAD( "bublcave-11.14",    0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
1709   ROM_LOAD( "bublcave-12.15",    0x18000, 0x8000, CRC(e49eb49e) SHA1(2e05dc8833e10bef1a317d238c39fb9f362e9997) )
1710   ROM_LOAD( "bublcave-13.16",    0x20000, 0x8000, CRC(61919734) SHA1(2c07e29f3dcc972d5eb47679ad81a0d7656b0cb2) )
1711   ROM_LOAD( "bublcave-14.17",    0x28000, 0x8000, CRC(7e3a13bd) SHA1(bd4dba799340fa599f11cc68e03efe70ba6ba99b) )
1712   ROM_LOAD( "bublcave-15.30",    0x40000, 0x8000, CRC(c253c73a) SHA1(3e187f6b9ca769772990068abe7b309417147d39) )    /* 2nd plane */
1713   ROM_LOAD( "bublcave-16.31",    0x48000, 0x8000, CRC(e66c92ee) SHA1(12ea193c54121d08ad110c94cc075e29fef3ff85) )
1714   ROM_LOAD( "bublcave-17.32",    0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
1715   ROM_LOAD( "bublcave-18.33",    0x58000, 0x8000, CRC(47ee2544) SHA1(c6946e824043a312ed437e548a64ef599effbd42) )
1716   ROM_LOAD( "bublcave-19.34",    0x60000, 0x8000, CRC(1ceeb1fa) SHA1(eb29ff896d149f7ab4cf38a338df39df14ccc20c) )
1717   ROM_LOAD( "bublcave-20.35",    0x68000, 0x8000, CRC(64322e24) SHA1(acff8a9fcaf74f198653080759898d15cccf04e8) )
1718
1719   ROM_REGION( 0x0100, "proms", 0 )
1720   ROM_LOAD( "a71-25.41",         0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )   /* video timing */
1721ROM_END
1722
1723ROM_START( bublcave10 )
1724   ROM_REGION( 0x30000, "maincpu", 0 )
1725   ROM_LOAD( "bublcave10-06.51",  0x00000, 0x08000, CRC(185cc219) SHA1(dfb312f144fb01c07581cb8ea55ab0dc92ccd5b2) )
1726   ROM_LOAD( "bublcave10-05.52",  0x10000, 0x10000, CRC(381cdde7) SHA1(0c9de44d7dbad754e873af8ddb5a2736f5ec2096) )
1727
1728   ROM_REGION( 0x10000, "slave", 0 )
1729   ROM_LOAD( "bublcave10-08.37",  0x0000, 0x08000, CRC(026a68e1) SHA1(9e54310a9f1f5187ea6eb49d9189865b44708a7e) )
1730
1731   ROM_REGION( 0x10000, "audiocpu", 0 )
1732   ROM_LOAD( "a78-07.46",         0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
1733
1734   ROM_REGION( 0x10000, "mcu", 0 )
1735   ROM_LOAD( "a78-01.17",         0xf000, 0x1000, CRC(b1bfb53d) SHA1(31b8f31acd3aa394acd80db362774749842e1285) )
1736
1737   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
1738   ROM_LOAD( "bublcave-09.12",    0x00000, 0x8000, CRC(b90b7eef) SHA1(de72e4635843ad76248aa3b4aa8f8a0bfd53879e) )    /* 1st plane */
1739   ROM_LOAD( "bublcave-10.13",    0x08000, 0x8000, CRC(4fb22f05) SHA1(880104e86dbd00ae657cbc768722427503b6a59f) )
1740   ROM_LOAD( "bublcave-11.14",    0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
1741   ROM_LOAD( "bublcave-12.15",    0x18000, 0x8000, CRC(e49eb49e) SHA1(2e05dc8833e10bef1a317d238c39fb9f362e9997) )
1742   ROM_LOAD( "bublcave-13.16",    0x20000, 0x8000, CRC(61919734) SHA1(2c07e29f3dcc972d5eb47679ad81a0d7656b0cb2) )
1743   ROM_LOAD( "bublcave-14.17",    0x28000, 0x8000, CRC(7e3a13bd) SHA1(bd4dba799340fa599f11cc68e03efe70ba6ba99b) )
1744   ROM_LOAD( "bublcave-15.30",    0x40000, 0x8000, CRC(c253c73a) SHA1(3e187f6b9ca769772990068abe7b309417147d39) )    /* 2nd plane */
1745   ROM_LOAD( "bublcave-16.31",    0x48000, 0x8000, CRC(e66c92ee) SHA1(12ea193c54121d08ad110c94cc075e29fef3ff85) )
1746   ROM_LOAD( "bublcave-17.32",    0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
1747   ROM_LOAD( "bublcave-18.33",    0x58000, 0x8000, CRC(47ee2544) SHA1(c6946e824043a312ed437e548a64ef599effbd42) )
1748   ROM_LOAD( "bublcave-19.34",    0x60000, 0x8000, CRC(1ceeb1fa) SHA1(eb29ff896d149f7ab4cf38a338df39df14ccc20c) )
1749   ROM_LOAD( "bublcave-20.35",    0x68000, 0x8000, CRC(64322e24) SHA1(acff8a9fcaf74f198653080759898d15cccf04e8) )
1750
1751   ROM_REGION( 0x0100, "proms", 0 )
1752   ROM_LOAD( "a71-25.41",         0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )   /* video timing */
1753ROM_END
1754
1755ROM_START( bublboblb )
1756   ROM_REGION( 0x30000, "maincpu", 0 )
1757   ROM_LOAD( "bbaladar.3",   0x00000, 0x8000, CRC(31bfc6fb) SHA1(6a72086d415a69b9e5c003ec6cf7858e8c4b346f) )
1758   /* ROMs banked at 8000-bfff */
1759   ROM_LOAD( "bbaladar.5",   0x10000, 0x8000, CRC(16386e9a) SHA1(77fa3f5ecce5c79ba52098c0870482459926b415) )
1760   ROM_LOAD( "bbaladar.4",   0x18000, 0x8000, CRC(0c4bcb07) SHA1(3e3f7fa098d6be61d265cab5258dbd0e279bd8ed) )
1761
1762   ROM_REGION( 0x10000, "slave", 0 )   /* 64k for the second CPU */
1763   ROM_LOAD( "a78-08.37",    0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
1764
1765   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for the third CPU */
1766   ROM_LOAD( "a78-07.46",    0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
1767
1768   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
1769   ROM_LOAD( "a78-09.12",    0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )    /* 1st plane */
1770   ROM_LOAD( "a78-10.13",    0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
1771   ROM_LOAD( "a78-11.14",    0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
1772   ROM_LOAD( "a78-12.15",    0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
1773   ROM_LOAD( "a78-13.16",    0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
1774   ROM_LOAD( "a78-14.17",    0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
1775   /* 0x30000-0x3ffff empty */
1776   ROM_LOAD( "a78-15.30",    0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )    /* 2nd plane */
1777   ROM_LOAD( "a78-16.31",    0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
1778   ROM_LOAD( "a78-17.32",    0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
1779   ROM_LOAD( "a78-18.33",    0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
1780   ROM_LOAD( "a78-19.34",    0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
1781   ROM_LOAD( "a78-20.35",    0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
1782   /* 0x70000-0x7ffff empty */
1783
1784   ROM_REGION( 0x0100, "proms", 0 )
1785   ROM_LOAD( "a71-25.41",    0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )    /* video timing */
1786
1787   ROM_REGION( 0x0600, "plds", 0 )
1788   ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) )
1789   ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) )
1790   ROM_LOAD( "pal16l8.u4",  0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
1791ROM_END
1792
17931530/*************************************
17941531 *
17951532 *  Driver initialization
r249901r249902
18611598GAME( 1986, sboblbobl,  bublbobl, boblbobl, sboblbobl,  bublbobl_state, bublbobl, ROT0,  "bootleg (Datsu)", "Super Bobble Bobble (bootleg, set 1)", MACHINE_SUPPORTS_SAVE )
18621599GAME( 1986, sboblbobla, bublbobl, boblbobl, boblbobl,   bublbobl_state, bublbobl, ROT0,  "bootleg", "Super Bobble Bobble (bootleg, set 2)", MACHINE_SUPPORTS_SAVE )
18631600GAME( 1986, sboblboblb, bublbobl, boblbobl, sboblboblb, bublbobl_state, bublbobl, ROT0,  "bootleg", "Super Bobble Bobble (bootleg, set 3)", MACHINE_SUPPORTS_SAVE )
1864GAME( 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
18651601GAME( 1986, bub68705,   bublbobl, bub68705, bublbobl,   bublbobl_state, bublbobl, ROT0,  "bootleg", "Bubble Bobble (bootleg with 68705)", MACHINE_SUPPORTS_SAVE )
18661602
18671603GAME( 1987, dland,      bublbobl, boblbobl, dland,      bublbobl_state, dland,    ROT0,  "bootleg", "Dream Land / Super Dream Land (bootleg of Bubble Bobble)", MACHINE_SUPPORTS_SAVE )
1868
1869GAME( 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)
1870GAME( 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
1871
1872GAME( 2013, bublcave,   bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.2", MACHINE_SUPPORTS_SAVE )
1873GAME( 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 )
1874
1875GAME( 2012, bublcave11, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.1", MACHINE_SUPPORTS_SAVE )
1876GAME( 2012, bublcave10, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.0", MACHINE_SUPPORTS_SAVE )
1877
1878
trunk/src/mame/drivers/exelv.c
r249901r249902
523523   MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_linear_slot, "exelvision_cart")
524524   MCFG_GENERIC_EXTENSIONS("bin,rom")
525525
526   MCFG_SOFTWARE_LIST_ADD("cart_list", "exl100")
526   MCFG_SOFTWARE_LIST_ADD("cart_list", "exl100_cart")
527527MACHINE_CONFIG_END
528528
529529
trunk/src/mame/drivers/osborne1.c
r249901r249902
202202
203203   MCFG_SCREEN_ADD("screen", RASTER)
204204   MCFG_SCREEN_UPDATE_DRIVER(osborne1_state, screen_update)
205   MCFG_SCREEN_RAW_PARAMS( MAIN_CLOCK, 1024, 0, 104*8, 260, 0, 24*10 )
205   MCFG_SCREEN_RAW_PARAMS( MAIN_CLOCK, 1024, 0, 832, 260, 0, 240 )
206206   MCFG_SCREEN_PALETTE("palette")
207207   MCFG_GFXDECODE_ADD("gfxdecode", "palette", osborne1)
208208   MCFG_PALETTE_ADD_MONOCHROME_GREEN_HIGHLIGHT("palette")
trunk/src/mame/drivers/pc.c
r249901r249902
485485   ROMX_LOAD( "eagle 1600 62-2732-002 rev e u404.bin",0xfe001, 0x1000, CRC(be6492d4) SHA1(ef25faf33e8336121d030e38e177be39be8afb7a), ROM_SKIP(1))
486486
487487   ROM_REGION(0x8000,"gfx1", 0)
488   ROM_LOAD("eagle 1600 video char gen u301.bin", 0x00000, 0x1000, CRC(1a7e552f) SHA1(749058783eec9d96a70dc5fdbfccb56196f889dc))
488   ROM_LOAD("eagle 1600 video char gen u301.bin", 0x00000, 0x2000, CRC(1a7e552f) SHA1(749058783eec9d96a70dc5fdbfccb56196f889dc))
489489ROM_END
490490
491491/***************************************************************************
trunk/src/mame/drivers/sega_sawatte.c
r249901r249902
1// license:BSD-3-Clause
2// copyright-holders:
3
4/* Sega Sawatte / S-Pico
5
6a sound-only Pico type system (one of the boards even says S-PICO)
7
8CPU is unknown (I can't see one?!) cartridge dumps should be good, but not confirmed, might be data only for an MCU?
9driver does nothing except allow the softlist to be connected to the -romident commands etc.
10
11
12images supplied by Team Europe
13
14http://mamedev.emulab.it/haze/reference/sawatte/cartridge_pcb_front.jpg
15http://mamedev.emulab.it/haze/reference/sawatte/cartridge_pcb_back.jpg
16
17http://mamedev.emulab.it/haze/reference/sawatte/PCB_Front.jpg
18http://mamedev.emulab.it/haze/reference/sawatte/PCB_Back.jpg
19
20http://mamedev.emulab.it/haze/reference/sawatte/Console_Front.JPG
21http://mamedev.emulab.it/haze/reference/sawatte/Console_Back.JPG
22
23http://mamedev.emulab.it/haze/reference/sawatte/cartridge_example.jpg
24
25*/
26
27#include "emu.h"
28
29
30
31class sawatte_state : public driver_device
32{
33public:
34   sawatte_state(const machine_config &mconfig, device_type type, const char *tag)
35      : driver_device(mconfig, type, tag)
36   { }
37
38protected:
39};
40
41
42static INPUT_PORTS_START( sawatte )
43INPUT_PORTS_END
44
45
46static MACHINE_CONFIG_START( sawatte, sawatte_state )
47   MCFG_SOFTWARE_LIST_ADD("cart_list", "sawatte")
48MACHINE_CONFIG_END
49
50ROM_START( sawatte )
51ROM_END
52
53
54GAME( 1996?, sawatte,    0,       sawatte,  sawatte, driver_device,  0,  ROT0,  "Sega",    "Sawatte",          MACHINE_IS_SKELETON )
trunk/src/mame/drivers/subhuntr.c
r249901r249902
7878static ADDRESS_MAP_START( subhuntr_io_map, AS_IO, 8, subhuntr_state )
7979//   AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE( ,  )
8080//   AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE( ,  )
81   AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
81//   AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
8282ADDRESS_MAP_END
8383
8484/***************************************************************************
r249901r249902
109109
110110INTERRUPT_GEN_MEMBER(subhuntr_state::subhuntr_interrupt)
111111{
112   device.execute().set_input_line_and_vector(0, HOLD_LINE, 0x03);
112//   device.execute().set_input_line_and_vector(0, HOLD_LINE, 0x03);
113113}
114114
115115static const gfx_layout tiles8x8_layout =
trunk/src/mame/includes/neogeo.h
r249901r249902
392392   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) */ \
393393   ROM_SYSTEM_BIOS( 1, "euro-s1", "Europe MVS (Ver. 1)" ) \
394394   ROM_LOAD16_WORD_SWAP_BIOS( 1, "sp-s.sp1",          0x00000, 0x020000, CRC(c7f2fa45) SHA1(09576ff20b4d6b365e78e6a5698ea450262697cd) ) /* Europe, 4 Slot */ \
395   \
396395   ROM_SYSTEM_BIOS( 2, "us", "US MVS (Ver. 2?)" ) \
397396   ROM_LOAD16_WORD_SWAP_BIOS( 2, "sp-u2.sp1",         0x00000, 0x020000, CRC(e72943de) SHA1(5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb) ) /* US, 2 Slot */ \
398397   ROM_SYSTEM_BIOS( 3, "us-e", "US MVS (Ver. 1)" ) \
399398   ROM_LOAD16_WORD_SWAP_BIOS( 3, "sp-e.sp1",          0x00000, 0x020000, CRC(2723a5b5) SHA1(5dbff7531cf04886cde3ef022fb5ca687573dcb8) ) /* US, 6 Slot (V5?) */ \
400   ROM_SYSTEM_BIOS( 4, "us-v2", "US MVS (4 slot, Ver 2)" ) \
401   ROM_LOAD16_WORD_SWAP_BIOS(4, "v2.bin",            0x00000, 0x020000, CRC(62f021f4) SHA1(62d372269e1b3161c64ae21123655a0a22ffd1bb) ) /* US, 4 slot */ \
402   \
403   ROM_SYSTEM_BIOS( 5, "asia", "Asia MVS (Ver. 3)" ) \
404   ROM_LOAD16_WORD_SWAP_BIOS( 5, "asia-s3.rom",       0x00000, 0x020000, CRC(91b64be3) SHA1(720a3e20d26818632aedf2c2fd16c54f213543e1) ) /* Asia */ \
405   \
406   ROM_SYSTEM_BIOS( 6, "japan", "Japan MVS (Ver. 3)" ) \
407   ROM_LOAD16_WORD_SWAP_BIOS( 6, "vs-bios.rom",       0x00000, 0x020000, CRC(f0e8f27d) SHA1(ecf01eda815909f1facec62abf3594eaa8d11075) ) /* Japan, Ver 6 VS Bios */ \
408   ROM_SYSTEM_BIOS( 7, "japan-s2", "Japan MVS (Ver. 2)" ) \
409   ROM_LOAD16_WORD_SWAP_BIOS( 7, "sp-j2.sp1",         0x00000, 0x020000, CRC(acede59c) SHA1(b6f97acd282fd7e94d9426078a90f059b5e9dd91) ) /* Japan, Older */ \
410   ROM_SYSTEM_BIOS( 8, "japan-s1", "Japan MVS (Ver. 1)" ) \
411   ROM_LOAD16_WORD_SWAP_BIOS( 8, "sp1.jipan.1024",    0x00000, 0x020000, CRC(9fb0abe4) SHA1(18a987ce2229df79a8cf6a84f968f0e42ce4e59d) ) /* Japan, Older */ \
412   ROM_SYSTEM_BIOS( 9, "mv1c", "NEO-MVH MV1C" ) \
413   ROM_LOAD16_WORD_SWAP_BIOS( 9, "sp-45.sp1",         0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) ) /* Latest Asia bios */ \
414   ROM_SYSTEM_BIOS( 10, "japan-j3", "Japan MVS (J3)" ) \
415   ROM_LOAD16_WORD_SWAP_BIOS( 10, "japan-j3.bin",      0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) ) /* Latest Japan bios; correct chip label unknown */ \
416   ROM_SYSTEM_BIOS(11, "japan-hotel", "Custom Japanese Hotel" ) \
417   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 */ \
418   \
419   ROM_SYSTEM_BIOS(12, "unibios31", "Universe Bios (Hack, Ver. 3.1)" ) \
420   ROM_LOAD16_WORD_SWAP_BIOS(12, "uni-bios_3_1.rom",  0x00000, 0x020000, CRC(0c58093f) SHA1(29329a3448c2505e1ff45ffa75e61e9693165153) ) /* Universe Bios v3.1 (hack) */ \
421   ROM_SYSTEM_BIOS(13, "unibios30", "Universe Bios (Hack, Ver. 3.0)" ) \
422   ROM_LOAD16_WORD_SWAP_BIOS(13, "uni-bios_3_0.rom",  0x00000, 0x020000, CRC(a97c89a9) SHA1(97a5eff3b119062f10e31ad6f04fe4b90d366e7f) ) /* Universe Bios v3.0 (hack) */ \
423   ROM_SYSTEM_BIOS(14, "unibios23", "Universe Bios (Hack, Ver. 2.3)" ) \
424   ROM_LOAD16_WORD_SWAP_BIOS(14, "uni-bios_2_3.rom",  0x00000, 0x020000, CRC(27664eb5) SHA1(5b02900a3ccf3df168bdcfc98458136fd2b92ac0) ) /* Universe Bios v2.3 (hack) */ \
425   ROM_SYSTEM_BIOS(15, "unibios23o", "Universe Bios (Hack, Ver. 2.3, older?)" ) \
426   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? */ \
427   ROM_SYSTEM_BIOS(16, "unibios22", "Universe Bios (Hack, Ver. 2.2)" ) \
428   ROM_LOAD16_WORD_SWAP_BIOS(16, "uni-bios_2_2.rom",  0x00000, 0x020000, CRC(2d50996a) SHA1(5241a4fb0c63b1a23fd1da8efa9c9a9bd3b4279c) ) /* Universe Bios v2.2 (hack) */ \
429   ROM_SYSTEM_BIOS(17, "unibios21", "Universe Bios (Hack, Ver. 2.1)" ) \
430   ROM_LOAD16_WORD_SWAP_BIOS(17, "uni-bios_2_1.rom",  0x00000, 0x020000, CRC(8dabf76b) SHA1(c23732c4491d966cf0373c65c83c7a4e88f0082c) ) /* Universe Bios v2.1 (hack) */ \
431   ROM_SYSTEM_BIOS(18, "unibios20", "Universe Bios (Hack, Ver. 2.0)" ) \
432   ROM_LOAD16_WORD_SWAP_BIOS(18, "uni-bios_2_0.rom",  0x00000, 0x020000, CRC(0c12c2ad) SHA1(37bcd4d30f3892078b46841d895a6eff16dc921e) ) /* Universe Bios v2.0 (hack) */ \
433   ROM_SYSTEM_BIOS(19, "unibios13", "Universe Bios (Hack, Ver. 1.3)" ) \
434   ROM_LOAD16_WORD_SWAP_BIOS(19, "uni-bios_1_3.rom",  0x00000, 0x020000, CRC(b24b44a0) SHA1(eca8851d30557b97c309a0d9f4a9d20e5b14af4e) ) /* Universe Bios v1.3 (hack) */ \
435   ROM_SYSTEM_BIOS(20, "unibios12", "Universe Bios (Hack, Ver. 1.2)" ) \
436   ROM_LOAD16_WORD_SWAP_BIOS(20, "uni-bios_1_2.rom",  0x00000, 0x020000, CRC(4fa698e9) SHA1(682e13ec1c42beaa2d04473967840c88fd52c75a) ) /* Universe Bios v1.2 (hack) */ \
437   ROM_SYSTEM_BIOS(21, "unibios12o", "Universe Bios (Hack, Ver. 1.2, older)" ) \
438   ROM_LOAD16_WORD_SWAP_BIOS(21, "uni-bios_1_2o.rom", 0x00000, 0x020000, CRC(e19d3ce9) SHA1(af88ef837f44a3af2d7144bb46a37c8512b67770) ) /* Universe Bios v1.2 (hack) alt version */ \
439   ROM_SYSTEM_BIOS(22, "unibios11", "Universe Bios (Hack, Ver. 1.1)" ) \
440   ROM_LOAD16_WORD_SWAP_BIOS(22, "uni-bios_1_1.rom",  0x00000, 0x020000, CRC(5dda0d84) SHA1(4153d533c02926a2577e49c32657214781ff29b7) ) /* Universe Bios v1.1 (hack) */ \
441   ROM_SYSTEM_BIOS(23, "unibios10", "Universe Bios (Hack, Ver. 1.0)" ) \
442   ROM_LOAD16_WORD_SWAP_BIOS(23, "uni-bios_1_0.rom",  0x00000, 0x020000, CRC(0ce453a0) SHA1(3b4c0cd26c176fc6b26c3a2f95143dd478f6abf9) ) /* Universe Bios v1.0 (hack) */
399   ROM_SYSTEM_BIOS( 4, "asia", "Asia MVS (Ver. 3)" ) \
400   ROM_LOAD16_WORD_SWAP_BIOS( 4, "asia-s3.rom",       0x00000, 0x020000, CRC(91b64be3) SHA1(720a3e20d26818632aedf2c2fd16c54f213543e1) ) /* Asia */ \
401   ROM_SYSTEM_BIOS( 5, "japan", "Japan MVS (Ver. 3)" ) \
402   ROM_LOAD16_WORD_SWAP_BIOS( 5, "vs-bios.rom",       0x00000, 0x020000, CRC(f0e8f27d) SHA1(ecf01eda815909f1facec62abf3594eaa8d11075) ) /* Japan, Ver 6 VS Bios */ \
403   ROM_SYSTEM_BIOS( 6, "japan-s2", "Japan MVS (Ver. 2)" ) \
404   ROM_LOAD16_WORD_SWAP_BIOS( 6, "sp-j2.sp1",         0x00000, 0x020000, CRC(acede59c) SHA1(b6f97acd282fd7e94d9426078a90f059b5e9dd91) ) /* Japan, Older */ \
405   ROM_SYSTEM_BIOS( 7, "japan-s1", "Japan MVS (Ver. 1)" ) \
406   ROM_LOAD16_WORD_SWAP_BIOS( 7, "sp1.jipan.1024",    0x00000, 0x020000, CRC(9fb0abe4) SHA1(18a987ce2229df79a8cf6a84f968f0e42ce4e59d) ) /* Japan, Older */ \
407   ROM_SYSTEM_BIOS( 8, "mv1c", "NEO-MVH MV1C" ) \
408   ROM_LOAD16_WORD_SWAP_BIOS( 8, "sp-45.sp1",         0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) ) /* Latest Asia bios */ \
409   ROM_SYSTEM_BIOS( 9, "japan-j3", "Japan MVS (J3)" ) \
410   ROM_LOAD16_WORD_SWAP_BIOS( 9, "japan-j3.bin",      0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) ) /* Latest Japan bios; correct chip label unknown */ \
411   ROM_SYSTEM_BIOS(10, "japan-hotel", "Custom Japanese Hotel" ) \
412   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 */ \
413   ROM_SYSTEM_BIOS(11, "unibios31", "Universe Bios (Hack, Ver. 3.1)" ) \
414   ROM_LOAD16_WORD_SWAP_BIOS(11, "uni-bios_3_1.rom",  0x00000, 0x020000, CRC(0c58093f) SHA1(29329a3448c2505e1ff45ffa75e61e9693165153) ) /* Universe Bios v3.1 (hack) */ \
415   ROM_SYSTEM_BIOS(12, "unibios30", "Universe Bios (Hack, Ver. 3.0)" ) \
416   ROM_LOAD16_WORD_SWAP_BIOS(12, "uni-bios_3_0.rom",  0x00000, 0x020000, CRC(a97c89a9) SHA1(97a5eff3b119062f10e31ad6f04fe4b90d366e7f) ) /* Universe Bios v3.0 (hack) */ \
417   ROM_SYSTEM_BIOS(13, "unibios23", "Universe Bios (Hack, Ver. 2.3)" ) \
418   ROM_LOAD16_WORD_SWAP_BIOS(13, "uni-bios_2_3.rom",  0x00000, 0x020000, CRC(27664eb5) SHA1(5b02900a3ccf3df168bdcfc98458136fd2b92ac0) ) /* Universe Bios v2.3 (hack) */ \
419   ROM_SYSTEM_BIOS(14, "unibios23o", "Universe Bios (Hack, Ver. 2.3, older?)" ) \
420   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? */ \
421   ROM_SYSTEM_BIOS(15, "unibios22", "Universe Bios (Hack, Ver. 2.2)" ) \
422   ROM_LOAD16_WORD_SWAP_BIOS(15, "uni-bios_2_2.rom",  0x00000, 0x020000, CRC(2d50996a) SHA1(5241a4fb0c63b1a23fd1da8efa9c9a9bd3b4279c) ) /* Universe Bios v2.2 (hack) */ \
423   ROM_SYSTEM_BIOS(16, "unibios21", "Universe Bios (Hack, Ver. 2.1)" ) \
424   ROM_LOAD16_WORD_SWAP_BIOS(16, "uni-bios_2_1.rom",  0x00000, 0x020000, CRC(8dabf76b) SHA1(c23732c4491d966cf0373c65c83c7a4e88f0082c) ) /* Universe Bios v2.1 (hack) */ \
425   ROM_SYSTEM_BIOS(17, "unibios20", "Universe Bios (Hack, Ver. 2.0)" ) \
426   ROM_LOAD16_WORD_SWAP_BIOS(17, "uni-bios_2_0.rom",  0x00000, 0x020000, CRC(0c12c2ad) SHA1(37bcd4d30f3892078b46841d895a6eff16dc921e) ) /* Universe Bios v2.0 (hack) */ \
427   ROM_SYSTEM_BIOS(18, "unibios13", "Universe Bios (Hack, Ver. 1.3)" ) \
428   ROM_LOAD16_WORD_SWAP_BIOS(18, "uni-bios_1_3.rom",  0x00000, 0x020000, CRC(b24b44a0) SHA1(eca8851d30557b97c309a0d9f4a9d20e5b14af4e) ) /* Universe Bios v1.3 (hack) */ \
429   ROM_SYSTEM_BIOS(19, "unibios12", "Universe Bios (Hack, Ver. 1.2)" ) \
430   ROM_LOAD16_WORD_SWAP_BIOS(19, "uni-bios_1_2.rom",  0x00000, 0x020000, CRC(4fa698e9) SHA1(682e13ec1c42beaa2d04473967840c88fd52c75a) ) /* Universe Bios v1.2 (hack) */ \
431   ROM_SYSTEM_BIOS(20, "unibios12o", "Universe Bios (Hack, Ver. 1.2, older)" ) \
432   ROM_LOAD16_WORD_SWAP_BIOS(20, "uni-bios_1_2o.rom", 0x00000, 0x020000, CRC(e19d3ce9) SHA1(af88ef837f44a3af2d7144bb46a37c8512b67770) ) /* Universe Bios v1.2 (hack) alt version */ \
433   ROM_SYSTEM_BIOS(21, "unibios11", "Universe Bios (Hack, Ver. 1.1)" ) \
434   ROM_LOAD16_WORD_SWAP_BIOS(21, "uni-bios_1_1.rom",  0x00000, 0x020000, CRC(5dda0d84) SHA1(4153d533c02926a2577e49c32657214781ff29b7) ) /* Universe Bios v1.1 (hack) */ \
435   ROM_SYSTEM_BIOS(22, "unibios10", "Universe Bios (Hack, Ver. 1.0)" ) \
436   ROM_LOAD16_WORD_SWAP_BIOS(22, "uni-bios_1_0.rom",  0x00000, 0x020000, CRC(0ce453a0) SHA1(3b4c0cd26c176fc6b26c3a2f95143dd478f6abf9) ) /* Universe Bios v1.0 (hack) */
443437
444438
445439
trunk/src/mame/includes/osborne1.h
r249901r249902
9696   /* video related */
9797   UINT8   m_screen_pac;
9898   UINT8   m_resolution;
99   UINT8   m_hc_left;
10099   UINT8   m_new_start_x;
101100   UINT8   m_new_start_y;
102101   emu_timer *m_video_timer;
trunk/src/mame/machine/osborne1.c
r249901r249902
113113         break;
114114      case 0x400: /* SCREEN-PAC */
115115         m_resolution = data & 0x01;
116         m_hc_left = (data >> 1) & 0x01;
117116         break;
118117      case 0x900: /* IEEE488 PIA */
119118         m_pia0->write(space, offset & 0x03, data );
r249901r249902
343342
344343TIMER_CALLBACK_MEMBER(osborne1_state::osborne1_video_callback)
345344{
346   int const y = machine().first_screen()->vpos();
347   UINT8 ra=0;
345   int y = machine().first_screen()->vpos();
346   UINT8 ra=0,chr,gfx,dim;
347   UINT16 x,ma;
348348
349349   /* Check for start of frame */
350350   if ( y == 0 )
r249901r249902
361361   {
362362      ra = y % 10;
363363      /* Draw a line of the display */
364      bool const hires = m_screen_pac & m_resolution;
365      UINT16 const row = (m_new_start_y + (y/10)) * 128 & 0xF80;
366      UINT16 const col = (m_new_start_x & (hires ? 0x60 : 0x7F)) - ((hires && m_hc_left) ? 8 : 0);
364      ma = (m_new_start_y + (y/10)) * 128 + m_new_start_x;
367365      UINT16 *p = &m_bitmap.pix16(y);
368366
369      for ( UINT16 x = 0; x < (hires ? 104 : 52); x++ )
367      for ( x = 0; x < ((m_screen_pac && m_resolution) ? 104 : 52); x++ )
370368      {
371         UINT16 offs = row | ((col + x) & 0x7F);
372         UINT8 const chr = m_ram->pointer()[ 0xF000 + offs ];
373         UINT8 const dim = m_ram->pointer()[ 0x10000 + offs ] & 0x80;
369         chr = m_ram->pointer()[ 0xF000 + ( (ma+x) & 0xFFF ) ];
370         dim = m_ram->pointer()[ 0x10000 + ( (ma+x) & 0xFFF ) ] & 0x80;
374371
375         UINT8 const gfx = ((chr & 0x80) && (ra == 9)) ? 0xFF : m_p_chargen[ (ra << 7) | (chr & 0x7F) ];
372         if ( (chr & 0x80) && (ra == 9) )
373            gfx = 0xFF;
374         else
375            gfx = m_p_chargen[ (ra << 7) | ( chr & 0x7F ) ];
376376
377377         /* Display a scanline of a character */
378378         *p++ = BIT(gfx, 7) ? ( dim ? 2 : 1 ) : 0;
379         if (!hires) { p[0] = p[-1]; p++; }
379         if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
380380         *p++ = BIT(gfx, 6) ? ( dim ? 2 : 1 ) : 0;
381         if (!hires) { p[0] = p[-1]; p++; }
381         if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
382382         *p++ = BIT(gfx, 5) ? ( dim ? 2 : 1 ) : 0;
383         if (!hires) { p[0] = p[-1]; p++; }
383         if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
384384         *p++ = BIT(gfx, 4) ? ( dim ? 2 : 1 ) : 0;
385         if (!hires) { p[0] = p[-1]; p++; }
385         if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
386386         *p++ = BIT(gfx, 3) ? ( dim ? 2 : 1 ) : 0;
387         if (!hires) { p[0] = p[-1]; p++; }
387         if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
388388         *p++ = BIT(gfx, 2) ? ( dim ? 2 : 1 ) : 0;
389         if (!hires) { p[0] = p[-1]; p++; }
389         if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
390390         *p++ = BIT(gfx, 1) ? ( dim ? 2 : 1 ) : 0;
391         if (!hires) { p[0] = p[-1]; p++; }
391         if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
392392         *p++ = BIT(gfx, 0) ? ( dim ? 2 : 1 ) : 0;
393         if (!hires) { p[0] = p[-1]; p++; }
393         if (!m_screen_pac || !m_resolution) { p[0] = p[-1]; p++; }
394394      }
395395   }
396396
r249901r249902
425425
426426   m_screen_pac = 0 != (m_cnf->read() & 0x01);
427427   m_resolution = 0;
428   m_hc_left = 0;
429428   m_p_chargen = memregion( "chargen" )->base();
430429
431430   memset( m_ram->pointer() + 0x10000, 0xFF, 0x1000 );
trunk/src/mame/mess.lst
r249901r249902
8181picou    // 1994 Sega Pico (USA)
8282picoj    // 1993 Sega Pico (Japan)
8383copera  // 1993 Sega / Yamaha
84sawatte   //
8584segacd  // 1992 Sega Sega CD (USA)
8685megacd  // 1993 Sega Mega-CD (Europe)
8786megacda // 1993 Sega Mega-CD (Asia)
trunk/src/osd/modules/debugger/osx/debugview.m
r249901r249902
404404   [text addAttribute:NSFontAttributeName value:font range:run];
405405   NSPasteboard *const board = [NSPasteboard generalPasteboard];
406406   [board declareTypes:[NSArray arrayWithObject:NSRTFPboardType] owner:nil];
407   [board setData:[text RTFFromRange:run documentAttributes:[NSDictionary dictionary]] forType:NSRTFPboardType];
407   [board setData:[text RTFFromRange:run documentAttributes:@{}] forType:NSRTFPboardType];
408408   [text deleteCharactersInRange:run];
409409}
410410
trunk/src/osd/sdl/video.c
r249901r249902
9696   sdl_monitor_info::init();
9797
9898   // we need the beam width in a float, contrary to what the core does.
99   video_config.beamwidth = options().beam_width_min();
99   video_config.beamwidth = options().beam();
100100
101101   // initialize the window system so we can make windows
102102   if (!window_init())


Previous 199869 Revisions Next


© 1997-2024 The MAME Team