Previous 199869 Revisions Next

r41408 Wednesday 28th October, 2015 at 02:29:36 UTC by Roberto Fresca
Changed the vpoker set description to Videotronics Draw Poker,
since the game is "Draw Poker". Two companies sold it with
different name. Documented the legal issues and added links.
[Roberto Fresca]
[hash]spectrum_cass.xml
[src/devices/cpu/avr8]avr8.c
[src/devices/cpu/dsp56k]pmove.h
[src/devices/cpu/e132xs]e132xs.c
[src/devices/cpu/esrip]esrip.c
[src/devices/cpu/m6805]m6805.c
[src/devices/cpu/ssem]ssem.c
[src/devices/cpu/upd7725]upd7725.c
[src/devices/machine]atahle.c r10696.c
[src/emu]diimage.c emuopts.c info.c machine.c memory.c romload.c softlist.c validity.c video.c
[src/emu/ui]filemngr.c inputmap.c
[src/lib/formats]tzx_cas.c
[src/mame]arcade.lst
[src/mame/drivers]beathead.c cardline.c cave.c cubeqst.c firefox.c galaxian.c merit.c osborne1.c pgm.c segac2.c segas24.c slotcarn.c vicdual.c vpoker.c
[src/mame/includes]osborne1.h
[src/mame/machine]315-5881_crypt.c naomim1.c osborne1.c
[src/mame/video]btoads.c cloak.c dkong.c galaxian.c gyruss.c itech8.c meadows.c qix.c spacefb.c system1.c tp84.c

