Previous 199869 Revisions Next

r41409 Wednesday 28th October, 2015 at 02:30:18 UTC by Roberto Fresca
Merge branch 'master' of https://github.com/mamedev/mame
[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
[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
r249920r249921
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 
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> 
803847</softwarelist>
804848
805849
trunk/src/devices/cpu/avr8/avr8.c
r249920r249921
752752   m_io = &space(AS_IO);
753753
754754   // register our state for the debugger
755   std::string tempstr;
756755   state_add(STATE_GENPC,     "GENPC",     m_shifted_pc).noshow();
757756   state_add(STATE_GENFLAGS,  "GENFLAGS",  m_r[AVR8_REGIDX_SREG]).callimport().callexport().formatstr("%8s").noshow();
758757   state_add(AVR8_SREG,       "STATUS",    m_r[AVR8_REGIDX_SREG]).mask(0xff);
trunk/src/devices/cpu/dsp56k/pmove.h
r249920r249921
315315   {
316316      INT8 b;
317317      reg_id SD;
318      std::string args;
319
320318      b = (char)(word0 & 0x00ff);
321319      decode_HHH_table(BITSn(word1,0x0e00), SD);
322320      assemble_reg_from_W_table(BITSn(word1,0x0100), 'X', SD, b, m_source, m_destination);
trunk/src/devices/cpu/e132xs/e132xs.c
r249920r249921
15621562   m_clock_scale_mask = scale_mask;
15631563
15641564   // register our state for the debugger
1565   std::string tempstr;
15661565   state_add(STATE_GENPC,    "GENPC",     m_global_regs[0]).noshow();
15671566   state_add(STATE_GENFLAGS, "GENFLAGS",  m_global_regs[1]).callimport().callexport().formatstr("%40s").noshow();
15681567   state_add(E132XS_PC,      "PC", m_global_regs[0]).mask(0xffffffff);
trunk/src/devices/cpu/esrip/esrip.c
r249920r249921
193193   m_direct = &m_program->direct();
194194
195195   // register our state for the debugger
196   std::string tempstr;
197196   state_add(STATE_GENPC,     "GENPC",     m_rip_pc).noshow();
198197   state_add(STATE_GENFLAGS,  "GENFLAGS",  m_status).callimport().callexport().formatstr("%8s").noshow();
199198   state_add(ESRIP_PC,        "PC:",       m_rip_pc).mask(0xffff);
trunk/src/devices/cpu/m6805/m6805.c
r249920r249921
424424   m_icountptr = &m_icount;
425425
426426   // register our state for the debugger
427   std::string tempstr;
428427   state_add(STATE_GENPC,     "GENPC",     m_pc.w.l).noshow();
429428   state_add(STATE_GENFLAGS,  "GENFLAGS",  m_cc).callimport().callexport().formatstr("%8s").noshow();
430429   state_add(M6805_A,         "A",         m_a).mask(0xff);
trunk/src/devices/cpu/ssem/ssem.c
r249920r249921
100100   m_program = &space(AS_PROGRAM);
101101
102102   // register our state for the debugger
103   std::string tempstr;
104103   state_add(STATE_GENPC,     "GENPC",     m_pc).noshow();
105104   state_add(STATE_GENFLAGS,  "GENFLAGS",  m_halt).callimport().callexport().formatstr("%1s").noshow();
106105   state_add(SSEM_PC,         "PC",        m_shifted_pc).mask(0xffff);
trunk/src/devices/cpu/upd7725/upd7725.c
r249920r249921
6969   m_direct = &m_program->direct();
7070
7171   // register our state for the debugger
72   std::string tempstr;
7372   state_add(STATE_GENPC, "GENPC", regs.pc).noshow();
7473   state_add(UPD7725_PC, "PC", regs.pc);
7574   state_add(UPD7725_RP, "RP", regs.rp);
trunk/src/devices/machine/atahle.c
r249920r249921
470470   if ((multi_word_dma_mode() >= 0) || (ultra_dma_mode() >= 0))
471471      set_dmarq(CLEAR_LINE);
472472
473   m_buffer_empty_timer->enable(true);
474   m_buffer_empty_timer->adjust(attotime::zero);
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();
475479}
476480
477481void ata_hle_device::write_buffer_full()
trunk/src/devices/machine/r10696.c
r249920r249921
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_a) & 0x0f;
157      data = (io_a | io_b | io_c) & 0x0f;
158158      break;
159159   case 0x01: // Read Groups B | C
160160      io_b = m_iord(1);
trunk/src/emu/diimage.c
r249920r249921
758758{
759759   std::string locationtag, breakstr("%");
760760   const rom_entry *region;
761   std::string regiontag;
762761   bool retVal = FALSE;
763762   int warningcount = 0;
764763   for (region = start; region != NULL; region = rom_next_region(region))
trunk/src/emu/emuopts.c
r249920r249921
582582{
583583   std::string tmp = std::string(",").append(subname).append("=");
584584   buffer = value(name);
585   int pos = buffer.find(tmp.c_str());
585   int pos = buffer.find(tmp);
586586   if (pos != -1)
587587   {
588588      int endpos = buffer.find_first_of(',', pos + 1);
trunk/src/emu/info.c
r249920r249921
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).c_str()) + oldtag.length());
648         newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
649649
650650         fprintf(m_output, "\t\t<chip");
651651         fprintf(m_output, " type=\"cpu\"");
r249920r249921
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).c_str()) + oldtag.length());
666         newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
667667
668668         fprintf(m_output, "\t\t<chip");
669669         fprintf(m_output, " type=\"audio\"");
r249920r249921
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).c_str()) + oldtag.length());
694         newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
695695
696696         fprintf(m_output, "\t\t<display");
697697         fprintf(m_output, " tag=\"%s\"", xml_normalize_string(newtag.c_str()));
r249920r249921
10971097            std::string output;
10981098
10991099            std::string newtag(port->tag()), oldtag(":");
1100            newtag = newtag.substr(newtag.find(oldtag.append(root_tag).c_str()) + oldtag.length());
1100            newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
11011101
11021102            // output the switch name information
11031103            std::string normalized_field_name(xml_normalize_string(field->name()));
r249920r249921
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).c_str()) + oldtag.length());
1231         newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + 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()));
r249920r249921
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).c_str()) + oldtag.length());
1289         newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + 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
r249920r249921
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.c_str()).append("')").c_str();
209      std::string val = std::string("emu.keypost('").append(cmd).append("')");
210210      manager().lua()->load_string(val.c_str());
211211   }
212212}
r249920r249921
563563
564564   // handle %d in the template (for image devices)
565565   std::string statename_dev("%d_");
566   int pos = statename_str.find(statename_dev.c_str());
566   int pos = statename_str.find(statename_dev);
567567
568568   if (pos != -1)
569569   {
trunk/src/emu/memory.c
r249920r249921
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
19341932   // based on the handler type, alter the bits, name, funcptr, and object
19351933   switch (data.m_type)
19361934   {
trunk/src/emu/romload.c
r249920r249921
675675         }
676676
677677         // prepare locations where we have to load from: list/parentname & list/clonename
678         std::string swlist(tag1.c_str());
678         std::string swlist(tag1);
679679         tag2.assign(swlist.append(tag4));
680680         if (has_parent)
681681         {
r249920r249921
10761076         }
10771077
10781078         // prepare locations where we have to load from: list/parentname (if any) & list/clonename
1079         std::string swlist(tag1.c_str());
1079         std::string swlist(tag1);
10801080         tag2.assign(swlist.append(tag4));
10811081         if (has_parent)
10821082         {
trunk/src/emu/softlist.c
r249920r249921
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.c_str()) != -1)
161      if (comp.find(token) != -1)
162162         return true;
163163   }
164164   return false;
r249920r249921
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.c_str()) != -1);
184   return (interfaces.find(our_interface) != -1);
185185}
186186
187187
trunk/src/emu/ui/filemngr.c
r249920r249921
104104{
105105   std::string buffer, tmp_inst, tmp_name;
106106   bool first_entry = true;
107   std::string prev_owner;
108107
109108   if (!m_warnings.empty())
110109   {
trunk/src/emu/ui/inputmap.c
r249920r249921
9191{
9292   input_item_data *itemlist = NULL;
9393   int suborder[SEQ_TYPE_TOTAL];
94   std::string tempstring;
9594   int sortorder = 1;
9695
9796   /* create a mini lookup table for sort order based on sequence type */
r249920r249921
154153{
155154   input_item_data *itemlist = NULL;
156155   int suborder[SEQ_TYPE_TOTAL];
157   std::string tempstring;
158156   int port_count = 0;
159157
160158   /* create a mini lookup table for sort order based on sequence type */
trunk/src/emu/validity.c
r249920r249921
196196   // if we had warnings or errors, output
197197   if (m_errors > 0 || m_warnings > 0)
198198   {
199      std::string tempstr;
200199      output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Core: %d errors, %d warnings\n", m_errors, m_warnings);
201200      if (m_errors > 0)
202201      {
trunk/src/emu/video.c
r249920r249921
11261126
11271127   // handle %d in the template (for image devices)
11281128   std::string snapdev("%d_");
1129   int pos = snapstr.find(snapdev.c_str());
1129   int pos = snapstr.find(snapdev);
11301130
11311131   if (pos != -1)
11321132   {
trunk/src/lib/formats/tzx_cas.c
r249920r249921
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
299337static void ascii_block_common_log( const char *block_type_string, UINT8 block_type )
300338{
301339   LOG_FORMATS("%s (type %02x) encountered.\n", block_type_string, block_type);
r249920r249921
343381      int bit0, bit1, bits_in_last_byte;
344382      UINT8 *cur_block = blocks[current_block];
345383      UINT8 block_type = cur_block[0];
384      UINT16 tstates = 0;
346385
347
348386   /* Uncomment this to include into error.log a list of the types each block */
349387   LOG_FORMATS("tzx_cas_fill_wave: block %d, block_type %02x\n", current_block, block_type);
350388
r249920r249921
516554         current_block++;
517555         break;
518556
519      case 0x15:  /* Direct Recording */
557      case 0x15:  /* Direct Recording */ // used on 'bombscar' in the cpc_cass list
520558         // having this missing is fatal
521         printf("Unsupported block type (0x15 - Direct Recording) encountered.\n");
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);
522564         current_block++;
523565         break;
524566
trunk/src/mame/arcade.lst
r249920r249921
28702870ppsatan         // (c) 1996 <unknown>
28712871ddonpach        // (c) 1997 Atlus/Cave
28722872ddonpachj       // (c) 1997 Atlus/Cave
2873ddonpacha      // hack
28732874dfeveron        // (c) 1998 Cave + Nihon System license
28742875feversos        // (c) 1998 Cave + Nihon System license
28752876esprade         // (c) 1998 Atlus/Cave
r249920r249921
1018510186svgtw
1018610187svgpcb          //
1018710188ket             // (c) 2002 Ketsui
10189ket1         //
1018810190keta            //
1018910191ketb            //
10192ketarr          // hack
10193ketarr151       // hack
10194ketarr15        // hack
10195ketarr10        // hack
10196ketarrs151      // hack
10197ketarrs15      // hack
10198ketarrf         // hack
1019010199ddpdoj          // (c) 2002 DoDonPachi Dai-Ou-Jou
1019110200ddpdoja         //
1019210201ddpdojb         //
trunk/src/mame/drivers/beathead.c
r249920r249921
120120   int scanline = param;
121121
122122   /* update the video */
123   m_screen->update_now();
123//   m_screen->update_now();
124   m_screen->update_partial(m_screen->vpos());
124125
125126   /* on scanline zero, clear any halt condition */
126127   if (scanline == 0)
trunk/src/mame/drivers/cardline.c
r249920r249921
139139{
140140   /* update any video up to the current scanline */
141141   m_hsync_q = (state ? 0x00 : 0x10);
142   m_screen->update_now();
142//   m_screen->update_now();
143   m_screen->update_partial(m_screen->vpos());
143144}
144145
145146WRITE_LINE_MEMBER(cardline_state::vsync_changed)
trunk/src/mame/drivers/cave.c
r249920r249921
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
8675***************************************************************************/
8776
8877#include "emu.h"
r249920r249921
31623151ROM_END
31633152
31643153
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
31653182/***************************************************************************
31663183
31673184                                Donpachi
r249920r249921
50435060
50445061GAME( 1997, ddonpach,   0,        ddonpach, cave, cave_state,     ddonpach, ROT270, "Cave (Atlus license)",                   "DoDonPachi (International, Master Ver. 97/02/05)", MACHINE_SUPPORTS_SAVE )
50455062GAME( 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 )
50465065
5066
50475067GAME( 1998, dfeveron,   feversos, dfeveron, cave, cave_state,     dfeveron, ROT270, "Cave (Nihon System license)",            "Dangun Feveron (Japan, Ver. 98/09/17)",    MACHINE_SUPPORTS_SAVE )
50485068GAME( 1998, feversos,   0,        dfeveron, cave, cave_state,     feversos, ROT270, "Cave (Nihon System license)",            "Fever SOS (International, Ver. 98/09/25)", MACHINE_SUPPORTS_SAVE )
50495069
trunk/src/mame/drivers/cubeqst.c
r249920r249921
101101
102102WRITE16_MEMBER(cubeqst_state::palette_w)
103103{
104   m_screen->update_now();
104//   m_screen->update_now();
105   m_screen->update_partial(m_screen->vpos());
106
105107   COMBINE_DATA(&m_generic_paletteram_16[offset]);
106108}
107109
trunk/src/mame/drivers/firefox.c
r249920r249921
267267
268268TIMER_DEVICE_CALLBACK_MEMBER(firefox_state::video_timer_callback)
269269{
270   m_screen->update_now();
270//   m_screen->update_now();
271   m_screen->update_partial(m_screen->vpos());
271272
272273   m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE );
273274}
trunk/src/mame/drivers/galaxian.c
r249920r249921
52355235   // change spriteram base per each 64-line part of the screen
52365236   if ((split & 0x3f) == 0)
52375237   {
5238      m_screen->update_now();
5238//      m_screen->update_now();
5239      m_screen->update_partial(m_screen->vpos());
52395240      m_sprites_base = 0x40 | (split << 2 & 0x300);
52405241   }
52415242}
trunk/src/mame/drivers/merit.c
r249920r249921
232232{
233233   int co;
234234
235   m_screen->update_now();
235//   m_screen->update_now();
236   m_screen->update_partial(m_screen->vpos());
236237   data &= 0x0f;
237238
238239   co = ((m_ram_attr[offset] & 0x7F) << 3) | (offset & 0x07);
r249920r249921
305306WRITE_LINE_MEMBER(merit_state::hsync_changed)
306307{
307308   /* update any video up to the current scanline */
308   m_screen->update_now();
309//   m_screen->update_now();
310   m_screen->update_partial(m_screen->vpos());
309311}
310312
311313WRITE_LINE_MEMBER(merit_state::vsync_changed)
trunk/src/mame/drivers/osborne1.c
r249920r249921
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. Bank 2 is divided as follows:
143000-3FFF Unused
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
15152C00-2C03 Video PIA
16162A00-2A01 Serial interface
17172900-2903 488 PIA
182400-2400 SCREEN-PAC (if present)
18192201-2280 Keyboard
19202100-2103 Floppy
201000-1FFF Unused
211000-1FFF Nominally unused but acts as read mirror of BIOS ROM
21220000-0FFF BIOS ROM
2223
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
2328Bank 3 has the ninth bit needed to complete the full Video RAM. These bits
2429are stored at F000-FFFF. Only the highest bit is used.
2530
2631On bootup bank 2 is active.
2732
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.
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)
3339
3440TODO:
41  - Implement serial port
3542  - Verify frequency of the beep/audio alarm.
3643
3744***************************************************************************/
r249920r249921
4552static ADDRESS_MAP_START( osborne1_mem, AS_PROGRAM, 8, osborne1_state )
4653   AM_RANGE( 0x0000, 0x0FFF ) AM_READ_BANK("bank1") AM_WRITE( osborne1_0000_w )
4754   AM_RANGE( 0x1000, 0x1FFF ) AM_READ_BANK("bank2") AM_WRITE( osborne1_1000_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 )
55   AM_RANGE( 0x2000, 0x3FFF ) AM_READWRITE( osborne1_2000_r, osborne1_2000_w )
5056   AM_RANGE( 0x4000, 0xEFFF ) AM_RAM
51   AM_RANGE( 0xF000, 0xFFFF ) AM_READ_BANK("bank4") AM_WRITE( osborne1_videoram_w )
57   AM_RANGE( 0xF000, 0xFFFF ) AM_READ_BANK("bank3") AM_WRITE( osborne1_videoram_w )
5258ADDRESS_MAP_END
5359
5460
5561static ADDRESS_MAP_START( osborne1_io, AS_IO, 8, osborne1_state )
5662   ADDRESS_MAP_UNMAP_HIGH
5763   ADDRESS_MAP_GLOBAL_MASK(0xff)
58   AM_RANGE( 0x00, 0x03 ) AM_WRITE( osborne1_bankswitch_w )
64   AM_RANGE( 0x00, 0xff ) AM_WRITE( osborne1_bankswitch_w )
5965ADDRESS_MAP_END
6066
6167
trunk/src/mame/drivers/pgm.c
r249920r249921
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) )
39093907
39103908   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
39113909   ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
r249920r249921
39293927   ROM_LOAD( "ket_defaults.nv",  0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
39303928ROM_END
39313929
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
39323957ROM_START( keta )
39333958   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
39343959   /* doesn't use a separate BIOS rom */
r249920r249921
39834008   ROM_LOAD( "ket_defaults.nv",  0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
39844009ROM_END
39854010
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
39864200ROM_START( espgal )
39874201   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
39884202   /* doesn't use a separate BIOS rom */
r249920r249921
43124526GAME( 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)
43134527
43144528// 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.
43154530GAME( 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 )
43164532GAME( 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 )
43174533GAME( 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 )
43184534
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
43194554GAME( 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 )
43204555
43214556// protection simulated, but should be correct
trunk/src/mame/drivers/segac2.c
r249920r249921
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)
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)
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
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
943943   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
944   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Cup Select 1")  // cup select 2
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.
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
950   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON9 )  PORT_NAME("Sold Out LED1") // sold out LED 1 - are these actually output lines?
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
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
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
r249920r249921
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      m_screen->update_now();
881   if (irq_tmode == 1 || irq_tmode == 2)
882   {
883   //   m_screen->update_now();
884      m_screen->update_partial(m_screen->vpos());
885   }
883886}
884887
885888TIMER_DEVICE_CALLBACK_MEMBER(segas24_state::irq_timer_clear_cb)
trunk/src/mame/drivers/slotcarn.c
r249920r249921
8282{
8383   int co;
8484
85   m_screen->update_now();
85//   m_screen->update_now();
86   m_screen->update_partial(m_screen->vpos());
8687   data &= 0x0f;
8788
8889   co = ((m_ram_attr[offset] & 0x7F) << 3) | (offset & 0x07);
r249920r249921
157158WRITE_LINE_MEMBER(slotcarn_state::hsync_changed)
158159{
159160   /* update any video up to the current scanline */
160   m_screen->update_now();
161//   m_screen->update_now();
162   m_screen->update_partial(m_screen->vpos());
161163}
162164
163165WRITE_LINE_MEMBER(slotcarn_state::vsync_changed)
trunk/src/mame/drivers/vicdual.c
r249920r249921
207207
208208WRITE8_MEMBER(vicdual_state::videoram_w)
209209{
210   m_screen->update_now();
210//   m_screen->update_now();
211   m_screen->update_partial(m_screen->vpos());
211212   m_videoram[offset] = data;
212213}
213214
214215
215216WRITE8_MEMBER(vicdual_state::characterram_w)
216217{
217   m_screen->update_now();
218//   m_screen->update_now();
219   m_screen->update_partial(m_screen->vpos());
218220   m_characterram[offset] = data;
219221}
220222
trunk/src/mame/includes/osborne1.h
r249920r249921
5151      m_bank1(*this, "bank1"),
5252      m_bank2(*this, "bank2"),
5353      m_bank3(*this, "bank3"),
54      m_bank4(*this, "bank4"),
5554      m_region_maincpu(*this, "maincpu") { }
5655
5756   virtual void video_start();
r249920r249921
7473   DECLARE_WRITE8_MEMBER(osborne1_1000_w);
7574   DECLARE_READ8_MEMBER(osborne1_2000_r);
7675   DECLARE_WRITE8_MEMBER(osborne1_2000_w);
77   DECLARE_WRITE8_MEMBER(osborne1_3000_w);
7876   DECLARE_WRITE8_MEMBER(osborne1_videoram_w);
7977   DECLARE_WRITE8_MEMBER(osborne1_bankswitch_w);
8078   DECLARE_WRITE_LINE_MEMBER(ieee_pia_irq_a_func);
r249920r249921
8785   DECLARE_DIRECT_UPDATE_MEMBER(osborne1_opbase);
8886
8987   bool m_bank2_enabled;
90   bool m_bank3_enabled;
91   UINT8   *m_bank4_ptr;
92   UINT8   *m_empty_4K;
88   UINT8   m_bit_9;
9389   /* IRQ states */
9490   bool m_pia_0_irq_state;
9591   bool m_pia_1_irq_state;
r249920r249921
123119   required_memory_bank m_bank1;
124120   required_memory_bank m_bank2;
125121   required_memory_bank m_bank3;
126   required_memory_bank m_bank4;
127122   required_memory_region m_region_maincpu;
128123
129124   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
trunk/src/mame/machine/315-5881_crypt.c
r249920r249921
4747   save_item(NAME(line_buffer_pos));
4848   save_item(NAME(line_buffer_size));
4949
50   std::string skey = parameter("key").c_str();
50   std::string skey = parameter("key");
5151   if(!skey.empty())
5252      key = strtoll(skey.c_str(), 0, 16);
5353   else
trunk/src/mame/machine/naomim1.c
r249920r249921
3232{
3333   naomi_board::device_start();
3434
35   std::string skey = parameter("key").c_str();
35   std::string skey = parameter("key");
3636   if(!skey.empty())
3737      key = strtoll(skey.c_str(), 0, 16);
3838   else
trunk/src/mame/machine/osborne1.c
r249920r249921
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   }
r249920r249921
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   }
r249920r249921
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      switch( offset & 0x0F00 )
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 )
5659      {
5760      case 0x100: /* Floppy */
5861         data = m_fdc->read( space, offset & 0x03 );
r249920r249921
7982         if (m_screen_pac) data &= 0xFB;
8083         break;
8184      case 0x900: /* IEEE488 PIA */
82         data = m_pia0->read(space, offset & 0x03 );
85         data = m_pia0->read(space, offset & 0x03);
8386         break;
8487      case 0xA00: /* Serial */
8588         break;
8689      case 0xC00: /* Video PIA */
87         data = m_pia1->read(space, offset & 0x03 );
90         data = m_pia1->read(space, offset & 0x03);
8891         break;
8992      }
9093   }
r249920r249921
9598WRITE8_MEMBER( osborne1_state::osborne1_2000_w )
9699{
97100   /* Check whether regular RAM is enabled */
98   if ( ! m_bank2_enabled )
101   if ( !m_bank2_enabled ||  (m_in_irq_handler && m_bankswitch == RAMMODE) )
99102   {
100103      m_ram->pointer()[ 0x2000 + offset ] = data;
101104   }
102105   else
103106   {
104      if ( m_in_irq_handler && m_bankswitch == RAMMODE )
105      {
106         m_ram->pointer()[ 0x2000 + offset ] = data;
107      }
108107      /* Handle writes to the I/O area */
109      switch( offset & 0x0F00 )
108      if ( 0x100 == (offset & 0x900) ) /* Floppy */
109         m_fdc->write(space, offset & 0x03, data);
110      if ( 0x400 == (offset & 0xC00) ) /* SCREEN-PAC */
110111      {
111      case 0x100: /* Floppy */
112         m_fdc->write(space, offset & 0x03, data );
113         break;
114      case 0x400: /* SCREEN-PAC */
115112         m_resolution = data & 0x01;
116113         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;
126114      }
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);
127121   }
128122}
129123
130124
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
141125WRITE8_MEMBER( osborne1_state::osborne1_videoram_w )
142126{
143127   /* Check whether the video attribute section is enabled */
144   if ( m_bank3_enabled )
128   if ( m_bit_9 )
145129      data |= 0x7F;
146130
147   m_bank4_ptr[offset] = data;
131   reinterpret_cast<UINT8 *>(m_bank3->base())[offset] = data;
148132}
149133
150134
151135WRITE8_MEMBER( osborne1_state::osborne1_bankswitch_w )
152136{
153   switch( offset )
137   switch ( offset & 0x03 )
154138   {
155139   case 0x00:
156140      m_bank2_enabled = 1;
157      m_bank3_enabled = 0;
141      m_bankswitch = 0x00;
158142      break;
159143   case 0x01:
160144      m_bank2_enabled = 0;
161      m_bank3_enabled = 0;
145      m_bankswitch = 0x01;
162146      break;
163147   case 0x02:
164      m_bank2_enabled = 1;
165      m_bank3_enabled = 1;
148      m_bit_9 = 1;
166149      break;
167150   case 0x03:
168      m_bank2_enabled = 1;
169      m_bank3_enabled = 0;
151      m_bit_9 = 0;
170152      break;
171153   }
172154   if ( m_bank2_enabled )
173155   {
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 );
156      m_bank1->set_base(m_region_maincpu->base());
157      m_bank2->set_base(m_region_maincpu->base());
177158   }
178159   else
179160   {
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 );
161      m_bank1->set_base(m_ram->pointer());
162      m_bank2->set_base(m_ram->pointer() + 0x1000);
183163   }
184   m_bank4_ptr = m_ram->pointer() + ( ( m_bank3_enabled ) ? 0x10000 : 0xF000 );
185   m_bank4->set_base(m_bank4_ptr );
186   m_bankswitch = offset;
164   m_bank3->set_base(m_ram->pointer() + (m_bit_9 ? 0x10000 : 0xF000));
187165   m_in_irq_handler = 0;
188166}
189167
r249920r249921
394372      }
395373   }
396374
397   if ( (ra==2) || (ra== 6) )
375   if ( (ra==2) || (ra==6) )
398376   {
399377      m_beep->set_state( m_beep_state );
400378   }
r249920r249921
436414
437415DRIVER_INIT_MEMBER(osborne1_state,osborne1)
438416{
439   m_empty_4K = auto_alloc_array(machine(), UINT8, 0x1000 );
440   memset( m_empty_4K, 0xFF, 0x1000 );
441
442417   /* Configure the 6850 ACIA */
443418//  acia6850_config( 0, &osborne1_6850_config );
444419   m_video_timer = timer_alloc(TIMER_VIDEO);
trunk/src/mame/video/btoads.c
r249920r249921
9393WRITE16_MEMBER( btoads_state::scroll0_w )
9494{
9595   /* allow multiple changes during display */
96   m_screen->update_now();
96//   m_screen->update_now();
97   m_screen->update_partial(m_screen->vpos());
9798
9899   /* upper bits are Y scroll, lower bits are X scroll */
99100   if (ACCESSING_BITS_8_15)
r249920r249921
106107WRITE16_MEMBER( btoads_state::scroll1_w )
107108{
108109   /* allow multiple changes during display */
109   m_screen->update_now();
110//   m_screen->update_now();
111   m_screen->update_partial(m_screen->vpos());
110112
111113   /* upper bits are Y scroll, lower bits are X scroll */
112114   if (ACCESSING_BITS_8_15)
trunk/src/mame/video/cloak.c
r249920r249921
9292
9393WRITE8_MEMBER(cloak_state::cloak_clearbmp_w)
9494{
95   m_screen->update_now();
95//   m_screen->update_now();
96   m_screen->update_partial(m_screen->vpos());
97
9698   m_bitmap_videoram_selected = data & 0x01;
9799   set_current_bitmap_videoram_pointer();
98100
trunk/src/mame/video/dkong.c
r249920r249921
876876      radarscp_scanline(scanline);
877877
878878   /* update any video up to the current scanline */
879   m_screen->update_now();
879//   m_screen->update_now();
880   m_screen->update_partial(m_screen->vpos());
880881
881882   scanline = (scanline+1) % VTOTAL;
882883   /* come back at the next appropriate scanline */
trunk/src/mame/video/galaxian.c
r249920r249921
480480{
481481   UINT8 *videoram = m_videoram;
482482   /* update any video up to the current scanline */
483   m_screen->update_now();
483//   m_screen->update_now();
484   m_screen->update_partial(m_screen->vpos());
484485
485486   /* store the data and mark the corresponding tile dirty */
486487   videoram[offset] = data;
r249920r249921
491492WRITE8_MEMBER(galaxian_state::galaxian_objram_w)
492493{
493494   /* update any video up to the current scanline */
494   m_screen->update_now();
495//   m_screen->update_now();
496   m_screen->update_partial(m_screen->vpos());
495497
496498   /* store the data */
497499   m_spriteram[offset] = data;
r249920r249921
641643{
642644   if (m_flipscreen_x != (data & 0x01))
643645   {
644      m_screen->update_now();
646//      m_screen->update_now();
647      m_screen->update_partial(m_screen->vpos());
645648
646649      /* when the direction changes, we count a different number of clocks */
647650      /* per frame, so we need to reset the origin of the stars to the current */
r249920r249921
657660{
658661   if (m_flipscreen_y != (data & 0x01))
659662   {
660      m_screen->update_now();
663//      m_screen->update_now();
664      m_screen->update_partial(m_screen->vpos());
665
661666      m_flipscreen_y = data & 0x01;
662667      m_bg_tilemap->set_flip((m_flipscreen_x ? TILEMAP_FLIPX : 0) | (m_flipscreen_y ? TILEMAP_FLIPY : 0));
663668   }
r249920r249921
680685WRITE8_MEMBER(galaxian_state::galaxian_stars_enable_w)
681686{
682687   if ((m_stars_enabled ^ data) & 0x01)
683      m_screen->update_now();
688   {
689//      m_screen->update_now();
690      m_screen->update_partial(m_screen->vpos());
691   }
684692
685693   if (!m_stars_enabled && (data & 0x01))
686694   {
r249920r249921
697705WRITE8_MEMBER(galaxian_state::scramble_background_enable_w)
698706{
699707   if ((m_background_enable ^ data) & 0x01)
700      m_screen->update_now();
708   {
709   //   m_screen->update_now();
710      m_screen->update_partial(m_screen->vpos());
711   }
701712
702713   m_background_enable = data & 0x01;
703714}
r249920r249921
706717WRITE8_MEMBER(galaxian_state::scramble_background_red_w)
707718{
708719   if ((m_background_red ^ data) & 0x01)
709      m_screen->update_now();
720   {
721   //   m_screen->update_now();
722      m_screen->update_partial(m_screen->vpos());
723   }
710724
711725   m_background_red = data & 0x01;
712726}
r249920r249921
715729WRITE8_MEMBER(galaxian_state::scramble_background_green_w)
716730{
717731   if ((m_background_green ^ data) & 0x01)
718      m_screen->update_now();
732   {
733   //   m_screen->update_now();
734      m_screen->update_partial(m_screen->vpos());
735   }
719736
720737   m_background_green = data & 0x01;
721738}
r249920r249921
724741WRITE8_MEMBER(galaxian_state::scramble_background_blue_w)
725742{
726743   if ((m_background_blue ^ data) & 0x01)
727      m_screen->update_now();
744   {
745   //   m_screen->update_now();
746      m_screen->update_partial(m_screen->vpos());
747   }
728748
729749   m_background_blue = data & 0x01;
730750}
r249920r249921
741761{
742762   if (m_gfxbank[offset] != data)
743763   {
744      m_screen->update_now();
764      //m_screen->update_now();
765      m_screen->update_partial(m_screen->vpos());
745766      m_gfxbank[offset] = data;
746767      m_bg_tilemap->mark_all_dirty();
747768   }
trunk/src/mame/video/gyruss.c
r249920r249921
9393
9494WRITE8_MEMBER(gyruss_state::gyruss_spriteram_w)
9595{
96   m_screen->update_now();
96//   m_screen->update_now();
97   m_screen->update_partial(m_screen->vpos());
9798   m_spriteram[offset] = data;
9899}
99100
trunk/src/mame/video/itech8.c
r249920r249921
537537WRITE8_MEMBER(itech8_state::grmatch_xscroll_w)
538538{
539539   /* update the X scroll value */
540   m_screen->update_now();
540   //m_screen->update_now();
541   m_screen->update_partial(m_screen->vpos());
541542   m_grmatch_xscroll = data;
542543}
543544
trunk/src/mame/video/meadows.c
r249920r249921
6464
6565WRITE8_MEMBER(meadows_state::meadows_spriteram_w)
6666{
67   m_screen->update_now();
67//   m_screen->update_now();
68   m_screen->update_partial(m_screen->vpos());
6869   m_spriteram[offset] = data;
6970}
7071
trunk/src/mame/video/qix.c
r249920r249921
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();
102//   m_screen->update_now();
103   m_screen->update_partial(m_screen->vpos());
103104
104105   /* add in the upper bit of the address latch */
105106   offset += (m_videoram_address[0] & 0x80) << 8;
r249920r249921
113114{
114115   /* update the screen in case the game is writing "behind" the beam -
115116      Zookeeper likes to do this */
116   m_screen->update_now();
117//   m_screen->update_now();
118   m_screen->update_partial(m_screen->vpos());
117119
118120   /* add in the upper bit of the address latch */
119121   offset += (m_videoram_address[0] & 0x80) << 8;
r249920r249921
150152WRITE8_MEMBER(qix_state::qix_addresslatch_w)
151153{
152154   /* update the screen in case the game is writing "behind" the beam */
153   m_screen->update_now();
155//   m_screen->update_now();
156   m_screen->update_partial(m_screen->vpos());
154157
155158   /* compute the value at the address latch */
156159   offset = (m_videoram_address[0] << 8) | m_videoram_address[1];
r249920r249921
163166WRITE8_MEMBER(qix_state::slither_addresslatch_w)
164167{
165168   /* update the screen in case the game is writing "behind" the beam */
166   m_screen->update_now();
169//   m_screen->update_now();
170   m_screen->update_partial(m_screen->vpos());
167171
168172   /* compute the value at the address latch */
169173   offset = (m_videoram_address[0] << 8) | m_videoram_address[1];
r249920r249921
191195   /* trigger an update if a currently visible pen has changed */
192196   if (((offset >> 8) == m_palette_bank) &&
193197      (old_data != data))
194      m_screen->update_now();
198   {
199   //   m_screen->update_now();
200      m_screen->update_partial(m_screen->vpos());
201   }
195202
196203   set_pen(offset);
197204}
r249920r249921
202209   /* set the bank value */
203210   if (m_palette_bank != (data & 3))
204211   {
205      m_screen->update_now();
212      //m_screen->update_now();
213      m_screen->update_partial(m_screen->vpos());
206214      m_palette_bank = data & 3;
207215   }
208216
trunk/src/mame/video/spacefb.c
r249920r249921
1919
2020WRITE8_MEMBER(spacefb_state::port_0_w)
2121{
22   m_screen->update_now();
22//   m_screen->update_now();
23   m_screen->update_partial(m_screen->vpos());
2324   m_port_0 = data;
2425}
2526
2627
2728WRITE8_MEMBER(spacefb_state::port_2_w)
2829{
29   m_screen->update_now();
30//   m_screen->update_now();
31   m_screen->update_partial(m_screen->vpos());
3032   m_port_2 = data;
3133}
3234
trunk/src/mame/video/system1.c
r249920r249921
190190
191191READ8_MEMBER(system1_state::system1_mixer_collision_r)
192192{
193   m_screen->update_now();
193//   m_screen->update_now();
194   m_screen->update_partial(m_screen->vpos());
194195   return m_mix_collide[offset & 0x3f] | 0x7e | (m_mix_collide_summary << 7);
195196}
196197
197198WRITE8_MEMBER(system1_state::system1_mixer_collision_w)
198199{
199   m_screen->update_now();
200//   m_screen->update_now();
201   m_screen->update_partial(m_screen->vpos());
200202   m_mix_collide[offset & 0x3f] = 0;
201203}
202204
203205WRITE8_MEMBER(system1_state::system1_mixer_collision_reset_w)
204206{
205   m_screen->update_now();
207//   m_screen->update_now();
208   m_screen->update_partial(m_screen->vpos());
206209   m_mix_collide_summary = 0;
207210}
208211
r249920r249921
216219
217220READ8_MEMBER(system1_state::system1_sprite_collision_r)
218221{
219   m_screen->update_now();
222//   m_screen->update_now();
223   m_screen->update_partial(m_screen->vpos());
220224   return m_sprite_collide[offset & 0x3ff] | 0x7e | (m_sprite_collide_summary << 7);
221225}
222226
223227WRITE8_MEMBER(system1_state::system1_sprite_collision_w)
224228{
225   m_screen->update_now();
229//   m_screen->update_now();
230   m_screen->update_partial(m_screen->vpos());
226231   m_sprite_collide[offset & 0x3ff] = 0;
227232}
228233
229234WRITE8_MEMBER(system1_state::system1_sprite_collision_reset_w)
230235{
231   m_screen->update_now();
236//   m_screen->update_now();
237   m_screen->update_partial(m_screen->vpos());
232238   m_sprite_collide_summary = 0;
233239}
234240
r249920r249921
274280
275281   /* force a partial update if the page is changing */
276282   if (m_tilemap_pages > 2 && offset >= 0x740 && offset < 0x748 && offset % 2 == 0)
277      m_screen->update_now();
283   {
284      //m_screen->update_now();
285      m_screen->update_partial(m_screen->vpos());
286   }
278287}
279288
280289WRITE8_MEMBER(system1_state::system1_videoram_bank_w)
trunk/src/mame/video/tp84.c
r249920r249921
106106WRITE8_MEMBER(tp84_state::tp84_spriteram_w)
107107{
108108   /* the game multiplexes the sprites, so update now */
109   m_screen->update_now();
109//   m_screen->update_now();
110   m_screen->update_partial(m_screen->vpos());
110111   m_spriteram[offset] = data;
111112}
112113


Previous 199869 Revisions Next


© 1997-2024 The MAME Team