Previous 199869 Revisions Next

r44643 Tuesday 2nd February, 2016 at 21:18:57 UTC by Victor Vasiliev
Do not handle any UI inputs immediately after state load/save

Before this change, if you try to save state to a bound which already
does something as a UI button, it will save state there and then
immediately execute the bound action (sometimes it would not happen).
So, if you have state to P, with default button it would pause the game
immediately after saving state (except sometimes it would not).
[src/emu]uiinput.cpp uiinput.h
[src/emu/ui]ui.cpp
[src/mame]arcade.lst mess.lst
[src/mame/drivers]fidelz80.cpp nwk-tr.cpp r9751.cpp stv.cpp tispeak.cpp

trunk/src/emu/ui/ui.cpp
r253154r253155
17551755      machine.schedule_load(filename);
17561756   }
17571757
1758   // avoid handling the name of the save state slot as a seperate input
1759   machine.ui_input().mark_all_as_pressed();
1760
17581761   // remove the pause and reset the state
17591762   machine.resume();
17601763   return UI_HANDLER_CANCEL;
trunk/src/emu/uiinput.cpp
r253154r253155
324324   event.ch = ch;
325325   push_event(event);
326326}
327
328/*-------------------------------------------------
329    mark_all_as_pressed - marks all buttons
330    as if they were already pressed once
331-------------------------------------------------*/
332void ui_input_manager::mark_all_as_pressed()
333{
334   for (int code = IPT_UI_FIRST + 1; code < IPT_UI_LAST; code++)
335      m_next_repeat[code] = osd_ticks();
336}
trunk/src/emu/uiinput.h
r253154r253155
8686   void push_mouse_double_click_event(render_target* target, INT32 x, INT32 y);
8787   void push_char_event(render_target* target, unicode_char ch);
8888
89   void mark_all_as_pressed();
90
8991private:
9092
9193   // internal state
trunk/src/mame/arcade.lst
r253154r253155
51435143vmahjong        // 1997.02 Virtual Mahjong (Micronet)
51445144pclub2kc        // 1997.02 Print Club Kome Kome Club
51455145pclub2fc        // 1997.04 Print Club 2 Felix The Cat
5146pclub2pe      //
51475146pclub2pf      //
5148pclub26w      //
51495147pclub27s      //
51505148pclubyo2      //
51515149groovef         // 1997.05 Groove on Fight (Atlus)
51525150nclubv3         // 1997.07 Name Club Ver. 3
5153nclubv2         //
5154nameclub      //
5151nclubv2
51555152pclb2elk        // 1997.07 Print Club Custom
51565153pclub2          // 1997.09 Print Club 2
51575154thunt           // 1997.09 Puzzle & Action Treasure Hunt (Sega (Deniam License))
trunk/src/mame/drivers/fidelz80.cpp
r253154r253155
15371537    Machine Drivers
15381538******************************************************************************/
15391539
1540static MACHINE_CONFIG_START( cc7, fidelz80_state )
1541
1542   /* basic machine hardware */
1543   MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz)
1544   MCFG_CPU_PROGRAM_MAP(cc10_map)
1545   //MCFG_CPU_IO_MAP(vcc_io)
1546
1547   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelz80base_state, display_decay_tick, attotime::from_msec(1))
1548   MCFG_DEFAULT_LAYOUT(layout_fidel_cc)
1549
1550   /* sound hardware */
1551   MCFG_SPEAKER_STANDARD_MONO("mono")
1552   MCFG_SOUND_ADD("beeper", BEEP, 0)
1553   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
1554MACHINE_CONFIG_END
1555
15561540static MACHINE_CONFIG_START( cc10, fidelz80_state )
15571541
15581542   /* basic machine hardware */
r253154r253155
16571641    ROM Definitions
16581642******************************************************************************/
16591643
1660ROM_START( cc7 )
1661   ROM_REGION( 0x10000, "maincpu", 0 )
1662   ROM_LOAD( "cn19103n_bcc-revb", 0x0000, 0x1000, CRC(a397d471) SHA1(9b12bc442fccee40f4d8500c792bc9d886c5e1a5) ) // 2332
1663ROM_END
1664
16651644ROM_START( cc10 )
16661645   ROM_REGION( 0x10000, "maincpu", 0 )
16671646   ROM_LOAD( "cc10b", 0x0000, 0x1000, CRC(afd3ca99) SHA1(870d09b2b52ccb8572d69642c59b5215d5fb26ab) ) // 2332
r253154r253155
18251804******************************************************************************/
18261805
18271806/*    YEAR  NAME      PARENT  COMPAT  MACHINE  INPUT   INIT              COMPANY, FULLNAME, FLAGS */
1828COMP( 1978, cc10,     0,      0,      cc10,    cc10,   driver_device, 0, "Fidelity Electronics", "Chess Challenger 10 (rev. B)", MACHINE_SUPPORTS_SAVE )
1829COMP( 1979, cc7,     0,      0,      cc7,    cc10,   driver_device, 0, "Fidelity Electronics", "Chess Challenger 7 (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
1807COMP( 1978, cc10,     0,      0,      cc10,    cc10,   driver_device, 0, "Fidelity Electronics", "Chess Challenger 10 (version B)", MACHINE_SUPPORTS_SAVE )
18301808
18311809COMP( 1979, vcc,      0,      0,      vcc,     vcc,    driver_device, 0, "Fidelity Electronics", "Voice Chess Challenger (English)", MACHINE_SUPPORTS_SAVE )
18321810COMP( 1979, vccsp,    vcc,    0,      vcc,     vccsp,  driver_device, 0, "Fidelity Electronics", "Voice Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE )
trunk/src/mame/drivers/nwk-tr.cpp
r253154r253155
304304   int m_fpga_uploaded;
305305   int m_lanc2_ram_r;
306306   int m_lanc2_ram_w;
307   UINT8 m_lanc2_reg[3];
308307   std::unique_ptr<UINT8[]> m_lanc2_ram;
309308   std::unique_ptr<UINT32[]> m_sharc_dataram;
310309   DECLARE_WRITE32_MEMBER(paletteram32_w);
r253154r253155
522521               ((value << 7) & 0x80);
523522
524523         m_fpga_uploaded = 1;
525         m_lanc2_reg[0] = (UINT8)(data >> 24);
526524
527525         //printf("lanc2_fpga_w: %02X at %08X\n", value, space.device().safe_pc());
528526      }
r253154r253155
530528      {
531529         m_lanc2_ram_r = 0;
532530         m_lanc2_ram_w = 0;
533         m_lanc2_reg[1] = (UINT8)(data >> 8);
534531      }
535532      else if (ACCESSING_BITS_16_23)
536533      {
537         if (m_lanc2_reg[0] != 0)
538         {
539            m_lanc2_ram[2] = (data >> 20) & 0xf;
540            m_lanc2_ram[3] = 0;
541         }
542         m_lanc2_reg[2] = (UINT8)(data >> 16);
534         m_lanc2_ram[2] = (data >> 20) & 0xf;
535         m_lanc2_ram[3] = 0;
543536      }
544537      else if (ACCESSING_BITS_0_7)
545538      {
trunk/src/mame/drivers/r9751.cpp
r253154r253155
6767
6868   DECLARE_READ32_MEMBER(r9751_mmio_5ff_r);
6969   DECLARE_WRITE32_MEMBER(r9751_mmio_5ff_w);
70   DECLARE_READ32_MEMBER(r9751_mmio_ff01_r);
71   DECLARE_WRITE32_MEMBER(r9751_mmio_ff01_w);
7270   DECLARE_READ32_MEMBER(r9751_mmio_ff05_r);
7371   DECLARE_WRITE32_MEMBER(r9751_mmio_ff05_w);
7472   DECLARE_READ32_MEMBER(r9751_mmio_fff8_r);
r253154r253155
9290   UINT32 fdd_dest_address; // 5FF080B0
9391   UINT32 fdd_cmd_complete;
9492   UINT32 smioc_out_addr;
95   UINT32 smioc_dma_bank;
96   UINT32 fdd_dma_bank;
9793   attotime timer_32khz_last;
9894   // End registers
9995
r253154r253155
114110
115111READ8_MEMBER(r9751_state::pdc_dma_r)
116112{
117   /* This callback function takes the value written to 0xFF01000C as the bank offset */
118   UINT32 address = (fdd_dma_bank & 0x7FFFF800) + (offset&0xFFFF);
119   return m_maincpu->space(AS_PROGRAM).read_byte(address);
113   return m_maincpu->space(AS_PROGRAM).read_byte(offset);
120114}
121115
122116WRITE8_MEMBER(r9751_state::pdc_dma_w)
123117{
124   /* This callback function takes the value written to 0xFF01000C as the bank offset */
125   UINT32 address = (fdd_dma_bank & 0x7FFFF800) + (data&0xFFFF);
126   m_maincpu->space(AS_PROGRAM).write_byte(m_pdc->fdd_68k_dma_address,address);
118   m_maincpu->space(AS_PROGRAM).write_byte(m_pdc->fdd_68k_dma_address,data);
127119}
128120
129121DRIVER_INIT_MEMBER(r9751_state,r9751)
r253154r253155
131123   reg_ff050004 = 0;
132124   reg_fff80040 = 0;
133125   fdd_dest_address = 0;
126//  fdd_scsi_command = 0;
134127   fdd_cmd_complete = 0;
135   fdd_dma_bank = 0;
136128   smioc_out_addr = 0;
137   smioc_dma_bank = 0;
138129   m_mem = &m_maincpu->space(AS_PROGRAM);
139130
140131}
r253154r253155
156147READ32_MEMBER( r9751_state::r9751_mmio_5ff_r )
157148{
158149   UINT32 data;
150   UINT32 address = offset * 4 + 0x5FF00000;
159151
160   switch(offset << 2)
152   switch(address)
161153   {
162154      /* PDC HDD region (0x24, device 9) */
163      case 0x0824: /* HDD Command result code */
155      case 0x5FF00824: /* HDD Command result code */
164156         return 0x10;
165      case 0x3024: /* HDD SCSI command completed successfully */
157      case 0x5FF03024: /* HDD SCSI command completed successfully */
166158         data = 0x1;
167         if(TRACE_HDC) logerror("SCSI HDD command completion status - Read: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), offset << 2 | 0x5FF00000);
159         if(TRACE_HDC) logerror("SCSI HDD command completion status - Read: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), address);
168160         return data;
169161      /* SMIOC region (0x98, device 26) */
170      case 0x0898: /* Serial status or DMA status */
162      case 0x5FF00898: /* Serial status or DMA status */
171163         return 0x40;
172164      /* PDC FDD region (0xB0, device 44 */
173      case 0x08B0: /* FDD Command result code */
165      case 0x5FF008B0: /* FDD Command result code */
174166         return 0x10;
175      case 0x10B0: /* Clear 5FF030B0 ?? */
167      case 0x5FF010B0: /* Clear 5FF030B0 ?? */
176168         if(TRACE_FDC) logerror("--- FDD 0x5FF010B0 READ (0)\n");
177169         return 0;
178      case 0x30B0: /* FDD command completion status */
170      case 0x5FF030B0: /* FDD command completion status */
179171         data = (m_pdc->reg_p5 << 8) + m_pdc->reg_p4;
180         if(TRACE_FDC) logerror("--- SCSI FDD command completion status - Read: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), offset << 2 | 0x5FF00000);
172         if(TRACE_FDC) logerror("--- SCSI FDD command completion status - Read: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), address);
181173         return data;
182174      default:
183         if(TRACE_FDC || TRACE_HDC || TRACE_SMIOC) logerror("Instruction: %08x READ MMIO(%08x): %08x & %08x\n", space.machine().firstcpu->pc(), offset << 2 | 0x5FF00000, 0, mem_mask);
175         if(TRACE_FDC || TRACE_HDC || TRACE_SMIOC) logerror("Instruction: %08x READ MMIO(%08x): %08x & %08x\n", space.machine().firstcpu->pc(), address, 0, mem_mask);
184176         return 0;
185177   }
186178}
r253154r253155
188180WRITE32_MEMBER( r9751_state::r9751_mmio_5ff_w )
189181{
190182   UINT8 data_b0, data_b1;
191   /* Unknown mask */
192   if (mem_mask != 0xFFFFFFFF)
193      logerror("Mask found: %08X Register: %08X PC: %08X\n", mem_mask, offset << 2 | 0x5FF00000, space.machine().firstcpu->pc());
183   UINT32 address = offset * 4 + 0x5FF00000;
194184
195   switch(offset << 2)
185   switch(address)
196186   {
197187      /* PDC HDD region (0x24, device 9 */
198      case 0x0224: /* HDD SCSI read command */
199         if(TRACE_HDC) logerror("@@@ HDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), offset << 2 | 0x5FF00000);
188      case 0x5FF00224: /* HDD SCSI read command */
189         if(TRACE_HDC) logerror("@@@ HDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), address);
200190         break;
201      case 0x8024: /* HDD SCSI read command */
202         if(TRACE_HDC) logerror("@@@ HDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), offset << 2 | 0x5FF00000);
191      case 0x5FF08024: /* HDD SCSI read command */
192         if(TRACE_HDC) logerror("@@@ HDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), address);
203193         break;
204      case 0xC024: /* HDD SCSI read command */
205         if(TRACE_HDC) logerror("@@@ HDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), offset << 2 | 0x5FF00000);
194      case 0x5FF0C024: /* HDD SCSI read command */
195         if(TRACE_HDC) logerror("@@@ HDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), address);
206196         break;
207197      /* SMIOC region (0x98, device 26) */
208      case 0x4098: /* Serial DMA Command */
198      case 0x5FF04098: /* Serial DMA Command */
209199         switch(data)
210200         {
211201            case 0x4100: /* Send byte to serial */
212               if(TRACE_SMIOC) logerror("Serial byte: %02X PC: %08X\n", m_mem->read_dword(smioc_out_addr), space.machine().firstcpu->pc());
202               if(TRACE_SMIOC) logerror("Serial byte: %02X\n", m_mem->read_dword(smioc_out_addr));
213203               m_terminal->write(space,0,m_mem->read_dword(smioc_out_addr));
214204               break;
215205            default:
216206               if(TRACE_SMIOC) logerror("Uknown serial DMA command: %X\n", data);
217207         }
218208         break;
219      case 0xC098: /* Serial DMA output address */
220         //smioc_out_addr = data * 2;
221         smioc_out_addr = (smioc_dma_bank & 0x7FFFF800) | ((data&0x3FF)<<1);
222         if(TRACE_SMIOC) logerror("Serial output address: %08X PC: %08X\n", smioc_out_addr, space.machine().firstcpu->pc());
209      case 0x5FF0C098: /* Serial DMA output address */
210         smioc_out_addr = data * 2;
223211         break;
224212      /* PDC FDD region (0xB0, device 44 */
225      case 0x01B0: /* FDD SCSI read command */
226         if(TRACE_FDC) logerror("--- FDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), offset << 2 | 0x5FF00000);
213      case 0x5FF001B0: /* FDD SCSI read command */
214         if(TRACE_FDC) logerror("--- FDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), address);
227215         break;
228      case 0x02B0: /* FDD SCSI read command */
229         if(TRACE_FDC) logerror("--- FDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), offset << 2 | 0x5FF00000);
216      case 0x5FF002B0: /* FDD SCSI read command */
217         if(TRACE_FDC) logerror("--- FDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), address);
230218         break;
231      case 0x04B0: /* FDD RESET PDC */
232         if(TRACE_FDC) logerror("PDC RESET, PC: %08X\n", space.machine().firstcpu->pc());
233         m_pdc->reset();
219      case 0x5FF008B0: /* FDD SCSI read command */
220         if(TRACE_FDC) logerror("--- FDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), address);
234221         break;
235      case 0x08B0: /* FDD SCSI read command */
236         if(TRACE_FDC) logerror("--- FDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), offset << 2 | 0x5FF00000);
237         break;
238      case 0x41B0: /* Unknown - Probably old style commands */
239         if(TRACE_FDC) logerror("--- FDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), offset << 2 | 0x5FF00000);
222      case 0x5FF041B0: /* Unknown - Probably old style commands */
223         if(TRACE_FDC) logerror("--- FDD Command: %08X, From: %08X, Register: %08X\n", data, space.machine().firstcpu->pc(), address);
240224
241         /* Clear FDD Command completion status 0x5FF030B0 (PDC 0x4, 0x5) */
225         /* Clear FDD Command completion status 0x5FF030B0 (PDC 0x4, 0x5)*/
242226         m_pdc->reg_p4 = 0;
243227         m_pdc->reg_p5 = 0;
244228
r253154r253155
249233         m_pdc->reg_p38 |= 0x2; /* Set bit 1 on port 38 register, PDC polls this port looking for a command */
250234         if(TRACE_FDC) logerror("--- FDD Old Command: %02X and %02X\n", data_b0, data_b1);
251235         break;
252      case 0x80B0: /* fdd_dest_address register */
236      case 0x5FF080B0: /* fdd_dest_address register */
253237         fdd_dest_address = data << 1;
254238         if(TRACE_FDC) logerror("--- FDD destination address: %08X\n", fdd_dest_address);
255239         data_b0 = data & 0xFF;
r253154r253155
257241         m_pdc->reg_p6 = data_b0;
258242         m_pdc->reg_p7 = data_b1;
259243         break;
260      case 0xC0B0:
261      case 0xC1B0: /* FDD command address register */
244      case 0x5FF0C0B0:
245      case 0x5FF0C1B0: /* FDD command address register */
262246         UINT32 fdd_scsi_command;
263247         UINT32 fdd_scsi_command2;
264248         unsigned char c_fdd_scsi_command[8]; // Array for SCSI command
265249         int scsi_lba; // FDD LBA location here, extracted from command
266250
267         /* Clear FDD Command completion status 0x5FF030B0 (PDC 0x4, 0x5) */
251         /* Clear FDD Command completion status 0x5FF030B0 (PDC 0x4, 0x5)*/
268252         m_pdc->reg_p4 = 0;
269253         m_pdc->reg_p5 = 0;
270254
r253154r253155
297281         break;
298282
299283      default:
300         if(TRACE_FDC || TRACE_HDC || TRACE_SMIOC) logerror("Instruction: %08x WRITE MMIO(%08x): %08x & %08x\n", space.machine().firstcpu->pc(), offset << 2 | 0x5FF00000, data, mem_mask);
284         if(TRACE_FDC || TRACE_HDC || TRACE_SMIOC) logerror("Instruction: %08x WRITE MMIO(%08x): %08x & %08x\n", space.machine().firstcpu->pc(), address, data, mem_mask);
301285   }
302286}
303287
304288/******************************************************************************
305 CPU board registers [0xFF010000 - 0xFF06FFFF]
289 CPU board registers [0xFF050000 - 0xFF06FFFF]
306290******************************************************************************/
307READ32_MEMBER( r9751_state::r9751_mmio_ff01_r )
308{
309   //UINT32 data;
310
311   switch(offset << 2)
312   {
313      default:
314         //return data;
315         return 0;
316   }
317}
318
319WRITE32_MEMBER( r9751_state::r9751_mmio_ff01_w )
320{
321   /* Unknown mask */
322   if (mem_mask != 0xFFFFFFFF)
323      logerror("Mask found: %08X Register: %08X PC: %08X\n", mem_mask, offset << 2 | 0xFF010000, space.machine().firstcpu->pc());
324
325   switch(offset << 2)
326   {
327      case 0x000C: /* FDD DMA Offset */
328         fdd_dma_bank = data;
329         return;
330      case 0x0010: /* SMIOC DMA Offset */
331         smioc_dma_bank = data;
332         return;
333      default:
334         return;
335   }
336}
337
338291READ32_MEMBER( r9751_state::r9751_mmio_ff05_r )
339292{
340293   UINT32 data;
294      UINT32 address = offset * 4 + 0xFF050000;
341295
342   switch(offset << 2)
296   switch(address)
343297   {
344      case 0x0004:
298      case 0xFF050004:
345299         return reg_ff050004;
346      case 0x0300:
300      case 0xFF050300:
347301         return 0x1B | (1<<0x14);
348      case 0x0320: /* Some type of counter */
302      case 0xFF050320: /* Some type of counter */
349303         return (machine().time() - timer_32khz_last).as_ticks(32768) & 0xFFFF;
350      case 0x0584:
304      case 0xFF050584:
351305         return 0;
352      case 0x0610:
306      case 0xFF050610:
353307         return 0xabacabac;
354      case 0x0014:
308      case 0xFF060014:
355309         return 0x80;
356310      default:
357311         data = 0;
358         if(TRACE_CPU_REG) logerror("Instruction: %08x READ MMIO(%08x): %08x & %08x\n", space.machine().firstcpu->pc(), offset << 2 | 0xFF050000, data, mem_mask);
312         if(TRACE_CPU_REG) logerror("Instruction: %08x READ MMIO(%08x): %08x & %08x\n", space.machine().firstcpu->pc(), address, data, mem_mask);
359313         return data;
360314   }
361315}
362316
363317WRITE32_MEMBER( r9751_state::r9751_mmio_ff05_w )
364318{
365   /* Unknown mask */
366   if (mem_mask != 0xFFFFFFFF)
367      logerror("Mask found: %08X Register: %08X PC: %08X\n", mem_mask, offset << 2 | 0xFF050000, space.machine().firstcpu->pc());
319   UINT32 address = offset * 4 + 0xFF050000;
368320
369   switch(offset << 2)
321   switch(address)
370322   {
371      case 0x0004:
323      case 0xFF050004:
372324         reg_ff050004 = data;
373325         return;
374      case 0x000C: /* CPU LED hex display indicator */
326      case 0xFF05000C: /* CPU LED hex display indicator */
375327         if(TRACE_LED) logerror("\n*** LED: %02x, Instruction: %08x ***\n\n", data, space.machine().firstcpu->pc());
376328         return;
377      case 0x0320:
329      case 0xFF050320:
378330         timer_32khz_last = machine().time();
379331      default:
380         if(TRACE_CPU_REG) logerror("Instruction: %08x WRITE MMIO(%08x): %08x & %08x\n", space.machine().firstcpu->pc(), offset << 2 | 0xFF050000, data, mem_mask);
332         if(TRACE_CPU_REG) logerror("Instruction: %08x WRITE MMIO(%08x): %08x & %08x\n", space.machine().firstcpu->pc(), address, data, mem_mask);
381333         return;
382334   }
383335}
384336
385337READ32_MEMBER( r9751_state::r9751_mmio_fff8_r )
386338{
387   UINT32 data;
339      UINT32 data;
340      UINT32 address = offset * 4 + 0xFFF80000;
388341
389   switch(offset << 2)
342   switch(address)
390343   {
391      case 0x0040:
344      case 0xFFF80040:
392345         return reg_fff80040;
393346      default:
394347         data = 0;
395         if(TRACE_CPU_REG) logerror("Instruction: %08x READ MMIO(%08x): %08x & %08x\n", space.machine().firstcpu->pc(), offset << 2 | 0xFFF80000, data, mem_mask);
348         if(TRACE_CPU_REG) logerror("Instruction: %08x READ MMIO(%08x): %08x & %08x\n", space.machine().firstcpu->pc(), address, data, mem_mask);
396349         return data;
397350   }
398351}
399352
400353WRITE32_MEMBER( r9751_state::r9751_mmio_fff8_w )
401354{
402   /* Unknown mask */
403   if (mem_mask != 0xFFFFFFFF)
404      logerror("Mask found: %08X Register: %08X PC: %08X\n", mem_mask, offset << 2 | 0xFFF80000, space.machine().firstcpu->pc());
355      UINT32 address = offset * 4 + 0xFFF80000;
405356
406   switch(offset << 2)
357   switch(address)
407358   {
408      case 0x0040:
359      case 0xFFF80040:
409360         reg_fff80040 = data;
410361         return;
411362      default:
412         if(TRACE_CPU_REG) logerror("Instruction: %08x WRITE MMIO(%08x): %08x & %08x\n", space.machine().firstcpu->pc(), offset << 2 | 0xFFF80000, data, mem_mask);
363         if(TRACE_CPU_REG) logerror("Instruction: %08x WRITE MMIO(%08x): %08x & %08x\n", space.machine().firstcpu->pc(), address, data, mem_mask);
413364   }
414365}
415366
r253154r253155
422373   AM_RANGE(0x00000000,0x00ffffff) AM_RAM AM_SHARE("main_ram") // 16MB
423374   AM_RANGE(0x08000000,0x0800ffff) AM_ROM AM_REGION("prom", 0)
424375   AM_RANGE(0x5FF00000,0x5FFFFFFF) AM_READWRITE(r9751_mmio_5ff_r, r9751_mmio_5ff_w)
425   AM_RANGE(0xFF010000,0xFF01FFFF) AM_READWRITE(r9751_mmio_ff01_r, r9751_mmio_ff01_w)
426376   AM_RANGE(0xFF050000,0xFF06FFFF) AM_READWRITE(r9751_mmio_ff05_r, r9751_mmio_ff05_w)
427377   AM_RANGE(0xFFF80000,0xFFF8FFFF) AM_READWRITE(r9751_mmio_fff8_r, r9751_mmio_fff8_w)
428378   //AM_RANGE(0xffffff00,0xffffffff) AM_RAM // Unknown area
trunk/src/mame/drivers/stv.cpp
r253154r253155
29552955   ROM_LOAD( "pclub298.nv", 0x0000, 0x0080, CRC(a23dd0f2) SHA1(457282b5d40a17477b95330bba91e05c603f951e) )
29562956ROM_END
29572957
2958
2959ROM_START( pclub26w ) // set to 1p
2960   STV_BIOS
2961
2962   ROM_REGION32_BE( 0x3000000, "cart", ROMREGION_ERASE00 ) /* SH2 code */
2963
2964   ROM_LOAD16_WORD_SWAP( "pclbvol6w_IC22",    0x0200000, 0x0200000, CRC(72aa320c) SHA1(09bc30e8cb00a5a4014c44e468cc64f6c3425d92) )
2965   ROM_LOAD16_WORD_SWAP( "pclbvol6w_IC24",    0x0400000, 0x0200000, CRC(d98371e2) SHA1(813ac5f3c5b57d07cc319c73560bc0719ddcfe6b) )
2966   ROM_LOAD16_WORD_SWAP( "pclbvol6w_IC26",    0x0600000, 0x0200000, CRC(e6bbe3a5) SHA1(b2f642b8ca0779ad66cfbbadece40f4e3dc41fd1) )
2967   ROM_LOAD16_WORD_SWAP( "pclbvol6w_IC28",    0x0800000, 0x0200000, CRC(3c330c9b) SHA1(92f8e8d4f43db7c4ce431d17501492a7f8d8a867) )
2968   ROM_LOAD16_WORD_SWAP( "pclbvol6w_IC30",    0x0a00000, 0x0200000, CRC(67646090) SHA1(ed6402a22acafa0203c587b871edc547f0ec5277) )
2969
2970   ROM_REGION16_BE( 0x80, "eeprom", 0 ) // preconfigured to 1 player
2971   ROM_LOAD( "pclub26w.nv", 0x0000, 0x0080, CRC(448f770d) SHA1(5f966c511c4c8e9d5b2d257c41c2c88a453b4944) )
2972ROM_END
2973
29742958ROM_START( pclub27s ) // set to 1p
29752959   STV_BIOS
29762960
r253154r253155
29862970   ROM_LOAD( "pclub27s.nv", 0x0000, 0x0080, CRC(e58c7167) SHA1(d88b1648c5d86a90615a8c6a1bf87bc9e75dc320) )
29872971ROM_END
29882972
2989ROM_START( pclub2pe ) // set to 1p
2990   STV_BIOS
2991
2992   ROM_REGION32_BE( 0x3000000, "cart", ROMREGION_ERASE00 ) /* SH2 code */
2993
2994   ROM_LOAD16_WORD_SWAP( "pclb2psi_IC22",    0x0200000, 0x0200000, CRC(caadc660) SHA1(f2e84bee96266bb03d8f9009249c17c27935f82e) )
2995   ROM_LOAD16_WORD_SWAP( "pclb2psi_IC24",    0x0400000, 0x0200000, CRC(ece82698) SHA1(b17b1ea8adc13c3722067c9854d1b7fdf3917090) )
2996   ROM_LOAD16_WORD_SWAP( "pclb2psi_IC26",    0x0600000, 0x0200000, CRC(c8a1e335) SHA1(a95ddfc41fdd9f720c11208f45ef5db4bee6cb97) )
2997   ROM_LOAD16_WORD_SWAP( "pclb2psi_IC28",    0x0800000, 0x0200000, CRC(52f09627) SHA1(e2ffc321bb0f2a650d0c0b39c3ec68226e1ca7f4) )
2998   ROM_LOAD16_WORD_SWAP( "pclb2psi_IC30",    0x0a00000, 0x0200000, CRC(03b9eacf) SHA1(d69c10f7613d9f52042dd6cce64e74e2b1ecc2d8) )
2999
3000   ROM_REGION16_BE( 0x80, "eeprom", 0 ) // preconfigured to 1 player
3001   ROM_LOAD( "pclub2pe.nv", 0x0000, 0x0080, CRC(447bb3bd) SHA1(9fefec09849bfa0c14b49e73ff13e2a538dff511))
3002ROM_END
3003
3004
30052973ROM_START( pclubyo2 ) // set to 1p
30062974   STV_BIOS
30072975
r253154r253155
31553123   ROM_LOAD( "pclove.nv", 0x0000, 0x0080, CRC(3c78e3bd) SHA1(6d5fe8545f434b4cc1e8229549adb0a49ac45bd1) )
31563124ROM_END
31573125
3158// Name Club / Name Club vol.2
3159// have an unusual rom mapping compared to other games, the cartridge is a little different too, with a large PALCE16V8H-10 marked 315-6026
3160// For Name Club vol. 2, the protection device (317-0229 on both) is checked in the 'each game test' menu as 'RCDD2'
3161// For the service mode test the game just passes a large block of compressed data and checksums the result, it doesn't even look like it's
3162// passing 100% valid data, just an entire section of ROM, checking the result against a pre-calculated checksum.
3163
3164// The device is accessed by the game when you choose to print, it looks like it's decompressing the full-size graphics for the printer rather
3165// than anything you see onscreen.  It makes quite extensive use of the device, with lots of different dictionaries, unlike Decathlete where
3166// there are only 2 that cover all the data.
3167
3168ROM_START( nameclub )
3169   STV_BIOS
3170
3171   ROM_REGION32_BE( 0x3000000, "cart", ROMREGION_ERASEFF ) /* SH2 code */
3172   ROM_LOAD16_WORD_SWAP( "ic22",    0x0200000, 0x0200000, CRC(ac23c648) SHA1(4dd099a92ff162082eb24a61a277ca907b3f9892) ) // OK
3173   ROM_LOAD16_WORD_SWAP( "ic24",    0x0600000, 0x0200000, CRC(a16902e3) SHA1(85c582cb0d02ef028a8ae32688c20a5b5aeeaae8) ) // OK
3174   ROM_LOAD16_WORD_SWAP( "ic26",    0x0a00000, 0x0200000, CRC(a5eab3f3) SHA1(1b7263639bb8f4aa644cc46133988ef4d2b6c9de) ) // OK
3175   ROM_LOAD16_WORD_SWAP( "ic28",    0x0e00000, 0x0200000, CRC(34ed677a) SHA1(ff2c4dd8fae33ac618f6e3e28ba71c4ecb4ca88f) ) // OK
3176
3177   ROM_REGION16_BE( 0x80, "eeprom", 0 ) // preconfigured to 1 player
3178   ROM_LOAD( "nameclub.nv", 0x0000, 0x0080, CRC(680a64bc) SHA1(45194bbe4a7e67f0e44f858589881967884f63a6) )
3179ROM_END
3180
31813126ROM_START( nclubv2 )
31823127   STV_BIOS
31833128
31843129   ROM_REGION32_BE( 0x3000000, "cart", ROMREGION_ERASEFF ) /* SH2 code */
3130   // unusual rom mapping compared to other games, the cartridge is a little different too, with a large PALCE16V8H-10 marked 315-6026
31853131   ROM_LOAD16_WORD_SWAP( "nclubv2.ic22",    0x0200000, 0x0200000, CRC(7e81676d) SHA1(fc0f0dcdb4aaf71218d7c1dd0e4ddc5381e8b13b) ) // OK
31863132   ROM_LOAD16_WORD_SWAP( "nclubv2.ic24",    0x0600000, 0x0200000, CRC(1b7637de) SHA1(43c3094f60a6582298a45bad923fef57e98c5b2b) ) // OK
31873133   ROM_LOAD16_WORD_SWAP( "nclubv2.ic26",    0x0a00000, 0x0200000, CRC(630be99d) SHA1(ac7fbaae98b126fad5228b0ebffa91a0f0a94516) ) // OK
31883134   ROM_LOAD16_WORD_SWAP( "nclubv2.ic28",    0x0e00000, 0x0200000, CRC(1a3ca5e2) SHA1(4d3aed51d29c54e71175d828f648c9feb813ac04) ) // OK
31893135     
3136
3137   // the protection device is checked in the 'each game test' menu as 'RCDD2' might be worth investigating what the game passes to the device for it.
3138   // I think the device is used to decompress the full size image data for the printer.
3139
31903140   ROM_REGION16_BE( 0x80, "eeprom", 0 ) // preconfigured to 1 player
31913141   ROM_LOAD( "nclubv2.nv", 0x0000, 0x0080, CRC(96d55fa9) SHA1(b3c821d6cd4ed52d0e20565e12a06d8f81a08dbc) )
31923142ROM_END
r253154r253155
32503200/* Unemulated printer / camera devices */
32513201// USA sets
32523202GAME( 1997, pclub2,    stvbios, stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 (U 970921 V1.000)", MACHINE_NOT_WORKING )
3253GAME( 1999, pclub2v3,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 Vol. 3 (U 990310 V1.000)", MACHINE_NOT_WORKING ) // Hello Kitty themed
3203GAME( 1999, pclub2v3,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 Vol. 3 (U 990310 V1.000)", MACHINE_NOT_WORKING )
32543204GAME( 1999, pclubpok,  stvbios, stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club Pokemon B (U 991126 V1.000)", MACHINE_NOT_WORKING )
32553205// Japan sets
32563206GAME( 1999, pclub2fc,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 Felix The Cat (Rev. A) (J 970415 V1.100)", MACHINE_NOT_WORKING )
32573207GAME( 1998, pclub2pf,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 Puffy (Japan)", MACHINE_NOT_WORKING ) // version info is blank
3208GAME( 1997, pclb297w,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 '97 Winter Ver (J 971017 V1.100)", MACHINE_NOT_WORKING )
3209GAME( 1997, pclub298,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 '98 Spring Ver (J 971017 V1.100)", MACHINE_NOT_WORKING )
3210GAME( 1998, pclb298a,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 '98 Autumn Ver (J 980827 V1.000)", MACHINE_NOT_WORKING )
32583211GAME( 1997, pclb2elk,  stvbios, stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 Earth Limited Kobe (Print Club Custom) (J 970808 V1.000)", MACHINE_NOT_WORKING )
3259GAME( 1997, pclub2pe,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 Pepsiman (J 970618 V1.100)", MACHINE_NOT_WORKING )
3212GAME( 1997, pclub27s,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 Vol. 7 Spring (J 970313 V1.100)", MACHINE_NOT_WORKING ) // aka Print Club 2 '97 Spring Ver  ?
32603213
3261GAME( 1997, pclub26w,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 Vol. 6 Winter (J 961210 V1.000)", MACHINE_NOT_WORKING ) // internal string is 'PURIKURA2 97FUYU' (but in reality it seems to be an end of 96 Winter version)
3262GAME( 1997, pclub27s,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 Vol. 7 Spring (J 970313 V1.100)", MACHINE_NOT_WORKING )
3263// Summer 97?
3264// Autumn 97?
3265GAME( 1997, pclb297w,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 '97 Winter Ver (J 971017 V1.100)", MACHINE_NOT_WORKING ) // internal string is '97WINTER' (3 roms bad / missing tho, need new dump)
3266GAME( 1997, pclub298,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 '98 Spring Ver (J 971017 V1.100)", MACHINE_NOT_WORKING ) // date is the same as previous version, surely incorrect / not updated when the game was
3267// Summer 98?
3268GAME( 1998, pclb298a,  pclub2,  stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club 2 '98 Autumn Ver (J 980827 V1.000)", MACHINE_NOT_WORKING )
3269
3270
32713214GAME( 1999, pclubor,   stvbios, stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club Goukakenran (J 991104 V1.000)", MACHINE_NOT_WORKING )
32723215GAME( 1999, pclubol,   stvbios, stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club Olive (J 980717 V1.000)", MACHINE_NOT_WORKING )
32733216GAME( 1997, pclub2kc,  stvbios, stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club Kome Kome Club (J 970203 V1.000)", MACHINE_NOT_WORKING )
r253154r253155
32753218GAME( 1997, pclubyo2,  stvbios, stv,      stv, stv_state,       stv,        ROT0,   "Atlus",                        "Print Club Yoshimoto V2 (J 970422 V1.100)", MACHINE_NOT_WORKING )
32763219
32773220GAME( 1998, stress,    stvbios, stv,      stv, stv_state,       stv,        ROT0,   "Sega",                         "Stress Busters (J 981020 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
3221GAME( 1996, nclubv2,   stvbios, stv_5838, stv, stv_state,       decathlt,   ROT0,   "Sega",                         "Name Club Ver.2 (J 960315 V1.000)", MACHINE_NOT_WORKING ) // uses the same type of protection as decathlete!!
3222GAME( 1997, nclubv3,   stvbios, stv,      stv, stv_state,       nameclv3,   ROT0,   "Sega",                         "Name Club Ver.3 (J 970723 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
32783223
3279GAME( 1996, nameclub,  stvbios, stv_5838, stv, stv_state,       decathlt,   ROT0,   "Sega",                         "Name Club (J 960315 V1.000)", MACHINE_NOT_WORKING ) // uses the same type of protection as decathlete!!
3280GAME( 1996, nclubv2,   stvbios, stv_5838, stv, stv_state,       decathlt,   ROT0,   "Sega",                         "Name Club Ver.2 (J 960315 V1.000)", MACHINE_NOT_WORKING ) // ^  (has the same datecode as nameclub, probably incorrect unless both were released today)
3281GAME( 1997, nclubv3,   stvbios, stv,      stv, stv_state,       nameclv3,   ROT0,   "Sega",                         "Name Club Ver.3 (J 970723 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // no protection
32823224
32833225
3284
32853226/* Doing something.. but not enough yet */
32863227GAME( 1995, vfremix,   stvbios, stv,      stv, stv_state,        vfremix,    ROT0,   "Sega",                         "Virtua Fighter Remix (JUETBKAL 950428 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
32873228GAME( 1996, decathlt,  stvbios, stv_5838, stv, stv_state,        decathlt,   ROT0,   "Sega",                         "Decathlete (JUET 960709 V1.001)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
trunk/src/mame/drivers/tispeak.cpp
r253154r253155
8080    - notes: this one has a dedicated voice actor
8181
8282    Speak & Spell (France) "La Dictee Magique", 1980
83    - MCU: CD2702, labeled CD2702AN2L (die labeled TMC0270F 2702A)
83    - MCU: CD2702*
8484    - TMS51xx: CD2801
8585    - VSM: 16KB CD2352
8686
r253154r253155
143143Speak & Math:
144144
145145    Speak & Math (US), 1980 (renamed to "Speak & Maths" in UK, but is the same product)
146    - MCU: CD2704, labeled CD2704B-N2L (die labeled TMC0270F 2704B) - 2nd revision?(mid-1982)
146    - MCU: CD2704*
147147    - TMS51xx: CD2801
148148    - VSM(1/2): 16KB CD2392
149149    - VSM(2/2): 16KB CD2393
r253154r253155
170170Speak & Read:
171171
172172    Speak & Read (US), 1980
173    - MCU: CD2705, labeled CD2705B-N2L (die labeled TMC0270E 2705B) - 2nd revision?(late-1981)
173    - MCU: CD2705, labeled CD2705B-N2L (die labeled TMC0270E 2705B) - 2nd revision?
174174    - TMS51xx: CD2801
175175    - VSM(1/2): 16KB CD2394(rev.A)
176176    - VSM(2/2): 16KB CD2395(rev.A)
r253154r253155
12421242   ROM_REGION( 2127, "maincpu:mpla", 0 )
12431243   ROM_LOAD( "tms0270_common2_micro.pla", 0, 2127, CRC(86737ac1) SHA1(4aa0444f3ddf88738ea74aec404c684bf54eddba) )
12441244   ROM_REGION( 1246, "maincpu:opla", 0 )
1245   ROM_LOAD( "tms0270_tmc0271_output.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) ) // using the one from 1st version
1245   ROM_LOAD( "tms0270_tmc0271_output.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) ) // using the one from 1978 version
12461246
12471247   ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // 8000-bfff = space reserved for cartridge
1248   ROM_LOAD( "tmc0351nl.vsm", 0x0000, 0x4000, CRC(beea3373) SHA1(8b0f7586d2f12c3d4a885fdb528cf23feffa1a3b) ) // using the one from 1st version
1248   ROM_LOAD( "tmc0351nl.vsm", 0x0000, 0x4000, CRC(beea3373) SHA1(8b0f7586d2f12c3d4a885fdb528cf23feffa1a3b) ) // using the one from 1978 version
12491249   ROM_LOAD( "tmc0352nl.vsm", 0x4000, 0x4000, CRC(d51f0587) SHA1(ddaa484be1bba5fef46b481cafae517e4acaa8ed) ) // "
12501250ROM_END
12511251
r253154r253155
12561256   ROM_REGION( 1246, "maincpu:ipla", 0 )
12571257   ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )
12581258   ROM_REGION( 2127, "maincpu:mpla", 0 )
1259   ROM_LOAD( "tms0270_common2_micro.pla", 0, 2127, CRC(86737ac1) SHA1(4aa0444f3ddf88738ea74aec404c684bf54eddba) )
1259   ROM_LOAD( "tms0270_common2_micro.pla", 0, 2127, BAD_DUMP CRC(86737ac1) SHA1(4aa0444f3ddf88738ea74aec404c684bf54eddba) ) // not verified
12601260   ROM_REGION( 1246, "maincpu:opla", 0 )
12611261   ROM_LOAD( "tms0270_tmc0271_output.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) )
12621262
r253154r253155
12871287   ROM_REGION( 1246, "maincpu:ipla", 0 )
12881288   ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )
12891289   ROM_REGION( 2127, "maincpu:mpla", 0 )
1290   ROM_LOAD( "tms0270_common2_micro.pla", 0, 2127, CRC(86737ac1) SHA1(4aa0444f3ddf88738ea74aec404c684bf54eddba) )
1290   ROM_LOAD( "tms0270_common2_micro.pla", 0, 2127, BAD_DUMP CRC(86737ac1) SHA1(4aa0444f3ddf88738ea74aec404c684bf54eddba) ) // not verified
12911291   ROM_REGION( 1246, "maincpu:opla", 0 )
12921292   ROM_LOAD( "tms0270_tmc0271_output.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) )
12931293
r253154r253155
13291329
13301330ROM_START( snspellfr )
13311331   ROM_REGION( 0x1000, "maincpu", 0 )
1332   ROM_LOAD( "cd2702an2l", 0x0000, 0x1000, CRC(895d6a4e) SHA1(a8bc118c83a84260033734191dcaa71a93dfa52b) )
1332   ROM_LOAD( "tmc0271h-n2l", 0x0000, 0x1000, BAD_DUMP CRC(f83b5d2d) SHA1(10155b0b7f7f1583c7def8a693553cd35944ea6f) ) // placeholder, use the one we have
13331333
13341334   ROM_REGION( 1246, "maincpu:ipla", 0 )
13351335   ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )
13361336   ROM_REGION( 2127, "maincpu:mpla", 0 )
1337   ROM_LOAD( "tms0270_common1_micro.pla", 0, 2127, CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) )
1337   ROM_LOAD( "tms0270_common2_micro.pla", 0, 2127, BAD_DUMP CRC(86737ac1) SHA1(4aa0444f3ddf88738ea74aec404c684bf54eddba) ) // not verified
13381338   ROM_REGION( 1246, "maincpu:opla", 0 )
1339   ROM_LOAD( "tms0270_cd2702_output.pla", 0, 1246, CRC(2478c595) SHA1(9a8ac690902731e1e01533279a1c9223011e1537) )
1339   ROM_LOAD( "tms0270_tmc0271h_output.pla", 0, 1246, BAD_DUMP CRC(2478c595) SHA1(9a8ac690902731e1e01533279a1c9223011e1537) ) // placeholder, use the one we have
13401340
13411341   ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // uses only 1 rom, 8000-bfff = space reserved for cartridge
13421342   ROM_LOAD( "cd2352.vsm", 0x0000, 0x4000, CRC(181a239e) SHA1(e16043766c385e152b7005c1c010be4c5fccdd9b) )
r253154r253155
13441344
13451345ROM_START( snspellit )
13461346   ROM_REGION( 0x1000, "maincpu", 0 )
1347   ROM_LOAD( "cd2702an2l", 0x0000, 0x1000, CRC(895d6a4e) SHA1(a8bc118c83a84260033734191dcaa71a93dfa52b) )
1347   ROM_LOAD( "tmc0271h-n2l", 0x0000, 0x1000, BAD_DUMP CRC(f83b5d2d) SHA1(10155b0b7f7f1583c7def8a693553cd35944ea6f) ) // placeholder, use the one we have
13481348
13491349   ROM_REGION( 1246, "maincpu:ipla", 0 )
13501350   ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )
13511351   ROM_REGION( 2127, "maincpu:mpla", 0 )
1352   ROM_LOAD( "tms0270_common1_micro.pla", 0, 2127, CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) )
1352   ROM_LOAD( "tms0270_common2_micro.pla", 0, 2127, BAD_DUMP CRC(86737ac1) SHA1(4aa0444f3ddf88738ea74aec404c684bf54eddba) ) // not verified
13531353   ROM_REGION( 1246, "maincpu:opla", 0 )
1354   ROM_LOAD( "tms0270_cd2702_output.pla", 0, 1246, CRC(2478c595) SHA1(9a8ac690902731e1e01533279a1c9223011e1537) )
1354   ROM_LOAD( "tms0270_tmc0271h_output.pla", 0, 1246, BAD_DUMP CRC(2478c595) SHA1(9a8ac690902731e1e01533279a1c9223011e1537) ) // placeholder, use the one we have
13551355
13561356   ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // uses only 1 rom, 8000-bfff = space reserved for cartridge
13571357   ROM_LOAD( "cd62190.vsm", 0x0000, 0x4000, CRC(63832002) SHA1(ea8124b2bf0f5908c5f1a56d60063f2468a10143) )
r253154r253155
14001400
14011401ROM_START( snmath )
14021402   ROM_REGION( 0x1000, "maincpu", 0 )
1403   ROM_LOAD( "cd2704b-n2l", 0x0000, 0x1000, CRC(7e06c7c5) SHA1(d60a35a8163ab593c31afc840a0d8a9b3a762f29) )
1403   ROM_LOAD( "cd2708n2l", 0x0000, 0x1000, CRC(35937360) SHA1(69c362c75bb459056c09c7fab37c91040485474b) )
14041404
14051405   ROM_REGION( 1246, "maincpu:ipla", 0 )
14061406   ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )
14071407   ROM_REGION( 2127, "maincpu:mpla", 0 )
14081408   ROM_LOAD( "tms0270_common1_micro.pla", 0, 2127, CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) )
14091409   ROM_REGION( 1246, "maincpu:opla", 0 )
1410   ROM_LOAD( "tms0270_cd2704_output.pla", 0, 1246, CRC(5a2eb949) SHA1(8bb161d4884f229af65f8d155e59b9d8966fe3d1) )
1411
1412   ROM_REGION( 0x8000, "tms6100", ROMREGION_ERASEFF )
1413   ROM_LOAD( "cd2392.vsm", 0x0000, 0x4000, CRC(4ed2e920) SHA1(8896f29e25126c1e4d9a47c9a325b35dddecc61f) )
1414   ROM_LOAD( "cd2393.vsm", 0x4000, 0x4000, CRC(571d5b5a) SHA1(83284755d9b77267d320b5b87fdc39f352433715) )
1415ROM_END
1416
1417ROM_START( snmatha )
1418   ROM_REGION( 0x1000, "maincpu", 0 )
1419   ROM_LOAD( "cd2708-n2l", 0x0000, 0x1000, CRC(35937360) SHA1(69c362c75bb459056c09c7fab37c91040485474b) )
1420
1421   ROM_REGION( 1246, "maincpu:ipla", 0 )
1422   ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )
1423   ROM_REGION( 2127, "maincpu:mpla", 0 )
1424   ROM_LOAD( "tms0270_common1_micro.pla", 0, 2127, CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) )
1425   ROM_REGION( 1246, "maincpu:opla", 0 )
14261410   ROM_LOAD( "tms0270_cd2708_output.pla", 0, 1246, CRC(1abad753) SHA1(53d20b519ed73ce248368047a056836afbe3cd46) )
14271411
14281412   ROM_REGION( 0x8000, "tms6100", ROMREGION_ERASEFF )
r253154r253155
14421426   ROM_REGION( 1246, "maincpu:ipla", 0 )
14431427   ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )
14441428   ROM_REGION( 2127, "maincpu:mpla", 0 )
1445   ROM_LOAD( "tms0270_common1_micro.pla", 0, 2127, CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) )
1429   ROM_LOAD( "tms0270_common1_micro.pla", 0, 2127, BAD_DUMP CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) ) // not verified
14461430   ROM_REGION( 1246, "maincpu:opla", 0 )
1447   ROM_LOAD( "tms0270_cd2704_output.pla", 0, 1246, CRC(5a2eb949) SHA1(8bb161d4884f229af65f8d155e59b9d8966fe3d1) ) // using the one from 1st version
1431   ROM_LOAD( "tms0270_cd2708_output.pla", 0, 1246, BAD_DUMP CRC(1abad753) SHA1(53d20b519ed73ce248368047a056836afbe3cd46) ) // taken from cd2708, need to verify if it's same as cd2704
14481432
14491433   ROM_REGION( 0x8000, "tms6100", ROMREGION_ERASEFF )
1450   ROM_LOAD( "cd2392.vsm", 0x0000, 0x4000, CRC(4ed2e920) SHA1(8896f29e25126c1e4d9a47c9a325b35dddecc61f) ) // using the one from 1st version
1451   ROM_LOAD( "cd2393.vsm", 0x4000, 0x4000, CRC(571d5b5a) SHA1(83284755d9b77267d320b5b87fdc39f352433715) ) // "
1434   ROM_LOAD( "cd2392.vsm", 0x0000, 0x4000, CRC(4ed2e920) SHA1(8896f29e25126c1e4d9a47c9a325b35dddecc61f) )
1435   ROM_LOAD( "cd2393.vsm", 0x4000, 0x4000, CRC(571d5b5a) SHA1(83284755d9b77267d320b5b87fdc39f352433715) )
14521436ROM_END
14531437
14541438
r253154r253155
15531537
15541538
15551539/*    YEAR  NAME        PARENT COMPAT MACHINE      INPUT       INIT                     COMPANY, FULLNAME, FLAGS */
1556COMP( 1979, snspell,    0,        0, sns_tmc0281,  snspell,    tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (US, 1979 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
1540COMP( 1978, snspell,    0,        0, sns_tmc0281,  snspell,    tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (US, 1979 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
15571541COMP( 1978, snspellp,   snspell,  0, sns_tmc0281,  snspell,    tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (US, patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
15581542COMP( 1980, snspellub,  snspell,  0, sns_tmc0281d, snspell,    tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (US, 1980 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
1559COMP( 1978, snspellua,  snspell,  0, sns_tmc0281,  snspell,    tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (US, 1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // incomplete dump, using 1979 MCU ROM instead
1560COMP( 1978, snspelluk,  snspell,  0, sns_tmc0281,  snspell,    tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (UK, 1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // "
1543COMP( 1979, snspellua,  snspell,  0, sns_tmc0281,  snspell,    tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (US, 1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // incomplete dump, using 1979 MCU ROM instead
1544COMP( 1978, snspelluk,  snspell,  0, sns_tmc0281,  snspell,    tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (UK, 1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // "
15611545COMP( 1981, snspelluka, snspell,  0, sns_cd2801,   snspell,    tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (UK, 1981 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
15621546COMP( 1979, snspelljp,  snspell,  0, sns_tmc0281,  snspell,    tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
1563COMP( 1980, snspellfr,  snspell,  0, sns_cd2801,   snspellfr,  tispeak_state, snspell,  "Texas Instruments", "La Dictee Magique (France)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
1564COMP( 1982, snspellit,  snspell,  0, sns_cd2801_m, snspellit,  tispeak_state, snspell,  "Texas Instruments", "Grillo Parlante (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
1547COMP( 1980, snspellfr,  snspell,  0, sns_cd2801,   snspellfr,  tispeak_state, snspell,  "Texas Instruments", "La Dictee Magique (France)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // doesn't work due to missing CD2702 MCU dump, German/Italian version has CD2702 too
1548COMP( 1982, snspellit,  snspell,  0, sns_cd2801_m, snspellit,  tispeak_state, snspell,  "Texas Instruments", "Grillo Parlante (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // "
15651549
15661550COMP( 1981, snspellc,   0,        0, snspellc,     snspellc,   tispeak_state, snspell,  "Texas Instruments", "Speak & Spell Compact (US, 1981 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
15671551COMP( 1982, snspellca,  snspellc, 0, snspellc,     snspellc,   tispeak_state, snspell,  "Texas Instruments", "Speak & Spell Compact (US, 1982 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
15681552COMP( 1982, snspellcuk, snspellc, 0, snspellcuk,   snspellcuk, tispeak_state, snspell,  "Texas Instruments", "Speak & Write (UK)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
15691553
1570COMP( 1980, snmath,     0,        0, snmath,       snmath,     driver_device, 0,        "Texas Instruments", "Speak & Math (US, 1980 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
1571COMP( 1986, snmatha,    snmath,   0, snmath,       snmath,     driver_device, 0,        "Texas Instruments", "Speak & Math (US, 1986 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
1572COMP( 1980, snmathp,    snmath,   0, snmath,       snmath,     driver_device, 0,        "Texas Instruments", "Speak & Math (US, patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IS_INCOMPLETE )
1554COMP( 1986, snmath,     0,        0, snmath,       snmath,     driver_device, 0,        "Texas Instruments", "Speak & Math (US, 1986 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
1555COMP( 1980, snmathp,    snmath,   0, snmath,       snmath,     driver_device, 0,        "Texas Instruments", "Speak & Math (US, 1980 version/patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
15731556
15741557COMP( 1980, snread,     0,        0, snread,       snread,     tispeak_state, snspell,  "Texas Instruments", "Speak & Read (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
15751558
15761559COMP( 1979, lantutor,   0,        0, lantutor,     lantutor,   tispeak_state, lantutor, "Texas Instruments", "Language Tutor (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
15771560
1578COMP( 1981, tntell,     0,        0, tntell,       tntell,     tispeak_state, tntell,   "Texas Instruments", "Touch & Tell (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK )
1579COMP( 1980, tntellp,    tntell,   0, tntell,       tntell,     tispeak_state, tntell,   "Texas Instruments", "Touch & Tell (US, patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
1561COMP( 1981, tntell,     0,        0, tntell,       tntell,     tispeak_state, tntell,   "Texas Instruments", "Touch & Tell (US, 1981 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK ) // assume there is an older version too, with CD8010 MCU
1562COMP( 1980, tntellp,    tntell,   0, tntell,       tntell,     tispeak_state, tntell,   "Texas Instruments", "Touch & Tell (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
15801563COMP( 1981, tntelluk,   tntell,   0, tntell,       tntell,     tispeak_state, tntell,   "Texas Instruments", "Touch & Tell (UK)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK )
15811564COMP( 1981, tntellfr,   tntell,   0, tntell,       tntell,     tispeak_state, tntell,   "Texas Instruments", "Le Livre Magique (France)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK )
15821565
trunk/src/mame/mess.lst
r253154r253155
21422142
21432143// Fidelity
21442144cc10
2145cc7
21462145vcc      // VCC: Voice Chess Challenger (English)
21472146vccg     // * Spanish
21482147vccfr    // * German
r253154r253155
23452344snspellca
23462345snspellcuk
23472346snmath
2348snmatha
23492347snmathp
23502348snread
23512349lantutor


Previous 199869 Revisions Next


© 1997-2024 The MAME Team