trunk/hash/spectrum_cass.xml
r249919r249920
797797         </dataarea>
798798      </part>
799799   </software>
800
800 
801801  <!-- V1.0 doesn't exist in Spanish? or Italian (translations were made after the 1.1 release) -->
802
803  <!-- what are these? were there unannounced updates at some point? check data, remove if just duplicate -->
804  <software name="castlvsia" cloneof="castlvsi">
805    <description>Castlevania - Spectral Interlude (alt, English, 128K)</description>
806    <year>2015</year>
807    <publisher>Rewind</publisher>
808    <part name="cass" interface="spectrum_cass">
809      <dataarea name="cass" size="126416">
810        <rom name="castlevania_si_en.tap" size="126416" crc="c7fb2adf" sha1="22fdb537a3e4b3ed05aac82f34103212c179db4a" offset="0"/>
811      </dataarea>
812    </part>
813  </software>
814
815  <software name="castlvsirua" cloneof="castlvsi">
816    <description>Castlevania - Spectral Interlude (alt, Russian, 128K)</description>
817    <year>2015</year>
818    <publisher>Rewind</publisher>
819    <part name="cass" interface="spectrum_cass">
820      <dataarea name="cass" size="127075">
821        <rom name="castlevania_si_ru.tap" size="127075" crc="e4e9bd2a" sha1="8bae5e5d2e310335f3aba96b2a0ed6c5c447eb18" offset="0"/>
822      </dataarea>
823    </part>
824  </software>
825
826  <software name="castlvsipla" cloneof="castlvsi">
827    <description>Castlevania - Spectral Interlude (alt, Polish, 128K)</description>
828    <year>2015</year>
829    <publisher>Rewind</publisher>
830    <part name="cass" interface="spectrum_cass">
831      <dataarea name="cass" size="127413">
832        <rom name="castlevania_si_pl.tap" size="127413" crc="98e2c6a6" sha1="6eb777aa7c0c057cf04f3162e7e80f6c4286e406" offset="0"/>
833      </dataarea>
834    </part>
835  </software>
836
837  <software name="castlvsiesa" cloneof="castlvsi">
838    <description>Castlevania - Spectral Interlude (alt, Spanish, 128K)</description>
839    <year>2015</year>
840    <publisher>Rewind</publisher>
841    <part name="cass" interface="spectrum_cass">
842      <dataarea name="cass" size="126973">
843        <rom name="castlevania_si_es.tap" size="126973" crc="4479be59" sha1="c5c816d4b02526c37ea44cbac8d1836ca03fd2fe" offset="0"/>
844      </dataarea>
845    </part>
846  </software> 
802 
847803</softwarelist>
848804
849805
trunk/src/devices/cpu/avr8/avr8.c
r249919r249920
752752   m_io = &space(AS_IO);
753753
754754   // register our state for the debugger
755   std::string tempstr;
755756   state_add(STATE_GENPC,     "GENPC",     m_shifted_pc).noshow();
756757   state_add(STATE_GENFLAGS,  "GENFLAGS",  m_r[AVR8_REGIDX_SREG]).callimport().callexport().formatstr("%8s").noshow();
757758   state_add(AVR8_SREG,       "STATUS",    m_r[AVR8_REGIDX_SREG]).mask(0xff);
trunk/src/devices/cpu/dsp56k/pmove.h
r249919r249920
315315   {
316316      INT8 b;
317317      reg_id SD;
318      std::string args;
319
318320      b = (char)(word0 & 0x00ff);
319321      decode_HHH_table(BITSn(word1,0x0e00), SD);
320322      assemble_reg_from_W_table(BITSn(word1,0x0100), 'X', SD, b, m_source, m_destination);
trunk/src/devices/cpu/e132xs/e132xs.c
r249919r249920
15621562   m_clock_scale_mask = scale_mask;
15631563
15641564   // register our state for the debugger
1565   std::string tempstr;
15651566   state_add(STATE_GENPC,    "GENPC",     m_global_regs[0]).noshow();
15661567   state_add(STATE_GENFLAGS, "GENFLAGS",  m_global_regs[1]).callimport().callexport().formatstr("%40s").noshow();
15671568   state_add(E132XS_PC,      "PC", m_global_regs[0]).mask(0xffffffff);
trunk/src/devices/cpu/esrip/esrip.c
r249919r249920
193193   m_direct = &m_program->direct();
194194
195195   // register our state for the debugger
196   std::string tempstr;
196197   state_add(STATE_GENPC,     "GENPC",     m_rip_pc).noshow();
197198   state_add(STATE_GENFLAGS,  "GENFLAGS",  m_status).callimport().callexport().formatstr("%8s").noshow();
198199   state_add(ESRIP_PC,        "PC:",       m_rip_pc).mask(0xffff);
trunk/src/devices/cpu/m6805/m6805.c
r249919r249920
424424   m_icountptr = &m_icount;
425425
426426   // register our state for the debugger
427   std::string tempstr;
427428   state_add(STATE_GENPC,     "GENPC",     m_pc.w.l).noshow();
428429   state_add(STATE_GENFLAGS,  "GENFLAGS",  m_cc).callimport().callexport().formatstr("%8s").noshow();
429430   state_add(M6805_A,         "A",         m_a).mask(0xff);
trunk/src/devices/cpu/ssem/ssem.c
r249919r249920
100100   m_program = &space(AS_PROGRAM);
101101
102102   // register our state for the debugger
103   std::string tempstr;
103104   state_add(STATE_GENPC,     "GENPC",     m_pc).noshow();
104105   state_add(STATE_GENFLAGS,  "GENFLAGS",  m_halt).callimport().callexport().formatstr("%1s").noshow();
105106   state_add(SSEM_PC,         "PC",        m_shifted_pc).mask(0xffff);
trunk/src/devices/cpu/upd7725/upd7725.c
r249919r249920
6969   m_direct = &m_program->direct();
7070
7171   // register our state for the debugger
72   std::string tempstr;
7273   state_add(STATE_GENPC, "GENPC", regs.pc).noshow();
7374   state_add(UPD7725_PC, "PC", regs.pc);
7475   state_add(UPD7725_RP, "RP", regs.rp);
trunk/src/devices/machine/atahle.c
r249919r249920
470470   if ((multi_word_dma_mode() >= 0) || (ultra_dma_mode() >= 0))
471471      set_dmarq(CLEAR_LINE);
472472
473   if (ultra_dma_mode() >= 0) {
474      m_buffer_empty_timer->enable(true);
475      m_buffer_empty_timer->adjust(attotime::zero);
476   }
477   else
478      fill_buffer();
473   m_buffer_empty_timer->enable(true);
474   m_buffer_empty_timer->adjust(attotime::zero);
479475}
480476
481477void ata_hle_device::write_buffer_full()
trunk/src/devices/machine/r10696.c
r249919r249920
154154      io_a = m_iord(0);
155155      io_b = m_iord(1);
156156      io_c = m_iord(2);
157      data = (io_a | io_b | io_c) & 0x0f;
157      data = (io_a | io_b | io_a) & 0x0f;
158158      break;
159159   case 0x01: // Read Groups B | C
160160      io_b = m_iord(1);
trunk/src/emu/diimage.c
r249919r249920
758758{
759759   std::string locationtag, breakstr("%");
760760   const rom_entry *region;
761   std::string regiontag;
761762   bool retVal = FALSE;
762763   int warningcount = 0;
763764   for (region = start; region != NULL; region = rom_next_region(region))
trunk/src/emu/emuopts.c
r249919r249920
582582{
583583   std::string tmp = std::string(",").append(subname).append("=");
584584   buffer = value(name);
585   int pos = buffer.find(tmp);
585   int pos = buffer.find(tmp.c_str());
586586   if (pos != -1)
587587   {
588588      int endpos = buffer.find_first_of(',', pos + 1);
trunk/src/emu/info.c
r249919r249920
645645      if (strcmp(exec->device().tag(), device.tag()))
646646      {
647647         std::string newtag(exec->device().tag()), oldtag(":");
648         newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
648         newtag = newtag.substr(newtag.find(oldtag.append(root_tag).c_str()) + oldtag.length());
649649
650650         fprintf(m_output, "\t\t<chip");
651651         fprintf(m_output, " type=\"cpu\"");
r249919r249920
663663      if (strcmp(sound->device().tag(), device.tag()))
664664      {
665665         std::string newtag(sound->device().tag()), oldtag(":");
666         newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
666         newtag = newtag.substr(newtag.find(oldtag.append(root_tag).c_str()) + oldtag.length());
667667
668668         fprintf(m_output, "\t\t<chip");
669669         fprintf(m_output, " type=\"audio\"");
r249919r249920
691691      if (strcmp(screendev->tag(), device.tag()))
692692      {
693693         std::string newtag(screendev->tag()), oldtag(":");
694         newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
694         newtag = newtag.substr(newtag.find(oldtag.append(root_tag).c_str()) + oldtag.length());
695695
696696         fprintf(m_output, "\t\t<display");
697697         fprintf(m_output, " tag=\"%s\"", xml_normalize_string(newtag.c_str()));
r249919r249920
10971097            std::string output;
10981098
10991099            std::string newtag(port->tag()), oldtag(":");
1100            newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
1100            newtag = newtag.substr(newtag.find(oldtag.append(root_tag).c_str()) + oldtag.length());
11011101
11021102            // output the switch name information
11031103            std::string normalized_field_name(xml_normalize_string(field->name()));
r249919r249920
12281228      if (strcmp(imagedev->device().tag(), device.tag()))
12291229      {
12301230         std::string newtag(imagedev->device().tag()), oldtag(":");
1231         newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
1231         newtag = newtag.substr(newtag.find(oldtag.append(root_tag).c_str()) + oldtag.length());
12321232
12331233         // print m_output device type
12341234         fprintf(m_output, "\t\t<device type=\"%s\"", xml_normalize_string(imagedev->image_type_name()));
r249919r249920
12861286      if (strcmp(slot->device().tag(), device.tag()))
12871287      {
12881288         std::string newtag(slot->device().tag()), oldtag(":");
1289         newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
1289         newtag = newtag.substr(newtag.find(oldtag.append(root_tag).c_str()) + oldtag.length());
12901290
12911291         // print m_output device type
12921292         fprintf(m_output, "\t\t<slot name=\"%s\">\n", xml_normalize_string(newtag.c_str()));
trunk/src/emu/machine.c
r249919r249920
206206   else if (strlen(options().autoboot_command())!=0) {
207207      std::string cmd = std::string(options().autoboot_command());
208208      strreplace(cmd, "'", "\\'");
209      std::string val = std::string("emu.keypost('").append(cmd).append("')");
209      std::string val = std::string("emu.keypost('").append(cmd.c_str()).append("')").c_str();
210210      manager().lua()->load_string(val.c_str());
211211   }
212212}
r249919r249920
563563
564564   // handle %d in the template (for image devices)
565565   std::string statename_dev("%d_");
566   int pos = statename_str.find(statename_dev);
566   int pos = statename_str.find(statename_dev.c_str());
567567
568568   if (pos != -1)
569569   {
trunk/src/emu/memory.c
r249919r249920
19291929void address_space::populate_map_entry(const address_map_entry &entry, read_or_write readorwrite)
19301930{
19311931   const map_handler_data &data = (readorwrite == ROW_READ) ? entry.m_read : entry.m_write;
1932   std::string fulltag;
1933
19321934   // based on the handler type, alter the bits, name, funcptr, and object
19331935   switch (data.m_type)
19341936   {
trunk/src/emu/romload.c
r249919r249920
675675         }
676676
677677         // prepare locations where we have to load from: list/parentname & list/clonename
678         std::string swlist(tag1);
678         std::string swlist(tag1.c_str());
679679         tag2.assign(swlist.append(tag4));
680680         if (has_parent)
681681         {
r249919r249920
10761076         }
10771077
10781078         // prepare locations where we have to load from: list/parentname (if any) & list/clonename
1079         std::string swlist(tag1);
1079         std::string swlist(tag1.c_str());
10801080         tag2.assign(swlist.append(tag4));
10811081         if (has_parent)
10821082         {
trunk/src/emu/softlist.c
r249919r249920
158158   for (int start = 0, end = filt.find_first_of(',',start); end != -1; start = end + 1, end = filt.find_first_of(',', start))
159159   {
160160      std::string token(filt, start, end - start + 1);
161      if (comp.find(token) != -1)
161      if (comp.find(token.c_str()) != -1)
162162         return true;
163163   }
164164   return false;
r249919r249920
181181
182182   // then add a comma to the end of our interface and return true if we find it in the list string
183183   std::string our_interface = std::string(m_interface).append(",");
184   return (interfaces.find(our_interface) != -1);
184   return (interfaces.find(our_interface.c_str()) != -1);
185185}
186186
187187
trunk/src/emu/ui/filemngr.c
r249919r249920
104104{
105105   std::string buffer, tmp_inst, tmp_name;
106106   bool first_entry = true;
107   std::string prev_owner;
107108
108109   if (!m_warnings.empty())
109110   {
trunk/src/emu/ui/inputmap.c
r249919r249920
9191{
9292   input_item_data *itemlist = NULL;
9393   int suborder[SEQ_TYPE_TOTAL];
94   std::string tempstring;
9495   int sortorder = 1;
9596
9697   /* create a mini lookup table for sort order based on sequence type */
r249919r249920
153154{
154155   input_item_data *itemlist = NULL;
155156   int suborder[SEQ_TYPE_TOTAL];
157   std::string tempstring;
156158   int port_count = 0;
157159
158160   /* create a mini lookup table for sort order based on sequence type */
trunk/src/emu/validity.c
r249919r249920
196196   // if we had warnings or errors, output
197197   if (m_errors > 0 || m_warnings > 0)
198198   {
199      std::string tempstr;
199200      output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Core: %d errors, %d warnings\n", m_errors, m_warnings);
200201      if (m_errors > 0)
201202      {
trunk/src/emu/video.c
r249919r249920
11261126
11271127   // handle %d in the template (for image devices)
11281128   std::string snapdev("%d_");
1129   int pos = snapstr.find(snapdev);
1129   int pos = snapstr.find(snapdev.c_str());
11301130
11311131   if (pos != -1)
11321132   {
trunk/src/lib/formats/tzx_cas.c
r249919r249920
296296   return size;
297297}
298298
299static int tzx_handle_direct(INT16 **buffer, const UINT8 *bytes, int pause, int data_size, int tstates, int bits_in_last_byte)
300{
301   int size = 0;
302   int samples = tcycles_to_samplecount(tstates);
303
304   /* data */
305   for (int data_index = 0; data_index < data_size; data_index++)
306   {
307      UINT8 byte = bytes[data_index];
308      int bits_to_go = (data_index == (data_size - 1)) ? bits_in_last_byte : 8;
309
310      for ( ; bits_to_go > 0; byte <<= 1, bits_to_go--)
311      {
312         if (byte & 0x80) wave_data = WAVE_HIGH;
313         else wave_data = WAVE_LOW;
314
315         tzx_output_wave(buffer, samples);
316         size += samples;
317         
318      }
319   }
320
321   /* pause */
322   if (pause > 0)
323   {
324      int start_pause_samples = millisec_to_samplecount(1);
325      int rest_pause_samples = millisec_to_samplecount(pause - 1);
326
327      tzx_output_wave(buffer, start_pause_samples);
328      size += start_pause_samples;
329      wave_data = WAVE_LOW;
330      tzx_output_wave(buffer, rest_pause_samples);
331      size += rest_pause_samples;
332   }
333   return size;
334}
335
336
337299static void ascii_block_common_log( const char *block_type_string, UINT8 block_type )
338300{
339301   LOG_FORMATS("%s (type %02x) encountered.\n", block_type_string, block_type);
r249919r249920
381343      int bit0, bit1, bits_in_last_byte;
382344      UINT8 *cur_block = blocks[current_block];
383345      UINT8 block_type = cur_block[0];
384      UINT16 tstates = 0;
385346
347
386348   /* Uncomment this to include into error.log a list of the types each block */
387349   LOG_FORMATS("tzx_cas_fill_wave: block %d, block_type %02x\n", current_block, block_type);
388350
r249919r249920
554516         current_block++;
555517         break;
556518
557      case 0x15:  /* Direct Recording */ // used on 'bombscar' in the cpc_cass list
519      case 0x15:  /* Direct Recording */
558520         // having this missing is fatal
559         tstates = cur_block[1] + (cur_block[2] << 8);
560         pause_time= cur_block[3] + (cur_block[4] << 8);
561         bits_in_last_byte = cur_block[5];
562         data_size = cur_block[6] + (cur_block[7] << 8) + (cur_block[8] << 16);
563         size += tzx_handle_direct(buffer, &cur_block[9], pause_time, data_size, tstates, bits_in_last_byte);
521         printf("Unsupported block type (0x15 - Direct Recording) encountered.\n");
564522         current_block++;
565523         break;
566524
trunk/src/mame/arcade.lst
r249919r249920
28702870ppsatan         // (c) 1996 <unknown>
28712871ddonpach        // (c) 1997 Atlus/Cave
28722872ddonpachj       // (c) 1997 Atlus/Cave
2873ddonpacha      // hack
28742873dfeveron        // (c) 1998 Cave + Nihon System license
28752874feversos        // (c) 1998 Cave + Nihon System license
28762875esprade         // (c) 1998 Atlus/Cave
r249919r249920
1018610185svgtw
1018710186svgpcb          //
1018810187ket             // (c) 2002 Ketsui
10189ket1         //
1019010188keta            //
1019110189ketb            //
10192ketarr          // hack
10193ketarr151       // hack
10194ketarr15        // hack
10195ketarr10        // hack
10196ketarrs151      // hack
10197ketarrs15      // hack
10198ketarrf         // hack
1019910190ddpdoj          // (c) 2002 DoDonPachi Dai-Ou-Jou
1020010191ddpdoja         //
1020110192ddpdojb         //
trunk/src/mame/drivers/beathead.c
r249919r249920
120120   int scanline = param;
121121
122122   /* update the video */
123//   m_screen->update_now();
124   m_screen->update_partial(m_screen->vpos());
123   m_screen->update_now();
125124
126125   /* on scanline zero, clear any halt condition */
127126   if (scanline == 0)
trunk/src/mame/drivers/cardline.c
r249919r249920
139139{
140140   /* update any video up to the current scanline */
141141   m_hsync_q = (state ? 0x00 : 0x10);
142//   m_screen->update_now();
143   m_screen->update_partial(m_screen->vpos());
142   m_screen->update_now();
144143}
145144
146145WRITE_LINE_MEMBER(cardline_state::vsync_changed)
trunk/src/mame/drivers/cave.c
r249919r249920
7272     PCBs were shown running (and could be played) at a Cave fan show known as Cave Festival 2006. There are
7373     videos of the game being played floating around the internet and on YouTube. AKA DDP-CV or DDP BLUE ROM
7474
75  Dodonpachi Arrange: This version is a hack by trap15 and ment to be a tribute to the game. It is neither a
76                      long lost version or official release from Cave and therefore not suitable for MAME.
77
78     Known rom version 1.1:
79        File     CRC32    SHA1
80       ---------------------------------------------------------
81       u27.bin 44b899ae 798ec437d861b94fcd90c99a7015dd420887c788
82       u26.bin 727a09a8 91876386855f19e8a3d8d1df71dfe9b3d98e9ea9
83       u51.bin 0f3e5148 3016f4d075940feae691389606cd2aa7ac53849e
84       u62.bin 42e4c6c5 4d282f7592f5fc5e11839c57f39cae20b8422aa1
85
7586***************************************************************************/
7687
7788#include "emu.h"
r249919r249920
31513162ROM_END
31523163
31533164
3154ROM_START( ddonpacha )
3155   ROM_REGION( 0x100000, "maincpu", 0 )      /* 68000 Code */
3156   ROM_LOAD16_BYTE( "arrange_u27.bin", 0x000000, 0x080000, CRC(44b899ae) SHA1(798ec437d861b94fcd90c99a7015dd420887c788) )
3157   ROM_LOAD16_BYTE( "arrange_u26.bin", 0x000001, 0x080000, CRC(727a09a8) SHA1(91876386855f19e8a3d8d1df71dfe9b3d98e9ea9) )
3158
3159   ROM_REGION( 0x800000 * 2, "sprites0", 0 )      /* Sprites: * 2 */
3160   ROM_LOAD( "u50.bin", 0x000000, 0x200000, CRC(14b260ec) SHA1(33bda210302428d5500115d0c7a839cdfcb67d17) )
3161   ROM_LOAD( "arrange_u51.bin", 0x200000, 0x200000, CRC(0f3e5148) SHA1(3016f4d075940feae691389606cd2aa7ac53849e) )
3162   ROM_LOAD( "u52.bin", 0x400000, 0x200000, CRC(02492ee0) SHA1(64d9cc64a4ad189a8b03cf6a749ddb732b4a0014) )
3163   ROM_LOAD( "u53.bin", 0x600000, 0x200000, CRC(cb4c10f0) SHA1(a622e8bd0c938b5d38b392b247400b744d8be288) )
3164
3165   ROM_REGION( 0x200000, "layer0", 0 )   /* Layer 0 */
3166   ROM_LOAD( "u60.bin", 0x000000, 0x200000, CRC(903096a7) SHA1(a243e903fef7c4a7b71383263e82e42acd869261) )
3167
3168   ROM_REGION( 0x200000, "layer1", 0 )   /* Layer 1 */
3169   ROM_LOAD( "u61.bin", 0x000000, 0x200000, CRC(d89b7631) SHA1(a66bb4955ca58fab8973ca37a0f971e9a67ce017) )
3170
3171   ROM_REGION( 0x200000, "layer2", 0 )   /* Layer 2 */
3172   ROM_LOAD( "arrange_u62.bin", 0x000000, 0x200000, CRC(42e4c6c5) SHA1(4d282f7592f5fc5e11839c57f39cae20b8422aa1) )
3173
3174   ROM_REGION( 0x400000, "ymz", 0 )   /* Samples */
3175   ROM_LOAD( "u6.bin", 0x000000, 0x200000, CRC(9dfdafaf) SHA1(f5cb450cdc78a20c3a74c6dac05c9ac3cba08327) )
3176   ROM_LOAD( "u7.bin", 0x200000, 0x200000, CRC(795b17d5) SHA1(cbfc29f1df9600c82e0fdae00edd00da5b73e14c) )
3177
3178   ROM_REGION16_BE( 0x80, "eeprom", 0 )
3179   ROM_LOAD16_WORD( "eeprom-ddonpach.bin", 0x0000, 0x0080, CRC(2df16438) SHA1(4881b70589a97e2420feb6d6e6737273beeff303) )
3180ROM_END
3181
31823165/***************************************************************************
31833166
31843167                                Donpachi
r249919r249920
50605043
50615044GAME( 1997, ddonpach,   0,        ddonpach, cave, cave_state,     ddonpach, ROT270, "Cave (Atlus license)",                   "DoDonPachi (International, Master Ver. 97/02/05)", MACHINE_SUPPORTS_SAVE )
50625045GAME( 1997, ddonpachj,  ddonpach, ddonpach, cave, cave_state,     ddonpach, ROT270, "Cave (Atlus license)",                   "DoDonPachi (Japan, Master Ver. 97/02/05)",         MACHINE_SUPPORTS_SAVE )
5063// NOT an official CAVE release, but several PCBs have been converted to it and used on location.
5064GAME( 2012, ddonpacha,  ddonpach, ddonpach, cave, cave_state,     ddonpach, ROT270, "hack (trap15)",                          "DoDonPachi (2012/02/12 Arrange Ver. 1.1) (hack)",     MACHINE_SUPPORTS_SAVE )
50655046
5066
50675047GAME( 1998, dfeveron,   feversos, dfeveron, cave, cave_state,     dfeveron, ROT270, "Cave (Nihon System license)",            "Dangun Feveron (Japan, Ver. 98/09/17)",    MACHINE_SUPPORTS_SAVE )
50685048GAME( 1998, feversos,   0,        dfeveron, cave, cave_state,     feversos, ROT270, "Cave (Nihon System license)",            "Fever SOS (International, Ver. 98/09/25)", MACHINE_SUPPORTS_SAVE )
50695049
trunk/src/mame/drivers/cubeqst.c
r249919r249920
101101
102102WRITE16_MEMBER(cubeqst_state::palette_w)
103103{
104//   m_screen->update_now();
105   m_screen->update_partial(m_screen->vpos());
106
104   m_screen->update_now();
107105   COMBINE_DATA(&m_generic_paletteram_16[offset]);
108106}
109107
trunk/src/mame/drivers/firefox.c
r249919r249920
267267
268268TIMER_DEVICE_CALLBACK_MEMBER(firefox_state::video_timer_callback)
269269{
270//   m_screen->update_now();
271   m_screen->update_partial(m_screen->vpos());
270   m_screen->update_now();
272271
273272   m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE );
274273}
trunk/src/mame/drivers/galaxian.c
r249919r249920
52355235   // change spriteram base per each 64-line part of the screen
52365236   if ((split & 0x3f) == 0)
52375237   {
5238//      m_screen->update_now();
5239      m_screen->update_partial(m_screen->vpos());
5238      m_screen->update_now();
52405239      m_sprites_base = 0x40 | (split << 2 & 0x300);
52415240   }
52425241}
trunk/src/mame/drivers/merit.c
r249919r249920
232232{
233233   int co;
234234
235//   m_screen->update_now();
236   m_screen->update_partial(m_screen->vpos());
235   m_screen->update_now();
237236   data &= 0x0f;
238237
239238   co = ((m_ram_attr[offset] & 0x7F) << 3) | (offset & 0x07);
r249919r249920
306305WRITE_LINE_MEMBER(merit_state::hsync_changed)
307306{
308307   /* update any video up to the current scanline */
309//   m_screen->update_now();
310   m_screen->update_partial(m_screen->vpos());
308   m_screen->update_now();
311309}
312310
313311WRITE_LINE_MEMBER(merit_state::vsync_changed)
trunk/src/mame/drivers/osborne1.c
r249919r249920
1010bit of video RAM entries.
1111
1212Bank 2 holds the BIOS ROM and I/O area. Only addresses 0000-3FFF are used
13by bank 2 (4000-FFFF mirrors bank 1). Bank 2 is divided as follows:
143000-3FFF Nominally unused but acts as mirror of 2000-2FFF
13by bank 2. Bank 2 is divided as follows:
143000-3FFF Unused
15152C00-2C03 Video PIA
16162A00-2A01 Serial interface
17172900-2903 488 PIA
182400-2400 SCREEN-PAC (if present)
19182201-2280 Keyboard
20192100-2103 Floppy
211000-1FFF Nominally unused but acts as read mirror of BIOS ROM
201000-1FFF Unused
22210000-0FFF BIOS ROM
2322
24The logic is actually quite sloppy, and will cause bus fighting under many
25circumstances since it doesn't actually check all four bits, just that two
26are in the desired state.
27
2823Bank 3 has the ninth bit needed to complete the full Video RAM. These bits
2924are stored at F000-FFFF. Only the highest bit is used.
3025
3126On bootup bank 2 is active.
3227
33Banking is controlled by writes to I/O space.  Only two low address bits are
34used, and the value on the data bus is completley ignored.
3500 - Activate bank 2 (also triggered by CPU reset)
3601 - Activate bank 1
3702 - Set BIT 9 signal (map bank 3 into F000-FFFF)
3803 - Clear BIT 9 signal (map bank 1/2 into F000-FFFF)
28The actual banking is done through I/O ports 00-03.
2900 - Have both bank 2 and bank 1 active. This seems to be the power up default.
3001 - Only have bank 1 active.
3102 - Have both bank 2 and bank 3 active. (Not 100% sure, also bank 1 from 4000-EFFF?)
3203 - Have both bank 2 and bank 1 active.
3933
4034TODO:
41  - Implement serial port
4235  - Verify frequency of the beep/audio alarm.
4336
4437***************************************************************************/
r249919r249920
5245static ADDRESS_MAP_START( osborne1_mem, AS_PROGRAM, 8, osborne1_state )
5346   AM_RANGE( 0x0000, 0x0FFF ) AM_READ_BANK("bank1") AM_WRITE( osborne1_0000_w )
5447   AM_RANGE( 0x1000, 0x1FFF ) AM_READ_BANK("bank2") AM_WRITE( osborne1_1000_w )
55   AM_RANGE( 0x2000, 0x3FFF ) AM_READWRITE( osborne1_2000_r, osborne1_2000_w )
48   AM_RANGE( 0x2000, 0x2FFF ) AM_READWRITE( osborne1_2000_r, osborne1_2000_w )
49   AM_RANGE( 0x3000, 0x3FFF ) AM_READ_BANK("bank3") AM_WRITE( osborne1_3000_w )
5650   AM_RANGE( 0x4000, 0xEFFF ) AM_RAM
57   AM_RANGE( 0xF000, 0xFFFF ) AM_READ_BANK("bank3") AM_WRITE( osborne1_videoram_w )
51   AM_RANGE( 0xF000, 0xFFFF ) AM_READ_BANK("bank4") AM_WRITE( osborne1_videoram_w )
5852ADDRESS_MAP_END
5953
6054
6155static ADDRESS_MAP_START( osborne1_io, AS_IO, 8, osborne1_state )
6256   ADDRESS_MAP_UNMAP_HIGH
6357   ADDRESS_MAP_GLOBAL_MASK(0xff)
64   AM_RANGE( 0x00, 0xff ) AM_WRITE( osborne1_bankswitch_w )
58   AM_RANGE( 0x00, 0x03 ) AM_WRITE( osborne1_bankswitch_w )
6559ADDRESS_MAP_END
6660
6761
trunk/src/mame/drivers/pgm.c
r249919r249920
39043904   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
39053905   /* doesn't use a separate BIOS rom */
39063906   ROM_LOAD16_WORD_SWAP( "ketsui_v100.u38", 0x000000, 0x200000, CRC(dfe62f3b) SHA1(baa58d1ce47a707f84f65779ac0689894793e9d9) )
3907   // an alt version of this rom exists with 0xff fill in the unused area after 0x1443bc rather than random data like the one above, there are no code changes.
3908   //ROM_LOAD16_WORD_SWAP( "ketsui_v100.u38", 0x000000, 0x200000, CRC(e140f8a4) SHA1(34fd25f8896935503d7537e89a4cd174e8995070) )
39073909
39083910   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
39093911   ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
r249919r249920
39273929   ROM_LOAD( "ket_defaults.nv",  0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
39283930ROM_END
39293931
3930ROM_START( ket1 ) // only difference between this and ket1 is the rom fill on the unused area
3931   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
3932   /* doesn't use a separate BIOS rom */
3933   ROM_LOAD16_WORD_SWAP( "ketsui_v100_alt_fill.u38", 0x000000, 0x200000, CRC(e140f8a4) SHA1(34fd25f8896935503d7537e89a4cd174e8995070) )
3934
3935   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
3936   ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
3937
3938   ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3939   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details
3940   ROM_LOAD( "t04701w064.u19",   0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1
3941
3942   ROM_REGION( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */
3943   ROM_LOAD( "a04701w064.u7",    0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1
3944   ROM_LOAD( "a04702w064.u8",    0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2
3945
3946   ROM_REGION( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
3947   ROM_LOAD( "b04701w064.u1",    0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1
3948
3949   ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */
3950   /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */
3951   ROM_LOAD( "m04701b032.u17",    0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1
3952
3953   ROM_REGION( 0x20000, "sram", 0 ) /* default settings */
3954   ROM_LOAD( "ket_defaults.nv",  0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
3955ROM_END
3956
39573932ROM_START( keta )
39583933   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
39593934   /* doesn't use a separate BIOS rom */
r249919r249920
40083983   ROM_LOAD( "ket_defaults.nv",  0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
40093984ROM_END
40103985
4011
4012ROM_START( ketarr10 )
4013   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
4014   /* doesn't use a separate BIOS rom */
4015   ROM_LOAD16_WORD_SWAP( "ketarr_v100.u38", 0x000000, 0x200000, CRC(d4c7a8ab) SHA1(65d104d17bd4fd03a2b44297a003ba03d746c7ee) )
4016
4017   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
4018   ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
4019
4020   ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
4021   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details
4022   ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1
4023
4024   ROM_REGION( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */
4025   ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1
4026   ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2
4027
4028   ROM_REGION( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
4029   ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1
4030
4031   ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */
4032   /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */
4033   ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1
4034
4035   ROM_REGION( 0x20000, "sram", 0 ) /* default settings */
4036   ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
4037ROM_END
4038
4039
4040ROM_START( ketarrf )
4041   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
4042   /* doesn't use a separate BIOS rom */
4043   ROM_LOAD16_WORD_SWAP( "ketarrf_v100.u38", 0x000000, 0x200000, CRC(6ad17aa4) SHA1(791bd1a107433a3811c8a79ea26a73e66ddd296f) )
4044
4045   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
4046   ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
4047
4048   ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
4049   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details
4050   ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1
4051
4052   ROM_REGION( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */
4053   ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1
4054   ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2
4055
4056   ROM_REGION( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
4057   ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1
4058
4059   ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */
4060   /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */
4061   ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1
4062
4063   ROM_REGION( 0x20000, "sram", 0 ) /* default settings */
4064   ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
4065ROM_END
4066
4067ROM_START( ketarr15 )
4068   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
4069   /* doesn't use a separate BIOS rom */
4070   ROM_LOAD16_WORD_SWAP( "ketarr15_v100.u38", 0x000000, 0x200000, CRC(552a7d95) SHA1(4f3fb13f34d58a7482e1d26623d38aa0b54ca8dd) )
4071
4072   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
4073   ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
4074
4075   ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
4076   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details
4077   ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1
4078
4079   ROM_REGION( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */
4080   ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1
4081   ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2
4082
4083   ROM_REGION( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
4084   ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1
4085
4086   ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */
4087   /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */
4088   ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1
4089
4090   ROM_REGION( 0x20000, "sram", 0 ) /* default settings */
4091   ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
4092ROM_END
4093
4094ROM_START( ketarrs15 )
4095   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
4096   /* doesn't use a separate BIOS rom */
4097   ROM_LOAD16_WORD_SWAP( "ketarrs15_v100.u38", 0x000000, 0x200000, CRC(a95e71e0) SHA1(182c12e3581ebb20176d8abca41ee62aadcd63e0) )
4098
4099   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
4100   ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
4101
4102   ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
4103   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details
4104   ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1
4105
4106   ROM_REGION( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */
4107   ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1
4108   ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2
4109
4110   ROM_REGION( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
4111   ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1
4112
4113   ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */
4114   /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */
4115   ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1
4116
4117   ROM_REGION( 0x20000, "sram", 0 ) /* default settings */
4118   ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
4119ROM_END
4120
4121ROM_START( ketarr151 )
4122   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
4123   /* doesn't use a separate BIOS rom */
4124   ROM_LOAD16_WORD_SWAP( "ketarr151_v100.u38", 0x000000, 0x200000, CRC(2b7c030d) SHA1(9aaba1242d7ce29915a31d40341da82985927f9d) )
4125
4126   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
4127   ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
4128
4129   ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
4130   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details
4131   ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1
4132
4133   ROM_REGION( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */
4134   ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1
4135   ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2
4136
4137   ROM_REGION( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
4138   ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1
4139
4140   ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */
4141   /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */
4142   ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1
4143
4144   ROM_REGION( 0x20000, "sram", 0 ) /* default settings */
4145   ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
4146ROM_END
4147
4148ROM_START( ketarrs151 )
4149   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
4150   /* doesn't use a separate BIOS rom */
4151   ROM_LOAD16_WORD_SWAP( "ketarrs151_v100.u38", 0x000000, 0x200000, CRC(35c984e4) SHA1(d4517f318de0c40a3b30e41374f33bb355581434) )
4152
4153   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
4154   ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
4155
4156   ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
4157   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details
4158   ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1
4159
4160   ROM_REGION( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */
4161   ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1
4162   ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2
4163
4164   ROM_REGION( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
4165   ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1
4166
4167   ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */
4168   /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */
4169   ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1
4170
4171   ROM_REGION( 0x20000, "sram", 0 ) /* default settings */
4172   ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
4173ROM_END
4174
4175ROM_START( ketarr )
4176   ROM_REGION( 0x600000, "maincpu", 0 )
4177   ROM_LOAD16_WORD_SWAP( "ketarr17_v100.u38", 0x000000, 0x200000, CRC(2cb80b89) SHA1(e1aa072b8344890486e11795e02703aa2d234bb1) )
4178
4179   ROM_REGION( 0x4000, "prot", 0 )
4180   ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, CRC(ab54d286) SHA1(897256b6709e1a4da9daba92b6bde39ccfccd8c1) )
4181
4182   ROM_REGION( 0xc00000, "tiles", 0 )
4183   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) )
4184   ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1
4185
4186   ROM_REGION( 0x1000000, "sprcol", 0 )
4187   ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1
4188   ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2
4189
4190   ROM_REGION( 0x0800000, "sprmask", 0 )
4191   ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1
4192
4193   ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 )
4194   ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1
4195
4196   ROM_REGION( 0x20000, "sram", 0 ) /* default settings */
4197   ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
4198ROM_END
4199
42003986ROM_START( espgal )
42013987   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
42023988   /* doesn't use a separate BIOS rom */
r249919r249920
45264312GAME( 2002, ddpdojblka, ddpdoj,      pgm_arm_type1_cave,    pgm, pgm_arm_type1_state,     ddp3,      ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (2002.10.07 Black Ver)",                MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // Displays "2002.04.05.Master Ver" (old) or "2002.10.07 Black Ver" (new)
45274313
45284314// the exact text of the 'version' shows which revision of the game it is; the newest has 2 '.' symbols in the string, the oldest, none.
4529// the only difference between 'ket' and 'ket1' is the ROM fill at 0x1443bc-0x1c88cd, on ket1 it seems to be randomized / garbage data, on ket it's all 0xff, both have been seen on more than one PCB.
45304315GAME( 2002, ket,          0,         pgm_arm_type1_cave,    pgm, pgm_arm_type1_state,     ket,       ROT270, "Cave (AMI license)", "Ketsui: Kizuna Jigoku Tachi (2003/01/01. Master Ver.)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
4531GAME( 2002, ket1,         ket,       pgm_arm_type1_cave,    pgm, pgm_arm_type1_state,     ket,       ROT270, "Cave (AMI license)", "Ketsui: Kizuna Jigoku Tachi (2003/01/01. Master Ver.) (alt rom fill)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
45324316GAME( 2002, keta,         ket,       pgm_arm_type1_cave,    pgm, pgm_arm_type1_state,     ket,       ROT270, "Cave (AMI license)", "Ketsui: Kizuna Jigoku Tachi (2003/01/01 Master Ver.)",  MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
45334317GAME( 2002, ketb,         ket,       pgm_arm_type1_cave,    pgm, pgm_arm_type1_state,     ket,       ROT270, "Cave (AMI license)", "Ketsui: Kizuna Jigoku Tachi (2003/01/01 Master Ver)",   MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
45344318
4535// these are modern hacks, some of them have been seen on original PCBs, also reportedly on a bootleg PCB with mostly original components but the ARM replaced with a custom chip.
4536// this is a significantly reworked version of the game
4537GAME( 2014, ketarr,    ket,       pgm_arm_type1_cave, pgm,      pgm_arm_type1_state, ket,        ROT270, "hack (trap15)", "Ketsui: Kizuna Jigoku Tachi (2014/07/16 ARRANGE 1.7 VER) (hack)", MACHINE_SUPPORTS_SAVE )
4538GAME( 2012, ketarr151, ket,       pgm_arm_type1_cave, pgm,      pgm_arm_type1_state, ket,        ROT270, "hack (trap15)", "Ketsui: Kizuna Jigoku Tachi (2012/06/26 ARRANGE 1.51 VER) (hack)", MACHINE_SUPPORTS_SAVE ) // this apparently crashes on an original PGM PCB when displaying the text after starting a game, find out why and reproduce the issue in MAME.
4539GAME( 2012, ketarr15,  ket,       pgm_arm_type1_cave, pgm,      pgm_arm_type1_state, ket,        ROT270, "hack (trap15)", "Ketsui: Kizuna Jigoku Tachi (2012/06/26 ARRANGE 1.5 VER) (hack)", MACHINE_SUPPORTS_SAVE )
4540GAME( 2012, ketarr10,  ket,       pgm_arm_type1_cave, pgm,      pgm_arm_type1_state, ket,        ROT270, "hack (trap15)", "Ketsui: Kizuna Jigoku Tachi (2012/04/17 ARRANGE VER) (hack)", MACHINE_SUPPORTS_SAVE )
4541
4542// these simplify the scoring system
4543GAME( 2012, ketarrs151, ket,       pgm_arm_type1_cave, pgm,      pgm_arm_type1_state, ket,        ROT270, "hack (trap15)", "Ketsui: Kizuna Jigoku Tachi (2012/06/27 MR.STOIC 1.51 VER) (hack)", MACHINE_SUPPORTS_SAVE )
4544GAME( 2012, ketarrs15,  ket,       pgm_arm_type1_cave, pgm,      pgm_arm_type1_state, ket,        ROT270, "hack (trap15)", "Ketsui: Kizuna Jigoku Tachi (2012/06/27 MR.STOIC 1.5 VER) (hack)", MACHINE_SUPPORTS_SAVE )
4545
4546// this has the 'programmed slowdown' removed.
4547GAME( 2012, ketarrf,    ket,       pgm_arm_type1_cave, pgm,      pgm_arm_type1_state, ket,        ROT270, "hack (trap15)", "Ketsui: Kizuna Jigoku Tachi (2012/04/17 FAST. VER) (hack)", MACHINE_SUPPORTS_SAVE )
4548
4549// this version is stupid, it just simulates what happens if the protection chip isn't returning proper values
4550// ROM_LOAD16_WORD_SWAP( "ketarrb_v100.u38", 0x000000, 0x200000, CRC(ec7a4f92) SHA1(6351fb386586956fbdb5f0730c481fb539cc267a) )
4551// GAME( 2002, ketarrb,    ket,       pgm_arm_type1_cave, pgm,      pgm_arm_type1_state, ket,        ROT270, "trap15", "Ketsui: Kizuna Jigoku Tachi (2012/04/17 BACK. VER)", MACHINE_SUPPORTS_SAVE )
4552
4553
45544319GAME( 2003, espgal,       0,         pgm_arm_type1_cave,    pgm, pgm_arm_type1_state,     espgal,    ROT270, "Cave (AMI license)", "Espgaluda (2003/10/15 Master Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
45554320
45564321// protection simulated, but should be correct
trunk/src/mame/drivers/segac2.c
r249919r249920
937937   PORT_INCLUDE( systemc_generic )
938938
939939   PORT_MODIFY("P1")
940   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Relay")  // relay (must be ON by default or machine will instantly give an 'assistance' error) - pressing this advances the stages of operation (from type select, and during the turning of the wheel)
940   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Relay")  // relay (must be ON by default or machine will instantly give an 'assistance' error)
941941   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Coinblock") // coinblock (inverted)
942   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Sensor") // sensor - causes an extra animation to play if you press it during attract and 'Sensor Advertise' dip is on
942   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Sensor") // sensor
943943   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
944   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Cup Select 2")  // cup select 2 - pressing Cup Select 1 and 2 registers as 'Cup Select 3', I presume these are lines from the mechanical part.
944   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Cup Select 1")  // cup select 2
945945   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Cup Select 1") // cup select 1
946946   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Handle B")  // handle B
947947   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Handle A")  // handle A
948948
949949   PORT_MODIFY("P2")
950   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON9 )  PORT_NAME("Sold Out LED1") // sold out LED 1 - are these actually output lines?
950   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON9 )  PORT_NAME("Sold Out LED1") // sold out LED 1
951951   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Sold Out LED2") // sold out LED 2
952952   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON11 ) PORT_NAME("Sold Out LED3") // sold out LED 3
953953   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
954   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Sold Out SW2") // sold out SW 2 - holding these while coining up will show popcorn as unavailable, pressing all 3 will fault the machine
954   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Sold Out SW2") // sold out SW 2
955955   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Sold Out SW3") // sold out SW 3
956956   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
957957   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Sold Out SW1") // sold out SW 1
trunk/src/mame/drivers/segas24.c
r249919r249920
878878   if(irq_allow1 & (1 << IRQ_TIMER))
879879      m_subcpu->set_input_line(IRQ_TIMER+1, ASSERT_LINE);
880880
881   if (irq_tmode == 1 || irq_tmode == 2)
882   {
883   //   m_screen->update_now();
884      m_screen->update_partial(m_screen->vpos());
885   }
881   if(irq_tmode == 1 || irq_tmode == 2)
882      m_screen->update_now();
886883}
887884
888885TIMER_DEVICE_CALLBACK_MEMBER(segas24_state::irq_timer_clear_cb)
trunk/src/mame/drivers/slotcarn.c
r249919r249920
8282{
8383   int co;
8484
85//   m_screen->update_now();
86   m_screen->update_partial(m_screen->vpos());
85   m_screen->update_now();
8786   data &= 0x0f;
8887
8988   co = ((m_ram_attr[offset] & 0x7F) << 3) | (offset & 0x07);
r249919r249920
158157WRITE_LINE_MEMBER(slotcarn_state::hsync_changed)
159158{
160159   /* update any video up to the current scanline */
161//   m_screen->update_now();
162   m_screen->update_partial(m_screen->vpos());
160   m_screen->update_now();
163161}
164162
165163WRITE_LINE_MEMBER(slotcarn_state::vsync_changed)
trunk/src/mame/drivers/vicdual.c
r249919r249920
207207
208208WRITE8_MEMBER(vicdual_state::videoram_w)
209209{
210//   m_screen->update_now();
211   m_screen->update_partial(m_screen->vpos());
210   m_screen->update_now();
212211   m_videoram[offset] = data;
213212}
214213
215214
216215WRITE8_MEMBER(vicdual_state::characterram_w)
217216{
218//   m_screen->update_now();
219   m_screen->update_partial(m_screen->vpos());
217   m_screen->update_now();
220218   m_characterram[offset] = data;
221219}
222220
trunk/src/mame/drivers/vpoker.c
r249919r249920
88  Notes:
99  - Looks like the 2nd generation of Noraut Poker / Draw Poker Hi-Lo HW.
1010
11  - I found two companies that sold the same game with different name...
12
13    1) "Challenger Draw Poker", from Bend Electronics Co. Inc.
14    2) "VHI Draw Poker", from Video Horizons, Inc.
15 
16    Both companies shared the same address and phone number:
17     63353 Nels Anderson Road. Bend, Oregon 97701.
18     Tel: 503-389-7626.
19
20    Bend Electronics Co. Inc. claims that they are worldwide distributors for Videotronics, Inc.
21
22    There are some legal issues between all these companies...
23    https://scholar.google.com/scholar_case?case=7993095852400122011
24    http://www.plainsite.org/dockets/201rtodjb/nevada-district-court/videotronics-inc-v-bend-electronics/
25
26
1127  TODO:
1228  - Understand how the 6840PTM hooks up, needed to let it work properly;
1329  - I/Os;
r249919r249920
5268  MC6840P
5369  mm74c920J/mmc6551j-9    x2
5470
55
5671**************************************************************************************************************
5772
5873 - Added 5-Aces Poker (Roberto Fresca)
r249919r249920
686701ROM_END
687702
688703
689/*    YEAR  NAME      PARENT  MACHINE  INPUT     STATE          INIT  ROT    COMPANY         FULLNAME             FLAGS... */
690GAME( 198?, vpoker,   0,      vpoker,  vpoker,   driver_device, 0,    ROT0, "Videotronics", "Videotronics Poker", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
691GAME( 198?, 5acespkr, 0,      vpoker,  5acespkr, driver_device, 0,    ROT0, "<unknown>",    "5-Aces Poker",       MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
704/*    YEAR  NAME      PARENT  MACHINE  INPUT     STATE          INIT  ROT    COMPANY               FULLNAME                  FLAGS... */
705GAME( 198?, vpoker,   0,      vpoker,  vpoker,   driver_device, 0,    ROT0, "Videotronics, Inc.", "Videotronics Draw Poker", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
706GAME( 198?, 5acespkr, 0,      vpoker,  5acespkr, driver_device, 0,    ROT0, "<unknown>",          "5-Aces Poker",            MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
trunk/src/mame/includes/osborne1.h
r249919r249920
5151      m_bank1(*this, "bank1"),
5252      m_bank2(*this, "bank2"),
5353      m_bank3(*this, "bank3"),
54      m_bank4(*this, "bank4"),
5455      m_region_maincpu(*this, "maincpu") { }
5556
5657   virtual void video_start();
r249919r249920
7374   DECLARE_WRITE8_MEMBER(osborne1_1000_w);
7475   DECLARE_READ8_MEMBER(osborne1_2000_r);
7576   DECLARE_WRITE8_MEMBER(osborne1_2000_w);
77   DECLARE_WRITE8_MEMBER(osborne1_3000_w);
7678   DECLARE_WRITE8_MEMBER(osborne1_videoram_w);
7779   DECLARE_WRITE8_MEMBER(osborne1_bankswitch_w);
7880   DECLARE_WRITE_LINE_MEMBER(ieee_pia_irq_a_func);
r249919r249920
8587   DECLARE_DIRECT_UPDATE_MEMBER(osborne1_opbase);
8688
8789   bool m_bank2_enabled;
88   UINT8   m_bit_9;
90   bool m_bank3_enabled;
91   UINT8   *m_bank4_ptr;
92   UINT8   *m_empty_4K;
8993   /* IRQ states */
9094   bool m_pia_0_irq_state;
9195   bool m_pia_1_irq_state;
r249919r249920
119123   required_memory_bank m_bank1;
120124   required_memory_bank m_bank2;
121125   required_memory_bank m_bank3;
126   required_memory_bank m_bank4;
122127   required_memory_region m_region_maincpu;
123128
124129   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
trunk/src/mame/machine/315-5881_crypt.c
r249919r249920
4747   save_item(NAME(line_buffer_pos));
4848   save_item(NAME(line_buffer_size));
4949
50   std::string skey = parameter("key");
50   std::string skey = parameter("key").c_str();
5151   if(!skey.empty())
5252      key = strtoll(skey.c_str(), 0, 16);
5353   else
trunk/src/mame/machine/naomim1.c
r249919r249920
3232{
3333   naomi_board::device_start();
3434
35   std::string skey = parameter("key");
35   std::string skey = parameter("key").c_str();
3636   if(!skey.empty())
3737      key = strtoll(skey.c_str(), 0, 16);
3838   else
trunk/src/mame/machine/osborne1.c
r249919r249920
2424WRITE8_MEMBER( osborne1_state::osborne1_0000_w )
2525{
2626   /* Check whether regular RAM is enabled */
27   if ( !m_bank2_enabled || ( m_in_irq_handler && m_bankswitch == RAMMODE) )
27   if ( ! m_bank2_enabled || ( m_in_irq_handler && m_bankswitch == RAMMODE ) )
2828   {
2929      m_ram->pointer()[ offset ] = data;
3030   }
r249919r249920
3434WRITE8_MEMBER( osborne1_state::osborne1_1000_w )
3535{
3636   /* Check whether regular RAM is enabled */
37   if ( !m_bank2_enabled || ( m_in_irq_handler && m_bankswitch == RAMMODE) )
37   if ( ! m_bank2_enabled || ( m_in_irq_handler && m_bankswitch == RAMMODE ) )
3838   {
3939      m_ram->pointer()[ 0x1000 + offset ] = data;
4040   }
r249919r249920
4646   UINT8   data = 0xFF;
4747
4848   /* Check whether regular RAM is enabled */
49   if ( !m_bank2_enabled )
49   if ( ! m_bank2_enabled )
5050   {
5151      data = m_ram->pointer()[ 0x2000 + offset ];
5252   }
5353   else
5454   {
55      // This isn't really accurate - bus fighting will occur for many values
56      // since each peripheral only checks two bits.  We just return 0xFF for
57      // any undocumented address.
58      switch ( offset & 0x0F00 )
55      switch( offset & 0x0F00 )
5956      {
6057      case 0x100: /* Floppy */
6158         data = m_fdc->read( space, offset & 0x03 );
r249919r249920
8279         if (m_screen_pac) data &= 0xFB;
8380         break;
8481      case 0x900: /* IEEE488 PIA */
85         data = m_pia0->read(space, offset & 0x03);
82         data = m_pia0->read(space, offset & 0x03 );
8683         break;
8784      case 0xA00: /* Serial */
8885         break;
8986      case 0xC00: /* Video PIA */
90         data = m_pia1->read(space, offset & 0x03);
87         data = m_pia1->read(space, offset & 0x03 );
9188         break;
9289      }
9390   }
r249919r249920
9895WRITE8_MEMBER( osborne1_state::osborne1_2000_w )
9996{
10097   /* Check whether regular RAM is enabled */
101   if ( !m_bank2_enabled ||  (m_in_irq_handler && m_bankswitch == RAMMODE) )
98   if ( ! m_bank2_enabled )
10299   {
103100      m_ram->pointer()[ 0x2000 + offset ] = data;
104101   }
105102   else
106103   {
104      if ( m_in_irq_handler && m_bankswitch == RAMMODE )
105      {
106         m_ram->pointer()[ 0x2000 + offset ] = data;
107      }
107108      /* Handle writes to the I/O area */
108      if ( 0x100 == (offset & 0x900) ) /* Floppy */
109         m_fdc->write(space, offset & 0x03, data);
110      if ( 0x400 == (offset & 0xC00) ) /* SCREEN-PAC */
109      switch( offset & 0x0F00 )
111110      {
111      case 0x100: /* Floppy */
112         m_fdc->write(space, offset & 0x03, data );
113         break;
114      case 0x400: /* SCREEN-PAC */
112115         m_resolution = data & 0x01;
113116         m_hc_left = (data >> 1) & 0x01;
117         break;
118      case 0x900: /* IEEE488 PIA */
119         m_pia0->write(space, offset & 0x03, data );
120         break;
121      case 0xA00: /* Serial */
122         break;
123      case 0xC00: /* Video PIA */
124         m_pia1->write(space, offset & 0x03, data );
125         break;
114126      }
115      if ( 0x900 == (offset & 0x900) ) /* IEEE488 PIA */
116         m_pia0->write(space, offset & 0x03, data);
117      if ( 0xA00 == (offset & 0xA00) ) /* Serial */
118         /* not implemented */;
119      if ( 0xC00 == (offset & 0xC00) ) /* Video PIA */
120         m_pia1->write(space, offset & 0x03, data);
121127   }
122128}
123129
124130
131WRITE8_MEMBER( osborne1_state::osborne1_3000_w )
132{
133   /* Check whether regular RAM is enabled */
134   if ( ! m_bank2_enabled || ( m_in_irq_handler && m_bankswitch == RAMMODE ) )
135   {
136      m_ram->pointer()[ 0x3000 + offset ] = data;
137   }
138}
139
140
125141WRITE8_MEMBER( osborne1_state::osborne1_videoram_w )
126142{
127143   /* Check whether the video attribute section is enabled */
128   if ( m_bit_9 )
144   if ( m_bank3_enabled )
129145      data |= 0x7F;
130146
131   reinterpret_cast<UINT8 *>(m_bank3->base())[offset] = data;
147   m_bank4_ptr[offset] = data;
132148}
133149
134150
135151WRITE8_MEMBER( osborne1_state::osborne1_bankswitch_w )
136152{
137   switch ( offset & 0x03 )
153   switch( offset )
138154   {
139155   case 0x00:
140156      m_bank2_enabled = 1;
141      m_bankswitch = 0x00;
157      m_bank3_enabled = 0;
142158      break;
143159   case 0x01:
144160      m_bank2_enabled = 0;
145      m_bankswitch = 0x01;
161      m_bank3_enabled = 0;
146162      break;
147163   case 0x02:
148      m_bit_9 = 1;
164      m_bank2_enabled = 1;
165      m_bank3_enabled = 1;
149166      break;
150167   case 0x03:
151      m_bit_9 = 0;
168      m_bank2_enabled = 1;
169      m_bank3_enabled = 0;
152170      break;
153171   }
154172   if ( m_bank2_enabled )
155173   {
156      m_bank1->set_base(m_region_maincpu->base());
157      m_bank2->set_base(m_region_maincpu->base());
174      m_bank1->set_base(m_region_maincpu->base() );
175      m_bank2->set_base(m_empty_4K );
176      m_bank3->set_base(m_empty_4K );
158177   }
159178   else
160179   {
161      m_bank1->set_base(m_ram->pointer());
162      m_bank2->set_base(m_ram->pointer() + 0x1000);
180      m_bank1->set_base(m_ram->pointer() );
181      m_bank2->set_base(m_ram->pointer() + 0x1000 );
182      m_bank3->set_base(m_ram->pointer() + 0x3000 );
163183   }
164   m_bank3->set_base(m_ram->pointer() + (m_bit_9 ? 0x10000 : 0xF000));
184   m_bank4_ptr = m_ram->pointer() + ( ( m_bank3_enabled ) ? 0x10000 : 0xF000 );
185   m_bank4->set_base(m_bank4_ptr );
186   m_bankswitch = offset;
165187   m_in_irq_handler = 0;
166188}
167189
r249919r249920
372394      }
373395   }
374396
375   if ( (ra==2) || (ra==6) )
397   if ( (ra==2) || (ra== 6) )
376398   {
377399      m_beep->set_state( m_beep_state );
378400   }
r249919r249920
414436
415437DRIVER_INIT_MEMBER(osborne1_state,osborne1)
416438{
439   m_empty_4K = auto_alloc_array(machine(), UINT8, 0x1000 );
440   memset( m_empty_4K, 0xFF, 0x1000 );
441
417442   /* Configure the 6850 ACIA */
418443//  acia6850_config( 0, &osborne1_6850_config );
419444   m_video_timer = timer_alloc(TIMER_VIDEO);
trunk/src/mame/video/btoads.c
r249919r249920
9393WRITE16_MEMBER( btoads_state::scroll0_w )
9494{
9595   /* allow multiple changes during display */
96//   m_screen->update_now();
97   m_screen->update_partial(m_screen->vpos());
96   m_screen->update_now();
9897
9998   /* upper bits are Y scroll, lower bits are X scroll */
10099   if (ACCESSING_BITS_8_15)
r249919r249920
107106WRITE16_MEMBER( btoads_state::scroll1_w )
108107{
109108   /* allow multiple changes during display */
110//   m_screen->update_now();
111   m_screen->update_partial(m_screen->vpos());
109   m_screen->update_now();
112110
113111   /* upper bits are Y scroll, lower bits are X scroll */
114112   if (ACCESSING_BITS_8_15)
trunk/src/mame/video/cloak.c
r249919r249920
9292
9393WRITE8_MEMBER(cloak_state::cloak_clearbmp_w)
9494{
95//   m_screen->update_now();
96   m_screen->update_partial(m_screen->vpos());
97
95   m_screen->update_now();
9896   m_bitmap_videoram_selected = data & 0x01;
9997   set_current_bitmap_videoram_pointer();
10098
trunk/src/mame/video/dkong.c
r249919r249920
876876      radarscp_scanline(scanline);
877877
878878   /* update any video up to the current scanline */
879//   m_screen->update_now();
880   m_screen->update_partial(m_screen->vpos());
879   m_screen->update_now();
881880
882881   scanline = (scanline+1) % VTOTAL;
883882   /* come back at the next appropriate scanline */
trunk/src/mame/video/galaxian.c
r249919r249920
480480{
481481   UINT8 *videoram = m_videoram;
482482   /* update any video up to the current scanline */
483//   m_screen->update_now();
484   m_screen->update_partial(m_screen->vpos());
483   m_screen->update_now();
485484
486485   /* store the data and mark the corresponding tile dirty */
487486   videoram[offset] = data;
r249919r249920
492491WRITE8_MEMBER(galaxian_state::galaxian_objram_w)
493492{
494493   /* update any video up to the current scanline */
495//   m_screen->update_now();
496   m_screen->update_partial(m_screen->vpos());
494   m_screen->update_now();
497495
498496   /* store the data */
499497   m_spriteram[offset] = data;
r249919r249920
643641{
644642   if (m_flipscreen_x != (data & 0x01))
645643   {
646//      m_screen->update_now();
647      m_screen->update_partial(m_screen->vpos());
644      m_screen->update_now();
648645
649646      /* when the direction changes, we count a different number of clocks */
650647      /* per frame, so we need to reset the origin of the stars to the current */
r249919r249920
660657{
661658   if (m_flipscreen_y != (data & 0x01))
662659   {
663//      m_screen->update_now();
664      m_screen->update_partial(m_screen->vpos());
665
660      m_screen->update_now();
666661      m_flipscreen_y = data & 0x01;
667662      m_bg_tilemap->set_flip((m_flipscreen_x ? TILEMAP_FLIPX : 0) | (m_flipscreen_y ? TILEMAP_FLIPY : 0));
668663   }
r249919r249920
685680WRITE8_MEMBER(galaxian_state::galaxian_stars_enable_w)
686681{
687682   if ((m_stars_enabled ^ data) & 0x01)
688   {
689//      m_screen->update_now();
690      m_screen->update_partial(m_screen->vpos());
691   }
683      m_screen->update_now();
692684
693685   if (!m_stars_enabled && (data & 0x01))
694686   {
r249919r249920
705697WRITE8_MEMBER(galaxian_state::scramble_background_enable_w)
706698{
707699   if ((m_background_enable ^ data) & 0x01)
708   {
709   //   m_screen->update_now();
710      m_screen->update_partial(m_screen->vpos());
711   }
700      m_screen->update_now();
712701
713702   m_background_enable = data & 0x01;
714703}
r249919r249920
717706WRITE8_MEMBER(galaxian_state::scramble_background_red_w)
718707{
719708   if ((m_background_red ^ data) & 0x01)
720   {
721   //   m_screen->update_now();
722      m_screen->update_partial(m_screen->vpos());
723   }
709      m_screen->update_now();
724710
725711   m_background_red = data & 0x01;
726712}
r249919r249920
729715WRITE8_MEMBER(galaxian_state::scramble_background_green_w)
730716{
731717   if ((m_background_green ^ data) & 0x01)
732   {
733   //   m_screen->update_now();
734      m_screen->update_partial(m_screen->vpos());
735   }
718      m_screen->update_now();
736719
737720   m_background_green = data & 0x01;
738721}
r249919r249920
741724WRITE8_MEMBER(galaxian_state::scramble_background_blue_w)
742725{
743726   if ((m_background_blue ^ data) & 0x01)
744   {
745   //   m_screen->update_now();
746      m_screen->update_partial(m_screen->vpos());
747   }
727      m_screen->update_now();
748728
749729   m_background_blue = data & 0x01;
750730}
r249919r249920
761741{
762742   if (m_gfxbank[offset] != data)
763743   {
764      //m_screen->update_now();
765      m_screen->update_partial(m_screen->vpos());
744      m_screen->update_now();
766745      m_gfxbank[offset] = data;
767746      m_bg_tilemap->mark_all_dirty();
768747   }
trunk/src/mame/video/gyruss.c
r249919r249920
9393
9494WRITE8_MEMBER(gyruss_state::gyruss_spriteram_w)
9595{
96//   m_screen->update_now();
97   m_screen->update_partial(m_screen->vpos());
96   m_screen->update_now();
9897   m_spriteram[offset] = data;
9998}
10099
trunk/src/mame/video/itech8.c
r249919r249920
537537WRITE8_MEMBER(itech8_state::grmatch_xscroll_w)
538538{
539539   /* update the X scroll value */
540   //m_screen->update_now();
541   m_screen->update_partial(m_screen->vpos());
540   m_screen->update_now();
542541   m_grmatch_xscroll = data;
543542}
544543
trunk/src/mame/video/meadows.c
r249919r249920
6464
6565WRITE8_MEMBER(meadows_state::meadows_spriteram_w)
6666{
67//   m_screen->update_now();
68   m_screen->update_partial(m_screen->vpos());
67   m_screen->update_now();
6968   m_spriteram[offset] = data;
7069}
7170
trunk/src/mame/video/qix.c
r249919r249920
9999{
100100   /* update the screen in case the game is writing "behind" the beam -
101101      Zookeeper likes to do this */
102//   m_screen->update_now();
103   m_screen->update_partial(m_screen->vpos());
102   m_screen->update_now();
104103
105104   /* add in the upper bit of the address latch */
106105   offset += (m_videoram_address[0] & 0x80) << 8;
r249919r249920
114113{
115114   /* update the screen in case the game is writing "behind" the beam -
116115      Zookeeper likes to do this */
117//   m_screen->update_now();
118   m_screen->update_partial(m_screen->vpos());
116   m_screen->update_now();
119117
120118   /* add in the upper bit of the address latch */
121119   offset += (m_videoram_address[0] & 0x80) << 8;
r249919r249920
152150WRITE8_MEMBER(qix_state::qix_addresslatch_w)
153151{
154152   /* update the screen in case the game is writing "behind" the beam */
155//   m_screen->update_now();
156   m_screen->update_partial(m_screen->vpos());
153   m_screen->update_now();
157154
158155   /* compute the value at the address latch */
159156   offset = (m_videoram_address[0] << 8) | m_videoram_address[1];
r249919r249920
166163WRITE8_MEMBER(qix_state::slither_addresslatch_w)
167164{
168165   /* update the screen in case the game is writing "behind" the beam */
169//   m_screen->update_now();
170   m_screen->update_partial(m_screen->vpos());
166   m_screen->update_now();
171167
172168   /* compute the value at the address latch */
173169   offset = (m_videoram_address[0] << 8) | m_videoram_address[1];
r249919r249920
195191   /* trigger an update if a currently visible pen has changed */
196192   if (((offset >> 8) == m_palette_bank) &&
197193      (old_data != data))
198   {
199   //   m_screen->update_now();
200      m_screen->update_partial(m_screen->vpos());
201   }
194      m_screen->update_now();
202195
203196   set_pen(offset);
204197}
r249919r249920
209202   /* set the bank value */
210203   if (m_palette_bank != (data & 3))
211204   {
212      //m_screen->update_now();
213      m_screen->update_partial(m_screen->vpos());
205      m_screen->update_now();
214206      m_palette_bank = data & 3;
215207   }
216208
trunk/src/mame/video/spacefb.c
r249919r249920
1919
2020WRITE8_MEMBER(spacefb_state::port_0_w)
2121{
22//   m_screen->update_now();
23   m_screen->update_partial(m_screen->vpos());
22   m_screen->update_now();
2423   m_port_0 = data;
2524}
2625
2726
2827WRITE8_MEMBER(spacefb_state::port_2_w)
2928{
30//   m_screen->update_now();
31   m_screen->update_partial(m_screen->vpos());
29   m_screen->update_now();
3230   m_port_2 = data;
3331}
3432
trunk/src/mame/video/system1.c
r249919r249920
190190
191191READ8_MEMBER(system1_state::system1_mixer_collision_r)
192192{
193//   m_screen->update_now();
194   m_screen->update_partial(m_screen->vpos());
193   m_screen->update_now();
195194   return m_mix_collide[offset & 0x3f] | 0x7e | (m_mix_collide_summary << 7);
196195}
197196
198197WRITE8_MEMBER(system1_state::system1_mixer_collision_w)
199198{
200//   m_screen->update_now();
201   m_screen->update_partial(m_screen->vpos());
199   m_screen->update_now();
202200   m_mix_collide[offset & 0x3f] = 0;
203201}
204202
205203WRITE8_MEMBER(system1_state::system1_mixer_collision_reset_w)
206204{
207//   m_screen->update_now();
208   m_screen->update_partial(m_screen->vpos());
205   m_screen->update_now();
209206   m_mix_collide_summary = 0;
210207}
211208
r249919r249920
219216
220217READ8_MEMBER(system1_state::system1_sprite_collision_r)
221218{
222//   m_screen->update_now();
223   m_screen->update_partial(m_screen->vpos());
219   m_screen->update_now();
224220   return m_sprite_collide[offset & 0x3ff] | 0x7e | (m_sprite_collide_summary << 7);
225221}
226222
227223WRITE8_MEMBER(system1_state::system1_sprite_collision_w)
228224{
229//   m_screen->update_now();
230   m_screen->update_partial(m_screen->vpos());
225   m_screen->update_now();
231226   m_sprite_collide[offset & 0x3ff] = 0;
232227}
233228
234229WRITE8_MEMBER(system1_state::system1_sprite_collision_reset_w)
235230{
236//   m_screen->update_now();
237   m_screen->update_partial(m_screen->vpos());
231   m_screen->update_now();
238232   m_sprite_collide_summary = 0;
239233}
240234
r249919r249920
280274
281275   /* force a partial update if the page is changing */
282276   if (m_tilemap_pages > 2 && offset >= 0x740 && offset < 0x748 && offset % 2 == 0)
283   {
284      //m_screen->update_now();
285      m_screen->update_partial(m_screen->vpos());
286   }
277      m_screen->update_now();
287278}
288279
289280WRITE8_MEMBER(system1_state::system1_videoram_bank_w)
trunk/src/mame/video/tp84.c
r249919r249920
106106WRITE8_MEMBER(tp84_state::tp84_spriteram_w)
107107{
108108   /* the game multiplexes the sprites, so update now */
109//   m_screen->update_now();
110   m_screen->update_partial(m_screen->vpos());
109   m_screen->update_now();
111110   m_spriteram[offset] = data;
112111}
113112


Previous 199869 Revisions Next


© 1997-2024 The MAME Team