Previous 15994 Revisions Next

r954 Thursday 13th September, 2007 at 23:08:11 UTC by Nathan Woods
Updated to MAME 0.119 core
[ROOT]whatsnew.txt
[docs]messnew.txt
[src]version.c
[src/emu]uimenu.c video.c
[src/emu/cpu/mb86233]mb86233.c
[src/mame]mamedriv.c
[src/mame/drivers]bfm_sc2.c galaxian.c nmk16.c opwolf.c scramble.c senjyo.c shadfrce.c srmp6.c
[src/mame/machine]fd1094.c
[src/mame/video]midvunit.c model2.c

src/mame/machine/fd1094.c
r953r954
2102100096      21 80 11 21  881121  ddux     1988  88/11/21
2112110102      AB 80 02 03  04588A  wrestwa2 1989  atypical
2122120058-04B  27 03 27 14  032714  crkdownj 1989  89/03/27 14:xx
2130058-04C  19 03 27 05  032705  ???????  1989  89/03/27 05:xx
2132140058-04D  DC 03 27 06  032706  crkdown  1989  89/03/27 06:xx
2142150110      19 81 03 29  032916  goldnax1 1989  89/03/29 16:xx
2152160115      12 04 05 11  040511  bayroutj 1989  89/04/05 11:xx
src/mame/mamedriv.c
r953r954
149149   DRIVER( swarm )      /* hack */
150150   DRIVER( zerotime )   /* hack */
151151   DRIVER( starfght )   /* hack */
152   DRIVER( galaxbsf )   /* hack */
152153   DRIVER( tst_galx )   /* Galaxian Test ROM */
153154   DRIVER( gmgalax )   /* bootleg */
154155   DRIVER( pisces )   /* Subelectro */
r953r954
229230   DRIVER( chewing )   /* ?? unknown */
230231   DRIVER( catacomb )   /* 1982 MTM Games */
231232   DRIVER( ckongg )    /* 1981 bootleg */
233   DRIVER( kkgalax )   /* 1981 bootleg */
232234   DRIVER( porter )    /* 19?? bootleg */
233235
234236   /* Has some similarities with Moon Cresta but Board is very different */
r953r954
322324   DRIVER( scrpiona )   /* (c) 1982 Zaccaria */
323325   DRIVER( scrpionb )   /* (c) 1982 Zaccaria */
324326   DRIVER( ad2083 )   /* (c) 1983 Midcoin */
327   DRIVER( turpins )   /* (c) 1981 bootleg */
325328
326329   /* "Crazy Climber hardware" games */
327330   DRIVER( cclimber )   /* (c) 1980 Nichibutsu */
r953r954
16191622   DRIVER( topspedu )   /* B14 (c) 1987 Taito America Corporation (US) */
16201623   DRIVER( fullthrl )   /* B14 (c) 1987 Taito Corporation (Japan) */
16211624   DRIVER( opwolf )   /* B20 (c) 1987 Taito Corporation Japan (World) */
1625   DRIVER( opwolfa )   /* B20 (c) 1987 Taito Corporation Japan (World) */
16221626   DRIVER( opwolfu )   /* B20 (c) 1987 Taito America Corporation (US) */
16231627   DRIVER( opwolfb )   /* bootleg */
16241628   DRIVER( othunder )   /* B67 (c) 1988 Taito Corporation Japan (World) */
r953r954
42814285   DRIVER( senjyo )   /* (c) 1983 Tehkan */
42824286   DRIVER( starforc )   /* (c) 1984 Tehkan */
42834287   DRIVER( starfore )   /* (c) 1984 Tehkan */
4288   DRIVER( starforb )   /* (c) 1984 Tehkan */
42844289   DRIVER( megaforc )   /* (c) 1985 Tehkan + Video Ware license */
42854290   DRIVER( baluba )   /* (c) 1986 Able Corp. */
42864291   DRIVER( bombjack )   /* (c) 1984 Tehkan */
r953r954
57965801   DRIVER( vandyke )   /* UPL-90064 (c) UPL */
57975802   DRIVER( vandyjal )   /* UPL-90064 (c) Jaleco */
57985803   DRIVER( vandyja2 )   /* UPL-90064 (c) Jaleco */
5804   DRIVER( vandykeb )   /* bootleg */
57995805   DRIVER( blkheart )   /* UPL-91069 */
58005806   DRIVER( blkhearj )   /* UPL-91069 */
58015807   DRIVER( acrobatm )   /* UPL-91073 (c) 1991 UPL + Taito license */
r953r954
72607266   /* Scorpion 2+Video Board Games */
72617267   DRIVER( qntoondo )   /* 1993 */
72627268   DRIVER( quintoon )   /* 1993 */
7269   DRIVER( quintond )   /* 1993 */
72637270   DRIVER( quintono )   /* 1993 */
72647271   DRIVER( qntoond )   /* 1993 */
72657272   DRIVER( pokio )      /* 1994 */
src/mame/video/model2.c
r953r954
871871            }
872872            case 0x03:      // Window Data
873873            {
874               int x1 = (model2_bufferram[dlptr+0] >> 16) & 0xffff;
875               int y1 = (model2_bufferram[dlptr+0] >>  0) & 0xffff;
876               int x2 = (model2_bufferram[dlptr+1] >> 16) & 0xffff;
877               int y2 = (model2_bufferram[dlptr+1] >>  0) & 0xffff;
874               int x1 = (INT16)(model2_bufferram[dlptr+0] >> 16);
875               int y1 = (INT16)(model2_bufferram[dlptr+0] >>  0);
876               int x2 = (INT16)(model2_bufferram[dlptr+1] >> 16);
877               int y2 = (INT16)(model2_bufferram[dlptr+1] >>  0);
878878
879879               window.x = x1;
880880               window.y = 474 - y2;
src/mame/video/midvunit.c
r953r954
4040static UINT16 dma_data[16];
4141static UINT8 dma_data_index;
4242static UINT16 page_control;
43static UINT8 video_changed;
4344
4445static mame_timer *scanline_timer;
4546
r953r954
925926   polycount++;
926927#endif
927928
929   /* if we're rendering to the same page we're viewing, it has changed */
930   if ((((page_control >> 2) ^ page_control) & 1) == 0)
931      video_changed = TRUE;
932
928933   /* fill in the vertex data */
929934   vert[0].x = (INT16)dma_data[2];
930935   vert[0].y = (INT16)dma_data[3];
r953r954
10681073   /* watch for the display page to change */
10691074   if ((page_control ^ data) & 1)
10701075   {
1076      video_changed = TRUE;
10711077      if (LOG_DMA && input_code_pressed(KEYCODE_L))
10721078         logerror("##########################################################\n");
10731079#if KEEP_STATISTICS
r953r954
11361142
11371143WRITE32_HANDLER( midvunit_videoram_w )
11381144{
1145   if (!video_changed)
1146   {
1147      int visbase = (page_control & 1) ? 0x40000 : 0x00000;
1148      if ((offset & 0x40000) == visbase)
1149         video_changed = TRUE;
1150   }
11391151   COMBINE_DATA(&midvunit_videoram[offset]);
11401152}
11411153
r953r954
11981210   int x, y, width, xoffs;
11991211   UINT32 offset;
12001212
1213   /* if the video didn't change, indicate as much */
1214   if (!video_changed)
1215      return UPDATE_HAS_NOT_CHANGED;
1216   video_changed = FALSE;
1217
12011218#if KEEP_STATISTICS
12021219   totalframes++;
12031220   if (totalframes == 57)
src/mame/drivers/senjyo.c
r953r954
224224#endif
225225ADDRESS_MAP_END
226226
227/* For the bootleg */
228
229/* are scroll registers 1+2 linked on the bootleg?, only one copy is written */
230static WRITE8_HANDLER(starforb_scrolly2)
231{
232   senjyo_scrolly2[offset] = data;
233   senjyo_scrolly1[offset] = data;
234}
235
236static WRITE8_HANDLER(starforb_scrollx2)
237{
238   senjyo_scrollx2[offset] = data;
239   senjyo_scrollx1[offset] = data;
240}
241
242
243static ADDRESS_MAP_START( starforb_writemem, ADDRESS_SPACE_PROGRAM, 8 )
244   AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM)
245   AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_RAM)
246   AM_RANGE(0x9000, 0x93ff) AM_WRITE(senjyo_fgvideoram_w) AM_BASE(&senjyo_fgvideoram)
247   AM_RANGE(0x9400, 0x97ff) AM_WRITE(senjyo_fgcolorram_w) AM_BASE(&senjyo_fgcolorram)
248   AM_RANGE(0x9800, 0x987f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
249   AM_RANGE(0x9c00, 0x9dff) AM_WRITE(paletteram_IIBBGGRR_w) AM_BASE(&paletteram)
250
251   /* The format / use of the ram here is different on the bootleg */
252   AM_RANGE(0x9e20, 0x9e21) AM_WRITE(MWA8_RAM) AM_BASE(&senjyo_scrolly3)
253   AM_RANGE(0x9e25, 0x9e25) AM_WRITE(MWA8_RAM) AM_BASE(&senjyo_scrollx3)
254   AM_RANGE(0x9e30, 0x9e31) AM_WRITE(starforb_scrolly2) AM_BASE(&senjyo_scrolly2) // ok
255   AM_RANGE(0x9e35, 0x9e35) AM_WRITE(starforb_scrollx2) AM_BASE(&senjyo_scrollx2) // ok
256   AM_RANGE(0x9e00, 0x9e3f) AM_WRITE(MWA8_RAM)
257
258   AM_RANGE(0xa000, 0xa7ff) AM_WRITE(senjyo_bg3videoram_w) AM_BASE(&senjyo_bg3videoram)
259   AM_RANGE(0xa800, 0xafff) AM_WRITE(senjyo_bg2videoram_w) AM_BASE(&senjyo_bg2videoram)
260   AM_RANGE(0xb000, 0xb7ff) AM_WRITE(senjyo_bg1videoram_w) AM_BASE(&senjyo_bg1videoram)
261   AM_RANGE(0xb800, 0xbbff) AM_WRITE(MWA8_RAM) AM_BASE(&senjyo_radarram)
262   AM_RANGE(0xd000, 0xd000) AM_WRITE(flip_screen_w)
263   AM_RANGE(0xd004, 0xd004) AM_WRITE(z80pioA_0_p_w)
264
265   /* these aren't used / written, left here to make sure memory is allocated */
266   AM_RANGE(0xfe00, 0xfe1f) AM_WRITE(MWA8_RAM) AM_BASE(&senjyo_fgscroll)
267   AM_RANGE(0xfe27, 0xfe27) AM_WRITE(senjyo_bgstripes_w) AM_BASE(&senjyo_bgstripesram)   /* controls width of background stripes */
268   AM_RANGE(0xfe28, 0xfe29) AM_WRITE(MWA8_RAM) AM_BASE(&senjyo_scrolly1)
269   AM_RANGE(0xfe2d, 0xfe2d) AM_WRITE(MWA8_RAM) AM_BASE(&senjyo_scrollx1)
270ADDRESS_MAP_END
271
272
273static ADDRESS_MAP_START( starforb_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
274   AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM)
275   AM_RANGE(0x4000, 0x43ff) AM_READ(MRA8_RAM)
276   AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_RAM)
277ADDRESS_MAP_END
278
279static ADDRESS_MAP_START( starforb_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
280   AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM)
281   AM_RANGE(0x4000, 0x43ff) AM_WRITE(MWA8_RAM)
282   AM_RANGE(0x8000, 0x8000) AM_WRITE(SN76496_0_w)
283   AM_RANGE(0x9000, 0x9000) AM_WRITE(SN76496_1_w)
284   AM_RANGE(0xa000, 0xa000) AM_WRITE(SN76496_2_w)
285   AM_RANGE(0xd000, 0xd000) AM_WRITE(senjyo_volume_w)
286#if 0
287   AM_RANGE(0xe000, 0xe000) AM_WRITE(unknown)
288   AM_RANGE(0xf000, 0xf000) AM_WRITE(unknown)
289#endif
290
291   AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_RAM)
292ADDRESS_MAP_END
293
227294static WRITE8_HANDLER( pio_w )
228295{
229296   if (offset & 1)
r953r954
596663static MACHINE_DRIVER_START( senjyo )
597664
598665   /* basic machine hardware */
599   MDRV_CPU_ADD(Z80, 4000000)   /* 4 MHz? */
666   MDRV_CPU_ADD_TAG("main", Z80, 4000000)   /* 4 MHz? */
600667   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
601668   MDRV_CPU_VBLANK_INT(senjyo_interrupt,1)
602669
603   MDRV_CPU_ADD(Z80, 2000000)
670   MDRV_CPU_ADD_TAG("sub", Z80, 2000000)
604671   MDRV_CPU_CONFIG(daisy_chain)
605672   /* audio CPU */   /* 2 MHz? */
606673   MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
r953r954
640707MACHINE_DRIVER_END
641708
642709
710static MACHINE_DRIVER_START( starforb )
711
712   /* basic machine hardware */
713   MDRV_IMPORT_FROM(senjyo)
714   MDRV_CPU_MODIFY("main")
715   MDRV_CPU_PROGRAM_MAP(readmem,starforb_writemem)
716
717   MDRV_CPU_MODIFY("sub")
718   MDRV_CPU_PROGRAM_MAP(starforb_sound_readmem,starforb_sound_writemem)
719MACHINE_DRIVER_END
720
721
643722/***************************************************************************
644723
645724  Game driver(s)
r953r954
724803    ROM_LOAD( "07b.bin",    0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) )   /* unknown - timing? */
725804ROM_END
726805
806ROM_START( starforb )
807   ROM_REGION( 0x10000, REGION_CPU1, 0 )
808   ROM_LOAD( "a2.8m",   0x0000, 0x2000, CRC(e81e8b7d) SHA1(829a082a335a0cf5bf8cc97bee96e62271f03ff4) )
809   ROM_LOAD( "a3.8k",   0x2000, 0x2000, CRC(7e98f0ab) SHA1(76eb387fbf5d04b7951a115d29076d1fd21346c4) )
810   ROM_LOAD( "a4.8j",   0x4000, 0x2000, CRC(285bc599) SHA1(c2f294a5e3ca39084e8f8503d6e9e00885ad0609) )
811   ROM_LOAD( "a5.8f",   0x6000, 0x2000, CRC(74d328b1) SHA1(3098438d47f650507de8b1d0aecfca81663cbe9c) )
812
813   ROM_REGION( 0x10000, REGION_CPU2, 0 )     /* 64k for sound board */
814   ROM_LOAD( "a0.2e",   0x0000, 0x2000, CRC(5ab0e2fa) SHA1(78f0290d1e006a39bb8ee5a29cf229ed2c1f2b09) )
815
816   ROM_REGION( 0x03000, REGION_GFX1, ROMREGION_DISPOSE )
817   ROM_LOAD( "b8.8h",   0x00000, 0x1000, CRC(f4803339) SHA1(a119d68c2dd1c0e191231ce77353b31f30f7aa76) )   /* fg */
818   ROM_LOAD( "b7.8f",   0x01000, 0x1000, CRC(96979684) SHA1(bb4f7d3afc8dfaa723dfb5374996cc4bfd76fa3c) )
819   ROM_LOAD( "b6.8d",   0x02000, 0x1000, CRC(eead1d5c) SHA1(7c9165ed227c5228122b494a265cbfd6e843ba61) )
820
821   ROM_REGION( 0x06000, REGION_GFX2, ROMREGION_DISPOSE )
822   ROM_LOAD( "c17.8a",  0x00000, 0x2000, CRC(c3bda12f) SHA1(3748ea8e34222a31a365a02ec77430f268b0b397) )   /* bg1 */
823   ROM_LOAD( "c16.7a",  0x02000, 0x2000, CRC(9e9384fe) SHA1(3aaa9cc64ef3775325f64733da4f6c328abf6514) )
824   ROM_LOAD( "c15.6a",  0x04000, 0x2000, CRC(84603285) SHA1(f4d6dfa3968fbd8ebf1a6451d5ea1821d65d9b49) )
825
826   ROM_REGION( 0x06000, REGION_GFX3, ROMREGION_DISPOSE )
827   ROM_LOAD( "c20.8k",  0x00000, 0x2000, CRC(fdd9e38b) SHA1(3766835d9e9fc7e5dd99521e7303562029b78a65) )   /* bg2 */
828   ROM_LOAD( "c19.7k",  0x02000, 0x2000, CRC(668aea14) SHA1(62eb0df48f2f0c5778bb230cc3bf0b8eb3b4e3f8) )
829   ROM_LOAD( "c18.6k",  0x04000, 0x2000, CRC(c62a19c1) SHA1(9ce0e29630d3c8cba4db4cff333b250481348968) )
830
831   ROM_REGION( 0x03000, REGION_GFX4, ROMREGION_DISPOSE )
832   ROM_LOAD( "c5.8n",  0x00000, 0x1000, CRC(6455c3ad) SHA1(b163ccd3dc26ccfa8be1d16d52e17bc660ff84e3) )   /* bg3 */
833   ROM_LOAD( "c4.7n",  0x01000, 0x1000, CRC(68c60d0f) SHA1(1152ba0c274ecadb534133a860bbc8a93577dcf2) )
834   ROM_LOAD( "c3.6n",  0x02000, 0x1000, CRC(ce20b469) SHA1(60177a669d9c8cbeedd03ca5e2edf3f589c1c815) )
835
836   ROM_REGION( 0x0c000, REGION_GFX5, ROMREGION_DISPOSE )
837   ROM_LOAD( "b13.8p",       0x00000, 0x2000, CRC(1cfc88a8) SHA1(2948864ed88ba3b1d500047e2ef594b67274710c) )   /* sprites */
838   ROM_LOAD( "b14.8r",       0x02000, 0x2000, CRC(902060b4) SHA1(f371aa12ba3f554918e8a482114df166cd007b0e) )   /* sprites */
839   ROM_LOAD( "b11.8m",       0x04000, 0x2000, CRC(7676b970) SHA1(f5fcee4ca555e7c880c6bf5d5ea01ff8d619a837) )
840   ROM_LOAD( "b12.8n",       0x06000, 0x2000, CRC(6f4a5d67) SHA1(182be475dfee4d272f57c030e3acd4e8cfa4fc53) )
841   ROM_LOAD( "b9.8j",        0x08000, 0x2000, CRC(e7d51959) SHA1(34d9afb0f31dc1d02e7b85aa69345fc66cf0f554) )
842   ROM_LOAD( "b10.8l",       0x0a000, 0x2000, CRC(6ea27bec) SHA1(30da81a99d5920107751afda359576e426c497c4) )
843
844   ROM_REGION( 0x0020, REGION_PROMS, 0 )   /* PROMs */
845    ROM_LOAD( "a18s030.7b",    0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) )   /* unknown - timing? */
846ROM_END
847
848
727849ROM_START( starfore )
728850   ROM_REGION( 2*0x10000, REGION_CPU1, 0 )     /* 64k for code + 64k for decrypted opcodes */
729851   ROM_LOAD( "starfore.005", 0x0000, 0x2000, CRC(825f7ebe) SHA1(d63fd516e075bcc28d42189216b95bbf491a4cd1) )
r953r954
839961
840962
841963
842GAME( 1983, senjyo,   0,        senjyo, senjyo,   senjyo,   ROT90, "Tehkan", "Senjyo", 0 )
843GAME( 1984, starforc, 0,        senjyo, starforc, starforc, ROT90, "Tehkan", "Star Force", 0 )
844GAME( 1984, starfore, starforc, senjyo, starforc, starfore, ROT90, "Tehkan", "Star Force (encrypted)", 0 )
845GAME( 1985, megaforc, starforc, senjyo, starforc, starforc, ROT90, "Tehkan (Video Ware license)", "Mega Force", 0 )
846GAME( 1986, baluba,   0,        senjyo, baluba,   starforc, ROT90, "Able Corp, Ltd.", "Baluba-louk no Densetsu", GAME_IMPERFECT_COLORS )
964GAME( 1983, senjyo,   0,        senjyo,  senjyo,   senjyo,   ROT90, "Tehkan", "Senjyo", 0 )
965GAME( 1984, starforc, 0,        senjyo,  starforc, starforc, ROT90, "Tehkan", "Star Force", 0 )
966GAME( 1984, starfore, starforc, senjyo,  starforc, starfore, ROT90, "Tehkan", "Star Force (encrypted)", 0 )
967GAME( 1984, starforb, starforc, starforb,starforc, starfore, ROT90, "[Tehkan] (bootleg)", "Star Force (encrypted, bootleg)", 0 )
968GAME( 1985, megaforc, starforc, senjyo,  starforc, starforc, ROT90, "Tehkan (Video Ware license)", "Mega Force", 0 )
969GAME( 1986, baluba,   0,        senjyo,  baluba,   starforc, ROT90, "Able Corp, Ltd.", "Baluba-louk no Densetsu", GAME_IMPERFECT_COLORS )
src/mame/drivers/bfm_sc2.c
r953r954
32203220   ROM_LOAD("quinp233",      0x00000, 0x20000, CRC(3d4ebecf) SHA1(b339cf16797ccf7a1ec20fcebf52b6edad9a1047))
32213221ROM_END
32223222
3223// ROM definition UK Quintoon (data) /////////////////////////////////////
3224
3225ROM_START( quintond )
3226   ROM_REGION( 0x12000, REGION_CPU1, 0 )
3227   ROM_LOAD("95751206.bin",   0x00000, 0x10000,  CRC(63def707) SHA1(d016df74f4f83cd72b16f9ccbe78cc382bf056c8))
3228
3229   ROM_REGION( 0x20000, REGION_CPU2, 0 )
3230   ROM_LOAD("quinp132",      0x00000, 0x20000,  CRC(63896a7f) SHA1(81aa56874a15faa3aabdfc0fc524b2e25b751f22))
3231
3232   ROM_REGION( 0x20000, REGION_SOUND1, 0 ) // using Dutch samples, need to check a UK Quintoon PCB
3233   ROM_LOAD("95001016.snd",   0x00000, 0x20000, BAD_DUMP CRC(cf097d41) SHA1(6712f93896483360256d8baffc05977c8e532ef1))
3234
3235   ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
3236   ROM_LOAD("quinp233",      0x00000, 0x20000, CRC(3d4ebecf) SHA1(b339cf16797ccf7a1ec20fcebf52b6edad9a1047))
3237ROM_END
3238
32233239// ROM definition Dutch Quintoon ///////////////////////////////////////////
32243240
32253241ROM_START( qntoond )
r953r954
34103426//     year, name,     parent,    machine,       input,     init,       monitor, company,    fullname
34113427GAMEL( 1993, qntoondo, qntoond,     scorpion2_vid, qntoond,   adder_dutch,0,       "BFM/ELAM", "Quintoon (Dutch, Game Card 95-750-136)",      GAME_SUPPORTS_SAVE,layout_quintoon )
34123428GAMEL( 1993, quintoon, 0,        scorpion2_vid, quintoon,  quintoon,   0,       "BFM",      "Quintoon (UK, Game Card 95-750-206)",         GAME_SUPPORTS_SAVE|GAME_IMPERFECT_SOUND,layout_quintoon ) //Current samples need verification
3429GAMEL( 1993, quintond, quintoon,  scorpion2_vid, quintoon,  quintoon,   0,       "BFM",      "Quintoon (UK, Game Card 95-751-206, Datapak)",GAME_SUPPORTS_SAVE|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING,layout_quintoon ) //Current samples need verification
34133430GAMEL( 1993, quintono, quintoon,  scorpion2_vid, quintono,  quintoon,   0,       "BFM",      "Quintoon (UK, Game Card 95-750-203)",         GAME_SUPPORTS_SAVE|GAME_IMPERFECT_SOUND,layout_quintoon ) //Current samples need verification
34143431GAMEL( 1993, qntoond,  0,        scorpion2_vid, qntoond,   adder_dutch,0,       "BFM/ELAM", "Quintoon (Dutch, Game Card 95-750-243)",      GAME_SUPPORTS_SAVE,layout_quintoon )
34153432GAMEL( 1994, pokio,    0,        scorpion2_vid, pokio,     adder_dutch,0,       "BFM/ELAM", "Pokio (Dutch, Game Card 95-750-278)",         GAME_SUPPORTS_SAVE,layout_pokio )
src/mame/drivers/galaxian.c
r953r954
12001200   AM_RANGE(0xcc00, 0xcc00) AM_WRITE(galaxian_pitch_w)
12011201ADDRESS_MAP_END
12021202
1203static ADDRESS_MAP_START( kkgalax_readmem, ADDRESS_SPACE_PROGRAM, 8 )
1204
1205   AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_ROM)
1206   AM_RANGE(0x6000, 0x6fff) AM_READ(MRA8_RAM)
1207   AM_RANGE(0x9000, 0x93ff) AM_READ(galaxian_videoram_r)
1208   AM_RANGE(0x9800, 0x98ff) AM_READ(MRA8_RAM)
1209   AM_RANGE(0xa000, 0xa000) AM_READ(input_port_0_r)
1210   AM_RANGE(0xa800, 0xa800) AM_READ(input_port_1_r)
1211   AM_RANGE(0xb000, 0xb000) AM_READ(input_port_2_r)
1212//  AM_RANGE(0xcc00, 0xcc00) AM_READ(watchdog_reset_r)
1213
1214ADDRESS_MAP_END
1215
1216static ADDRESS_MAP_START( kkgalax_writemem, ADDRESS_SPACE_PROGRAM, 8 )
1217   AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_NOP)
1218   AM_RANGE(0x6000, 0x6fff) AM_WRITE(MWA8_RAM)
1219   AM_RANGE(0x9000, 0x93ff) AM_WRITE(galaxian_videoram_w) AM_BASE(&galaxian_videoram)
1220   AM_RANGE(0x9800, 0x983f) AM_WRITE(galaxian_attributesram_w) AM_BASE(&galaxian_attributesram)
1221   AM_RANGE(0x9840, 0x985f) AM_WRITE(MWA8_RAM) AM_BASE(&galaxian_spriteram) AM_SIZE(&galaxian_spriteram_size)
1222   AM_RANGE(0x9860, 0x987f) AM_WRITE(MWA8_RAM) AM_BASE(&galaxian_bulletsram) AM_SIZE(&galaxian_bulletsram_size)
1223   AM_RANGE(0x9880, 0x98ff) AM_WRITE(MWA8_RAM)
1224//  AM_RANGE(0xc000, 0xc001) AM_WRITE(galaxian_leds_w)
1225//  AM_RANGE(0xc002, 0xc002) AM_WRITE(galaxian_coin_lockout_w)
1226//  AM_RANGE(0xc003, 0xc003) AM_WRITE(galaxian_coin_counter_w)
1227//  AM_RANGE(0xc004, 0xc007) AM_WRITE(galaxian_lfo_freq_w)
1228//  AM_RANGE(0xc400, 0xc402) AM_WRITE(galaxian_background_enable_w)
1229//  AM_RANGE(0xc403, 0xc403) AM_WRITE(galaxian_noise_enable_w)
1230//  AM_RANGE(0xc405, 0xc405) AM_WRITE(galaxian_shoot_enable_w)
1231//  AM_RANGE(0xc406, 0xc407) AM_WRITE(galaxian_vol_w)
1232   AM_RANGE(0xb001, 0xb001) AM_WRITE(galaxian_nmi_enable_w)
1233//  AM_RANGE(0xc804, 0xc804) AM_WRITE(MWA8_NOP) // link cut
1234//  AM_RANGE(0xc806, 0xc806) AM_WRITE(galaxian_flip_screen_x_w)
1235//  AM_RANGE(0xc807, 0xc807) AM_WRITE(galaxian_flip_screen_y_w)
1236//  AM_RANGE(0xcc00, 0xcc00) AM_WRITE(galaxian_pitch_w)
1237ADDRESS_MAP_END
1238
12031239static READ8_HANDLER( hexpoola_data_port_r )
12041240{
12051241   switch (activecpu_get_pc())
r953r954
38893925   PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED )
38903926INPUT_PORTS_END
38913927
3928/* not correct */
3929INPUT_PORTS_START( kkgalax )
3930   PORT_START_TAG("IN0")
3931   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
3932   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
3933   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
3934   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
3935   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
3936   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
3937   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3938   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
38923939
3940   PORT_START_TAG("IN1")
3941   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // button 1 and start 1
3942   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL // button 1 and start 2?
3943   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
3944   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
3945   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
3946   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
3947   PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coinage ) )
3948   PORT_DIPSETTING(    0x40, DEF_STR( 2C_1C ) )
3949   PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
3950//  PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
3951   PORT_DIPSETTING(    0xc0, DEF_STR( Free_Play ) )
3952
3953   PORT_START_TAG("DSW0")
3954   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
3955   PORT_DIPSETTING(    0x00, "1" )
3956   PORT_DIPSETTING(    0x01, "2" )
3957   PORT_DIPSETTING(    0x02, "3" )
3958   PORT_DIPSETTING(    0x03, "4" )
3959   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
3960   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3961   PORT_DIPSETTING(    0x04, DEF_STR( On ) )
3962   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) )
3963   PORT_DIPSETTING(    0x08, "500000" )
3964   PORT_DIPSETTING(    0x00, "750000" )
3965   PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED )
3966INPUT_PORTS_END
3967
38933968INPUT_PORTS_START( porter )
38943969   PORT_START_TAG("IN0")\
38953970   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
r953r954
46874762
46884763MACHINE_DRIVER_END
46894764
4765static MACHINE_DRIVER_START( kkgalax )
4766
4767   /* basic machine hardware */
4768   MDRV_IMPORT_FROM(galaxian)
4769   MDRV_CPU_MODIFY("main")
4770   MDRV_CPU_PROGRAM_MAP(kkgalax_readmem,kkgalax_writemem)
4771
4772   MDRV_GFXDECODE(gmgalax_gfxdecodeinfo)
4773
4774   MDRV_VIDEO_START(ckongs)
4775
4776MACHINE_DRIVER_END
4777
4778
46904779static MACHINE_DRIVER_START( hexpoola )
46914780
46924781   /* basic machine hardware */
r953r954
49285017   ROM_LOAD( "mmi6331.7f",   0x0000, 0x0020, CRC(24652bc4) SHA1(d89575f3749c75dc963317fe451ffeffd9856e4d) ) /* Compatible with 82s123 prom */
49295018ROM_END
49305019
5020/* was marked 'star fighter' but doesn't appear to be the above game */
5021ROM_START( galaxbsf )
5022   ROM_REGION( 0x10000, REGION_CPU1, 0 )
5023   ROM_LOAD( "1.bn",         0x0000, 0x0400, CRC(cc37b774) SHA1(5b7d9e3c896a1f5b0353732806568d4ffead3ead) )
5024   ROM_LOAD( "2.bn",         0x0400, 0x0400, CRC(c6d21f03) SHA1(64784915bf988fd2a3eea5f219c95c8498175018) )
5025   ROM_LOAD( "3.bn",         0x0800, 0x0400, CRC(30e28016) SHA1(07a621e5061d85a9559a920d76716ea4db61b674) )
5026   ROM_LOAD( "4.bn",         0x0c00, 0x0400, CRC(de7e7770) SHA1(b06043a1d898eb323ddabffd3d2a3b1f63df0e5e) )
5027   ROM_LOAD( "5.bn",         0x1000, 0x0400, CRC(a916c919) SHA1(b3e264ff92687022a0f2f551d5df36db848b48eb) )
5028   ROM_LOAD( "6.bn",         0x1400, 0x0400, CRC(9175882b) SHA1(d9943efcb9245af7f01aecc533a699bdefc7d283) )
5029   ROM_LOAD( "7.bn",         0x1800, 0x0400, CRC(1237b9da) SHA1(00e11532c599fca452a816683b361a24476b7100) )
5030   ROM_LOAD( "8.bn",         0x1c00, 0x0400, CRC(78c53607) SHA1(780acff57b594185eb5f4b24ae7d8b4992d96611) )
5031   ROM_LOAD( "9.bn",         0x2000, 0x0400, CRC(901894cc) SHA1(a189a8ab0068e9acc3be7b8e87adc1eadfd6b708) )
5032   ROM_LOAD( "10.bn",        0x2400, 0x0400, CRC(5876f695) SHA1(e8c0d13066cfe4a409293b9e1380513099b35330) )
5033
5034   ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
5035   ROM_LOAD( "11.bn",       0x0000, 0x0800, CRC(39fb43a4) SHA1(4755609bd974976f04855d51e08ec0d62ab4bc07) )
5036   ROM_LOAD( "12.bn",       0x0800, 0x0800, CRC(7e3f56a2) SHA1(a9795d8b7388f404f3b0e2c6ce15d713a4c5bafa) )
5037
5038   ROM_REGION( 0x0020, REGION_PROMS, 0 )
5039   ROM_LOAD( "6l.bpr",       0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
5040ROM_END
5041
5042
49315043ROM_START( tst_galx )
49325044   ROM_REGION( 0x10000, REGION_CPU1, 0 )
49335045   ROM_LOAD( "test.u",    0x0000, 0x0800, CRC(0614cd7f) SHA1(12440678be8a27a6c3032b6e43c45e27905ffa83) )   /*  The Test ROM */
r953r954
66956807   ROM_LOAD( "ck_cp.bin",     0x0000, 0x0020, CRC(7e0b79cb) SHA1(72ef3eb5f09e10c13dcf6fd568a6d16658055a16) )
66966808ROM_END
66976809
6810ROM_START( kkgalax )
6811   ROM_REGION( 0x10000, REGION_CPU1, 0 )
6812   ROM_LOAD( "kc1.bin",       0x0000, 0x0800, CRC(a87fc828) SHA1(f66b72427d8cdfabdf2274e22bdb10018ac7d2f9) )
6813   ROM_CONTINUE( 0x2000, 0x0800)
6814   ROM_LOAD( "kc2.bin",       0x0800, 0x0800, CRC(94a13dec) SHA1(d3bfd5a266bb1f0e66d847e15b51bdd4c9a15e37) )
6815   ROM_CONTINUE( 0x2800, 0x0800)
6816   ROM_LOAD( "kc3.bin",       0x1000, 0x0800, CRC(5efc6705) SHA1(9af59a9cb58599b1c7ce0a063929531f6c73b912) )
6817   ROM_CONTINUE( 0x3000, 0x0800)
6818   ROM_LOAD( "kc4.bin",       0x1800, 0x0800, CRC(ac917d66) SHA1(63a0db01bb93e052fec64fa69ebcbae3b0b8aa04) )
6819   ROM_CONTINUE( 0x3800, 0x0800)
6820   ROM_LOAD( "kc5.bin",       0x4000, 0x0800, CRC(5a9ee1ed) SHA1(1bc420a42a4931c389b4f8db451de7c59786dfbc) )
6821   ROM_LOAD( "kc6.bin",       0x4800, 0x0800, CRC(f787431e) SHA1(5cee497b8f4072509920d982470cbe06bd18f88b) )
6822   ROM_LOAD( "kc7.bin",       0x5000, 0x0800, CRC(7a185e31) SHA1(a257f32958af6b2c1c9007b46bd1dc984670b0d9) )
66986823
6824   ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
6825   ROM_LOAD( "kc8carat.bin",   0x0000, 0x1000, CRC(7866d2cb) SHA1(62dd8b80bc0459c7337d8a8cb83e53b999e7f4a9) )
6826   ROM_LOAD( "kc9carat.bin",   0x1000, 0x1000, CRC(7311a101) SHA1(49d54c8b94cae4ba81d7a7684eaa4e87815bb4da) )
6827
6828   ROM_REGION( 0x0020, REGION_PROMS, 0 ) // not in this set
6829   ROM_LOAD( "ck_cp.bin",     0x0000, 0x0020, CRC(7e0b79cb) SHA1(72ef3eb5f09e10c13dcf6fd568a6d16658055a16) )
6830ROM_END
6831
6832
66996833ROM_START( porter )
67006834   ROM_REGION( 0x10000, REGION_CPU1, 0 )
67016835   ROM_LOAD( "port1.bin",          0x0000, 0x0800, CRC(babaf7fe) SHA1(2138abf57990df9b6f9953efd3be9b2bede49520) )
r953r954
67276861GAME( 1979, galap1,   galaxian, galaxian, superg,   0,        ROT90,  "hack", "Space Invaders Galactica", GAME_SUPPORTS_SAVE )
67286862GAME( 1979, galap4,   galaxian, galaxian, superg,   0,        ROT90,  "hack", "Galaxian Part 4", GAME_SUPPORTS_SAVE )
67296863GAME( 1979, galturbo, galaxian, galaxian, superg,   0,        ROT90,  "hack", "Galaxian Turbo", GAME_SUPPORTS_SAVE )
6730GAME( 1979, swarm,    galaxian, galaxian, swarm,    0,        ROT90,  "hack", "Swarm", GAME_SUPPORTS_SAVE )
6864GAME( 1979, swarm,    galaxian, galaxian, swarm,    0,        ROT90,  "[Namco] (Sub-Electro bootleg)", "Swarm (hack of Galaxian)", GAME_SUPPORTS_SAVE )
67316865GAME( 1979, zerotime, galaxian, galaxian, zerotime, 0,        ROT90,  "Petaco S.A.", "Zero Time", GAME_SUPPORTS_SAVE )
6732GAME( 1979, starfght, galaxian, galaxian, swarm,    0,        ROT90,  "Jeutel", "Star Fighter", GAME_SUPPORTS_SAVE )
6866GAME( 1979, starfght, galaxian, galaxian, swarm,    0,        ROT90,  "Jeutel", "Star Fighter (bootleg of Galaxian)", GAME_SUPPORTS_SAVE )
6867GAME( 1979, galaxbsf, galaxian, galaxian, galaxian, 0,        ROT90,  "bootleg", "Galaxian (bootleg)", GAME_SUPPORTS_SAVE )
67336868GAME( 19??, tst_galx, galaxian, galaxian, galaxian, 0,        ROT90,  "Test ROM", "Galaxian Test ROM", GAME_SUPPORTS_SAVE )
67346869GAME( 1981, gmgalax,  0,        gmgalax,  gmgalax,  gmgalax,  ROT90,  "bootleg", "Ghostmuncher Galaxian (bootleg)", GAME_SUPPORTS_SAVE )
67356870GAME( 19??, pisces,   0,        pisces,   pisces,   pisces,   ROT90,  "Subelectro", "Pisces", GAME_SUPPORTS_SAVE )
r953r954
68136948GAME( 1980, luctoday, 0,        galaxian, luctoday, 0,        ROT270, "Sigma", "Lucky Today",GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
68146949GAME( 19??, chewing,  0,        galaxian, luctoday, 0,        ROT90,  "unknown", "Chewing Gum", GAME_SUPPORTS_SAVE )
68156950GAME( 1982, catacomb, 0,        galaxian, catacomb, 0,        ROT90,  "MTM Games", "Catacomb", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
6816GAME( 1981, ckongg,   0,        ckongg  , ckongg,   0,        ROT90,  "bootleg", "Crazy Kong (galaxian)", GAME_SUPPORTS_SAVE )
6951GAME( 1981, ckongg,   0,        ckongg,   ckongg,   0,        ROT90,  "bootleg", "Crazy Kong (bootleg on Galaxian hardware, set 1)", GAME_SUPPORTS_SAVE )
6952GAME( 1981, kkgalax,  ckongg,   kkgalax,  kkgalax,  0,        ROT90,  "bootleg", "Crazy Kong (bootleg on Galaxian hardware, set 2)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
68176953GAME( 19??, porter,   0,        mooncrst, porter,   0,        ROT90,  "[Nova Games Ltd.] (bootleg)", "Port Man (bootleg on Moon Cresta hardware)", GAME_IMPERFECT_GRAPHICS ) // missing GFX bank switch!
src/mame/drivers/scramble.c
r953r954
197197ADDRESS_MAP_END
198198
199199
200static ADDRESS_MAP_START( turpins_readmem, ADDRESS_SPACE_PROGRAM, 8 )
201   AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_ROM)
202   AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM)
203   AM_RANGE(0x9000, 0x93ff) AM_READ(MRA8_RAM)
204   AM_RANGE(0x9400, 0x97ff) AM_READ(galaxian_videoram_r)
205   AM_RANGE(0x9800, 0x98ff) AM_READ(MRA8_RAM)
206
207   AM_RANGE(0xa000, 0xa000) AM_READ(input_port_0_r)
208   AM_RANGE(0xa001, 0xa001) AM_READ(input_port_1_r)
209   AM_RANGE(0xa002, 0xa002) AM_READ(input_port_2_r)
210
211   AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r)
212//  AM_RANGE(0x8100, 0x8103) AM_READ(ppi8255_0_r)
213//  AM_RANGE(0x8200, 0x8203) AM_READ(ppi8255_1_r)
214
215   AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_RAM)
216ADDRESS_MAP_END
217
218static ADDRESS_MAP_START( turpins_writemem, ADDRESS_SPACE_PROGRAM, 8 )
219   AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM)
220   AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM)
221   AM_RANGE(0x9000, 0x93ff) AM_WRITE(galaxian_videoram_w) AM_BASE(&galaxian_videoram)
222   AM_RANGE(0x9400, 0x97ff) AM_WRITE(galaxian_videoram_w)
223   AM_RANGE(0x9800, 0x983f) AM_WRITE(galaxian_attributesram_w) AM_BASE(&galaxian_attributesram)
224   AM_RANGE(0x9840, 0x985f) AM_WRITE(MWA8_RAM) AM_BASE(&galaxian_spriteram) AM_SIZE(&galaxian_spriteram_size)
225   AM_RANGE(0x9860, 0x987f) AM_WRITE(MWA8_RAM) AM_BASE(&galaxian_bulletsram) AM_SIZE(&galaxian_bulletsram_size)
226   AM_RANGE(0x9880, 0x98ff) AM_WRITE(MWA8_RAM)
227
228   AM_RANGE(0xa801, 0xa801) AM_WRITE(galaxian_nmi_enable_w)
229   AM_RANGE(0xa802, 0xa802) AM_WRITE(galaxian_coin_counter_w)
230   AM_RANGE(0xa804, 0xa804) AM_WRITE(galaxian_stars_enable_w)
231   AM_RANGE(0xa806, 0xa806) AM_WRITE(galaxian_flip_screen_x_w)
232   AM_RANGE(0xa807, 0xa807) AM_WRITE(galaxian_flip_screen_y_w)
233   /* don't know where these are */
234//  AM_RANGE(0x8100, 0x8103) AM_WRITE(ppi8255_0_w)
235//  AM_RANGE(0x8200, 0x8203) AM_WRITE(ppi8255_1_w)
236ADDRESS_MAP_END
237
200238static ADDRESS_MAP_START( explorer_readmem, ADDRESS_SPACE_PROGRAM, 8 )
201239   AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM)
202240   AM_RANGE(0x4000, 0x4bff) AM_READ(MRA8_RAM)
r953r954
10281066   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
10291067INPUT_PORTS_END
10301068
1069
1070INPUT_PORTS_START( turpins )
1071   PORT_START_TAG("IN0")
1072   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
1073   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably space for button 2 */
1074   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
1075   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
1076   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
1077   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
1078   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
1079   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1080
1081   PORT_START_TAG("IN1")
1082   PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
1083   PORT_DIPSETTING(    0x00, "3" )
1084   PORT_DIPSETTING(    0x01, "4" )
1085   PORT_DIPSETTING(    0x02, "5" )
1086   PORT_DIPSETTING(    0x03, "126 (Cheat)")
1087   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably space for player 2 button 2 */
1088   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
1089   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
1090   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
1091   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
1092   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
1093
1094   PORT_START_TAG("IN2")
1095   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
1096   PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) )
1097   PORT_DIPSETTING(    0x00, "A 1/1 B 2/1 C 1/1" )
1098   PORT_DIPSETTING(    0x02, "A 1/2 B 1/1 C 1/2" )
1099   PORT_DIPSETTING(    0x04, "A 1/3 B 3/1 C 1/3" )
1100   PORT_DIPSETTING(    0x06, "A 1/4 B 4/1 C 1/4" )
1101   PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
1102   PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
1103   PORT_DIPSETTING(    0x08, DEF_STR( Cocktail ) )
1104   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
1105   PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
1106   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1107   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1108   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
1109   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
1110   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1111   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1112INPUT_PORTS_END
1113
10311114INPUT_PORTS_START( triplep )
10321115   PORT_START_TAG("IN0")
10331116   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
r953r954
24792562   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
24802563MACHINE_DRIVER_END
24812564
2565static MACHINE_DRIVER_START( turpins )
2566
2567   /* basic machine hardware */
2568   MDRV_IMPORT_FROM(scramble)
2569   MDRV_CPU_MODIFY("main")
2570   MDRV_CPU_PROGRAM_MAP(turpins_readmem,turpins_writemem)
2571MACHINE_DRIVER_END
2572
24822573/***************************************************************************
24832574
24842575  Game driver(s)
r953r954
26862777   ROM_LOAD( "pr-91.6l",     0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) )
26872778ROM_END
26882779
2780
2781
26892782ROM_START( frogf )
26902783   ROM_REGION( 0x10000, REGION_CPU1, 0 )
26912784   ROM_LOAD( "6.bin",        0x0000, 0x1000, CRC(8ff0a973) SHA1(adb1c28617d915fbcfa9190bd8589a56a8858e25) )
r953r954
33263419ROM_END
33273420
33283421
3422ROM_START( turpins )
3423   ROM_REGION( 0x10000, REGION_CPU1, 0 )
3424   ROM_LOAD( "t1.bin",   0x0000, 0x1000, CRC(89dd50cc) SHA1(90e18f71324056a63272a02cabb0a6fe2a96dd0d) )
3425   ROM_LOAD( "t3.bin",   0x1000, 0x1000, CRC(9562dc29) SHA1(e4fe51176e554d159342f2ba6ff6886723df0ec4) )
3426   ROM_LOAD( "t4.bin",   0x2000, 0x1000, CRC(62291652) SHA1(82965d3e9608afde4ff06cba1d7a4b11cd904c11) )
3427   ROM_LOAD( "t5.bin",   0x3000, 0x1000, CRC(804118e8) SHA1(6f733d0f688df73e36bac6635aa9e9163fbae141) )
3428   ROM_LOAD( "t2.bin",   0x4000, 0x1000, CRC(8024f678) SHA1(3285f64ad55b3f4131d70e027751d587313c18ac) )
3429
3430   ROM_REGION( 0x10000, REGION_CPU2, 0 )
3431   ROM_LOAD( "8tur.bin",  0x0000, 0x1000, CRC(c97ed8ab) SHA1(675e464eff7b2fa4a5c909d807a454440e7c96c9) )
3432   ROM_LOAD( "5tur.bin",  0x1000, 0x1000, CRC(af5fc43c) SHA1(8a49c55feba094b07380615cf0b6f0878c25a260) )
3433
3434   ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
3435   ROM_LOAD( "tur.4f",  0x0000, 0x0800, CRC(e5999d52) SHA1(bc3f52cf6c6e19dfd2dacd1e8c9128f437e995fc) )
3436   ROM_LOAD( "tur.5f",  0x0800, 0x0800, CRC(c3ffd655) SHA1(dee51d77be262a2944488e381541c10a2b6e5d83) )
3437
3438   ROM_REGION( 0x0020, REGION_PROMS, 0 ) // missing, but the original hw is so close to scramble that the original prom works
3439   ROM_LOAD( "turtles.clr",     0x0000, 0x0020, CRC(f3ef02dd) SHA1(09fd795170d7d30f101d579f57553da5ff3800ab) )
3440ROM_END
3441
33293442GAME( 1981, scramble, 0,        fscramble,scramble, scramble,     ROT90, "Konami", "Scramble", GAME_SUPPORTS_SAVE )
33303443GAME( 1981, scrambls, scramble, fscramble,scramble, scrambls,     ROT90, "[Konami] (Stern license)", "Scramble (Stern)", GAME_SUPPORTS_SAVE )
33313444GAME( 1981, explorer, scramble, explorer, explorer, 0,            ROT90, "bootleg", "Explorer", GAME_SUPPORTS_SAVE )
r953r954
33623475GAME( 1982, scrpiona, scorpion, scorpion, scorpion, scorpion,     ROT90, "Zaccaria", "Scorpion (set 2)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
33633476GAME( 1982, scrpionb, scorpion, scorpion, scorpion, scorpion,     ROT90, "Zaccaria", "Scorpion (set 3)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
33643477GAME( 1983, ad2083,   0,        ad2083,   ad2083,   ad2083,       ROT90, "Midcoin", "A. D. 2083", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
3478GAME( 1981, turpins,  turtles,  turpins,  turpins,  0,            ROT90, "[Sega] (bootleg)", "Turpin (bootleg on Scramble hardware)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // haven't hooked up the sound CPU yet
src/mame/drivers/opwolf.c
r953r954
680680   ROM_LOAD( "b20-08.21",  0x00000, 0x80000, CRC(f3e19c64) SHA1(39d48645f776c9c2ade537d959ecc6f9dc6dfa1b) )
681681ROM_END
682682
683/* I don't know what this set changes.  There is a single byte changed near the end of the roms, just after the
684   copyright strings, however, it is not the region byte.  This set came from a 100% legitimate Taito PCB with
685   original labels.  It would be easy just to write this off as a bad read / hacked rom but the bootleg version
686   has exactly the same change and the label is different (b20-17 instead of b20-20) so this seems unlikely */
687
688ROM_START( opwolfa )
689   ROM_REGION( 0x40000, REGION_CPU1, 0 )     /* 256k for 68000 code */
690   ROM_LOAD16_BYTE( "b20-05-02.40",  0x00000, 0x10000, CRC(3ffbfe3a) SHA1(e41257e6af18bab4e36267a0c25a6aaa742972d2) )
691   ROM_LOAD16_BYTE( "b20-03-02.30",  0x00001, 0x10000, CRC(fdabd8a5) SHA1(866ec6168489024b8d157f2d5b1553d7f6e3d9b7) )
692   ROM_LOAD16_BYTE( "b20-04.39",     0x20000, 0x10000, CRC(216b4838) SHA1(2851cae00bb3e32e20f35fdab8ed6f149e658363) )
693   ROM_LOAD16_BYTE( "b20-17",        0x20001, 0x10000, CRC(6043188e) SHA1(3a6f4836b1c19d37713f5714a947276baf1df50c) )
694
695   ROM_REGION( 0x20000, REGION_CPU2, 0 )      /* sound cpu */
696   ROM_LOAD( "b20-07.10",  0x00000, 0x04000, CRC(45c7ace3) SHA1(06f7393f6b973b7735c27e8380cb4148650cfc16) )
697   ROM_CONTINUE(           0x10000, 0x0c000 ) /* banked stuff */
698
699   ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
700   ROM_LOAD( "b20-13.13",  0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) )   /* SCR tiles (8 x 8) */
701
702   ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
703   ROM_LOAD( "b20-14.72",  0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) )   /* Sprites (16 x 16) */
704
705   ROM_REGION( 0x80000, REGION_SOUND1, 0 )   /* ADPCM samples */
706   ROM_LOAD( "b20-08.21",  0x00000, 0x80000, CRC(f3e19c64) SHA1(39d48645f776c9c2ade537d959ecc6f9dc6dfa1b) )
707ROM_END
708
709
683710ROM_START( opwolfu )
684711   ROM_REGION( 0x40000, REGION_CPU1, 0 )     /* 256k for 68000 code */
685712   ROM_LOAD16_BYTE( "b20-05-02.40",  0x00000, 0x10000, CRC(3ffbfe3a) SHA1(e41257e6af18bab4e36267a0c25a6aaa742972d2) )
r953r954
778805
779806
780807/*    year  rom       parent    machine   inp       init */
781GAME( 1987, opwolf,   0,        opwolf,   opwolf,   opwolf,   ROT0, "Taito Corporation Japan", "Operation Wolf (World)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
808GAME( 1987, opwolf,   0,        opwolf,   opwolf,   opwolf,   ROT0, "Taito Corporation Japan", "Operation Wolf (World, set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
809GAME( 1987, opwolfa,  opwolf,   opwolf,   opwolf,   opwolf,   ROT0, "Taito Corporation Japan", "Operation Wolf (World, set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
782810GAME( 1987, opwolfu,  opwolf,   opwolf,   opwolfu,  opwolf,   ROT0, "Taito America Corporation", "Operation Wolf (US)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
783GAME( 1987, opwolfb,  opwolf,   opwolfb,  opwolfb,  opwolfb,  ROT0, "bootleg", "Operation Bear", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
811GAME( 1987, opwolfb,  opwolf,   opwolfb,  opwolfb,  opwolfb,  ROT0, "[Taito] (Bear Corporation Korea bootleg)", "Operation Bear (bootleg of Operation Wolf)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
src/mame/drivers/shadfrce.c
r953r954
171171                ---------x------    DIP 1-8   ("Test Mode")
172172                ----------x-----    vblank?
173173                -----------x----    unused
174                ------------x---    unused
174                ------------x---    unknown
175175                -------------x--    unused
176176                --------------x-    unused
177177                ---------------x    unused
r953r954
199199         data = (readinputport(2) & 0xff) | ((readinputport(6) & 0x3f) << 8);
200200         break;
201201      case 3 :
202         data = (readinputport(3) & 0xff) | ((readinputport(6) & 0xc0) << 2) | ((readinputport(5) & 0x0c) << 8);
202         data = (readinputport(3) & 0xff) | ((readinputport(6) & 0xc0) << 2) | ((readinputport(5) & 0x3c) << 8);
203203         break;
204204   }
205205
r953r954
343343
344344   PORT_START   /* Fake IN4 (system inputs) */
345345   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
346   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )         // Only in "test mode" ?
347   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )         // Only in "test mode" ?
346   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )                   /* only in "test mode" ? */
347   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )                /* only in "test mode" ? */
348348   PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED )
349349
350350   PORT_START   /* Fake IN5 (misc) */
351   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_VBLANK )   /* guess */
352   PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
351   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_VBLANK )                  /* guess */
352   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )                 /* must be ACTIVE_LOW or 'shadfrcj' jumps to the end (code at 0x04902e) */
353   PORT_BIT( 0xec, IP_ACTIVE_LOW, IPT_UNUSED )
353354
354355   PORT_START   /* Fake IN6 (DIP1) */
355356   PORT_DIPNAME( 0x01, 0x01, "Unused DIP 1-1" )
r953r954
360361   PORT_DIPSETTING(    0x02, DEF_STR( 2C_1C ) )
361362   PORT_DIPSETTING(    0x06, DEF_STR( 1C_1C ) )
362363   PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ) )
363   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Continue_Price ) )         // What does that mean ?
364   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Continue_Price ) )
364365   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
365366   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
366367   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play ) )
r953r954
378379   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )
379380   PORT_DIPSETTING(    0x01, DEF_STR( Easy ) )
380381   PORT_DIPSETTING(    0x03, DEF_STR( Normal ) )
381   PORT_DIPSETTING(    0x02, DEF_STR( Hard ) )               // "Advanced"
382   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )            // "Expert"
382   PORT_DIPSETTING(    0x02, DEF_STR( Hard ) )                  /* "Advanced" */
383   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )               /* "Expert" */
383384   PORT_DIPNAME( 0x0c, 0x0c, "Stage Clear Energy Regain" )
384385   PORT_DIPSETTING(    0x04, "50%" )
385386   PORT_DIPSETTING(    0x0c, "25%" )
r953r954
403404   PORT_START   /* IN0 - $1d0020.w */
404405   SHADFRCE_PLAYER_INPUT( 1, IPT_START1 )
405406   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
406   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )         // Only in "test mode" ?
407   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 )         // Only in "test mode" ?
407   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )                 /* only in "test mode" ? */
408   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 )              /* only in "test mode" ? */
408409   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
409410   PORT_DIPNAME( 0x1000, 0x1000, "Unused DIP 2-7" )
410411   PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
r953r954
420421   PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) )
421422   PORT_DIPSETTING(      0x0100, DEF_STR( Easy ) )
422423   PORT_DIPSETTING(      0x0300, DEF_STR( Normal ) )
423   PORT_DIPSETTING(      0x0200, DEF_STR( Hard ) )            // "Advanced"
424   PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )            // "Expert"
424   PORT_DIPSETTING(      0x0200, DEF_STR( Hard ) )              /* "Advanced" */
425   PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )           /* "Expert" */
425426   PORT_DIPNAME( 0x0c00, 0x0c00, "Stage Clear Energy Regain" )
426427   PORT_DIPSETTING(      0x0400, "50%" )
427428   PORT_DIPSETTING(      0x0c00, "25%" )
r953r954
453454   PORT_DIPSETTING(      0x0200, DEF_STR( 2C_1C ) )
454455   PORT_DIPSETTING(      0x0600, DEF_STR( 1C_1C ) )
455456   PORT_DIPSETTING(      0x0400, DEF_STR( 1C_2C ) )
456   PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Continue_Price ) )      // What does that mean ?
457   PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Continue_Price ) )
457458   PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
458459   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
459460   PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Free_Play ) )
r953r954
478479   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
479480   PORT_DIPSETTING(      0x0100, DEF_STR( On ) )
480481   PORT_SERVICE( 0x0200, IP_ACTIVE_LOW )
481   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_VBLANK )   /* guess */
482   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_VBLANK )                /* guess */
482483   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
483   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNUSED )
484   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )               /* must be ACTIVE_LOW or 'shadfrcj' jumps to the end (code at 0x04902e) */
484485   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED )
485486   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
486487   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
src/mame/drivers/srmp6.c
r953r954
22    Super Real Mahjong P6 (JPN Ver.)
33    (c)1996 Seta
44
5WIP driver by Sebastien Volpe
5WIP driver by Sebastien Volpe, Tomasz Slanina and David Haywood
66
7Emulation Notes:
8The graphics are compressed, using the same 8bpp RLE scheme as CPS3 uses
9for the background on Sean's stage of Street Fighter III.
10
11DMA Operations are not fully understood
12
13
714according prg ROM (offset $0fff80):
815
916    S12 SYSTEM
r953r954
1320    V1.00
1421
1522TODO:
16 - gfx decoding / emulation
1723 - sound emulation (appears to be really close to st0016)
24 - fix DMA operations
25 - fix video emulation
1826
1927Are there other games on this 'System S12' hardware ???
2028
r953r954
5462
5563
5664Dumped 06/15/2000
65
5766*/
5867
5968
6069#include "driver.h"
6170
71static UINT16* tileram;
72static UINT8* dirty_tileram;
73static UINT16* dmaram;
6274
63/***************************************************************************
64    video - VERY preliminary
65***************************************************************************/
75static UINT16 *sprram;
6676
67VIDEO_START(srmp6)
77#define SRMP6_VERBOSE 0
78
79static const gfx_layout tiles8x8_layout =
6880{
69}
81   8,8,
82   (0x100000*16)/0x40,
83   8,
84   { 0,1,2,3,4,5,6,7 },
85   { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 },
86   { 0*64,1*64,2*64,3*64,4*64,5*64,6*64,7*64 },
87   8*64
88};
7089
71/* sprite RAM format: 8 words, 1st word = 0x8000 means end of list
7290
73Offset:         Format:                     Value:
91static VIDEO_START(srmp6)
92{
93   /* create the char set (gfx will then be updated dynamically from RAM) */
94   machine->gfx[0] = allocgfx(&tiles8x8_layout);
95   machine->gfx[0]->total_colors = machine->drv->total_colors / 256;
96   machine->gfx[0]->color_granularity=256;
7497
750000.w
76                    f--- ---- ---- ----     End of list
77                    -??? ???? ???? ???-
78                    ---- ---- ---- ---0     Sprite visible?
98   tileram = auto_malloc(0x100000*16);
99   dirty_tileram = auto_malloc((0x100000*16)/0x40); // every 8x8x8 tile is 0x40 bytes
79100
800002.w                                      Code
810004.w                                      X Position
820006.w                                      Y Position
101   memset(tileram,(0x100000*16),0x00);
102   memset(dirty_tileram,(0x100000*16)/0x40,1);
83103
840008.w                                      attributes/color?
85000a.w                                      attributes/color?
104   dmaram = auto_malloc(0x100);
105}
86106
87000c.l                                      used ?
107/* Debug code */
108static void srmp6_decode_charram(void)
109{
110   if(input_code_pressed_once(KEYCODE_Z))
111   {
112      int i;
113      for (i=0;i<(0x100000*16)/0x40;i++)
114      {
115         decodechar(Machine->gfx[0], i, (UINT8*)tileram, &tiles8x8_layout);
116         dirty_tileram[i] = 0;
117      }
118   }
119}
88120
89cpu #0 (PC=00011B2A): unmapped program memory word write to 00400490 = 0001 & FFFF - sprite visible ?
90cpu #0 (PC=00011B2E): unmapped program memory word write to 00400492 = 0233 & FFFF - code
91cpu #0 (PC=00011B32): unmapped program memory word write to 00400494 = 00D8 & FFFF - x
92cpu #0 (PC=00011B36): unmapped program memory word write to 00400496 = 0080 & FFFF - y
93cpu #0 (PC=00011B3A): unmapped program memory word write to 00400498 = E000 & FFFF - attributes/color?
94cpu #0 (PC=00011B3E): unmapped program memory word write to 0040049A = 0000 & FFFF - attributes/color?
95cpu #0 (PC=00011B40): unmapped program memory word write to 0040049C = 0000 & FFFF -\
96cpu #0 (PC=00011B40): unmapped program memory word write to 0040049E = 0000 & FFFF -/ used ?
121#if 0
122static int xixi=0;
123#endif
97124
98cpu #0 (PC=00011B4E): unmapped program memory word write to 004004B0 = 8000 & FFFF - end of list
99*/
125static VIDEO_UPDATE(srmp6)
126{
127   int x,y,tileno,height,width,xw,yw,sprite,xb,yb;
128   UINT16 *sprite_list=sprram;
129   UINT16 mainlist_offset = 0;
100130
101/* tile RAM format: where's color ?
131   union
132   {
133      INT16  a;
134      UINT16 b;
135   } temp;
102136
103cpu #0 (PC=000118E8): unmapped program memory word write to 00412002 = 0005 & FFFF - kind of init, interleaved with 'meaningful' words
104cpu #0 (PC=000118EE): unmapped program memory word write to 00412008 = 0000 & FFFF
105cpu #0 (PC=000118F4): unmapped program memory word write to 0041200A = 0000 & FFFF
106...
107cpu #0 (PC=000118E8): unmapped program memory word write to 00416EB2 = 0005 & FFFF
108cpu #0 (PC=000118EE): unmapped program memory word write to 00416EB8 = 0000 & FFFF
109cpu #0 (PC=000118F4): unmapped program memory word write to 00416EBA = 0000 & FFFF
137   fillbitmap(bitmap,0,&machine->screen[0].visarea);
110138
139#if 0
140   /* debug */
141   srmp6_decode_charram();
111142
112cpu #0 (PC=0001170A): unmapped program memory word write to 00412000 = 4004 & FFFF
113cpu #0 (PC=00011712): unmapped program memory word write to 00412004 = 0000 & FFFF
114cpu #0 (PC=0001171A): unmapped program memory word write to 00412006 = 0000 & FFFF
115...
116cpu #0 (PC=0001170A): unmapped program memory word write to 004133A0 = 4004 & FFFF - tile code [*]
117cpu #0 (PC=00011712): unmapped program memory word write to 004133A4 = 0140 & FFFF - x (00..140, step 16d) -> res = 320d
118cpu #0 (PC=0001171A): unmapped program memory word write to 004133A6 = 00E0 & FFFF - y (00..F0, step 16d)  -> res = 240d
119143
120[*] tile code is 'incremented by 4', suggesting there are 4 8x8 tiles arranged to make a 16x16 one ???
121*/
122144
123VIDEO_UPDATE(srmp6)
124{
125   const UINT16 *source = spriteram16;
126   const UINT16 *finish = source+spriteram_size/2;
127   const gfx_element *gfx = machine->gfx[0];
145   /* debug */
146   if(input_code_pressed_once(KEYCODE_Q))
147   {
148      ++xixi;
149      printf("%x\n",xixi);
150   }
128151
129   fillbitmap(bitmap, get_black_pen(machine), cliprect);
152   if(input_code_pressed_once(KEYCODE_W))
153   {
154      --xixi;
155      printf("%x\n",xixi);
156   }
157#endif
130158
131   // parse sprite list
132   while( source<finish )
159   /* Main spritelist is 0x0000 - 0x1fff in spriteram, sublists follow */
160   while (mainlist_offset<0x2000/2)
133161   {
134      int num  = source[1];
135      int xpos = source[2];
136      int ypos = source[3];
137      int color = 0;
138      int flipx = 0;
139      int flipy = 0;
140162
141      if (source[0]&0x8000) break;   // end of list
163      UINT16 *sprite_sublist=&sprram[sprite_list[mainlist_offset+1]<<3];
164      UINT16 sublist_length=sprite_list[mainlist_offset+0]&0x7fff; //+1 ?
165      INT16 global_x,global_y;
166      UINT16 global_pal;
142167
143      drawgfx(
144            bitmap,
145            gfx,
146            num,
147            color,
148            flipx,flipy,
149            xpos,ypos,
150            cliprect,
151            TRANSPARENCY_PEN,0
152            );
168      /* end of list marker */
169      if (sprite_list[mainlist_offset+0] == 0x8000)
170         return 0;
153171
154      source += 0x8;
172
173      if(sprite_list[mainlist_offset+0]!=0)
174      {
175         temp.b=sprite_list[mainlist_offset+2];
176         global_x=temp.a;
177         temp.b=sprite_list[mainlist_offset+3];
178         global_y=temp.a;
179
180         global_pal = sprite_list[mainlist_offset+4] & 0xf;
181
182   //  printf("%x %x \n",sprite_list[mainlist_offset+1],sublist_length);
183
184         while(sublist_length)
185         {
186            sprite=sprite_sublist[0]&0x3fff;
187            temp.b=sprite_sublist[2];
188            x=temp.a;
189            temp.b=sprite_sublist[3];
190            y=temp.a;
191            x+=global_x;
192            y+=global_y;
193
194            width=((sprite_sublist[1])&0x3);
195            height=((sprite_sublist[1]>>2)&0x3);
196
197            height = 1 << height;
198            width = 1 << width;
199
200            tileno = sprite&0x3fff;
201            //tileno += (sprite_list[4]&0xf)*0x4000; // this makes things worse in places (title screen for example)
202
203            for(xw=0;xw<width;xw++)
204            {
205               for(yw=0;yw<height;yw++)
206               {
207
208                  xb=x+xw*8;
209                  yb=y+yw*8;
210
211                  if (dirty_tileram[tileno])
212                  {
213                     decodechar(Machine->gfx[0], tileno, (UINT8*)tileram, &tiles8x8_layout);
214                     dirty_tileram[tileno] = 0;
215                  }
216
217                  drawgfx(bitmap,machine->gfx[0],tileno,global_pal,0,0,xb,yb,cliprect,TRANSPARENCY_PEN,0);
218                  tileno++;
219                }
220            }
221
222            sprite_sublist+=8;
223            --sublist_length;
224         }
225      }
226      mainlist_offset+=8;
155227   }
228
156229   return 0;
157230}
158231
r953r954
203276
204277static UINT16 srmp6_input_select = 0;
205278
206WRITE16_HANDLER( srmp6_input_select_w )
279static WRITE16_HANDLER( srmp6_input_select_w )
207280{
208281   srmp6_input_select = data & 0x0f;
209282}
210283
211READ16_HANDLER( srmp6_inputs_r )
284static READ16_HANDLER( srmp6_inputs_r )
212285{
213286   if (offset == 0)         // DSW
214287      return readinputport(4);
r953r954
227300
228301static UINT16 *video_regs;
229302
230WRITE16_HANDLER( video_regs_w )
303static WRITE16_HANDLER( video_regs_w )
231304{
232305   switch(offset)
233306   {
234307
235308      case 0x5e/2: // bank switch, used by ROM check
309#if SRMP6_VERBOSE
310         printf("%x\n",data);
311#endif
312
236313         memory_set_bankptr(1,(UINT16 *)(memory_region(REGION_USER2) + (data & 0x0f)*0x200000));
237314         break;
238315
r953r954
257334   COMBINE_DATA(&video_regs[offset]);
258335}
259336
260READ16_HANDLER( video_regs_r )
337static READ16_HANDLER( video_regs_r )
261338{
262339   logerror("video_regs_r (PC=%06X): %04x\n", activecpu_get_previouspc(), offset*2);
263340   return video_regs[offset];
264341}
265342
266343
344/* DMA RLE stuff - the same as CPS3 */
345static unsigned short lastb;
346static unsigned short lastb2;
347static int destl;
348
349static UINT32 process(UINT8 b,UINT32 dst_offset)
350{
351
352    int l=0;
353
354    UINT8 *tram=(UINT8*)tileram;
355
356    if(lastb==lastb2)   //rle
357    {
358      int i;
359       int rle=(b+1)&0xff;
360
361       for(i=0;i<rle;++i)
362       {
363         tram[dst_offset+destl] = lastb;
364         dirty_tileram[(dst_offset+destl)/0x40] = 1;
365
366         dst_offset++;
367          ++l;
368       }
369       lastb2=0xffff;
370
371       return l;
372    }
373    else
374    {
375       lastb2=lastb;
376       lastb=b;
377      tram[dst_offset+destl] = b;
378      dirty_tileram[(dst_offset+destl)/0x40] = 1;
379
380       return 1;
381    }
382 }
383
384
385static WRITE16_HANDLER(srmp6_dma_w)
386{
387   COMBINE_DATA(&dmaram[offset]);
388   if(offset==13 && dmaram[offset]==0x40)
389   {
390      UINT32 srctab=2*((((UINT32)dmaram[5])<<16)|dmaram[4]);
391      UINT32 srcdata=2*((((UINT32)dmaram[11])<<16)|dmaram[10]);
392      UINT32 len=(((((UINT32)dmaram[7])<<16)|dmaram[6])+1); //??? WRONG!
393      int tempidx=0;
394
395      /* show params */
396#if SRMP6_VERBOSE
397      printf("DMA! %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x\n",
398            dmaram[0x00/2],
399            dmaram[0x02/2],
400            dmaram[0x04/2],
401            dmaram[0x06/2],
402            dmaram[0x08/2],
403            dmaram[0x0a/2],
404            dmaram[0x0c/2],
405            dmaram[0x0e/2],
406            dmaram[0x10/2],
407            dmaram[0x12/2],
408            dmaram[0x14/2],
409            dmaram[0x16/2],
410            dmaram[0x18/2],
411            dmaram[0x1a/2]);
412#endif
413
414      destl=dmaram[9]*0x100000;
415
416      lastb=0xfffe;
417      lastb2=0xffff;
418
419      while(1)
420      {
421         int i;
422         UINT8 ctrl=memory_region(REGION_USER2)[srcdata];
423          ++srcdata;
424
425         for(i=0;i<8;++i)
426         {
427            UINT8 p=memory_region(REGION_USER2)[srcdata];
428
429            if(ctrl&0x80)
430            {
431               UINT8 real_byte;
432               p&=0x7f;
433               real_byte = memory_region(REGION_USER2)[srctab+p*2];
434               tempidx+=process(real_byte,tempidx);
435               real_byte = memory_region(REGION_USER2)[srctab+p*2+1];//px[DMA_XOR((current_table_address+p*2+1))];
436               tempidx+=process(real_byte,tempidx);
437             }
438             else
439             {
440                tempidx+=process(p,tempidx);
441             }
442
443             ctrl<<=1;
444             ++srcdata;
445
446
447            if(tempidx>=len)
448            {
449#if SRMP6_VERBOSE
450               printf("%x\n",srcdata);
451#endif
452               return;
453            }
454          }
455      }
456   }
457}
458
459/* if tileram is actually bigger than the mapped area, how do we access the rest? */
460static READ16_HANDLER(tileram_r)
461{
462//  return tileram[offset];
463   return 0x0000;
464}
465
466static WRITE16_HANDLER(tileram_w)
467{
468   //UINT16 tmp;
469//  COMBINE_DATA(&tileram[offset]);
470
471   /* are the DMA registers enabled some other way, or always mapped here, over RAM? */
472   if (offset >= 0xfff00/2 && offset <= 0xfff1a/2 )
473   {
474      offset &=0x1f;
475      srmp6_dma_w(offset,data,mem_mask);
476   }
477}
267478static ADDRESS_MAP_START( srmp6, ADDRESS_SPACE_PROGRAM, 16 )
268479   AM_RANGE(0x000000, 0x0fffff) AM_ROM
269480   AM_RANGE(0x200000, 0x23ffff) AM_RAM               // work RAM
r953r954
275486   AM_RANGE(0x4d0000, 0x4d0001) AM_READWRITE(watchdog_reset16_r, watchdog_reset16_w)   // watchdog
276487
277488   // OBJ RAM: checked [$400000-$47dfff]
278   AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)   // 512 sprites
279   AM_RANGE(0x402000, 0x47dfff) AM_RAM // tiles? layout is different from sprites
280//  AM_RANGE(0x402000, 0x40200f) AM_RAM // set by routine $11c48
281//  AM_RANGE(0x402010, 0x40806f) AM_RAM // set by routine $11bf6 - 2nd sprite RAM maybe ?
282//  AM_RANGE(0x412000, 0x416ebf) AM_RAM // probably larger
489   AM_RANGE(0x400000, 0x47ffff) AM_RAM AM_BASE(&sprram)
283490
284491   // CHR RAM: checked [$500000-$5fffff]
285   AM_RANGE(0x500000, 0x5fffff) AM_RAM
286//  AM_RANGE(0x500000, 0x505cff) AM_RAM
287//  AM_RANGE(0x505d00, 0x5fffff) AM_RAM
492   AM_RANGE(0x500000, 0x5fffff) AM_READWRITE(tileram_r,tileram_w)//AM_RAM AM_BASE(&tileram)
493//  AM_RANGE(0x5fff00, 0x5fffff) AM_WRITE(dma_w) AM_BASE(&dmaram)
288494
289495   AM_RANGE(0x4c0000, 0x4c006f) AM_READWRITE(video_regs_r, video_regs_w) AM_BASE(&video_regs)   // ? gfx regs ST-0026 NiLe
290496//  AM_RANGE(0x4e0000, 0x4e00ff) AM_READWRITE(sound_regs_r, sound_regs_w) AM_BASE(&sound_regs)  // ? sound regs (data) ST-0026 NiLe
r953r954
292498//  AM_RANGE(0x4e0110, 0x4e0111) AM_NOP // ? accessed once ($268dc, written $b.w)
293499//  AM_RANGE(0x5fff00, 0x5fff1f) AM_RAM // ? see routine $5ca8, video_regs related ???
294500
295
296501//  AM_RANGE(0xf00004, 0xf00005) AM_RAM // ?
297502//  AM_RANGE(0xf00006, 0xf00007) AM_RAM // ?
298503
r953r954
389594   PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
390595   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
391596   PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
392
393597INPUT_PORTS_END
394598
395599/***************************************************************************
396    Graphics definitions
600    Machine driver
397601***************************************************************************/
398602
399/* all this is plain wrong, failed attempt at decoding the gfx */
400/*
401static const gfx_layout wrong_layout =
603INTERRUPT_GEN(srmp6_interrupt)
402604{
403    8,8,
404    RGN_FRAC(1,1),
405    8,
406    { 0, 1, 2, 3, 4, 5, 6, 7 },
407    { 0*8,  1*8,  2*8,  3*8,  4*8,  5*8,  6*8,  7*8 },
408    { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64},
409    8*8*8
410};
605   if(!cpu_getiloops())
606   {
607      cpunum_set_input_line(0,3,HOLD_LINE);
608   }
609   else
610   {
611      cpunum_set_input_line(0,4,HOLD_LINE);
612   }
613}
411614
412static const gfx_layout wrong_layout2 =
413{
414    8,8,
415    RGN_FRAC(1,1),
416    1,
417    { 0 },
418    { 0, 1, 2, 3, 4, 5, 6, 7 },
419    { 0*8,  1*8,  2*8,  3*8,  4*8,  5*8,  6*8,  7*8 },
420    8*8*1
421};
422*/
423static const gfx_layout wrong_layout3 = /* 16x16x9? seems to be some 18 bytes granularity in roms */
424{
425   16,16,
426   RGN_FRAC(1,1),
427   8/*9*/,
428   { /*0,*/ 1, 2, 3, 4, 5, 6, 7, 8 },
429   { STEP16(0,1)/*STEP16(0,9)*/ },
430   { STEP16(0,16*9) },
431   16*16*9
432};
433
434
435static const gfx_decode gfxdecodeinfo[] =
436{
437//  { REGION_GFX1, 0, &wrong_layout,  0, 0x100 },   // sprites (8x8x?)
438//  { REGION_GFX1, 0, &wrong_layout2, 0, 0x100 },   // tiles (16x16x?)
439   { REGION_GFX1, 0, &wrong_layout3, 0, 0x100 },   // tiles (16x16x9)
440   { -1 }
441};
442
443/***************************************************************************
444    Machine driver
445***************************************************************************/
446
447615static MACHINE_DRIVER_START( srmp6 )
448616   MDRV_CPU_ADD(M68000, 16000000)
449617   MDRV_CPU_PROGRAM_MAP(srmp6,0)
450   MDRV_CPU_VBLANK_INT(irq4_line_hold,1) // don't trigger IT 3 for now...
618   MDRV_CPU_VBLANK_INT(srmp6_interrupt,2)
451619
452620   MDRV_SCREEN_REFRESH_RATE(60)
453621   MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
454622
455   MDRV_GFXDECODE(gfxdecodeinfo)
456
457623   MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
458   MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
624   MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32)
459625   MDRV_SCREEN_SIZE(64*8, 64*8)
460   MDRV_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1)
626   MDRV_SCREEN_VISIBLE_AREA(0*8, 340, 2*8, 256)
461627   MDRV_PALETTE_LENGTH(0x800)
462628
463629   MDRV_VIDEO_START(srmp6)
r953r954
492658   ROM_REGION( 0x200000, REGION_USER1, 0 ) /* 68000 Data */
493659   ROM_LOAD( "sx011-09.10", 0x000000, 0x200000, CRC(58f74438) SHA1(a256e39ca0406e513ab4dbd812fb0b559b4f61f2) )
494660
495   ROM_REGION( 0x1400000, REGION_GFX1, ROMREGION_DISPOSE)
496   ROM_LOAD( "sx011-05.18", 0x0000000, 0x400000, CRC(87e5fea9) SHA1(abd751b5744d6ac7e697774ea9a7f7455bf3ac7c) ) // CHR03
497   ROM_LOAD( "sx011-04.19", 0x0400000, 0x400000, CRC(e90d331e) SHA1(d8afb1497cec8fe6de10d23d49427e11c4c57910) ) // CHR04
498   ROM_LOAD( "sx011-03.20", 0x0800000, 0x400000, CRC(f1f24b35) SHA1(70d6848f77940331e1be8591a33d62ac22a3aee9) ) // CHR05
499   ROM_LOAD( "sx011-02.21", 0x0c00000, 0x400000, CRC(c56d7e50) SHA1(355c64b38e7b266f386b9c0b906c8581fc15374b) ) // CHR06
500   ROM_LOAD( "sx011-01.22", 0x1000000, 0x400000, CRC(785409d1) SHA1(3e31254452a30d929161a1ea3a3daa69de058364) ) // CHR07
501
502   ROM_REGION( 0xc00000, REGION_SOUND1, 0) /* Samples */
503   ROM_LOAD( "sx011-08.15", 0x0000000, 0x400000, CRC(01b3b1f0) SHA1(bbd60509c9ba78358edbcbb5953eafafd6e2eaf5) ) // CHR00
504   ROM_LOAD( "sx011-07.16", 0x0400000, 0x400000, CRC(26e57dac) SHA1(91272268977c5fbff7e8fbe1147bf108bd2ed321) ) // CHR01
505   ROM_LOAD( "sx011-06.17", 0x0800000, 0x400000, CRC(220ee32c) SHA1(77f39b54891c2381b967534b0f6d380962eadcae) ) // CHR02
506
507    /* CHRxx loaded here undecoded for ROM Check */
661    /* these are accessed directly by the 68k, DMA device etc.  NOT decoded */
508662   ROM_REGION( 0x2000000, REGION_USER2, 0)   /* Banked ROM */
509   ROM_LOAD( "sx011-08.15", 0x0000000, 0x400000, CRC(01b3b1f0) SHA1(bbd60509c9ba78358edbcbb5953eafafd6e2eaf5) ) // CHR00
510   ROM_LOAD( "sx011-07.16", 0x0400000, 0x400000, CRC(26e57dac) SHA1(91272268977c5fbff7e8fbe1147bf108bd2ed321) ) // CHR01
511   ROM_LOAD( "sx011-06.17", 0x0800000, 0x400000, CRC(220ee32c) SHA1(77f39b54891c2381b967534b0f6d380962eadcae) ) // CHR02
512   ROM_LOAD( "sx011-05.18", 0x0c00000, 0x400000, CRC(87e5fea9) SHA1(abd751b5744d6ac7e697774ea9a7f7455bf3ac7c) ) // CHR03
513   ROM_LOAD( "sx011-04.19", 0x1000000, 0x400000, CRC(e90d331e) SHA1(d8afb1497cec8fe6de10d23d49427e11c4c57910) ) // CHR04
514   ROM_LOAD( "sx011-03.20", 0x1400000, 0x400000, CRC(f1f24b35) SHA1(70d6848f77940331e1be8591a33d62ac22a3aee9) ) // CHR05
515   ROM_LOAD( "sx011-02.21", 0x1800000, 0x400000, CRC(c56d7e50) SHA1(355c64b38e7b266f386b9c0b906c8581fc15374b) ) // CHR06
516   ROM_LOAD( "sx011-01.22", 0x1c00000, 0x400000, CRC(785409d1) SHA1(3e31254452a30d929161a1ea3a3daa69de058364) ) // CHR07
663   ROM_LOAD16_WORD_SWAP( "sx011-08.15", 0x0000000, 0x0400000, CRC(01b3b1f0) SHA1(bbd60509c9ba78358edbcbb5953eafafd6e2eaf5) ) // CHR00
664   ROM_LOAD16_WORD_SWAP( "sx011-07.16", 0x0400000, 0x0400000, CRC(26e57dac) SHA1(91272268977c5fbff7e8fbe1147bf108bd2ed321) ) // CHR01
665   ROM_LOAD16_WORD_SWAP( "sx011-06.17", 0x0800000, 0x0400000, CRC(220ee32c) SHA1(77f39b54891c2381b967534b0f6d380962eadcae) ) // CHR02
666   ROM_LOAD16_WORD_SWAP( "sx011-05.18", 0x0c00000, 0x0400000, CRC(87e5fea9) SHA1(abd751b5744d6ac7e697774ea9a7f7455bf3ac7c) ) // CHR03
667   ROM_LOAD16_WORD_SWAP( "sx011-04.19", 0x1000000, 0x0400000, CRC(e90d331e) SHA1(d8afb1497cec8fe6de10d23d49427e11c4c57910) ) // CHR04
668   ROM_LOAD16_WORD_SWAP( "sx011-03.20", 0x1400000, 0x0400000, CRC(f1f24b35) SHA1(70d6848f77940331e1be8591a33d62ac22a3aee9) ) // CHR05
669   ROM_LOAD16_WORD_SWAP( "sx011-02.21", 0x1800000, 0x0400000, CRC(c56d7e50) SHA1(355c64b38e7b266f386b9c0b906c8581fc15374b) ) // CHR06
670   ROM_LOAD16_WORD_SWAP( "sx011-01.22", 0x1c00000, 0x0400000, CRC(785409d1) SHA1(3e31254452a30d929161a1ea3a3daa69de058364) ) // CHR07
517671ROM_END
518672
519673
r953r954
531685***************************************************************************/
532686
533687/*GAME( YEAR,NAME,PARENT,MACHINE,INPUT,INIT,MONITOR,COMPANY,FULLNAME,FLAGS)*/
534GAME( 1995, srmp6, 0, srmp6, srmp6, srmp6, ROT0, "Seta", "Super Real Mahjong P6 (Japan)", GAME_NOT_WORKING | GAME_NO_SOUND)
688GAME( 1995, srmp6, 0, srmp6, srmp6, srmp6, ROT0, "Seta", "Super Real Mahjong P6 (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND)
535689
src/mame/drivers/nmk16.c
r953r954
133133#include "sound/3812intf.h"
134134#include "machine/nmk004.h"
135135#include "machine/nmk112.h"
136#include "cpu/pic16c5x/pic16c5x.h"
136137
137138
138139extern UINT16 *nmk_bgvideoram,*nmk_fgvideoram,*nmk_txvideoram;
r953r954
32213222   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
32223223MACHINE_DRIVER_END
32233224
3225static MACHINE_DRIVER_START( vandykeb )
3226
3227   /* basic machine hardware */
3228   MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */
3229   MDRV_CPU_PROGRAM_MAP(vandyke_readmem,vandyke_writemem)
3230   MDRV_CPU_VBLANK_INT(nmk_interrupt,2)
3231   MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
3232
3233   MDRV_CPU_ADD(PIC16C57, (12000000/PIC16C5x_CLOCK_DIVIDER))   /* 3MHz */
3234   MDRV_CPU_FLAGS(CPU_DISABLE)
3235
3236   MDRV_SCREEN_REFRESH_RATE(60)
3237   MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION)
3238   //MDRV_MACHINE_RESET(NMK004) // no NMK004
3239
3240   /* video hardware */
3241   MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3242   MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
3243   MDRV_SCREEN_SIZE(256, 256)
3244   MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3245   MDRV_GFXDECODE(macross_gfxdecodeinfo)
3246   MDRV_PALETTE_LENGTH(1024)
3247
3248   MDRV_VIDEO_START(macross)
3249   MDRV_VIDEO_EOF(nmk)
3250   MDRV_VIDEO_UPDATE(macross)
3251
3252   /* sound hardware */
3253   MDRV_SPEAKER_STANDARD_MONO("mono")
3254
3255   MDRV_SOUND_ADD(OKIM6295, 16000000/4)
3256   MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low)
3257   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
3258MACHINE_DRIVER_END
3259
32243260static MACHINE_DRIVER_START( acrobatm )
32253261
32263262   /* basic machine hardware */
r953r954
38193855   ROM_LOAD( "ic101.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) )   /* H-sync hw (unused) */
38203856ROM_END
38213857
3858ROM_START( vandykeb )
3859   ROM_REGION( 0x40000, REGION_CPU1, 0 )      /* 68000 code */
3860   ROM_LOAD16_BYTE( "2.bin",  0x00000, 0x20000, CRC(9c269702) SHA1(831ff9d499aa94d85f62b8613477a95f00f62b34) )
3861   ROM_LOAD16_BYTE( "1.bin",  0x00001, 0x20000, CRC(dd6303a1) SHA1(3c225ff1696adc1af05b1b36d8cf1f220181861c) )
3862
3863   ROM_REGION(0x10000, REGION_CPU2, 0 ) /* PIC is read protected */
3864   ROM_LOAD( "pic16c57",    0x00000, 0x2d4c, BAD_DUMP CRC(bdb3920d) SHA1(2ef8d2aa3817cebea8e2443bc995cec3a3f88835) )
3865
3866   ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )
3867   ROM_LOAD( "3.bin",      0x000000, 0x010000, CRC(5a547c1b) SHA1(2d61f51ce2f91ebf0053ce3a00911d1bcbaba816) )   /* 8x8 tiles */
3868
3869   ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
3870   ROM_LOAD( "4.bin",      0x000000, 0x040000, CRC(4ba4138d) SHA1(56f9c9422085eaf74ddec8977663a33c122b7e8b) )   /* 16x16 tiles */
3871   ROM_LOAD( "5.bin",      0x000000, 0x040000, CRC(9a1ac697) SHA1(a8200b10606edf4578c7e2f53a0046bb1209a041) )   /* 16x16 tiles */
3872
3873   ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )
3874   ROM_LOAD16_BYTE( "13.bin",   0x000000, 0x040000, CRC(bb561871) SHA1(33dcaf956112181eed531320d3ececb90b17a599) )   /* Sprites */
3875   ROM_LOAD16_BYTE( "12.bin",   0x080000, 0x040000, CRC(cdef9b17) SHA1(ec024a21685b87c82dc574cd050118d856a3cf57) )   /* Sprites */
3876   ROM_LOAD16_BYTE( "17.bin",   0x000001, 0x040000, CRC(346e3b66) SHA1(34df7167ed4048e1f236e7d8fa6dcdffb0965c71) )   /* Sprites */
3877   ROM_LOAD16_BYTE( "16.bin",   0x080001, 0x040000, CRC(beda678c) SHA1(3dfb8763241a97b9d65113c6eb99b52ec5245cd6) )   /* Sprites */
3878   ROM_LOAD16_BYTE( "11.bin",   0x100000, 0x020000, CRC(823185d9) SHA1(eaf0f3ab0921d894eb1d09d5b2e9d5b785928804) )   /* Sprites */
3879   ROM_LOAD16_BYTE( "10.bin",   0x140000, 0x020000, CRC(388b1abc) SHA1(9d1c43070130672a5e1a41807d796c944b0676ae) )   /* Sprites */
3880   ROM_LOAD16_BYTE( "15.bin",   0x100001, 0x020000, CRC(149f3247) SHA1(5f515cb10468da048c89b543807280bd3e39e45a) )   /* Sprites */
3881   ROM_LOAD16_BYTE( "14.bin",   0x140001, 0x020000, CRC(32eeba37) SHA1(0d0218e864ed647bd33bbe379f0ef76ccefbd06c) )   /* Sprites */
3882
3883   ROM_REGION( 0x0a0000, REGION_SOUND1, 0 )   /* OKIM6295 samples */
3884   ROM_LOAD( "9.bin",      0x000000, 0x020000, CRC(56bf774f) SHA1(5ece618fff22483adb5dff062dd4ec212aab0f01) )
3885   ROM_LOAD( "8.bin",      0x000000, 0x020000, CRC(89851fcf) SHA1(7b6284cb929059371dd2b5410cd18373834ba76b) )
3886   ROM_LOAD( "7.bin",      0x000000, 0x020000, CRC(d7bf0f6a) SHA1(413713576692676a831949e0d4dc5574da338380) )
3887   ROM_LOAD( "6.bin",      0x000000, 0x020000, CRC(a7fcf709) SHA1(dc6298b43a472e92e99b8286bd4d26f7e72fd278) )
3888ROM_END
3889
38223890ROM_START( tharrier )
38233891   ROM_REGION( 0x40000, REGION_CPU1, 0 )
38243892   ROM_LOAD16_BYTE( "2" ,   0x00000, 0x20000, CRC(78923aaa) SHA1(28338f49581180604403e1bd200f524fc4cb8b9f) )
r953r954
50855153//  rom[0x08f74/2] = 0x4e71);
50865154}
50875155
5156/* NO NMK004, it has a PIC instead */
5157READ16_HANDLER( vandykeb_r ) { return 0x0000; };
5158static DRIVER_INIT (vandykeb)
5159{
5160   memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x08000e, 0x08000f, 0, 0, vandykeb_r );
5161   memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x08001e, 0x08001f, 0, 0, MWA16_NOP );
5162}
5163
50885164GAME( 1989, tharrier, 0,       tharrier, tharrier, 0,        ROT270, "UPL (American Sammy license)",    "Task Force Harrier", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
50895165GAME( 1989, tharierj, tharrier,tharrier, tharrier, 0,        ROT270, "UPL",                             "Task Force Harrier (Japan)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
50905166GAME( 1990, mustang,  0,       mustang,  mustang,  mustang,  ROT0,   "UPL",                         "US AAF Mustang (Japan)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND) // Playable but there are Still Protection Problems
r953r954
50945170GAME( 1990, vandyke,  0,       vandyke,  vandyke,  0,        ROT270, "UPL",                             "Vandyke (Japan)",  GAME_IMPERFECT_SOUND )
50955171GAME( 1990, vandyjal, vandyke, vandyke,  vandyke,  0,        ROT270, "UPL (Jaleco license)",            "Vandyke (Jaleco, Set 1)",  GAME_IMPERFECT_SOUND )
50965172GAME( 1990, vandyja2, vandyke, vandyke,  vandyke,  0,        ROT270, "UPL (Jaleco license)",            "Vandyke (Jaleco, Set 2)",  GAME_IMPERFECT_SOUND )
5173GAME( 1990, vandykeb, vandyke, vandykeb, vandyke,  vandykeb, ROT270, "[UPL] (bootleg)",                 "Vandyke (bootleg with PIC16c57)",  GAME_NOT_WORKING )
50975174GAME( 1991, blkheart, 0,       macross,  blkheart, blkheart, ROT0,   "UPL",                             "Black Heart", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND  ) // Playable but there are Still Protection Problems
50985175GAME( 1991, blkhearj, blkheart,macross,  blkheart, blkheart, ROT0,   "UPL",                             "Black Heart (Japan)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND ) // Playable but there are Still Protection Problems
50995176GAME( 1991, acrobatm, 0,       acrobatm, acrobatm, 0,        ROT270, "UPL (Taito license)",             "Acrobat Mission", GAME_IMPERFECT_SOUND )
src/emu/cpu/mb86233/mb86233.c
r953r954
898898               case 0x10:
899899                  GETA().u = GETBRAM()[INDIRECT(r1,1)];
900900                  GETB().u = GETARAM()[r2];
901               break;
901902
902903               case 0x11:
903                  GETA().u = GETBRAM()[INDIRECT(r1,1)];
904                  GETA().u = GETARAM()[INDIRECT(r1,1)];
904905                  GETB().u = GETBRAM()[INDIRECT(r2|(2<<6),0)];
905906               break;
906907
src/emu/uimenu.c
r953r954
16871687      if (input_ui_pressed(IPT_UI_SELECT))
16881688      {
16891689         /* control config */
1690         if (selected == menu_items - 2)
1690         if (ui_menu_is_force_game_select() && selected == menu_items - 2)
16911691            return ui_menu_stack_push(menu_input_groups, 0);
16921692
16931693         /* valid selected game */
src/emu/video.c
r953r954
124124   UINT8               refresh_speed;      /* flag: TRUE if we max out our speed according to the refresh */
125125
126126   /* frameskipping */
127   UINT8               empty_skip_count;   /* number of empty frames we have skipped */
127128   UINT8               frameskip_level;   /* current frameskip level */
128129   UINT8               frameskip_counter;   /* counter that counts through the frameskip steps */
129   INT8               frameskipadjust;
130   INT8               frameskip_adjust;
130131   UINT8               skipping_this_frame;/* flag: TRUE if we are skipping the current frame */
131132   osd_ticks_t            average_oversleep;   /* average number of ticks the OSD oversleeps */
132133};
r953r954
173174
174175/* global rendering */
175176static TIMER_CALLBACK( scanline0_callback );
176static void finish_screen_updates(running_machine *machine);
177static int finish_screen_updates(running_machine *machine);
177178
178179/* throttling/frameskipping/performance */
179180static void update_throttle(mame_time emutime);
r953r954
10281029#else
10291030   if (phase == MAME_PHASE_RUNNING && !mame_is_paused(Machine))
10301031#endif
1031      finish_screen_updates(Machine);
1032   {
1033      int anything_changed = finish_screen_updates(Machine);
10321034
1035      /* if none of the screens changed and we haven't skipped too many frames in a row,
1036           mark this frame as skipped to prevent throttling; this helps for games that
1037           don't update their screen at the monitor refresh rate */
1038      if (!anything_changed && !global.auto_frameskip && global.frameskip_level == 0 && global.empty_skip_count++ < 3)
1039         skipped_it = TRUE;
1040      else
1041         global.empty_skip_count = 0;
1042   }
1043
10331044   /* draw the user interface */
10341045   ui_update_and_render();
10351046
r953r954
10391050
10401051   /* ask the OSD to update */
10411052   profiler_mark(PROFILER_BLIT);
1042   osd_update(global.skipping_this_frame);
1053   osd_update(skipped_it);
10431054   profiler_mark(PROFILER_END);
10441055
10451056   /* perform tasks for this frame */
r953r954
10751086    the screens
10761087-------------------------------------------------*/
10771088
1078static void finish_screen_updates(running_machine *machine)
1089static int finish_screen_updates(running_machine *machine)
10791090{
10801091   video_private *viddata = machine->video_data;
1092   int anything_changed = FALSE;
10811093   int livemask;
10821094   int scrnum;
10831095
r953r954
11211133      }
11221134
11231135      /* reset the screen changed flags */
1136      if (screen->changed)
1137         anything_changed = TRUE;
11241138      screen->changed = FALSE;
11251139   }
11261140
11271141   /* draw any crosshairs */
11281142   crosshair_render(viddata);
1143   return anything_changed;
11291144}
11301145
11311146
r953r954
15271542      if (global.speed_percent >= 0.995 * speed)
15281543      {
15291544         /* but only after 3 consecutive frames where we are too fast */
1530         if (++global.frameskipadjust >= 3)
1545         if (++global.frameskip_adjust >= 3)
15311546         {
1532            global.frameskipadjust = 0;
1547            global.frameskip_adjust = 0;
15331548            if (global.frameskip_level > 0)
15341549               global.frameskip_level--;
15351550         }
r953r954
15401555      {
15411556         /* if below 80% speed, be more aggressive */
15421557         if (global.speed_percent < 0.80 *  speed)
1543            global.frameskipadjust -= (0.90 * speed - global.speed_percent) / 0.05;
1558            global.frameskip_adjust -= (0.90 * speed - global.speed_percent) / 0.05;
15441559
15451560         /* if we're close, only force it up to frameskip 8 */
15461561         else if (global.frameskip_level < 8)
1547            global.frameskipadjust--;
1562            global.frameskip_adjust--;
15481563
15491564         /* perform the adjustment */
1550         while (global.frameskipadjust <= -2)
1565         while (global.frameskip_adjust <= -2)
15511566         {
1552            global.frameskipadjust += 2;
1567            global.frameskip_adjust += 2;
15531568            if (global.frameskip_level < MAX_FRAMESKIP)
15541569               global.frameskip_level++;
15551570         }
src/version.c
r953r954
99
1010***************************************************************************/
1111
12char build_version[] = "0.118.1 ("__DATE__")";
12char build_version[] = "0.119 ("__DATE__")";
docs/messnew.txt
r953r954
10.118.1
10.119
22
33New System Drivers Supported (in no particular order):
44------------------------------------------------------
r953r954
6363
6464Source Changes:
6565----------------
66- The core is based on MAME 0.118u6.  This incorporates all features of the
66- The core is based on MAME 0.119.  This incorporates all features of the
6767  update to this core.  [MAME team]
6868
6969
whatsnew.txt
r953r954
10.118
10.119
22-----
33
44
5MAMETesters Bugs Fixed
6----------------------
7vr0118u6yel [Aaron Giles]
8
9
10
511Source Changes
612--------------
7Changed INI parsing so that mame.ini is parsed twice, picking up
8changes to the inipath. [Aaron Giles]
13Improved graphics and cleaned up driver for srmp6.
14[David Haywood, Tomasz Slanina]
915
10Fixed bug in options handling introduced with recent changes.
11[Nathan Woods]
16Fixed bug in model 2 polygon clipping. [Ernesto Corvi]
1217
13Fixed macros in stvcd.c to work with C89 compilers. [Mike Haaland]
18Fixed input port so that shadfrcj doesn't skip straight to the end
19sequence. [stephh]
1420
15Fixed some more 64-bit warnings and unused functions.
16[Oliver Stoneberg]
21Fixed recent changes to the MB86233 core that broke Virtua Racing.
22[Aaron Giles]
1723
18Fixed DIP switch "Difficulty" in fstarfrc. Also added DIP locations
19to the tecmo16 driver. [BisonSAS]
24Added intelligence around the UPDATE_HAS_NOT_CHANGED flag, which is
25returned from VIDEO_UPDATE. If all screens in the game return
26UPDATE_HAS_NOT_CHANGED, then that frame is effectively skipped (up
27to 3 frames in a row) in terms of throttling. This allows games that
28render every other frame to not throttle during their "off frames".
29Updated the midvunit driver to return UPDATE_HAS_NOT_CHANGED. You
30should see an improvement in framerate with throttling enabled for
31these games. Note that this only kicks in if frameskip is set to 0.
32[Aaron Giles]
2033
21Simplified the nemesis video driver code. [Atari Ace]
2234
23Modularized the TMS5220 code. [Lord Nightmare]
2435
25Fixed issues with recent R-Type ROMset. [Brian Troha]
36New clones added
37----------------
38Turpin (bootleg on Scramble hardware) [David Haywood]
39Operation Wolf (World, set 2) [David Haywood]
40Star Force (encrypted, bootleg) [David Haywood]
41Galaxian (bootleg) [David Haywood]
42Crazy Kong (bootleg on Galaxian hardware, set 2) [David Haywood]
43Vandyke (bootleg with PIC16c57) [David Haywood]
2644
27Fixed a number of issues in the HD6309 core. [Darren Atkinson]
2845
29Sync with AGEMAME: [James Wallace]
30 * removed the 'lamps.c' module from the source tree
31 * cleaned up names in the BFM BD1 driver
32 * moved VFD drawing functions out of the video update
33 * overhauled the sound system in the MPU4 driver
3446
35Changed windows builds so that all tools use the utf8_main entry
36point consistently. [Aaron Giles]
470.118u6
48-------
3749
3850
51MAMETesters Bugs Fixed
52----------------------
53cave0118u5red [Aaron Giles]
54radikalb0118u5red [Aaron Giles]
55chdrewrite0118u5red [smf]
56pacland0118u5yel [Aaron Giles]
57sspaceat0118u1red [Aaron Giles]
58yamato0118u5red [Aaron Giles]
59ym2203_0118u1yel [Aaron Giles]
60profiler0116u2yel (maybe) [Aaron Giles]
3961
62
63
64Source Changes
65--------------
66Updated TMS5220 core to use shifts instead of divides for the
67parameter interpolation. Also added support for internal clamping to
688-bit output when using the internal DAC. [Lord Nightmare]
69
70Fixed regression that caused CHD games to crash if the CHD was not
71present. Also fixed change that required write access to CHDs. [smf]
72
73Fixed CHD search paths again so that they look in parent
74subdirectories. [Aaron Giles]
75
76Fixed security cassette contents to get Guitar Freaks 3rd Mix
77(GE949 VER. JAB) in game. [smf]
78
79Exposed core_vfprintf(), and implemented mame_vfprintf() in terms of
80that call. [Nathan Woods]
81
82Some improvements to the Wheels + Fire driver. Still not right.
83[David Haywood]
84
85Added SCSIOP_GET_INQUIRY_BUFFER to scsicd & scsihd. [smf]
86
87MB86233 core changes: [ElSemi]
88 * fixed a double move opcode
89 * added a previously unknown double move opcode
90
91Changed the way MAME handles options internally. Changed
92mame_options_init() to return a core_options object, which is now
93passed into mame_execute(). Moved mame_options() to mame.c, which is
94now only valid while the emulation is running. Audit functions now
95take a core_options parameter. [Nathan Woods]
96
97More HD6309 fixes: [Tim Lindner]
98 * the SEXW instruction not longer clears the overflow flag
99 * now generating an illegal instruction trap if invalid registers
100    specified for TFM
101
102Changed Windows message filtering to only apply to MAME game windows.
103[Nathan Woods]
104
105Made a cleanup pass through the new x86emit.h code emitters, changing
106the way memory is referenced and replacing macros with inline
107functions. [Aaron Giles]
108
109Updated MIPS and PowerPC drc cores to use the new emitters. Removed
110the old macro-based ones in x86drc.h. [Aaron Giles]
111
112Added save state support to pacland. [Aaron Giles]
113
114Made -autoframeskip aware of the -speed setting. [Aaron Giles]
115
116Fixed stack buffer overrun in install_mem_handler() that broke the
117Hyperstone-based games under gcc 4.2.1. [Aaron Giles]
118
119
120
40121New games added or promoted from NOT_WORKING status
41122---------------------------------------------------
42Dancing Stage Euro Mix 2 [smf]
123Yukon [Al Kossow, Aaron Giles]
124Mega Man - The Power Battle [Nicola Salmoria, David Haywood]
43125
44126
45127
46128New clones added
47129----------------
48Maximum Force (No Gore version) [Brian Troha]
130Hard Times (set 2) [David Haywood]
131Scorpion (set 3) [David Haywood]
132Satan of Saturn (set 2) [David Haywood]
133Street Fighter Alpha 3 (Euro 980904) [David Haywood]
134Dimahoo (Euro 000121) [David Haywood]
135Crush Roller (bootleg) [David Haywood]
136Crush Roller (Sidam bootleg) [David Haywood]
137Moon War (Moon Cresta bootleg) [David Haywood]
138Port Man (bootleg on Moon Cresta hardware) [David Haywood]
49139
50140
51141
520.117u3
142New games marked as GAME_NOT_WORKING
143------------------------------------
144Astropal [David Haywood]
145Come On Baby [MooglyGuy]
146
147
148
1490.118u5
53150-------
54151
55152
56153MAMETesters Bugs Fixed
57154----------------------
58headon0117u2ora [Aaron Giles]
59numpadremap0117u2gra [Aaron Giles]
60joystick0117u2gra [Aaron Giles]
61NewUI0117u2ora [Aaron Giles]
62mtrap0117u2ora [Aaron Giles]
63verifyroms0117u2ora [Aaron Giles]
155mappyc0118u1red [Aaron Giles]
156mappy0116u2gre [Aaron Giles]
157namcona1c057red [Atari Ace]
1589ballsh3097red [Atari Ace]
64159
65160
66161
67162Source Changes
68163--------------
69Added some more setup code for the Naomi driver. [R. Belmont]
164Updated memconv.h to convert from basically any to any widths
165(8/16/32/64), on both little and big endian. Also added macros to
166create the stubs for the most commonly used mappings, both in the
1671:1 fashion, or the LSB/MSB/LSW/MSW style. [Ernesto Corvi]
70168
71Improved DIP switches in powerins driver. [BisonSAS]
169CuboCD32/Amiga updates: [Ernesto Corvi]
170 - Finished implementing the CDROM controller, so now the games boot
171 - Moved the entire Akiko code to machine/cubocd32.c to make things
172    a little more easier to work with
173 - Added CDDA audio support to the CDROM controller and driver
174 - Systems with the AGA chipset no longer connect bit 0 of the CIA
175    that was previously connected to the Overlay pin not connected
176 - Made BLTDDAT return it's value. This is a readable register which
177    we were not handling.
178 - Initialized the SERDATR register upon reset to reflect that the
179    transfer buffer/shift reg is empty.
72180
73Added some basic cdrom switching to the system 573 driver. Hooked it
74up for best of cool dancers to work and the Club versions. Added
75DIP locations. Moved fake switches to the configuration menu. [smf]
181Added support for the PowerPC 601. [Ville Linde]
76182
77Added preliminary video hw emulation and sound support to the
782 Minute Drill driver. [Tomasz Slanina]
183Fixed missing PLD region in -listxml. [MASH]
79184
80Added an optional vsync callback to the TIA emulation to allow a
81driver to dynamically change the screen configuration. [Wilbert Pol]
185Changed all comparison for CPU and sound chip types to compare
186against CPU_DUMMY or SOUND_DUMMY instead of 0. Also updated usages
187of sndti_to_sndnum() so that they use sndti_exists() where appropriate.
188[Atari Ace]
82189
83Cleaned up redundant function names. [Atari Ace]
190Removed CHD interface structure. CHDs now rely on the corefile
191routines to perform file I/O. Updated the rest of the system to
192handle this reality. A side-effect is that "split" CHDs, which never
193got much play, have now been deprecated. [Nathan Woods]
84194
85Changed CreateWindowEx() call to be win_create_window_ex_utf8(),
86removing the need for a string conversion. [Nathan Woods]
195Added new core library utility module palette.c for managing palettes.
196Renamed emulator-specific palette code to emupal.c and restructured
197to live on top of the core library code. [Aaron Giles]
87198
88Fixed running the konamigx BIOS on its own do what it should:
89display a scrolling marquee telling the operator to attach
90a ROM board. [Alex Jackson]
199Added support for attaching palettes to bitmaps in the core. Removed
200support for the 16-pixel bitmap "safety" zone by default, since most
201drivers do not need it. Added new function bitmap_alloc_slop() which
202supports creating bitmaps with caller-specified slop values.
203[Aaron Giles]
91204
92Added new debugger commands for hardreset and softreset.
93[Nathan Woods]
205Removed the gfx_element.colortable element and replaced it with a new
206element color_base which specifies the global color offset. This
207breaks an awkward dependency between the palette and graphics code,
208and removes a lot of odd pointer arithmetic in the system.
209[Aaron Giles]
94210
95Added built-in support for 14-segment and 16-segment LEDs with
96comma/period additions. Split vacfdisp into component specific
97drivers. The system now supports the Rockwell 10937 (aka MSC1937)
98and 10957, as well as the BD1. All relevant drivers have been
99updated with the new code, and new layouts have been prepared.
100[James Wallace]
211Tagged Machine->pens, Machine->colortable, and
212Machine->remapped_colortable as const to prevent their abuse. Fixed
213several abusing drivers, and tagged the remainder for future
214cleanup. [Aaron Giles]
101215
102Fixed a few more 64-bit build errors. [Aaron Giles]
216Added new colortable management functions in emupal.c. These functions
217can be used to manage a colortable on top of the core palette in
218cases where TRANSPARENCY_COLOR is currently used (essentially mapping
219to a pen mask for TRANSPARENCY_PENS). Updated pacman, mappy, toypop,
220and several other drivers to use the new functions. [Aaron Giles]
103221
104Separated build tools from general tools. Build tools are now located
105in the build/ subdirectory. [Aaron Giles]
222Vastly simplified the rendering code in docastle. [Aaron Giles]
106223
107Added new general library module astring.c, which supports allocated
108strings of arbitrary length and a number of basic functions on them.
224Fixed remaining errors and warnings when building under gcc 4.2.1.
109225[Aaron Giles]
110226
111Replaced assemble_x_strings() functions with the astring equivalents.
112Updated code in several places to use astrings where appropriate.
113[Aaron Giles]
227Added new function render_target_set_max_update_rate() which allows
228the OSD layer to inform MAME of the target's refresh rate (or 0 if
229there is no maximum). This is used to allow for the dynamic speed
230adjustment parameter below. [Aaron Giles]
114231
115Added new tool src2html which is used to convert the MAME source tree
116to HTML format with linked include files and color coded keywords
117and comments. [Aaron Giles]
232Added new parameter -refreshspeed (-rs for short) which dynamically
233adjusts the -speed parameter to keep the effective refresh rate below
234that of the lowest screen refresh rate. [Aaron Giles]
118235
119Converted the memory pool code to a more generic resource pool.
120Changed internal MAME tracking of timers and save state registrations
121over to using the new system. [Aaron Giles]
236Added more opcode emitters to x86emit.h. [Aaron Giles]
122237
123Removed underscores from some keycode token names. Thus,
124KEYCODE_0_PAD now becomes KEYCODE_0PAD. This is to prevent confusion
125when parsing multiple keyboard items. Due to this change, also removed
126imperfect backward compatibility with older configs; some mappings
127will still work, but some won't. Note that this change will also
128break some existing ctrlr files; new ones will be provided.
129[Aaron Giles]
130238
131Did some cleanup of the tilemap interfaces. Changed tilemap type
132constants to be an enum prefixed by TILEMAP_TYPE_* instead of simply
133TILEMAP_*. Removed unused members from the tile_info structure.
239
240New games added or promoted from NOT_WORKING status
241---------------------------------------------------
242Last Fighting [Luca Elia]
243Bishou Jan [Luca Elia]
244Almond Pinky [Luca Elia]
245Mahjong Cafe Time [Luca Elia]
246Mahjong Comic Gekijou Vol.1 [Luca Elia]
247Super Eagle Shot [Tomasz Slanina, pSXAuthor]
248Date Quiz Go Go Episode 2 [Pierpaolo Prazzoli]
249Dancing Stage featuring Dreams Come True [smf]
250
251
252
253New clones added
254----------------
255X-Men: Children of the Atom (Japan 941222) [Nicola Salmoria]
256Quintoon (UK, Game Card 95-750-206) [James Wallace]
257
258
259
260New games marked as GAME_NOT_WORKING
261------------------------------------
262Super Real Mahjong Part 1 [Luca Elia]
263Dance Dance Revolution Extreme [smf]
264
265
266
2670.118u4
268-------
269
270
271Source Changes
272--------------
273Converted the inputs in galaga.c to tags, using INCLUDE/MODIFY for
274clones, and fixing the conditional extra lives dips in xevious and
275digdug (bosco and galaga still need doing). Also added much more
276information on the digdug sets, thanks to some excellent work by
277stephh. [Alex Jackson]
278
279Fixed sound chip frequency in the superdq driver. [Jim Hernandez]
280
281chdman improvements: [smf]
282 * Fixed toc parsing to allow spaces and quotes in file names
283 * Supports "offset start length" track syntax that cdrdao creates
284    if you don't read subcode
285 * Tracks are always padded with zeros & not whatever data happens
286    to follow
287 * Moved cdrom_track_input_info out of src/lib/util/cdrom.h and
288    into src/tools/chdcd.h
289 * Added audio byte swapping support
290
291Fixed DIP switches for Oscar (Japan Revision 0). [Corrado Tomaselli]
292
293Added DIP locations to the aerofgt driver. [Fabio Priuli]
294
295Amiga updates: [Erneso Corvi]
296 - Implemented ECS-Only BLTCON0L register
297 - Modified the amiga_interface structure to add a nmi callback and
298    a flags variable.
299 - Added AGA chipmem mask definition
300 - Added 32 bit data bus support to chipram. It's automatically used
301    if the chipset is AGA.
302 - Added clock chip constants in machine/amiga.h for 68k PAL and NTSC,
303    and 68EC00 NTSC. Updates drivers to use those constants.
304 - Added convenience macros to determine wether we're running with an
305    ECS chipset, AGA chipset, or 'ECS or AGA chipset'.
306 - Changed autoconfig reads to return 0x0000 instead of 0xffff.
307 - Fixed MSB value timer reads on the 8520 cia. We were previously only
308    updating the count for the timer when the LSB value was read.
309 - Added basic Akiko emulation to the cubocd32 driver. Both the Chunky
310    to Planar converter, and the I2C NVRAM should be fully implemented,
311    however, the CDROM functionality is not complete. It's only enough
312    to make the kickstart pass the Akiko checks.
313
314Taito input ports cleanup, continued: [stephh]
315 - Updated includes/taitoipt.h with macros for games with only 1 button
316 - Converted the following drivers and added more documentation, fixing
317    incorrect inputs and DIP switches along the way: taitoair.c,
318    taito_h.c, taito_x.c
319 - Slightly changed the C-Chip emulation for 'superman' to behave in a
320    similar way as other Taito games
321 - Corrected some notes in some other Taito drivers
322
323Changed verinfo code to parse the version.c file instead of relying
324on linking against version.o. This appears to fix the link ordering
325problem and also prevents it from being constantly regenerated on
326each build. [Aaron Giles]
327
328Significantly improved the i386 disassembler. Changed it so that it
329no longer outputs 'byte ptr' except for ambiguous cases. Updated for
330full 64-bit disassembly support. Added support for the full IA32
331opcode matrix as specified by recent Intel manuals, including all
332SSE opcodes and variants. [Aaron Giles]
333
334Updated the x86 drc helper code to support externally-allocated cache.
335Also added support for allocating data structures out of the cache.
336Modified initialization so that it does not immediately generate code
337but rather waits for a reset to do that. Fixed code generation bug
338when generating [reg*scale] modrm forms. [Aaron Giles]
339
340Added new functions to the memory system to support CPU cores
341explicitly specifying the access mask on 32-bit and 64-bit data bus
342systems. This enables the MIPS core to handle SWL/SWR and SDL/SDR
343without a read/modify/write cycle. Updated the C and DRC MIPS cores
344to use this new mechanism. [Aaron Giles]
345
346Added new module x86emit.h which supports dynamic code generation for
347both x86 and x64 systems. This new system is a far more complete
348solution, though not all opcodes are defined yet. The interface for
349this is also cleaner than the previous one defined in x86drc.h.
350Existing DRC cores are still using the old interface, but the new one
351is preferred for new development. [Aaron Giles]
352
353Fixed recently introduced bug in the mips3 core that caused the C
354core to launch off into nowhere after the first instruction.
134355[Aaron Giles]
135356
136357
137358
138359New clones added
139360----------------
140Cross Blades! (Japan) [Stefan Lindberg]
141Shadow Force (Japan Version 2) [Stefan Lindberg]
142Dig Dug (Sidam bootleg) [David Haywood]
143Dance Dance Revolution Best of Cool Dancers [smf]
361Undercover Cops (Alpha Renewal Version) [Guru]
362Final Fight (US) [Corrado Tomaselli]
144363
145364
146365
147366New games marked as GAME_NOT_WORKING
148367------------------------------------
149Astron Belt [Andrew Gardner]
150Cobra Command (Sega LaserDisc Hardware) [Andrew Gardner]
151Galaxy Ranger [Andrew Gardner]
152Star Blazer [Andrew Gardner]
368Interstellar Laser Fantasy [Andrew Gardner]
153369
154370
155371
1560.117u2
3720.118u3
157373-------
158374
159375
160376MAMETesters Bugs Fixed
161377----------------------
162joystickremap0117u1gra [Aaron Giles]
163mallocerror0117u1gra [Aaron Giles]
164mouse0117u1gra [Aaron Giles]
165newinterface0117u1gra [Aaron Giles]
166tapper0102gre2 [Ernesto Corvi]
167timber0100u3gre [Ernesto Corvi]
168tapper0102gre1 [Aaron Giles]
169timber099gre [Aaron Giles]
170mcr0103u3yel [Aaron Giles]
171dotrone0101u5yel [Aaron Giles]
378qbert0118u2gra [Aaron Giles]
379zoom909_0118u2ora [Aaron Giles]
172380
173381
174382
175383Source Changes
176384--------------
177Imola GP updates: [Phil Stroffolino]
178 - renamed from "monzagp"
179 - the leds are fully mapped
180 - fixes for blitter modes, that affect the "tunnel" area
181 - dipswitch/port fixes; game now starts in attract mode, rather
182    than immediately starting
183 - placeholder (handpicked) colors
385Updated dacholer.c driver with now all known Dip Switches. [stephh]
184386
185Updated DIP switches for topland & ainferno according to their
186manuals. [Fabio Priuli]
387Changed MDRV_VBLANK_DURATION macro to accept subseconds directly
388instead of converting from double. Added new macro USEC_TO_SUBSECONDS
389to assist in this. Converted all drivers over to using it.
390[Atari Ace]
187391
188More SH-4 core improvements: [Samuele Zannoli]
189 - fixes some problems in the disassembly and instruction execution
190    from the previous patch
191 - adds interrupt management
192 - implements register bank switching
193 - adds RTC timer counters
194 - adds memory refresh timer
195 - adds three timers of the TMU
196 - adds a configuration structure that specifies the processor mode
197    pin settings
198 - internal processor clock frequencies calculated from mode pins and
199    cpu clock
200 - systems using the sh4 processor secify its configuration structure
392Improved/fixed validation of memory maps to match current logic in
393memory.c. Fixed a few problems that were identified this way.
394Also removed construct_map_0 and isolated map construction to a
395single function. [Atari Ace]
201396
202Fixed some DIP switches in littlerb. [Sonikos]
397Added new AM_READ_PORT() macro which lets you define an input port
398read callback based on a port tag. This is now preferred over the
399previous technique of calling port_tag_to_handler() within an
400AM_READ() macro. Updated all drivers that were using the latter
401pattern to the new system. [Atari Ace]
203402
204Made some minor code quality changes across the code: [Atari Ace]
205 - avoided exporting a few global variables
206 - fixed variable names that conflicted with typedef names
207 - removed some shadow variables that were bugs or unnecessary
208 - removed extraneous #defines
403Fixed subtle monymony regression from 0.36b10(!) [Atari Ace]
209404
210Fixed up sc61860 core, f3853 core, and pckeybd.c to work with new
211timing code. [Nathan Woods]
405Fixed F8 CPU core to not clobbert the irq_callback on a reset.
406[Wilbert Pol]
212407
213More TIA improvements: [Wilbert Pol]
214 - fixed some minor missile graphics positioning issues
215 - moved some initialization code from tia_init to tia_reset
408Amiga system updates: [Ernesto Corvi]
409 - Implemented the ECS-only BLTSIZV and BLTSIZH custom registers,
410    and modified BLTSIZE and the blitter to use them.
411 - Properly implemented the bit in VPOSR that indicates if we're
412    running on a PAL or NTSC Amiga.
413 - Fixed the PAL clock on the Pictomatic driver in alg.c
216414
217Fixed a few errors related to headers in the source code. Added
218missing self-includes, removed dead prototypes, and added location
219comments in headers in mame/includes. In a few cases the audit
220showed items that didn't need to be exported so they were made
221static. [Atari Ace]
415Added counter emulation to the COP420 CPU core. Hooked it up to
416Thayer's Quest and added an alternate set. [Andrew Gardner]
222417
223Cleaned up the inputs in gdrawpkr and changed the hold buttons to
224"discard" since they are in fact discard buttons. [Roberto Fresca]
418Added missing PROMs to the Status Trivia driver. [Brian Troha]
225419
226Added support for 14- and 16-segment LED displays to the MAME
227artwork system. [Dirk Best]
420Cleaned up several Taito drivers (opwolf.c, othunder.c, topspeed.c,
421warriorb.c, wgp.c, rastan.c, rainbow.c, volfied.c) to use common
422input port macros. Fixed the Dip Switches for all games (a few still
423remain unknown though) and added many notes. Also fixed a couple of
424things which were wrong in ninjaw.c driver. Improved the C-chip
425emulation for "Operation Wolf" and its clones so it can now handle
426multiple coinage settings. [stephh]
228427
229Fixed button 4 of player 2 inputs in bloodwar. [Barry Harris]
428Improved the MCU simulation for aladbl so now the game handles coins
429correctly. Fixed the Inputs to match an arcade cabinet and added
430Dip Switches according to the game M68000 code. [stephh]
230431
231Connected S14001A speech to the wolfpack driver. [Lord Nightmare]
432Added build tool to extract version information and add it to the
433Windows version resource. [Nathan Woods]
232434
233Fixed incorrect implementation of SSIO volume controls in the MCR
234driver. This makes the engine sound in Spy Hunter audible again,
235among other things. [Ernesto Corvi]
435Added a fairly complete WD33C93 SCSI controller emulation, and also
436updated the cps3.c driver to use it. [Ernesto Corvi]
236437
237Added support back for the "none" option for the various *_device
238options. [Nathan Woods]
438Hooked up lamps in Chase HQ. [R. Belmont, couriersud]
239439
240Fixed HD6309 dissaembly of the post-byte for ,W++ and ,--W.
241[Captain Ahab]
440Changed NEC V30 CPU core to use a 16-bit data bus. Updated affected
441drivers: raiden, raiden2, m72, m90, m92, m107, segas32, hng64,
442deadang, dynduke, sengokmj, shanghai, lockon, tatsumi, fantland,
443twins, gunpey, ttchamp. Separated V-series disassembler from the
444i386 disassembler and updated it to use proper register and
445opcode terminology. [Aaron Giles, Philip Bennett, Pierpaolo Prazzoli]
242446
243Updated the 6532 riot interface to be more like the 6522via and
2446821pia interfaces. [Wilbert Pol]
447Changed I8086 CPU core to use a 16-bit data bus. Updated affected
448drivers: gottlieb, leland, tx1, fantland, tetriunk. Cleaned up
449naming of CPUs (i86 -> i8086, etc.) [Aaron Giles]
245450
246Improved -listxml output to reflect new BIOS flag. New attribute
247isbios="yes" indicates that a given game is a BIOS. [Aaron Giles]
451Added 16-bit handlers to a number of the shared PC components.
452[Nathan Woods]
248453
249Further tweaks to the game selection UI: [Aaron Giles]
250 - disabled the tab key
251 - added hook for general input configuration from the menu
252 - split set names from friendly names into left/right columns
253 - added a background to the descriptive names of clones
254 - if you start with the game selection menu, hitting Esc to exit
255    a game brings you back to the menu rather than quitting
256    immediately
257 - fixed logic so that INI files are reloaded for each game
258
259Moved INI file handling fully into the core. As a side-effect of this
260change, <exename>.ini is no longer parsed. Changed -createconfig to
261always output mame.ini instead of <exename>.ini as a result.
454Consolidated common code between drc and non-drc MIPS cores.
262455[Aaron Giles]
263   
264Renamed run_game() to mame_execute(). The game driver is no longer
265specified as a parameter; rather, this information is extracted from
266the options via OPTION_GAMENAME. [Aaron Giles]
267456
268Fixed raw input-based lightgun buttons. [Aaron Giles]
269457
270Cleaned up options.c code. Added priority levels to options as they
271are set. New options are only accepted if they have greater or equal
272priority to a previous change. Added new function options_revert() to
273revert options below a given priority to their defaults. Changed
274options_get_string() so that it always returns a valid string
275(never NULL). Invalid strings are returned as empty strings.
276[Aaron Giles]
277458
278Added new functions core_filename_extract_base() and
279core_filename_ends_with() to corefile.h. [Aaron Giles]
459New games added or promoted from NOT_WORKING status
460---------------------------------------------------
461Aladdin (bootleg of Japanese Megadrive version) [stephh]
280462
281Changed menu rendering a bit. Added a background hilight to more
282strongly emphasize the current item. Added rendered arrows to indicate
283more items on the top/bottom and to indicate selection options in the
284DIP switch menus. Changed hilighting to be a bit less garish. Fixed
285repeat rates on keys to no longer be tied to the framerate.
286[Aaron Giles]
287463
288Added support for page up/page down generically in menus. Also made
289pause toggle work while menus are visible. [Aaron Giles]
290464
291Changed render_textures to allocate in a pool model, to avoid high
292memory overhead when allocating large numbers of textures (for example
293in the 14- and 16-segment LED displays). [Aaron Giles]
465New clones added
466----------------
467Raiden Fighters (Italy) [Corrado Tomaselli]
294468
295Fixed a number of 64-bit compiler warnings. [Aaron Giles]
296469
297470
4710.118u2
472-------
298473
299New games added or promoted from NOT_WORKING status
300---------------------------------------------------
301King Pin [Andrew Gardner]
302King Pin Multi-Game [Andrew Gardner]
474NOTE: If you are experiencing sound stuttering due to not being able
475to run your display at >60Hz, please give the -speed option a try.
476You should be able to run MAME at a small emulation speed decrease
477in order to get the game under your monitor's refresh rate.
303478
304479
305480
3060.117u1
307-------
308
309
310481MAMETesters Bugs Fixed
311482----------------------
312brkthru091u1gra [Luigi30]
313debbuger+psx_0117ora [Aaron Giles]
314cbtime0117red [Zsolt Vasvari]
315hotpinbl0117gra [Roberto Fresca]
316batrider0114red [Alex Jackson]
317battleg0113u4red [Alex Jackson]
318battleg0116u1ora [Alex Jackson]
319   
320   
483boogwing0118yel [Aaron Giles]
484starblad0113u3red [Atari Ace]
485mgakuen0106u1red [Atari Ace]
321486
487
488
322489Source Changes
323490--------------
324Fixed bug in screenless systems. [Nathan Woods]
491Fixed recently introduced regression in nemesis driver. [Atari Ace]
325492
326Fixed crash in chd code if reading beyond the end of the file.
327[Roman Scherzer]
493Improved fixes to the chdman CD creating code. [smf]
328494
329Moved Sand Scorpian and Gals Panic over to use the Pandora emulation.
330Also fixed some problems in the pandora emulation which improves the
331sprites in Djboy. [David Haywood]
495Updated amspdwy.c driver to fix the DIP Switches for 'amspdwy' which
496are slightly different than the ones for 'amspdwya' which were
497correct. [stephh]
332498
333Added new function timer_call_after_resynch(), which effectively
334sets a zero-duration timer for resynchronization. Replaced instances
335of zero-duration timers in the code with this more descriptive call.
336[Zsolt Vasvari]
499Fixed HP Saturn CPU core disassembler. [Wilbert Pol]
337500
338Defined new macro TIMER_CALLBACK, which should be used to wrap
339timer callbacks. Added a running_machine * parameter to timer
340callbacks. Updated all existing timer callbacks to use the new
341macro. [Zsolt Vasvari]
501Fixed clock speed and colors in Trivia Genius. [Lord Nightmare]
342502
343Added more opcode decryption to gussun. [Robiza]
503Cleaned up Taito drivers to use common defines for common input
504ports across drivers. [stephh]
344505
345Added discrete sound to headon and clones in vicdual.c. [couriersud]
506Removed redundant hard-coded definitions for Pole Position pedals.
507[Alex Jackson]
346508
347Added two inverter oscillators supporting enable and mixing in signals
348to discrete.h / disc_wav.c. [couriersud]
509Improved DIP switches for bombjack. [stephh]
349510
350Fixed a few bugs in the change lanes video emulation. [Adam Bousley]
511Changed default layouts in BFM games to hide VFD by default since it
512is not visible. [James Wallace]
351513
352Updated the monzagp driver into a somewhat playable state. There are
353still some graphics problems. LEDs still need to be hooked up for
354score/time-remaining display. [Phil Stroffolino]
514Further improvements to the TMS5220 emulation and more unification
515with the TMS5110 core. [Lord Nightmare]
355516
356Neo-Geo update: [Zsolt Vasvari]
357 - BIOS only driver 'neogeo' no longer crashes
358 - Cleaned up memory banking code to use memory_set_bank() instead
359    of memory_set_bank_ptr()
360 - Fixed LEDs
517Changed INI parsing to look for source file INIs in <inipath>/source
518first. This is to disambiguate INIs where the game name matches the
519source filename. If the INI file is not found in <inipath>/source,
520then it is looked for in the <inipath> as before. [Aaron Giles]
361521
362Improvements to the toaplan2 driver: [Alex Jackson]
363 - Replaced byteswapped truxton2 M68K program ROM with correct one
364 - Fixed sound CPU communications in the Raizing games. This is
365    educated guesswork, but it's more complete and probably more
366    correct than what was there before, and doesn't rely on excessive
367    use of cpu_yield()
368 - Added more information about the Raizing sets to the comments in
369    the driver, and corrected some errors
370 - Reorganized the Battle Garegga sets in a more sensible fashion
522Merged Raiden memory maps. Cleaned up the COP emulation code in
523Raiden 2. [Aaron Giles]
371524
372Reworked input system to push more features into the core. Cleaned
373up architecture to properly separate dependencies. Please note that
374this change only addresses the lower layer of input handling. The
375upper layer (i.e., input port handling at the driver layer) remains
376the same. [Aaron Giles]
525Added new experimental control for overall emulation speed. This
526lets you specify how fast/slow the gameplay should happen relative to
527the original. -speed 1.0 means run at normal speed. -speed 2.0 means
528run at 2x speed. -speed 0.5 means run at half speed. Note that the
529sound pitch is shifted as a result. If you are running early Namco
530games that normally run at 60.60Hz, you can run them at -speed 0.99
531and it should run at under 60Hz, which should prevent sound stuttering
532if your monitor is not capable of greater than 60Hz refresh rates.
533If this turns out to be useful, future versions may support a
534-speed refresh parameter that automatically tweaks the speed to keep
535you under your monitor's refresh rate. [Aaron Giles]
377536
378Major changes include:
537Fixed disassembly of V30 bit instructions. [Aaron Giles]
379538
380  * Removed the concept of os_code from the system. Now all codes
381    are defined via a set of macros in input.h. Each code is a 32-bit
382    value that encodes a device class, device index, item class,
383    item modifier, and item ID.
384   
385  * Removed OSD functions osd_get_code_list() and osd_get_code_value().
386    Instead, the OSD layer during osd_init() must register one or more
387    devices and the input items attached to each device via two new
388    functions input_device_add() and input_device_item_add().
389   
390  * Separated input sequence code into new module inputseq.c.
391   
392  * Moved support for the following options into the core: -mouse,
393    -joystick, -lightgun, -steadykey, -offscreen_reload, -joy_deadzone,
394    -joy_saturation, -paddle_device, -adstick_device, -pedal_device,
395    -dial_device, -trackball_device, -lightgun_device,
396    -positional_device, -mouse_device. The OSD layer should simply
397    register all devices at osd_init() time and allow the core to
398    enable/disable them according to the options.
399 
400  * Added two new options: -multikeyboard and -multimouse. By default,
401    both options are OFF. When OFF, the core will combine all keyboard
402    or mouse input into a single keyboard or mouse device. When ON,
403    these options instruct the core to keep inputs for each keyboard
404    and/or mouse independent.
405   
406  * Added new option: -joystick_map. This option allows for a 9x9 grid
407    to be specified which controls analog-to-digital mapping of
408    joystick inputs.
409   
410  * Changed the Windows implementation of input handling to fully
411    support the raw input interfaces for keyboard and mouse.
412    DirectInput is still used for all joystick inputs, as well as for
413    keyboard and mouse inputs on pre-Windows XP systems. This allows
414    for multiple keyboards and mice to be supported. Also changed
415    keyboard and mouse behavior to use non-exclusive mode in
416    DirectInput, and to keep the devices alive during pause for more
417    consistent input handling.
418539
419  * Broke windows.txt into config.txt, which contains all common
420    core-supported options and commmands, and windows.txt, which now
421    only lists Windows-specific additions.
422540
423Added support for frame update callbacks, similar to pause and exit
424callbacks but called at the same time as osd_update(). [Aaron Giles]
541New games added or promoted from NOT_WORKING status
542---------------------------------------------------
543El Grande - 5 Card Draw [Roberto Fresca]
425544
426Changed osd_init() to no longer return a value. OSD initialization
427should now rely on fatalerror() to report fatal initialization
428problems. [Aaron Giles]
429545
430Added new function mame_schedule_new_driver() which allows for a new
431driver to be queued after a hard reset. [Aaron Giles]
432546
433Added experimental new minimal game selection user interface. This
434interface can be accessed if MAME is started with no parameters, or
435via the main menu by choosing "Select a New Game". This interface
436allows you to select a game driver by typing in the name of the game.
437As you type, MAME's fuzzy name matching code will list the top 15
438selections that match. The interface will only display games that
439it finds in your rompath. [Aaron Giles]
547New clones added
548----------------
549Kickman [Aaron Giles]
550Trivia ? Whiz (Edition 3 - Vertical) [Pierpaolo Prazzoli]
440551
441Added "empty" driver which is used to host the game selection screen
442when no valid game is selected. [Aaron Giles]
443552
444Changed behavior in the Windows build so that double-clicking on
445MAME brings up the new game selection interface. [Aaron Giles]
446553
447Removed the NOT_A_DRIVER flag which was overloaded to mean two
448different things. There are now two new flags: GAME_IS_BIOS_ROOT
449indicates that a particular driver represents a BIOS rather than
450a full game. And GAME_NO_STANDALONE indicates that the given driver
451should not be listed or permitted to execute on its own. For MAME,
452most BIOSes are executable on their own, so they have the
453GAME_IS_BIOS_ROOT flag set but not the GAME_NO_STANDALONE flag.
454[Aaron Giles]
554New games marked as GAME_NOT_WORKING
555------------------------------------
556Big Apple Games [Pierpaolo Prazzoli]
557Thayer's Quest [Andrew Gardner]
455558
456Added new routines mame_openpath(), mame_readpath(), and
457mame_closepath() for iterating over all files in a path specification,
458including support for multiple paths. [Aaron Giles]
459559
460Changed audit interfaces to take a game_driver * instead of a game
461index. [Aaron Giles]
462560
463Changed driver_get_approx_matches() and driver_get_count() APIs to
464work on arbitrary driver lists rather than being hard-coded to the
465static driver list. Renamed the functions from driver_get_* to
466driver_list_get_* [Aaron Giles]
5610.118u1
562-------
467563
468564
565MAMETesters Bugs Fixed
566----------------------
567boogwing0118yel [Aaron Giles]
469568
470New games added or promoted from NOT_WORKING status
471---------------------------------------------------
472Sliver [Tomasz Slanina]
473569
474570
571Source Changes
572--------------
573Fixed behavior of auto_realloc() so that it always reallocs from its
574original pool. [Atari Ace]
475575
476New clones added
477----------------
478Space Dragon (Moon Cresta bootleg) [David Haywood]
479Battle Garegga - Type 2 (Europe / USA / Japan / Asia) [Alex Jackson]
576Fixed divide-by-zero when running with -video none in some cases.
577[Atari Ace]
480578
579ARM7 core fixes: [R. Belmont, Ryan Holtz]
580 - Fixed behavior when R15 is the source of a MOV
581 - Fixed flags calc for ADC/SBC
582 - Fixed flags calc for NEG
583 - Fixed flags calc for CMP
584 - Fixed time running backwards on Thumb instructions
585 - Fixed some ARM instructions doing indiscriminate change_pc()s
481586
587Fixed converting CD's containing audio that were ripped by cdrdao,
588which was broken recently. The code is cleaner and more maintainable
589now. [smf]
482590
591Fixed chdman_open() "w" to always create/truncate the file, leaving
592"r+" to try opening first and then truncating. This matches behavior
593in the core. [smf]
594
595Added missing port 3/4 to M6803 cpu core. [Curt Coder]
596
597Changed 6850ACIA to use MSB/LSB read handlers. [Curt Coder]
598
599Fixed two minor bugs in the COP400 CPU disassembler. Hooked up the
600internal 64 bytes of DATA RAM to the core. [Andrew Gardner]
601
602Added support in the debugger for reading/writing memory without
603translation. [Olivier Galibert]
604
605MSM6242 updates: [Ernesto Corvi]
606 - Added support for 12/24 hour mode
607 - Added support for the HOLD bit
608 
609Galaxian driver updates: [stephh]
610 - fixed 'spcdraga' GFX ROMS loading
611 - 100% verified Dip Switches for all sets
612 - added long notes for all sets
613 
614Significantly revamped the tilemap rendering code. There are now only
615two tilemap types, based on whether or not you want transparency
616based on pen or color. All existing tilemap effects are built on top
617of these two modes. The internal tilemap handling code has been
618reorganized and simplified in a number of cases. For most games, this
619change is transparent (har har), apart from the change in tilemap
620type values. Several concepts within the tilemap system now have
621different terminology for clarity and to remove some ambiguous naming
622('priority', for example, was overloaded). A small tutorial and better
623documentation is now present at the top of tilemap.h and provides
624more details of the changes. [Aaron Giles]
625
626
627
483628New games marked as GAME_NOT_WORKING
484629------------------------------------
485Gals Panic (US, EXPRO-02 PCB) [David Haywood]
486Balloon & Balloon [Pierpaolo Prazzoli]
630Mahjong Almond Pinky [BET] (Roberto Fresca)
631Jack Potten's Poker (bootleg 2) (Roberto Fresca)

Previous 15994 Revisions Next


© 1998-2018 The MESS Team